利用keepalived 实现HA&LB
装包
下载地址 wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

  1. ./configure --prefix=/ --mandir=/usr/local/share/man  
  2. --with-kernel-dir=/usr/src/kernels/2.6.18-128.el5-i686/ 

以上这步是 设定安装路径以及帮助文件的路径 可以自行定义 后面那段具体作用大概是
with-kernel-dir 这个参数很重要,这个参数并不表示我们要把keepalived编进内核,
而是指使用内核源码里面的头文件,也就是include目录 (如果需要用到LVS才需要这么做,
否则是不需要的,而且如果要使用netlink,还需要link_watch.cz这个文件)

  1. make  
  2. make install 

然后修改 keepalived 的配置文件vim /etc/keepalived/keepalived.conf

  1. {  
  2.    notification_email_from hongzhou@sina.com #指定 keepalived 在发生事件(如切换)时,需要发送email到对象,可以填多个,每行一个  
  3.  
  4.    smtp_server 192.168.1.1 #这两项是邮件服务器的配置  
  5.    smtp_connect_timeout 30  
  6.    router_id LVS_DEVEL       # 运行keepalived的机器的一个标识  
  7. }  
  8. #VRRPD 配置  
  9. vrrp_sync_group VG1 {  
  10.  group {  
  11.   VI_1 #(VRRP实例名)  
  12.   }  
  13.        }  
  14.  
  15. #VRRP 实例配置  
  16. vrrp_instance VI_1 {   
  17.     state BACKUP # 无论主与备都设置为BACKUP是为了不抢占主director,通过priority来确认谁先起作用,主的优先级至少高于从50  
  18.     interface eth0 # (inside_network)实例绑定的网卡  
  19.     macast_src_ip #发送多播包的地址,如果不设置,默认使用绑定网卡的 primary IP  
  20.    建议使用专门网卡并使用这项,问题:如果这块儿网卡出了问题如何处理?  
  21.    
  22.     virtual_router_id 51   #VRID 标记 (0-255)主备服务器必须一致  
  23.     priority 101 #优先级  
  24.     advert_int 1 #检查间隔,默认为1秒  
  25.     nopreempt # 不抢占 这个配置只能设置在 state为 BACKUP的主机上,而且这台主机的priority必须比另一台要高  
  26.     authentication { #这是认证的相关设置  
  27.         auth_type PASS #认证方式 PASS | AH  
  28.         auth_pass 33210 #认证密码  
  29.     }  
  30.     virtual_ipaddress {  
  31.         192.168.0.16    # VIP 地址  
  32.     }  
  33. }  
  34.  
  35. virtual_server 192.168.0.16 80 {  
  36.     delay_loop 6 # 每六秒查询realserver状态  
  37.     lb_algo rr   #lvs采用轮询算法 rr|wrr|lc|wlc|lblc|sh|dh  
  38.     lb_kind DR   #lvs使用Direct Route NAT|DR|TUN  
  39.     protocol TCP #使用TCP 协议来检查  
  40.     persistence_timeout 600 # 会话保持时间,就是同一个ip在600秒内会被分到同一个realserver上  
  41.    
  42.     real_server 192.168.0.3 80 {  
  43.         weight 1  #权重  
  44.  inhibit_on_failure # 在检查失败的时候 将权重设为0 并继续监控而不是直接把他踢掉  
  45.         TCP_CHECK { #以什么方式来检查 健康状况 HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK  
  46.              
  47.             connect_timeout 3 #连接超时时间  
  48.             nb_get_retry 3    #重试连接次数  
  49.             delay_before_retry 3 #每次重试连接间隔 (单位秒)  
  50.      bindto 192.168.0.16 #以此地址来 向服务器发送请求来检查其健康状态  
  51.             #注意HTTP_GET|SSL_GET|SMTP_CHECK|MISC_CHECK 这几种检查方式请参考《keepalived权威指南》第十四页     
  52.                   }  
  53.                                 }  
  54.     real_server 192.168.0.4 80 {  
  55.         weight 1  
  56.         TCP_CHECK {  
  57.             connect_timeout 3  
  58.             nb_get_retry 3  
  59.             delay_before_retry 3  
  60.                   }  
  61.                                 }  
  62. }  


realservice 配置脚本

  1. ifconfig lo:1 192.168.0.16 netmask 255.255.255.255  
  2. echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce  
  3. echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce  
  4. echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore  
  5. echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore 

本日志由 flyinweb 于 2009-09-25 10:07:26 发表,目前已经被浏览 3959 次,评论 0 次;

作者添加了以下标签: keepalived负载均衡

引用通告:http://www.517sou.net/Article/262/Trackback.ashx

评论订阅:http://www.517sou.net/Article/262/Feeds.ashx

评论列表

    暂时没有评论
(必填)
(必填,不会被公开)