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

1.群集含义

Cluster,集群、群集

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

2.群集的类型

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

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

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

二、负载均衡

(一)概念

1.负载均衡的结构

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

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

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

LVS负载均衡(DR与NAT)

2.负载均衡的工作模式

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

(2)IP隧道(TUN)模式

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

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

LVS负载均衡(DR与NAT)

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.添加群集路由

[[email protected] ~]# 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)添加一个虚拟服务器

[[email protected] ~]# 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)添加真实服务器

[[email protected] ~]# ipvsadm -a -t 192.168.8.114:80 -r 192.168.8.113:80  -g  -w 1

[[email protected] ~]# ipvsadm -a -t 192.168.8.114:80 -r 192.168.8.115:80  -g  -w 1

-a 添加真实服务器

-t 采用tcp服务

-r 真实服务器

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

-w 真实服务器的权值

[[email protected] ~]# 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.添加群集路由

[[email protected] ~]# 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

LVS负载均衡(DR与NAT)

刷新一下

LVS负载均衡(DR与NAT)

查看连接情况

[[email protected] ~]# 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

LVS负载均衡(DR与NAT)

启用并生效

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)添加一个虚拟服务器

[[email protected] ~]# 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)添加真实服务器

[[email protected] ~]# ipvsadm -a -t 192.168.8.116:80 -r 192.168.88.113:80 -m

[[email protected] ~]# ipvsadm -a -t 192.168.8.116:80 -r 192.168.88.115:80 -m

-a 添加真实服务器

-t 采用tcp服务

-r 真实服务器

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

[[email protected] ~]# 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)保存配置

[[email protected] ~]# ipvsadm-save >/etc/sysconfig/ipvsadm

(5)启动ipvsadm

service ipvsadm start

(二)真实服务器

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

1.安装测试服务httpd

yum或rpm安装

2.修改网卡网关

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

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

LVS负载均衡(DR与NAT)

3.编写测试页

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

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

1.安装测试服务httpd

yum或rpm安装

2.修改网卡网关

LVS负载均衡(DR与NAT)

3.编写测试页

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

(三)测试

浏览器直接访问外网IP

LVS负载均衡(DR与NAT)

刷新一下:

LVS负载均衡(DR与NAT)

查看连接情况

[[email protected] ~]# 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

 

 

 

 

 

相关文章:

  • 2021-06-24
  • 2021-06-21
  • 2021-12-30
  • 2021-11-18
  • 2021-06-18
  • 2021-09-18
  • 2021-08-30
  • 2021-06-08
猜你喜欢
  • 2021-06-12
  • 2021-12-18
  • 2021-04-28
  • 2022-03-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案