linux學習之使用keepalived結合lvs搭建高可用負載均衡集羣

環境如下:

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章