Keepalived 實現雙機熱備


原理

首先有一個虛擬ip暴露給客戶端,虛擬ip對應的mac地址為一台真實服務器,

即用戶向虛擬ip發送一個請求,該請求會被分發到真實服務器上。

現在有2台真實服務器,一台master,一台backup,master和backup上都運行着keepalived

當master掛了的時候,backup檢測之后,自己成為master,且arp緩存虛擬ip對應的mac地址將變為

backup的mac地址,這樣請求虛擬ip的報文會被發送到backup

架構圖如下:

image

安裝

主機:192.168.1.227

備機:192.168.1.246

虛擬ip:192.168.1.99

安裝命令:

wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
tar -zxvf keepalived-1.2.13.tar.gz
cd keepalived-1.2.13
./configure --disable-fwmark --prefix=/usr/local/keepalived
make && make install

整理:

mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/

配置:

vi /etc/keepalived/keepalived.conf

Master

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.99
    }
}

Backup 和master一樣,只要修改如下地方:

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 99 # 這里改為99,master優先級是100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.99
    }
}

管理命令:

停止
service keepalived stop
啟動
service keepalived start
重啟
service keepalived restart
查看狀態
service keepalived status

測試

在本機上查看虛擬ip狀態

ip add

clip_image001

 

在同一網段的其他機器上查詢arp緩存

arp -a

clip_image002

這里的1.99對應的mac地址是1.227

停掉master的keepalived

service keepalived stop

在同一網段的其他機器上查詢arp緩存

arp –a

image

發現1.99的mac地址已經變為slave的mac地址

那么主備雙機熱備就完成了

總結:本篇文章實現的功能

1.master主機掛了,或者master 上keepalived掛了之后,可以切換到slave

2.master的網絡不通的時候,可以立即切換到slave,但是如果只是master上的應用出現問題的時候,是不會

主動切換的,這個要通過編寫腳本來監控應用出問題,這個問題后續再討論吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM