LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
1.ipvsadm
server1:
vim /etc/yum.repos.d/rhel-source.repo # 添加ipvsadm所在的yum源
yum install ipvsadm -y
ipvsadm -l # 查看ipvsadm
添加ipvsadm
ip addr add 172.25.61.100 dev eth0 # 添加ip
server2:
ip addr add 172.25.61.100 dev lo # 添加ip
/etc/init.d/httpd start # 开启httpd服务
server3:同server2设置一样
主机:可以以轮循的方式通过server1访问server2和server3
server2:
yum insatll arptables_jf -y
显示arptables规则
添加arptables 规则,保证其他主机只能访问server1,而不会直接访问server2或server3
保存arptables规则
server3:同server2的设置一样
主机:可以以轮循的方式通过server1访问server2和server3
2.ldirectord + ipvsadm
yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
rpm -ql ldirectord
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.cf
ipvsadm -C
/etc/init.d/ldirectord start
主机:可以以轮循的方式通过server1访问server2和server3
server2:
/etc/init.d/httpd stop
server1: #ldiretcord带有健康检查功能,当server2上httpd服务关闭后,会只访问server3
主机:
server3:
/etc/init.d/httpd stop
server1:当server2和server3上的httpd服务都关闭时,会访问本机的httpd服务
主机:
3. keepalived + ipvsadm
server1:
tar zxf keepalived-2.0.6.tar.gz
yum install openssl-devel -y
./configure --prefix=/usr/local/keepalived --with-init=SYSV
make
make install
yum install mailx -y
vim /etc/keepalived/keepalived.conf
/etc/init.d/ldirectord stop # 关闭ldiretcord
/etc/init.d/keepalived start # 开启keepalived
server4:设置与server1相同,只需修改keepalivrd.cf 中的模式为BUCKUP,权值低于server1中的权值
vim /etc/keepalived/keepalived.conf
server1: # 开启keepalived后,会优先使用模式为MASTER的主机作为lvs主机,当模式为MASTER的主机发生故障时,会自动启用模式为BUCKUP且权值最高的主机作为lvs主机
主机:
server1:# 关闭server1的keepalived服务
/etc/init.d/keepalived stop
server4: # 可以看到server4上的keepalived服务会使server4作为lvs主机,当server1上的keepalived服务恢复正常后,server1会自动成为lvs主机
主机: # 其他主机访问服务并不受影响
当server1运行时,备用机一直处于空闲状态,比较浪费资源,我们可以开启两个服务,server1为第一个服务的主机和第二个服务的备机,server4为第一个服务的备机和第二个服务的主机。
server2:
yum install vsftpd -y
/etc/init.d/vsftpd start
ip addr add 172.25.61.200/32 dev lo
arptables -A OUT -s 172.25.61.200 -j mangle --mangle-ip-s 172.25.61.2
arptables -A IN -d 172.25.61.200 -j DROP
server3: 配置与server2相同
server1:
vim /etc/keepalived/keepalived.conf
/etc/init.d/keepalived restart
server4:
/etc/init.d/keepalived restart
主机:
server1:
yum install ricci luci -y
echo westos |passwd --stdin ricci
/etc/init.d/ricci start
chkconfig ricci on
/etc/init.d/luci start
chkconfig luci on
server4:
yum install ricci -y
echo westos |passwd --stdin ricci
/etc/init.d/ricci start
chkconfig ricci on
主机: