做者:風過無痕-唐
出處:http://www.cnblogs.com/tangyanbo/緩存
首先有一個虛擬ip暴露給客戶端,虛擬ip對應的mac地址爲一臺真實服務器,服務器
即用戶向虛擬ip發送一個請求,該請求會被分發到真實服務器上。網絡
如今有2臺真實服務器,一臺master,一臺backup,master和backup上都運行着keepalived架構
當master掛了的時候,backup檢測以後,本身成爲master,且arp緩存虛擬ip對應的mac地址將變爲測試
backup的mac地址,這樣請求虛擬ip的報文會被髮送到backupspa
架構圖以下:rest
主機:192.168.1.227code
備機:192.168.1.246router
虛擬ip:192.168.1.99server
安裝命令:
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
在同一網段的其餘機器上查詢arp緩存
arp -a
這裏的1.99對應的mac地址是1.227
停掉master的keepalived
service keepalived stop
在同一網段的其餘機器上查詢arp緩存
arp –a
發現1.99的mac地址已經變爲slave的mac地址
那麼主備雙機熱備就完成了
總結:本篇文章實現的功能
1.master主機掛了,或者master 上keepalived掛了以後,能夠切換到slave
2.master的網絡不通的時候,能夠當即切換到slave,可是若是隻是master上的應用出現問題的時候,是不會
主動切換的,這個要經過編寫腳原本監控應用出問題,這個問題後續再討論吧。