環境如下:
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 [email protected] 郵件發送者
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 [email protected]
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