keepalive+lvs

 keepalive+lvs這種方式配置很快捷,一塊網卡就可以搞定,網絡斷掉,機器關掉或者服務停掉都可以切換過去,而且還會發送郵件通知,推薦。

 

主備機上的軟件包安裝與配置

 

  1. Virtual IP:192.168.0.147 
  2. Load Balancer: eth0:192.168.0.46 
  3. Load Balancer: eth0:192.168.0.94 
  4. Real Server 1:192.168.0.64 
  5. Real Server 2:192.168.0.67 

 

  1. keepalived-1.2.2.tar.gz 
  2. kernel-devel (整合內核中的lvs功能) 
  3. gcc 
  4. make 
  5. openssl-devel  
  6. popt-devel 
  7. libnl-devel 

 

 

 

  1. tar zxf keepalived-1.2.2.tar.gz  
  2. ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-71.el6.x86_64/ --prefix=/usr/local/keepalive (制定內核源碼位置,制定安裝位置便於以後管理) 
  3. make 
  4. make install 
  5. ln -s /usr/local/keepalive/etc/rc.d/init.d/keepalived /etc/init.d/ 
  6. ln -s /usr/local/keepalive/etc/keepalived/ /etc/ 
  7. ln -s /usr/local/keepalive/sbin/keepalived /usr/sbin/ 
  8. ln -s /usr/local/keepalive/etc/sysconfig/keepalived /etc/sysconfig/ 
  9. ln -s /usr/local/keepalive/etc/rc.d/init.d/keepalived  /etc/init.d/ 

 


  1. vi /etc/keepalived/keepalived.conf 
  2. ! Configuration File for keepalived 
  3. global_defs { 
  4.    notification_email { 
  5.         root@localhost #接收警報的 email 地址,可以添加多個 
  6.    } 
  7.    notification_email_from yejkkeepalive@localhost  
  8.    smtp_server 127.0.0.1 #使用本機轉發 email 
  9.    smtp_connect_timeout 30 
  10.    router_id LVS_yejk #load balancer 的標識 ID,用於 email 警報 
  11. vrrp_instance VI_1 { 
  12.     state MASTER   #備機改爲 BACKUP,此狀態是由 priority 的值來決定的 
  13.     interface eth0  #HA 監測網絡接口 
  14.     virtual_router_id 82 #主、備機的 virtual_router_id 必須相同 
  15.     priority 150 #主機的優先級,備份機改爲 50 
  16.     advert_int 1 #主備之間的通告間隔秒數 
  17.     authentication { #主備切換時的驗證 
  18.         auth_type PASS 
  19.         auth_pass 1111 
  20.     } 
  21.     virtual_ipaddress { #HA 虛擬 ip,可加多個 
  22.         192.168.0.147 
  23.     } 
  24. virtual_server 192.168.0.111 80 { 
  25.     delay_loop 6 #每隔 6 秒查詢 realserver狀態 
  26.     lb_algo rr #lvs 調度算法,這裏使用輪叫 
  27.     lb_kind DR #lvs 負載均衡機制,這裏使用直連路由 
  28. #    persistence_timeout 50 #同一 IP 的連接 50 秒內被分配到同一臺 realserver 
  29.     protocol TCP #用 TCP 協議檢查 realserver 狀態 
  30.     real_server 192.168.0.64 80 { 
  31.         weight 1 
  32.         TCP_CHECK { 
  33.             connect_timeout 3 
  34.             nb_get_retry 3  #故障重試秒數 
  35.             delay_before_retry 3  #重試延遲 
  36.         } 
  37.     } 
  38.     real_server 192.168.0.67 80 { 
  39.         weight 1 
  40.         TCP_CHECK { 
  41.             connect_timeout 3 
  42.             nb_get_retry 3 
  43.             delay_before_retry 3 
  44.         } 
  45.     } 
  46.  
  47.  
  48. 注:備機的 keepalived 配置文件只改state和priority 

 

分別在 realserver 上執行以下命令

 

  1. vi /etc/sysctl.conf 
  2. net.ipv4.conf.all.arp_ignore = 1 
  3. net.ipv4.conf.lo.arp_ignore = 1 
  4. net.ipv4.conf.all.arp_announce = 2 
  5. net.ipv4.conf.lo.arp_announce = 2 
  6. sysctl -p 
  7. ifconfig eth0:0 192.168.0.147 netmask 255.255.255.255 up 
  8. route add -host 192.168.0.147 dev eth0:0 
  9. echo `hostname` > /var/www/html/index.html  
  10. service httpd start 

測試:

訪問 http://192.168.0.111,看到頁面在兩個 realserver 上切換表示成功!

也可以通過 ipvsadm -Lnc 查看詳細連接情況!

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章