1、群集的类型
①负载均衡群集(Load Balancer):提高应用系统的响应能力,减少延迟,获得高并发、高负载;负载的分配依赖于主节点的分流算法,将客户机的请求分担给多个节点服务器
②高可用群集(High Available):提高应用系统的可靠性,减少中断时间,达到高可用性;
HA包括双工、主从两种工作模式,双工即所有节点可同时在线,主从即只有主节点在线
③高性能运算群集(High Performance Computer):提高运算速度、扩展硬件资源和分析能力;HPC的高性能依赖于分布式运算、并行计算,将多个资源整合在一起
2、负载均衡的分层结构
①负载调度器:群集唯一入口,对外提供群集IP地址(虚拟IP,Virtual IP)
②服务器池:提供应用服务的服务器的集合,每个节点具有独立的RIP(真实IP,Real IP)
③共享存储:为所有节点提供稳定、一致的文件存取服务,使用NAS设备或NFS服务器
3、负载均衡的工作模式
①地址转换模式(NAT):负载调度器作为所有节点的网关,既是客户机访问的入口,也是节点回应客户机的出口,各节点使用私有IP地址,安全性高
②IP隧道模式(TUN):负载调度器仅作为客户机访问的入口,各节点通过各自的Internet连接回应客户机,不再经过负载调度器,各节点使用独立公网IP地址,分散在不同位置
③直接路由模式(DR):与TUN模式类似,负载调度器仅作为客户机访问的入口,各节点通过各自的Internet连接回应客户机,各节点使用独立公网IP地址,但各节点并非分散在各地,而是与调度器位于同一个物理网络
4、LVS虚拟服务器
Linux Virtual Server是针对Linux内核的负载均衡解决方案,由我国的章文嵩博士创建
主要负载调度算法:
①轮询(Round Robin):将收到的访问请求按顺序轮流分配给群集中的各节点,均等对待
②加权轮询(Weighted Round Robin):根据服务器的处理能力轮流分配收到的访问请求
③最少连接(Least Connections):根据服务器已建立连接数分配,优先分配给连接数少的
④加权最少连接(Weighted Least Connections):自动调整权重,适应于节点性能差异较大
5、NFS共享存储服务
①Network File System是基于TCP/IP传输的网络文件系统协议,通过NFS协议,客户机可以像访问本地目录一样访问远程服务器上的共享资源。
②NFS服务依赖于RPC(Remote Process Call)机制,以完成远程到本地的映射过程,在RHEL6中需要安装nfs-utils、rpcbind软件包来提供NFS共享服务,其中nfs-utils用于NFS共享发布和访问,rpcbind用于RPC支持
实验一:构建LVS-NAT负载均衡群集
实验环境:一台win2003、四台RHEL6
一、基本配置
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-utils、rpcbind软件包
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负载均衡群集
在DR模式的负载均衡群集中由于入站、出站数据被分别处理,所以LVS负载调度器和各节点服务器都需要配置有VIP地址,以便响应对整个群集的访问;而共享存储设置一般会放在内部网络中
一、基本配置
配置各Linux主机名、关闭iptables等
二、配置负载调度器
1、为eth0、eth1、eth0: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-utils、rpcbind软件包
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、为eth0、eth1、lo: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 -----查看负载连接情况