系統環境: linux
************************************************************算法
兩臺服務器都裝了 CentOS-5.2-x86_64 系統windows
Virtual IP : 192.168.30.20 瀏覽器
Squid1+Real Server 1 : 網卡地址 (eth0):192.168.30.12 bash
Squid2+Real Server 2 : 網卡地址 (eth0):192.168.30.13 服務器
************************************************************網絡
軟件列表 :
keepalived app
http://www.keepalived.org/software/keepalived-1.1.17.tar.gz oop
openssl-devel 測試
yum -y install openssl-devel
***************************************************************
配置:
配置基於高可用 keepalived, 肯定 LVS 使用 DR 模式
1. 安裝配置 keepalived
1.1 安裝依賴軟件 若是系統爲基本文本安裝,須要安裝一下軟件
# yum -y install ipvsadm
# yum -y install kernel kernel-devel
# reboot 重啓系統切換內核
# yum -y install openssl-devel ;安裝 keepalived 依賴軟件
#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux
;創建內核連接,編譯 keepalived 支持 lvs 時須要
注意創建連接的內核名和當前運行的內核一致,不然致使安裝失敗
#tar zxvf keepalived-1.1.17.tar.gz
#cd keepalived-1.1.17
#./configure --prefix=/usr --sysconf=/etc
Keepalived configuration
------------------------
Keepalived version : 1.1.17
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes ; 注意編譯時必定要支持 lvs
IPVS sync daemon support : Yes
Use VRRP Framework : Yes
Use LinkWatch : No
Use Debug flags : No
#make
#make install
1.2 編輯 keepalived 配置文件
#Vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # 備份服務器上將 MASTER 改成 BACKUP
interface eth0 # HA 監測網絡接口
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 100 # 主、備機取不一樣的優先級,主機值較大,備份機值較小
advert_int 2 # VRRP Multicast 廣播週期秒數
authentication {
auth_type PASS #VRRP 認證方式
auth_pass 1111 #VRRP 口令字
}
virtual_ipaddress {
192.168.30.20 # VRRP HA 虛擬地址 若是有多個VIP,繼續換行填寫
}
}
virtual_server 192.168.30.20 80 {
delay_loop 2 # 每隔 6 秒查詢 realserver 狀態
lb_algo rr #lvs 算法
lb_kind DR # Direct Route
persistence_timeout 50 # 同一IP 的鏈接60 秒內被分配到同一臺realserver
protocol TCP # 用 TCP 協議檢查 realserver 狀態
real_server 192.168.30.12 80 {
weight 3 #(權重)
TCP_CHECK {
connect_timeout 10 #(10秒無響應超時)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.30.13 80 {
weight 3 #(權重)
TCP_CHECK {
connect_timeout 10 #(10秒無響應超時)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
1.3 BACKUP 服務器同上配置,先安裝 lvs 再按裝 keepalived, 仍後配置 /etc/keepalived/keepalived.conf ,只需將紅色標示的部分改一下便可 .
global_defs {
notification_email {
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP # 備份服務器上將 MASTER 改成 BACKUP
interface eth0 # HA 監測網絡接口
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 99 # 主、備機取不一樣的優先級,主機值較大,備份機值較小
advert_int 2 # VRRP Multicast 廣播週期秒數
authentication {
auth_type PASS #VRRP 認證方式
auth_pass 1111 #VRRP 口令字
}
virtual_ipaddress {
192.168.30.20 # VRRP HA 虛擬地址
}
}
virtual_server 192.168.30.20 80 {
delay_loop 2 # 每隔 6 秒查詢 realserver 狀態
lb_algo rr #lvs 算法
lb_kind DR # Direct Route
persistence_timeout 50 # 同一IP 的鏈接60 秒內被分配到同一臺realserver
protocol TCP # 用 TCP 協議檢查 realserver 狀態
real_server 192.168.30.12 80 {
weight 3 #(權重)
TCP_CHECK {
connect_timeout 10 #(10秒無響應超時)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.30.13 80 {
weight 3 #(權重)
TCP_CHECK {
connect_timeout 10 #(10秒無響應超時)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
2. 配置lvs客戶端腳本
或者採用secondary ip address方式配置
# vi /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
#sysctl -p
#ip addr add 192.168.30.20/32 dev lo
#ip add list 查看是否綁定
3. 啓動lvs-dr腳本和realserver啓本,在DR上能夠查看LVS當前狀態:
#watch ipvsadm -ln
4. 啓動 keepalived 服務
#service httpd start
#/etc/init.d/keepalived start
查看keepalived的安裝位置:
# find / -name keepalived
將keepalived做爲服務添加到chkconfig中,並設置開機啓動
# chkconfig --add keepalived
# chkconfig --level 35 keepalived on
# chkconfig --list keepalived
keepalived 0:關閉 1:關閉 2:關閉 3:啓用 4:關閉 5:啓用 6:關閉
「各等級」包括二、三、四、5等級
等級0表示:表示關機
等級1表示:單用戶模式
等級2表示:無網絡鏈接的多用戶命令行模式
等級3表示:有網絡鏈接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:從新啓動
5. 測試 lvs 服務是否正常
5.1 經過瀏覽器訪問 http://192.168.30.20 是否正常
屢次刷新瀏覽器,在主 LVS 上看鏈接數變化
5.2 中止主 LVS 上的 keepalived 看看備份 keepalived 是否正常接管服務
注:realserver若是爲windows主機的話須要安裝microsoft loopback,設置IP爲VIP確認以後搜索註冊表,關鍵字"VIP"把搜到結果的每項裏面的subnet mask都改爲255.255.255.255而後重啓便可