集群的分类:

(1)HA:高可用集群,有叫双机热备

原理:两台机器A、B,正常是A提供服务,当A机宕机或者服务有问题时,会切换到B机继续提供服务
常用的高了永软件:heartbeat和keepalived(可以做负载均衡)

(2)LB:负载均衡集群。

(3)HPC:高性能计算集群

咱们这里讲负载均衡集群。

负载均衡的实现方式:

1:通过硬件的实现:F5负载均衡器

2:软件的实现。LVS(四层,传输层),nginx反向代理(七层,应用层)

LVS的实现由三种方式:

(a)NAT(网络地址映射):通过网络地址转换的方法来实现调度

     优点:支持所有操作系统及私有网络,且只需一个公网 IP 地址
     缺点:用户请求和响应报文都必须经过dr地址重写,当用户请求越来越多时,调度器的处理能力将成为瓶颈。
 (b)DR(直接路由模式):通过改写请求报文的MAC地址,将请求发送到 rs,而 rs 将响应直接返回给客户。性能最好
 (c)TUN(IP隧道模式):dr采用IP隧道技术将用户请求转发到某个rs,而这个rs将直接响应用户请求,不再经过dr,dr只处理用户的报文请求,从而使集群系统吞吐量大大提高。

下面来搭建LVS-NAT模式集群实现负载均衡。

环境:

主机名 IP 系统 角色
dir 192.168.199.8/192.168.209.8 rhel7.4 分发器
node1 192.168.199.67 rhel6.5 real server1
node2 192.168.199.68 rhel6.5 real server1

dip:192.168.199.8

vip:192.168.209.8

rip1:192.168.199.67

rip2:192.168.199.68

分发器配置:

分发器有两个网卡,一个网卡和内网连接,一个网卡和外网连接

  • ens33:192.168.199.8:这张网卡对应一个封闭的内网,不能访问外网资源,外网也不能直接通过这个IP访问这台主机;(这台主机不用配置网关)
  • ens37:192.168.209.8:这张网卡设置的IP可以访问外网,也可以被外网访问。

1、安装lvs核心软件包:

[root@dir ~]# yum install ipvsadm -y
2、写脚本管理(开启路由转发,添加虚拟服务,添加虚拟服务后端的real server)

[root@dir ~]# vim lvs_nat.sh

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
iptables -t nat -F
iptables -t nat -X  
iptables -t nat -A POSTROUTING -s 192.168.199.0/24 -j MASQUERADE
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.209.8:80 -s rr
$IPVSADM -a -t 192.168.209.8:80 -r 192.168.199.67:80 -m
$IPVSADM -a -t 192.168.209.8:80 -r 192.168.199.68:80 -m

参数说明:

-A:增加一个虚拟服务IP
-a:增加real server
-r:指定real server 的 IP地址
-t:表示TCP服务       
-s:指定调度算法   rr:轮询算法(对调度算法感兴趣的大家可以查查~)
-m(masquerade):也就是NAT方式的LVS
[root@dir ~]# chmod +x lvs_nat.sh  增加执行权限
[root@dir ~]# ./lvs_nat.sh
查看规则:
[root@dir ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.209.8:80 rr
  -> 192.168.199.67:80            Masq    1      0          0         
  -> 192.168.199.68:80            Masq    1      0          0
real server配置
rs1:192.168.199.67
rs2:192.168.199.68
rs1和rs2都要修改网卡配置文件:  /etc/sysconfig/network-scripts/ifcfg-eth0
1、网关GATEWAY都要指向分发器 dir 的 IP,192.168.199.8(不要写成vip了啊)

rs1和rs2都这样配置

2、重启网卡使配置生效

测试:

在rs1和rs2上安装Apache服务,然后下一个测试页面

rs1:echo 'this is 192.168.199.67' > /var/www/html/index.html

rs2: echo 'this is 192.168.199.68' > /var/www/html/index.html

在dir上访问vip:

1、不设置权重进行测试(上面的脚本就是这样):

[root@dir ~]# curl 192.168.209.8
this is 192.168.199.68
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.68
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.68
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
2、设置权重进行测试(rs1:3,rs2:1),修改一下脚本

$IPVSADM -A -t 192.168.209.8:80 -s wrr
$IPVSADM -a -t 192.168.209.8:80 -r 192.168.199.67:80 -m -w 3
$IPVSADM -a -t 192.168.209.8:80 -r 192.168.199.68:80 -m -w 1

[root@dir ~]# ./lvs_nat.sh
[root@dir ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.209.8:80 wrr
  -> 192.168.199.67:80            Masq    3      0          0         
  -> 192.168.199.68:80            Masq    1      0          0

查看结果:

[root@dir ~]# curl 192.168.209.8
this is 192.168.199.68
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.68
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67
[root@dir ~]# curl 192.168.209.8
this is 192.168.199.67

完美结束。

下一篇讲LVS的其他模式,希望对大家有所帮助。

最后在说一句啊。当有问题的时候怎么清空规则呢???

[root@dir ~]# ipvsadm -C

[root@dir ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@dir ~]#

LVS集群之NAT模式的更多相关文章

  1. LVS集群之NAT模式实现

    LVS集群之NAT模式实现 一.集群的种类 集群系统主要分为 1.HA:高可用集群,又叫双机热备.   (a)原理      2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至 ...

  2. Linux系统(四)负载均衡LVS集群之NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  3. LVS集群之NAT模式实例(3)

    LVS集群NAT模式实例 1. 实验拓扑图 DS 必须有两块网卡,需要在上面做NAT. 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20 ...

  4. Linux系统(五)负载均衡LVS集群之DR模式

    序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图.LVS/NAT模式如下图: LVS/I ...

  5. LVS集群之DR模式 实现

    ps:做 dr 模式 之前,先把之前做过的操作清空掉 1.ipvsadm -ln 查看规则 2.ipvsadm -C 清空规则 3.ipvsadm -ln 确认 4.iptables -t nat - ...

  6. LB负载均衡集群及NAT模式配置

    一.LB(load balance)负载均衡集群 负载均衡集群常用的有: 1.软件实现的 nginx(工作在OSI第七层应用层) lvs+keepalived(工作在OSI第四层传输层) 2.硬件实现 ...

  7. LVS集群之DR模式

    今天来讲LVS-DR模式集群实现负载均衡的搭建方法 环境 主机名 IP   系统 角色 dir DIP:192.168.199.9 VIP:192.168.199.8 rhel7.4 集群服务器 no ...

  8. Linux系统(四)LVS集群负载均衡NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  9. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

随机推荐

  1. thymeleaf 模板使用 之 解决因HTML标签未闭合引起的错误

    一.修改thymeleaf属性配置 spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html spring ...

  2. react绑定事件的几种写法

    方法一:最麻烦的写法,不推荐 import React from 'react'; class App extends React.Component { handleClick() { alert( ...

  3. jsonp的跨域原理

    在开发测试中,难免会在不同域下进行跨域操作,出于安全性考虑,浏览器中的同源策略阻止从一个域上加载的脚本获取或者操作 另一个域下的文档属性,这时需要进行跨域的方式进行解决,如:使用jsonp ,ifra ...

  4. 1 .net将xml反序列化

    public static T XmlToObject<T>(string str) where T : class { using (Stream stream = new Memory ...

  5. 配置Notepad++万能调试

    需求: 正常情况下 使用notepad++编辑修改一些网页或脚本文件,修改之后想要查看效果需要Ctrl+S保存,然后从文件目录中打开查看. 现在我想做的就是简化查看效果的流程,让notepad++实现 ...

  6. webconfig中的&符号问题解决

    第一种解决方案 解决方法是将“&”,用“*”代替,取的时候再替换 第二种解决方案 用“&”替换“&”

  7. centos 7 安装 LNMPC cacti 1.2.7 监控

    先上图,后续更新

  8. (备忘)openssl的证书格式转换

    PKCS 全称是Public-KeyCryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过15 个标准. ...

  9. vlan linux内核数据流程

    转:http://blog.sina.com.cn/s/blog_62bbc49c0100fs0n.html 一.前言 前几天做协议划分vlan的时候看了一些linux内核,了解不深,整理了下vlan ...

  10. PXC集群的概述及搭建

    目录 PXC集群的概述及搭建 PXC集群的简介 PXC集群主要由两部分组成: PXC的特性和优点: PXC的局限和劣势: PXC原理描述 在Centos部署基于Mysql高可用方案操作过程 新增节点加 ...