LVS负载均衡群集的实现


 1、群集的类型

①负载均衡群集(Load Balancer):提高应用系统的响应能力,减少延迟,获得高并发、高负载;负载的分配依赖于主节点的分流算法,将客户机的请求分担给多个节点服务器

②高可用群集(High Available):提高应用系统的可靠性,减少中断时间,达到高可用性;

HA包括双工、主从两种工作模式,双工即所有节点可同时在线,主从即只有主节点在线

③高性能运算群集(High Performance Computer):提高运算速度、扩展硬件资源和分析能力;HPC的高性能依赖于分布式运算、并行计算,将多个资源整合在一起

2、负载均衡的分层结构

①负载调度器:群集唯一入口,对外提供群集IP地址(虚拟IPVirtual  IP

②服务器池:提供应用服务的服务器的集合,每个节点具有独立的RIP(真实IPReal  IP

③共享存储:为所有节点提供稳定、一致的文件存取服务,使用NAS设备或NFS服务器

3、负载均衡的工作模式

①地址转换模式(NAT):负载调度器作为所有节点的网关,既是客户机访问的入口,也是节点回应客户机的出口,各节点使用私有IP地址,安全性高

IP隧道模式(TUN):负载调度器仅作为客户机访问的入口,各节点通过各自的Internet连接回应客户机,不再经过负载调度器,各节点使用独立公网IP地址,分散在不同位置

③直接路由模式(DR):与TUN模式类似,负载调度器仅作为客户机访问的入口,各节点通过各自的Internet连接回应客户机,各节点使用独立公网IP地址,但各节点并非分散在各地,而是与调度器位于同一个物理网络

4LVS虚拟服务器

Linux Virtual Server是针对Linux内核的负载均衡解决方案,由我国的章文嵩博士创建

主要负载调度算法:

①轮询(Round Robin):将收到的访问请求按顺序轮流分配给群集中的各节点,均等对待

②加权轮询(Weighted Round Robin):根据服务器的处理能力轮流分配收到的访问请求

③最少连接(Least Connections):根据服务器已建立连接数分配,优先分配给连接数少的

④加权最少连接(Weighted Least Connections):自动调整权重,适应于节点性能差异较大

5NFS共享存储服务

Network File System是基于TCP/IP传输的网络文件系统协议,通过NFS协议,客户机可以像访问本地目录一样访问远程服务器上的共享资源。

NFS服务依赖于RPCRemote Process Call)机制,以完成远程到本地的映射过程,在RHEL6中需要安装nfs-utilsrpcbind软件包来提供NFS共享服务,其中nfs-utils用于NFS共享发布和访问,rpcbind用于RPC支持

 

实验一:构建LVS-NAT负载均衡群集

实验环境:一台win2003、四台RHEL6

Snip20190101_1.png

 

一、基本配置

1、配置各Linux主机名

vi /etc/sysconfig/network

HOSTNAME=lvs.benet.com

vi /etc/hosts

192.168.7.254   lvs.benet.com

2、配置IP地址、网关、关闭iptables

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

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.16.172

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.7.254

NETMASK=255.255.255.0

GATEWAY=192.168.7.254

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot          --------其他虚拟机配置与之类似

注:①在局域网中或互联中,linux的主机名不能相同

VMWare克隆或复制Linux虚拟机后可能会导致找不到eth0网卡等问题,可通过删除 /etc/udev/rules.d/70-persistent-net.rules文件解决,需重启系统

③如果各虚拟机网卡MAC地址相同,可在ifcfg-eth0文件中添加

MACADDR=22:22:22:22:22:22配置项,以指定不同的MAC地址 

④内部的节点服务器需要指定网关,可添加配置项GATEWAY=192.168.7.254

 

二、配置负载调度器

1、配置SNAT转发规则

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl –p

iptables –F

iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o eth0 -j SNAT --to-source 172.16.16.172

iptables-save  >  /etc/sysconfig/iptables

2、加载模块、安装LVS群集管理工具

modprobe ip_vs

cat /proc/net/ip_vs

yum -y install vsftpd        -----通过FTP配置yum仓库,方便安装软件包

vi /etc/vsftpd/vsftpd.conf

anon_root=/mnt/iso

service vsftpd start

chkconfig --level 35 vsftpd on

rpm -ivh /mnt/iso/Packages/ipvsadm-1.25-9.el6.i686.rpm

3、创建虚拟服务器、添加web节点、保存负载分配策略

service ipvsadm stop              -----清除原有策略

ipvsadm -A -t 172.16.16.172:80 -s rr

ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.21:80 -m -w 1

ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.22:80 -m -w 1

ipvsadm -Ln

service ipvsadm save               -----保存策略

chkconfig ipvsadm on

注:

ipvsadm命令用于管理LVS群集,通过调用ip_vs模块来添加、删除服务器节点,以及查看群集的运行状态,需要手工安装ipvsadm-1.25-9.el6.i686.rpm软件包

②常用选项:

-A      添加虚拟服务器

-t       指定VIP地址及端口号

-s       指定负载调度算法,轮询rr、加权轮询wrr、最少连接lc、加权最少连接wlc

-a       添加节点服务器

-d     删除服务器节点,如ipvsadm -d -t 172.16.16.172:80 -r 192.168.7.21:80

-r       指定各节点RIP地址及端口号

-m     使用NAT群集模式

-g    使用DR群集模式

-i        使用TUN群集模式

-w      设置权重,0表示暂停节点

-L              查看LVS状态

-n       以数字形式显示地址、端口等信息

-c              查看各节点负载情况

 

三、配置NFS服务器

配置yum,方便安装软件包

1、安装ntf-utilsrpcbind软件包

yum -y install nfs-utils rpcbind

chkconfig rpcbind on

chkconfig nfs on

2、设置共享目录

mkdir -p /opt/wwwroot

vi /etc/exports

/opt/wwwroot    192.168.7.0/24(rw,sync,no_root_squash)

3、启动服务并查看发布的共享目录

service rpcbind start

service nfs start

netstat -anpt | grep rpcbind             -----使用111端口

showmount -e

 

四、配置节点服务器

1、安装rpcbind软件包以实现访问NFS共享资源

yum -y install nfs-utils rpcbind

service rpcbind start

chkconfig rpcbind on

showmount -e 192.168.7.250         -----查看NFS服务器共享的目录

注:①如果报错“clnt_create: RPC: Program not registered”,可能是未修改各Linux主机名或服务器的nfs服务未运行

     ②如果报错“clnt_create: RPC: Port mapper failure - Unable to receive:error....”,可能是被服务器上iptables防火墙阻止,关闭防火墙即可

2、挂载NFS共享目录

mkdir -p /var/www/html

mount -t nfs 192.168.7.250:/opt/wwwroot /var/www/html

vi /etc/fstab

192.168.7.250:/opt/wwwroot  /var/www/html    nfs   defaults,_netdev 0 0

3、安装httpd软件包并创建测试页面

yum –y install httpd

service httpd start

chkconfig httpd on

echo welcome to web! > /var/www/html/index.html

五、测试LVS群集

在外网主机中访问http://172.16.16.172进行测试,刷新时可以看到不同的节点提供的内容

在负载调度器上查看

ipvsadm -Ln             -----查看节点状态

ipvsadm Lnc       -----查看负载连接情况

 

 

实验二:构建LVS-DR负载均衡群集

 

Snip20190101_2.png

DR模式的负载均衡群集中由于入站、出站数据被分别处理,所以LVS负载调度器和各节点服务器都需要配置有VIP地址,以便响应对整个群集的访问;而共享存储设置一般会放在内部网络中

 

一、基本配置

配置各Linux主机名、关闭iptables

二、配置负载调度器

1、为eth0eth1eth0:0配置IP地址

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

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.16.254

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=192.168.7.254

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

DEVICE=eth0:0

ONBOOT=yes

IPADDR=172.16.16.172

NETMASK=255.255.255.0

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot                --------重新启动虚拟机

2、调整/proc内核参数,关闭重定向响应

由于负载调度器和各节点共用VIP地址,为避免ARP解析异常,故关闭内核的重定向响应

vi /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

net.ipv4.conf.eth1.send_redirects = 0

sysctl –p

3、加载模块、安装LVS群集管理工具

modprobe ip_vs

rpm -ivh /mnt/iso/Packages/ipvsadm-1.25-9.el6.i686.rpm

yum -y install vsftpd        -----配置yum仓库,方便安装软件包

vi /etc/vsftpd/vsftpd.conf

anon_root=/mnt

service vsftpd start

chkconfig vsftpd on

4、创建虚拟服务器、添加web节点、保存负载分配策略

service ipvsadm stop

ipvsadm -A -t 172.16.16.172:80 -s rr

ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.21:80 -g -w 1

ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.22:80 -g -w 1

service ipvsadm save

chkconfig ipvsadm on

三、配置NFS服务器

1、为eth0配置IP地址

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

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.7.250

NETMASK=255.255.255.0

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot

2、安装ntf-utilsrpcbind软件包

yum -y install nfs-utils rpcbind

3、设置共享目录

mkdir -p /opt/wwwroot

vi /etc/exports

/opt/wwwroot    192.168.7.0/24(rw,sync,no_root_squash)

4、启动服务并查看发布的共享目录

service rpcbind start

service nfs start

chkconfig rpcbind on

chkconfig nfs on

netstat -anpt | grep rpcbind             -----使用111端口

showmount -e 127.0.0.1

四、配置节点服务器

1、为eth0eth1lo:0配置IP地址,并添加路由记录

①配置IP地址

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

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.16.21

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=192.168.7.21

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

ONBOOT=yes

IPADDR=172.16.16.172          -----此地址仅用作响应数据包的源地址

NETMASK=255.255.255.255      -----子网掩码必须全为1

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot             -------重新启动虚拟机,节点2的配置与之类似

②添加VIP本地访问路由

vi /etc/rc.local

/sbin/route add -host 172.16.16.172 dev lo:0

route add -host 172.16.16.172 dev lo:0

2、调整/proc内核参数,关闭重定向响应

vi /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、安装rpcbind软件包以实现访问NFS共享资源

yum -y install nfs-utils rpcbind

service rpcbind start

chkconfig rpcbind on

showmount -e 192.168.7.250

4、挂载NFS共享目录

mkdir -p /var/www/html

mount 192.168.7.250:/opt/wwwroot /var/www/html

vi /etc/fstab

192.168.7.250:/opt/wwwroot /var/www/html        nfs     defaults,_netdev 0 0

5、安装httpd软件包并创建测试页面

yum –y install httpd

echo welcome to web! > /var/www/html/index.html

service httpd start

chkconfig httpd on

五、测试LVS群集

在外网主机中访问http://172.16.16.172进行测试,刷新时可以看到不同的节点提供的内容

在负载调度器上查看

ipvsadm -Ln     -----查看节点状态

ipvsadm -Lnc     -----查看负载连接情况


讲师介绍.jpg


猜你喜欢

转载自blog.51cto.com/12402007/2337619