LVS介紹
lvs 核心ipvs
Ipvs(IP Virtual Server)是整個負載均衡的基礎,如果沒有這個基礎,故障隔離與失敗切換就毫無意義了。Ipvs 具體實現是由ipvsadm 這個程序來完成,因此判斷一個系統是否具備ipvs 功能,只需要察看ipvsadm 程序是否被安裝。察看ipvsadm 程序最簡單的辦法就是在任意路徑執行命令ipvsadm。
1 [root@LVS-DR-Backup ~]# ipvsadm(已安裝) 2 IP Virtual Server version 1.2.1 (size=4096) 3 Prot LocalAddress:Port Scheduler Flags 4 -> RemoteAddress:Port Forward Weight ActiveConn InActConn 5 [root@LVS-DR-Backup ~]# ipvsadm (未安裝) 6 -bash: ipvsadm: command not found
安裝lvs
1、下載ipvsadm,wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
2、 創建一個連接文件,其命令為: ln -s /usr/src/kernels/2.6.32-573.el6.x86_64/ /usr/src/linux注意一定要與當前的運行的內核相一致,因為/usr/src/kernels目錄下可多個目錄。如果不創建這個連接文件,在編譯時會出錯,從而不能繼續進行安裝。
3、 解包。 tar zxf ipvsadm-1.26.tar.gz
4、 編譯並安裝。 cd ipvsadm-1.26; make;make install
5、檢驗ipvsadm 是否被正確安裝:a.執行ipvsadm,看是否有如上的輸出。b. 檢查當前加載的內核模塊,看是否存在ip_vs 模塊。
1 [root@LVS-DR-Backup ~]# lsmod|grep ip_vs 2 ip_vs 126534 0 3 libcrc32c 1246 1 ip_vs 4 ipv6 335589 137 ip_vs (注:只有執行ipvsadm 以後,才會在內核加載ip_vs 模塊,也不能以查進程的方式判斷ipvs 是否運行。)
lvs客戶端
不需要安裝軟件,只運行一個腳本就可以,腳本如下:
1 #!/bin/bash 2 3 VIP=此處設置你的vip地址 4 5 . /etc/rc.d/init.d/functions 6 7 case "$1" in 8 start) 9 action " start LVS of REALServer" /bin/true 10 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 11 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 12 echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 13 echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 14 echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 15 ;; 16 stop) 17 /sbin/ifconfig lo:0 down 18 action "close LVS Directorserver" /bin/true 19 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 20 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 21 echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore 22 echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 23 ;; 24 *) 25 echo "Usage: $0 {start|stop}" 26 exit 1 27 esac
keepalived介紹
1、 keepalived 是lvs 的擴展項目,因此它們之間具備良好的兼容性。
2、 通過對服務器池對象的健康檢查,實現對失效機器/服務的故障隔離。
3、 負載均衡器之間的失敗切換failover,是通過VRRPv2(Virtual Router Redundancy Protocol)stack 實現的。
keepalived內部結構圖
在這個結構圖裡,處於下端的是內核空間,它包括ipvs 和NETLINK 兩個部分。Ipvs 的作用在前面的章節已經做過描述,不再重復敘述;netlink 提供高級路由及其他相關的網絡功能,如果我們在負載均衡器上啟用netfilter/iptable,將會直接影響它的性能。出於圖形上方的組件為用戶空間,由它來實現具體的功能,下面選取幾個重要的來做說明:
1、 WatchDog 負責監控checkers 和VRRP 進程的狀況。
2、 Checkers 負責真實服務器的健康檢查healthchecking,是keepalived 最主要的功能。換句話說—可以沒有VRRP Stack,但健康檢查healthchecking 是一定要有的。
3、 VRRP Stack 負責負載均衡器之間的失敗切換FailOver.如果只用一個負載均衡器,則VRRP 不是必須的。
4、 IPVS wrapper 用來發送設定的規則到內核ipvs 代碼。
5、 Netlink Reflector 用來設定 vrrp 的vip 地址等。
安裝keepalived(因為比較簡單,不做詳細介紹)
1、 下載最新穩定版 http://www.keepalived.org/software/keepalived-1.2.23.tar.gz
2、 解包 tar zxf keepalived-1.2.23.tar.gz
3、 切換目錄 cd keepalived-1.2.23
4、 安裝依賴包 yum install -y libnfnetlink-devel openssl-devel
5、 配置並編譯安裝./configure ; make ; make install
6、 拷貝相應文件到/etc下,命令如下:
1 cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ 2 cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ 3 cp /usr/local/sbin/keepalived /usr/sbin/ 4 mkdir /etc/keepalived -p 5 cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
7、啟動並查看keepalived
1 [root@LVS-DR-Backup script]# /etc/init.d/keepalived start 2 正在啟動 keepalived: [確定] 3 [root@LVS-DR-Backup script]# ipvsadm 4 IP Virtual Server version 1.2.1 (size=4096) 5 Prot LocalAddress:Port Scheduler Flags 6 -> RemoteAddress:Port Forward Weight ActiveConn InActConn 7 TCP 192.168.200.100:https rr persistent 50 8 -> 192.168.201.100:https Masq 1 0 0 9 TCP 10.10.10.2:connlcli rr persistent 50 10 -> 192.168.200.2:connlcli Masq 1 0 0 11 -> 192.168.200.3:connlcli Masq 1 0 0 12 TCP 10.10.10.3:connlcli rr persistent 50 13 -> 192.168.200.4:connlcli Masq 1 0 0 14 -> 192.168.200.5:connlcli Masq 1 0 0 15 [root@LVS-DR-Backup script]#
8、至此安裝完成,下一章,keepalived.conf詳解。
參考:http://www.keepalived.org/documentation.html
附:lvs和keepalived一鍵安裝腳本
http://xxxxxx/Linuxjc/1154581.html TechArticle