兩臺虛擬機linux
兩臺配置操做同樣vim
環境配置服務器
[root@lb01 /]# yum -y install openssl openssl-devel
[root@lb01 /]# yum -y install kernel-devel
作個軟鏈接 用tab鍵補全2.6.32-642.6.2.el6.x86_64socket
[root@lb01 /]# ln -s /usr/src/kernels/2.6.32-642.6.2.el6.x86_64/ /usr/src/linux [root@lb01 /]# ls -l /usr/src/ total 8 drwxr-xr-x. 2 root root 4096 Sep 23 2011 debug drwxr-xr-x. 3 root root 4096 Oct 6 11:05 kernels lrwxrwxrwx 1 root root 43 Oct 6 11:09 linux -> /usr/src/kernels/2.6.32-642.6.2.el6.x86_64/
下載軟件、解壓、配置、編譯、安裝spa
[root@lb01 /]# wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz
[root@lb01 /]# tar zxvf keepalived-1.2.16.tar.gz [root@lb01 /]# cd keepalived-1.2.16 [root@lb01 keepalived-1.2.16]# ./configure Keepalived configuration ------------------------ Keepalived version : 1.2.16 Compiler : gcc Compiler flags : -g -O2 Extra Lib : -lssl -lcrypto -lcrypt Use IPVS Framework : Yes IPVS sync daemon support : Yes IPVS use libnl : No fwmark socket support : Yes Use VRRP Framework : Yes Use VRRP VMAC : Yes SNMP support : No SHA1 support : No Use Debug flags : No [root@lb01 keepalived-1.2.16]# make [root@lb01 keepalived-1.2.16]# make install
配置規範啓動debug
[root@lb01 keepalived-1.2.16]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ #生成啓動腳本 [root@lb01 keepalived-1.2.16]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ #配置啓動腳本的參數 [root@lb01 keepalived-1.2.16]# mkdir /etc/keepalived #建立默認的keepalived配置文件路徑 [root@lb01 keepalived-1.2.16]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ #把keepalived.conf模板拷貝到/etckeepalived下 [root@lb01 keepalived-1.2.16]# cp /usr/local/sbin/keepalived /usr/sbin/ [root@lb01 keepalived-1.2.16]# /etc/init.d/keepalived start Starting keepalived: [ OK ] [root@lb01 keepalived-1.2.16]# ps -ef | grep keep root 3490 1 0 11:36 ? 00:00:00 keepalived -D root 3492 3490 0 11:36 ? 00:00:00 keepalived -D root 3493 3490 0 11:36 ? 00:00:00 keepalived -D root 3496 1537 0 11:36 pts/0 00:00:00 grep keep [root@lb01 keepalived-1.2.16]# /etc/init.d/keepalived stop Stopping keepalived: [ OK ]
配置文件詳解code
[root@lb01 keepalived-1.2.16]# cat /etc/keepalived/keepalived.conf ! 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 #keepavlied ID } vrrp_instance VI_1 { #VRRP的實例 state MASTER #服務器的狀態 interface eth0 #通訊的端口 virtual_router_id 51 #這個實例的ID priority 100 #優先級 advert_int 1 #心跳的間隔 authentication { #通訊的密鑰對 auth_type PASS auth_pass 1111 #越簡單越好 保持默認就行 } virtual_ipaddress { #VIP地址 192.168.200.16 192.168.200.17 192.168.200.18 } }
修改配置文件router
先備份一個配置文件server
lb01配置文件blog
[root@lb01 keepalived-1.2.16]# cd /etc/keepalived/ [root@lb01 keepalived]# cp keepalived.conf keepalived.conf.bak [root@lb01 keepalived]# vim keepalived.conf ! 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_01 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.119.150/24 } }
lb02配置文件
[root@lb02 keepalived-1.2.16]# cd /etc/keepalived/ [root@lb02 keepalived]# cp keepalived.conf keepalived.conf.bak [root@lb02 keepalived]# vim keepalived.conf ! 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_02 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.119.150/24 } }
啓動keepalived
[root@lb01 keepalived]# /etc/init.d/keepalived start Starting keepalived: [ OK ] [root@lb02 keepalived]# /etc/init.d/keepalived start Starting keepalived: [ OK ]
在master(lb01)查看虛擬IP(192.168.119.150)
提示:使用ifconfig是查不到的;使用 ip add查詢
[root@lb01 keepalived]# ip add | grep 192.168.119.150 inet 192.168.119.150/24 scope global secondary eth0
在backup(lb02)查看(沒有虛擬IP)
[root@lb02 keepalived]# ip add | grep 192.168.119.150
把master的keepalived服務down、虛擬IP就會自動切換到backup
[root@lb01 keepalived]# /etc/init.d/keepalived stop Stopping keepalived: [ OK ] [root@lb01 keepalived]# ip add | grep 192.168.119.150 [root@lb01 keepalived]#
backup查詢
[root@lb02 keepalived]# ip add | grep 192.168.119.150 [root@lb02 keepalived]# ip add | grep 192.168.119.150 [root@lb02 keepalived]# ip add | grep 192.168.119.150 [root@lb02 keepalived]# ip add | grep 192.168.119.150 [root@lb02 keepalived]# ip add | grep 192.168.119.150 inet 192.168.119.150/24 scope global secondary eth0 [root@lb02 keepalived]# ip add | grep 192.168.119.150 inet 192.168.119.150/24 scope global secondary eth0
當master的keepalived服務啓動時、虛擬IP會自動從backup切回到master