LVS负载均衡(DR与NAT)

  一、群集的结构与工作模式

1.群集含义

Cluster,集群、群集

由多台主机构成,但对外只表现为一个整体

2.群集的类型

(1)负载均衡群集(Load  Balancer)

(2)高可用群集  (High  Available)

(3)高性能运算群集  (High Performance Computer)

二、负载均衡

(一)概念

1.负载均衡的结构

第一层,负载调度器(Load Balancer 或 Director)

第二层,服务器池(Server Pool)

第三层,共享存储(Share Storage)

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbmdxaWFubWVuZw==,size_16,color_FFFFFF,t_70

2.负载均衡的工作模式

(1)地址转换(NAT)模式

(2)IP隧道(TUN)模式

不常用,所以就不研究了。

(3)直接路由(DR)模式

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbmdxaWFubWVuZw==,size_16,color_FFFFFF,t_70

3.LVS的负载均衡调度算法

轮询(Round Robin)

加权轮询(Weighted  Round Robin)

最少连接(Least Connections)

加权最少连接(Weighted Least Connections)

….

4.使用ipvsadm工具

(1)创建虚拟服务器

(2)添加、删除服务器节点

(3)查看群集及节点情况

(4)保存负载分配策略

 

三、构建LVS负载均衡群集(DR)

虚拟服务器的IP为192.168.8.114

LVS调度器IP为192.168.8.116

真实服务器IP为192.168.8.113、192.168.8.115

(一)LVS调度器配置

1.群集接口开启

网卡为eth0

设置群集接口

ifconfig eth0:0虚拟服务器的IP   broadcast  虚拟服务器的IP  netmask 255.255.255.255 up

此配置为临时配置,重启IP就没有了。

ifconfig eth0:0 192.168.8.114 broadcast 192.168.8.114 netmask  255.255.255.255 up

2.添加群集路由

[root@sutang ~]# route add -host 192.168.8.114 dev eth0:0

192.168.8.114为虚拟服务器IP。

3.配置LVS-DR群集策略

(1)安装ipvsadm

ipvs的管理工具。

ipvs是ip虚拟服务器。

yum 或 rpm安装

我采用光盘安装

cd   /media/CentOS_6.5_Final/Packages

rpm -ivh ipvsadm-1.26-2.el6.x86_64.rpm

(2)添加一个虚拟服务器

[root@sutang ~]# ipvsadm -A -t 192.168.8.114:80 -s rr

rr是指在这台服务器上采用轮询的负载均衡调度算法

-A添加一台虚拟服务器

-t说明虚拟服务器提供的是tcp服务

-s采用什么调度算法,选项有:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq

(3)添加真实服务器

[root@sutang ~]# ipvsadm -a -t 192.168.8.114:80 -r 192.168.8.113:80  -g  -w 1

[root@sutang ~]# ipvsadm -a -t 192.168.8.114:80 -r 192.168.8.115:80  -g  -w 1

-a 添加真实服务器

-t 采用tcp服务

-r 真实服务器

-g 指定LVS的工作模式为直接路由模式

-w 真实服务器的权值

[root@sutang ~]# 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.8.114:80 rr

  -> 192.168.8.113:80             Route   1      0          0        

  -> 192.168.8.115:80             Route   1      0          0        

-L   显示内核虚拟服务器表

-n   输出IP地址和端口的数字形式

(4)保存配置

ipvsadm-save >/etc/sysconfig/ipvsadm

(5)启动ipvsadm

service ipvsadm start

(二)真实服务器配置

两台服务器都同样配置。

1.安装测试服务httpd

yum -y install httpd

我们测试httpd的负载均衡。

2.关闭响应ARP请求

vim /etc/sysctl.conf

在文件末尾添加如下内容:

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

修改并生效

sysctl -p

3.配置群集端口

ifconfig lo:0 192.168.8.114 broadcast 192.168.8.114 netmask 255.255.255.255 up

此为临时配置,重启network失效。

其中的IP为虚拟服务器的IP。

4.添加群集路由

[root@su ~]# route add -host 192.168.8.114 lo:0

5.分别在两台真实服务器添加测试页

echo "115" > /var/www/html/index.html

echo "113" > /var/www/html/index.html

(三)测试

启动真实服务器的httpd服务、关闭真实服务器的防火墙与selinux

浏览器直接访问虚拟服务器的IP

20191008165248335.png

刷新一下

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbmdxaWFubWVuZw==,size_16,color_FFFFFF,t_70

查看连接情况

[root@sutang ~]# ipvsadm -Lnc

IPVS connection entries

pro expire state       source             virtual            destination

TCP 01:19  FIN_WAIT    192.168.8.112:60422 192.168.8.114:80   192.168.8.115:80

TCP 01:04  FIN_WAIT    192.168.8.112:60420 192.168.8.114:80   192.168.8.115:80

TCP 01:05  FIN_WAIT    192.168.8.112:60421 192.168.8.114:80   192.168.8.113:80

TCP 01:03  FIN_WAIT    192.168.8.112:60419 192.168.8.114:80   192.168.8.113:80

四、构建LVS负载均衡群集(NAT)

LVS调度器两张网卡(一张内网、一张外网):内网IP(192.168.88.116)、外网IP(192.168.8.116)

两台真实服务器(只需将网关设置为LVS调度器的内网网卡)(192.168.88.113、192.168.88.115)

内网网段:192.168.88.0/24

虚拟服务器的IP绑定在LVS调度器的外网网卡上。

(一)LVS调度器配置

1.开启路由转发

此步是为了使用防火墙的nat表转换功能的必须步骤。

vim /etc/sysctl.conf

2019100816524917.png

启用并生效

sysctl -p

2.启用防火墙的nat表

利用防火墙的nat表将内网IP转换为外网IP。

iptables -t nat -F   //清除之前的iptable的规则

iptables -t nat -A POSTROUTING -s 内网网段 -o 外网网卡 -j  SNAT --to-source  外网IP

#将源地址为内网地址的数据包转换为外网网卡的IP

iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth0 -j SNAT --to-source 192.168.8.116

下面这条是应用于公网IP隔一段时间就变时采用。

iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth0 -j SNAT --to-source MASQUERADE

3.配置LVS-NAT群集策略

(1)安装ipvsadm

ipvs的管理工具。

ipvs是ip虚拟服务器。

yum 或 rpm安装

此处我采用光盘安装

cd  /media/CentOS_6.5_Final/Packages

rpm -ivh ipvsadm-1.26-2.el6.x86_64.rpm

(2)添加一个虚拟服务器

[root@sutang ~]# ipvsadm -A -t 192.168.8.116:80 -s rr

rr是指在这台服务器上采用轮询的负载均衡调度算法

-A添加一台虚拟服务器

-t说明虚拟服务器提供的是tcp服务

-s采用什么调度算法,选项有:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq

(3)添加真实服务器

[root@sutang ~]# ipvsadm -a -t 192.168.8.116:80 -r 192.168.88.113:80 -m

[root@sutang ~]# ipvsadm -a -t 192.168.8.116:80 -r 192.168.88.115:80 -m

-a 添加真实服务器

-t 采用tcp服务

-r 真实服务器

-m 指定LVS的工作模式为NAT模式

[root@sutang ~]# ipvsadm -L -n                        

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.8.116:80 rr

  -> 192.168.88.113:80            Masq    1      0          0        

  -> 192.168.88.115:80            Masq    1      0          0        

-L   显示内核虚拟服务器表

-n   输出IP地址和端口的数字形式

(4)保存配置

[root@sutang ~]# ipvsadm-save >/etc/sysconfig/ipvsadm

(5)启动ipvsadm

service ipvsadm start

(二)真实服务器

--------------第一台服务器----------------

1.安装测试服务httpd

yum或rpm安装

2.修改网卡网关

将网卡网关修改为LVS调度器的内网网卡IP。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

2019100816524976.png

3.编写测试页

echo "115" > /var/www/html/index.html

-------------第二台服务器---------------

1.安装测试服务httpd

yum或rpm安装

2.修改网卡网关

20191008165250958.png

3.编写测试页

echo "113" > /var/www/html/index.html

(三)测试

浏览器直接访问外网IP

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbmdxaWFubWVuZw==,size_16,color_FFFFFF,t_70

刷新一下:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbmdxaWFubWVuZw==,size_16,color_FFFFFF,t_70

查看连接情况

[root@sutang ~]# ipvsadm -Lnc

IPVS connection entries

pro expire state       source             virtual            destination

TCP 00:13  TIME_WAIT   192.168.8.112:52326 192.168.8.116:80   192.168.88.115:80

TCP 00:45  TIME_WAIT   192.168.8.112:52328 192.168.8.116:80   192.168.88.113:80

TCP 00:57  TIME_WAIT   192.168.8.112:52334 192.168.8.116:80   192.168.88.113:80

TCP 00:10  TIME_WAIT   192.168.8.112:52325 192.168.8.116:80   192.168.88.113:80

TCP 00:57  TIME_WAIT   192.168.8.112:52333 192.168.8.116:80   192.168.88.115:80

TCP 01:12  TIME_WAIT   192.168.8.112:52338 192.168.8.116:80   192.168.88.115:80

TCP 00:46  TIME_WAIT   192.168.8.112:52329 192.168.8.116:80   192.168.88.115:80

TCP 00:46  TIME_WAIT   192.168.8.112:52330 192.168.8.116:80   192.168.88.113:80

TCP 00:58  TIME_WAIT   192.168.8.112:52336 192.168.8.116:80   192.168.88.113:80

TCP 00:57  TIME_WAIT   192.168.8.112:52335 192.168.8.116:80   192.168.88.115:80

TCP 00:57  TIME_WAIT   192.168.8.112:52332 192.168.8.116:80   192.168.88.113:80

TCP 00:56  TIME_WAIT   192.168.8.112:52331 192.168.8.116:80   192.168.88.115:80

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值