利用keepalived 实现HA&LB
装包
下载地址 wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz
- ./configure --prefix=/ --mandir=/usr/local/share/man
- --with-kernel-dir=/usr/src/kernels/2.6.18-128.el5-i686/
以上这步是 设定安装路径以及帮助文件的路径 可以自行定义 后面那段具体作用大概是
with-kernel-dir 这个参数很重要,这个参数并不表示我们要把keepalived编进内核,
而是指使用内核源码里面的头文件,也就是include目录 (如果需要用到LVS才需要这么做,
否则是不需要的,而且如果要使用netlink,还需要link_watch.cz这个文件)
- make
- make install
然后修改 keepalived 的配置文件vim /etc/keepalived/keepalived.conf
- {
- notification_email_from hongzhou@sina.com #指定 keepalived 在发生事件(如切换)时,需要发送email到对象,可以填多个,每行一个
- smtp_server 192.168.1.1 #这两项是邮件服务器的配置
- smtp_connect_timeout 30
- router_id LVS_DEVEL # 运行keepalived的机器的一个标识
- }
- #VRRPD 配置
- vrrp_sync_group VG1 {
- group {
- VI_1 #(VRRP实例名)
- }
- }
- #VRRP 实例配置
- vrrp_instance VI_1 {
- state BACKUP # 无论主与备都设置为BACKUP是为了不抢占主director,通过priority来确认谁先起作用,主的优先级至少高于从50
- interface eth0 # (inside_network)实例绑定的网卡
- macast_src_ip #发送多播包的地址,如果不设置,默认使用绑定网卡的 primary IP
- 建议使用专门网卡并使用这项,问题:如果这块儿网卡出了问题如何处理?
- virtual_router_id 51 #VRID 标记 (0-255)主备服务器必须一致
- priority 101 #优先级
- advert_int 1 #检查间隔,默认为1秒
- nopreempt # 不抢占 这个配置只能设置在 state为 BACKUP的主机上,而且这台主机的priority必须比另一台要高
- authentication { #这是认证的相关设置
- auth_type PASS #认证方式 PASS | AH
- auth_pass 33210 #认证密码
- }
- virtual_ipaddress {
- 192.168.0.16 # VIP 地址
- }
- }
- virtual_server 192.168.0.16 80 {
- delay_loop 6 # 每六秒查询realserver状态
- lb_algo rr #lvs采用轮询算法 rr|wrr|lc|wlc|lblc|sh|dh
- lb_kind DR #lvs使用Direct Route NAT|DR|TUN
- protocol TCP #使用TCP 协议来检查
- persistence_timeout 600 # 会话保持时间,就是同一个ip在600秒内会被分到同一个realserver上
- real_server 192.168.0.3 80 {
- weight 1 #权重
- inhibit_on_failure # 在检查失败的时候 将权重设为0 并继续监控而不是直接把他踢掉
- TCP_CHECK { #以什么方式来检查 健康状况 HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
- connect_timeout 3 #连接超时时间
- nb_get_retry 3 #重试连接次数
- delay_before_retry 3 #每次重试连接间隔 (单位秒)
- bindto 192.168.0.16 #以此地址来 向服务器发送请求来检查其健康状态
- #注意HTTP_GET|SSL_GET|SMTP_CHECK|MISC_CHECK 这几种检查方式请参考《keepalived权威指南》第十四页
- }
- }
- real_server 192.168.0.4 80 {
- weight 1
- TCP_CHECK {
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
- }
realservice 配置脚本
- ifconfig lo:1 192.168.0.16 netmask 255.255.255.255
- echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce
- echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
- echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
- 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
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱
http://www.2mysite.net/scriptencoder/screnc.asp 站长你好,看
你好,我发现一个问题,就是从mysqld2同步过来的数据,在mysqld1的
晕,我说是怎么回事情,原来我和你一样,忘记设置了活动分区