环境如下:
192.168.2.199 vm1.example.com HA主服务器
192.168.2.202 vm2.example.com HA备服务器
192.168.2.205 vm3.example.com
192.168.2.175 vm4.example.com
其中1和2做HA,3和4做httpd的lvs。虚拟IP为192.168.2.213
1、使用keepalived+lvs
[root@vm1 ~]# /etc/init.d/pulse stop
lftp i:~> get pub/docs/keepalived/keepalived-1.2.12.tar.gz
[root@vm1 ~]# yum install gcc make openssl-devel libnl-devel -y
[root@vm1 ~]# tar zxf keepalived-1.2.12.tar.gz
[root@vm1 ~]# cd keepalived-1.2.12
[root@vm1 keepalived-1.2.12]# ./configure --prefix=/usr/local/keepalived
[root@vm1 keepalived-1.2.12]# make && make install
制作软链接,包含配置文件路径和启动脚本
[root@vm1 ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@vm1 ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@vm1 ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@vm1 ~]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
修改配置文件
[root@vm1 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost 通知邮件地址
}
notification_email_from keepalived@vm1.example.com 邮件发送者
smtp_server 127.0.0.1 本机做为smtp服务器
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER 状态,可以是MASTER和BACKUP
interface eth0
virtual_router_id 94 主从相同,和其他人不同,0-255
priority 100 主的大于从的,BACKUP设置为50
advert_int 1
authentication {
auth_type PASS 验证
auth_pass 1111 密码
}
virtual_ipaddress {
192.168.2.213 虚拟ip
}
}
virtual_server 192.168.2.213 80 {
delay_loop 3
lb_algo rr 算法为rr
lb_kind DR 方式为DR
# nat_mask 255.255.255.0
# persistence_timeout 50
protocol TCP
下面是两台真实服务器
real_server 192.168.2.205 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.175 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
2、发送软件到另一HA结点
[root@vm1 ~]# scp -r /usr/local/keepalived/ vm2.example.com:/usr/local/制作软链接
[root@vm2 ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@vm2 ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@vm2 ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@vm2 ~]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
[root@vm2 ~]# vim /etc/keepalived/keepalived.conf 修改配置文件
notification_email_from keepalived@vm2.example.com
state BACKUP
priority 50
依次开启vm1和vm2的keepalived,可查看tail -f /var/log/messages 日志信息
[root@vm1 ~]# /etc/init.d/keepalived start
[root@vm2 ~]# /etc/init.d/keepalived start
访问192.168.2.213
[root@vm1 ~]# ip addr show 查看IP接口
[root@vm1 ~]# ipvsadm -l 查看调度列表
测试,关闭HTTP会有邮件提示,调度列表也会随之改变,主HA服务停止,BACKUP会切换到MASTER,服务恢复会再切换回去。
3、添加ftp服务
[root@vm3 ~]# yum install vsftpd -y[root@vm3 ~]# /etc/init.d/vsftpd start
[root@vm3 ~]# chkconfig vsftpd on
[root@vm3 ~]# touch /var/ftp/3
3和4安装ftp,开启,写入不同文件
1和2配置文件添加ftp服务
[root@vm1 ~]# vim /etc/keepalived/keepalived.conf 添加
virtual_server 192.168.2.213 21 {
delay_loop 3
lb_algo rr
lb_kind DR
# nat_mask 255.255.255.0
persistence_timeout 50 这个打开,持续连接
protocol TCP
real_server 192.168.2.205 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.175 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@vm2 ~]# /etc/init.d/keepalived stop
[root@vm1 ~]# /etc/init.d/keepalived reload
[root@vm2 ~]# /etc/init.d/keepalived start
使用其他主机lftp 192.168.2.213
[root@vm1 ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.213:ftp rr persistent 10
-> vm4.example.com:ftp Route 1 1 2
-> vm3.example.com:ftp Route 1 0 1
TCP 192.168.2.213:http rr
-> vm4.example.com:http Route 1 0 30
-> vm3.example.com:http Route 1 0 30
[root@vm1 ~]# ip addr show
inet 192.168.2.213/32 scope global eth0