1. 程式人生 > >keepalived+LVS/DR的搭建

keepalived+LVS/DR的搭建

需要 參數 localhost 默認 glob 關閉防火墻 wal 客戶端訪問 enc

集群 1 高性能計算機集群HPC 通過以集群開發的並行應用程序,解決復雜的科學問題 2 負載均衡(LB)集群 客戶端負載在計算機集群中盡可能平均分攤 3 高可用(HA)集群 避免單點故障,當一個系統發生故障時,可以快速遷移 LVS集群(LB) 前端:負載均衡層 由一臺或多臺負載調度器構成 中間:服務器群組層 由一組實際運行應用服務的服務器組成 底端:數據共享存儲層 提供共享存儲空間的存儲區域 Driector Server:調度服務器 將負載分發到Real Server的服務器 Real Server:真實服務器 真正提供應用服務的服務器 VIP:虛擬IP地址 公布給用戶訪問的虛擬IP地址 RIP:真實IP地址 集群節點上使用的IP地址 DIP:調度器連接點服務器的IP地址 工作模式: LVS/NAT:通過網絡地址轉換實現的虛擬服務器 缺點:大並發訪問時,調度器的性能成為瓶頸 LVS/DR:直接使用路由技術實現虛擬服務器 節點服務器需要配置VIP,註意MAC地址廣播 LVS/TUN:通過隧道方式實現虛擬服務器 負載均衡調度算法: (Round Robin)rr輪詢:將客戶端請求平均分發到Real Server (Weighted Round Robin)wrr加權輪詢:根據Real Server權重值進行輪詢調度 (Least Connections)lc最少連接:選擇連接數最少的服務器 (Weighted Least Connections)wlc加權最少連接:根據Real Server權重值,選擇連接數最少的服務器 (Source Hashing)sh源地值散列:根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器 LVS/NAT service iptables stop 關閉防火墻 chkconfig iptables off chkconfig httpd on echo 192.168.4.51 > /var/www/html/test.html service httpd start 起服務 chkconfig httpd on 開機自起 yum -y install elinks elinks --dump http://192.168.4.51/test.html 配置分發器50: 1 開啟內核路由功能 2 裝包 3 添加虛擬服務 4 添加realserver 5 啟動服務 6 測試 1 開啟內核路由功能 vim /etc/sysctl.conf 7 net.ipv4.ip_forward = 1 開啟路由功能 service network restart 重起網卡 網絡服務51/52 1.1 指定網關地址 臨時: route -n Flags:UG route add default gw 192.168.4.50 del vim /etc/sysconfig/network-scripts/ifcfg-eth1 GATEWAY=192.168.4.50 客戶端2.253 1.2 指定網關地址 臨時: route -n Flags:UG route add default gw 192.168.2.50 del vim /etc/sysconfig/network-scripts/ifcfg-eth1 GATEWAY=192.168.4.50 2 裝包 ipvsadm wget ftp://192.168.4.254/xixi/LoadBalancer/ipvsadm-1.26-4.el6.x86_64.rpm rpm -ivh ipvsadm-1.26-4.el6.x86_64.rpm ipvsadm 用法 -A 添加虛擬服務 -t 設置集群地址(VIP,Vitual IP) -s 指定負載調度算法 -a 添加真實服務器 -d 刪除真實服務器 -r 指定真實服務器(Real Server)的地址 -m 使用NAT模式 -g 使用DR模式 -i 使用TUN模式 -w 為節點服務器設置權重,默認為1 -Ln 查看 -E 修改負載均衡調度算法 3 添加虛擬服務 ipvsadm -A -t 192.168.2.50:80 -s rr 4 添加realserver ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m service ipvsadm save 保存 chkconfig ipvsadm on 刪除realserver ipvsadm -d -t 192.168.2.50:80 -r 192.168.4.52:80 -m 修改算法 ipvsadm -E -t 192.168.2.50:80 -r 192.168.4.52:80 -wrr 修改權重 ipvsadm -e -t 192.168.2.50:80 -r 192.168.4.52:80 -w 3 -m ipvsadm -C 清空所有 service ipvsadm save 5 啟動服務 service ipvsadm start service ipvsadm startus ipvsadm -Ln ipvsadm -Ln --stats curl http://192.168.2.50/test.html ==================================================================== ==================================================================== LVS/DR DR用虛擬VIP地址來解決調度器的瓶頸, 實現後端服務器直接給客戶端回包。 配置LVS/DR模式的LB集群 1 配置網站服務器51/52 1.1 配置VIP地址 1.2 修改網絡接口運行參數 1.3 運行網站服務並網頁文件 2 配置分發器 2.1 裝包ipvsadm 2.2 配置VIP地址 2.3 創建虛擬服務 2.4 添加realserver 2.5 保存配置,查看配置 3 客戶端訪問 3.1 訪問 1 配置網站服務器51/52 ifconfig lo:1 192.168.4.252/32 ifconfig lo:1 cd /proc/sys/net/ipv4/conf cat lo/arp_ignore echo 1 > lo/arp_ignore 只接收本地接口的廣播包 echo 2 > lo/arp_announce 幫lo口接收包 cat all/arp_ignore eth0配置 echo 1 > all/arp_ignore echo 2 > all/arp_announce cat /etc/rc.local 開機中最後讀取的文件 2 配置分發器 2.1 裝包ipvsadm 2.2 配置VIP地址 ifconfig eth0:1 192.168.4.252/32 ifconfig eth0:1 2.3 創建虛擬服務 ipvsadm -A -t 192.168.4.252:80 -s rr 2.4 添加realserver ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.51:80 -g ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.52:80 -g 2.5 保存配置,查看配置 service ipvsadm save 保存 chkconfig ipvsadm on ipvsadm -Ln --stats Prot LocalAddress:Port Conns InPkts OutPkts InBytes(進包數) OutBytes(出包數) -> RemoteAddress:Port TCP 192.168.4.252:80 10 53 0 4666 0 -> 192.168.4.51:80 5 27 0 2359 0 -> 192.168.4.52:80 5 26 0 2307 0 ipvsadm -Ln -> RemoteAddress:Port Forward Weight(權重) ActiveConn InActConn TCP 192.168.4.252:80 rr -> 192.168.4.51:80 Route(DR模式) 1 0 0 -> 192.168.4.52:80 Route(DR模式) 1 0 0 3 客戶端訪問 arping -c2 192.168.4.252 (回包MAC地址是分發器的MAC地址) curl http://192.168.4.252/test.html 解綁IP地址: ifdwon lo:1 ,ifconfig lo:1 或service network restart(重起網卡服務) keepalived+LVS/DR 配置LVS/DR 配置後端網站服務器 ifconfig lo:1 192.168.4.252/32 (後端服務器配置VIP) ifconfig lo:1 cd /proc/sys/net/ipv4/conf cat lo/arp_ignore echo 1 > lo/arp_ignore 只接收本地接口的廣播包 echo 2 > lo/arp_announce 幫lo口接收包 cat all/arp_ignore eth0配置 echo 1 > all/arp_ignore echo 2 > all/arp_announce 調度器配置 yum -y install ipvsadm service ipvsadm start yum -y install keepalived service keepalived start 主: vim /etc/kepalived/kepalived.conf global_defs { notification_email { abc@localhost 設置報警郵件人郵箱 } notification_email_from [email protected] 設置發件人 smtp_server 192.168.200.1 定義郵件服務器 smtp_connect_timeout 30 router_id LVS_DEVEL 設置路由ID號 } vrrp_instance webha { state MASTER 主服務器為MASTER,輔助為SLAVE或BACKUP interface eth0 定義網卡接口 virtual_router_id 51 主輔VRID號必須一致 priority 150 服務器優先級,越大優先級越高 advert_int 1 authentication { auth_type PASS auth_pass 123456 主輔服務器密碼必須一致 } virtual_ipaddress { 設置VIP 192.168.4.252 可用多個 } } virtual_server 192.168.4.252 80 { 設置VIP delay_loop 6 lb_algo rr 設置LVS調度算法為rr lb_kind DR 設置LVS的模式為DR nat_mask 255.255.255.0 persistence_timeout 50 同一客戶端訪問服務器超過50秒才改變服務器 protocol TCP connect_timeout 3 nb_get_retry 3 delay_before_retry 3 real_server 192.168.4.51 80 { 後端服務器ip地址 weight 1 } real_server 192.168.4.52 80 { weight 1 } } 輔: vim /etc/kepalived/kepalived.conf global_defs { notification_email { abc@localhost 設置報警郵件人郵箱 } notification_email_from [email protected] 設置發件人 smtp_server 192.168.200.1 定義郵件服務器 smtp_connect_timeout 30 router_id LVS_DEVEL 設置路由ID號 } vrrp_instance webha { state BACKUP 主服務器為MASTER,輔助為SLAVE或BACKUP interface eth0 定義網卡接口 virtual_router_id 51 主輔VRID號必須一致 priority 100 服務器優先級,越大優先級越高 advert_int 1 authentication { auth_type PASS auth_pass 123456 主輔服務器密碼必須一致 } virtual_ipaddress { 設置VIP 192.168.4.252 可用多個 } } virtual_server 192.168.4.252 80 { 設置VIP delay_loop 6 lb_algo rr 設置LVS調度算法為rr lb_kind DR 設置LVS的模式為DR nat_mask 255.255.255.0 persistence_timeout 50 同一客戶端訪問服務器超過50秒才改變服務器 protocol TCP connect_timeout 3 nb_get_retry 3 delay_before_retry 3 real_server 192.168.4.51 80 { 後端服務器ip地址 weight 1 } real_server 192.168.4.52 80 { weight 1 } } 重啟服務: service keepalived restart 測試: curl http://192.168.4.252/

keepalived+LVS/DR的搭建