Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65490
  • 博文数量: 42
  • 博客积分: 1720
  • 博客等级: 上尉
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-03 22:26
文章分类

全部博文(42)

文章存档

2011年(1)

2010年(2)

2009年(39)

我的朋友

分类: 系统运维

2009-10-15 16:37:30

Node1: 192.168.1.253

Node2: 192.168.1.254

VIP: 192.168.1.250

 

环境 centos5.2(我这里是用两台机实现的)

1、安装ipvsadm

yum -y install ipvsadm

 

2、安装keepalived

[root@node1 ~]# wget 1.1.15.tar.gz

[root@node1 ~]# tar zxvf keepalived-1.1.15.tar.gz

[root@node1 ~]# cd keepalived-1.1.15

[root@node1 keepalived-1.1.15]# ./configure --prefix=/ --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/kernels/2.6.18-92.el5-i686/

configure后会输入这结果为正确

Keepalived configuration

------------------------

Keepalived version       : 1.1.15

Compiler                 : gcc

Compiler flags           : -g -O2

Extra Lib                : -lpopt -lssl -lcrypto

Use IPVS Framework       : Yes    #支持lvs

IPVS sync daemon support : Yes  

Use VRRP Framework       : Yes

Use LinkWatch            : No

Use Debug flags          : No

 

[root@node1 keepalived-1.1.15]# make && make install

到此,lvs+keepalived安装完成。但是还不能使用lvs功能,接下来以dr模式配置lvs+keepalived

 

3、[root@node1 ~]# cd /etc/keepalived/

[root@node1 keepalived]# vim keepalived.conf

! Configuration File for keepalived

global_defs {

   notification_email {

    shanswei@gmail.com

   }

   notification_email_from  shanswei@gmail.com

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    state MASTER      ##lvs设置成master

    interface eth0

    virtual_router_id 51

    priority 102     ##lvs设置成 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

       192.168.1.250 ## 如多个vip继续换行填写。

    }

}

virtual_server 192.168.1.250 80 {

    delay_loop 6

    lb_algo wlc

    lb_kind DR

    persistence_timeout 50

    protocol TCP

 

    real_server 192.168.1.253 80 {

        weight 3

        TCP_CHECK {

        connect_port 80

        connect_timeout 30

        }

    }

    real_server 192.168.1.254 80 {

        weight 1

        TCP_CHECK {

        connect_port 80

        connect_timeout 30

        }

    }

 

好了,keepalived配置完成了。

启动keepalived  
[root@node1 ~]# /etc/init.d/keepalived start
如果要随系统启动,执行chkconfig --add keepalived 
                                       chkconfig keepalived  on

 

4、接着配置真实服务器,这里通过脚本来实现吧(这个脚本只在WEB机上执行,我现在是用两台机。服务器既充当lvs、也充当web)

 [root@node1 keepalived]# vim realserver

#!/bin/bash

#description : start realserver

VIP=192.168.1.250

/etc/rc.d/init.d/functions

case "$1" in

start)

echo " start LVS of REALServer"

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

;;

stop)

/sbin/ifconfig lo:0 down

echo "close LVS Directorserver"

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

[root@node1 keepalived]# chmod +x realserver

[root@node1 keepalived]# ./realserver start

 

5、启动keepalived (附启动日志)

[root@node1 ~]# /etc/init.d/keepalived start  (LVS)

Oct 15 13:59:36 vmtest Keepalived: Starting Keepalived v1.1.15 (10/15,2009)

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Using MII-BMSR NIC polling thread...

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Netlink reflector reports IP 192.168.1.253 added

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.253 added

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Registering Kernel netlink reflector

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Registering Kernel netlink command channel

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'.

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Configuration is using : 11891 Bytes

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Activating healtchecker for service [192.168.1.253:80]

Oct 15 13:59:36 vmtest Keepalived_healthcheckers: Activating healtchecker for service [192.168.1.254:80]

Oct 15 13:59:36 vmtest Keepalived: Starting Healthcheck child process, pid=28419

Oct 15 13:59:36 vmtest Keepalived_vrrp: Using MII-BMSR NIC polling thread...

Oct 15 13:59:36 vmtest Keepalived_vrrp: Netlink reflector reports IP 192.168.1.253 added

Oct 15 13:59:36 vmtest Keepalived: Starting VRRP child process, pid=28420

Oct 15 13:59:36 vmtest Keepalived_vrrp: Netlink reflector reports IP 10.0.0.253 added

Oct 15 13:59:36 vmtest Keepalived_vrrp: Registering Kernel netlink reflector

Oct 15 13:59:36 vmtest Keepalived_vrrp: Registering Kernel netlink command channel

Oct 15 13:59:36 vmtest Keepalived_vrrp: Registering gratutious ARP shared channel

Oct 15 13:59:36 vmtest Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'.

Oct 15 13:59:36 vmtest Keepalived_vrrp: Configuration is using : 36278 Bytes

Oct 15 13:59:36 vmtest Keepalived_vrrp: VRRP sockpool: [ifindex(2), proto(112), fd(8,9)]

Oct 15 13:59:37 vmtest Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE

Oct 15 13:59:38 vmtest Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE

Oct 15 13:59:38 vmtest Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.

Oct 15 13:59:38 vmtest Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.1.250

Oct 15 13:59:38 vmtest Keepalived_healthcheckers: Netlink reflector reports IP 192.168.1.250 added

Oct 15 13:59:38 vmtest avahi-daemon[2580]: Registering new address record for 192.168.1.250 on eth0.

Oct 15 13:59:38 vmtest Keepalived_vrrp: Netlink reflector reports IP 192.168.1.250 added

Oct 15 13:59:43 vmtest Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.1.250

 

[root@node1 ~]# /etc/init.d/keepalived start  (LVS)

Oct 15 15:40:26 node1 Keepalived: Starting Keepalived v1.1.15 (10/12,2009)

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Using MII-BMSR NIC polling thread...

Oct 15 15:40:26 node1 Keepalived: Starting Healthcheck child process, pid=11157

Oct 15 15:40:26 node1 Keepalived: Starting VRRP child process, pid=11159

Oct 15 15:40:26 node1 Keepalived_vrrp: Using MII-BMSR NIC polling thread...

Oct 15 15:40:26 node1 Keepalived_vrrp: Registering Kernel netlink reflector

Oct 15 15:40:26 node1 Keepalived_vrrp: Registering Kernel netlink command channel

Oct 15 15:40:26 node1 Keepalived_vrrp: Registering gratutious ARP shared channel

Oct 15 15:40:26 node1 Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'.

Oct 15 15:40:26 node1 Keepalived_vrrp: Configuration is using : 36712 Bytes

Oct 15 15:40:26 node1 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE

Oct 15 15:40:26 node1 Keepalived_vrrp: VRRP sockpool: [ifindex(2), proto(112), fd(7,8)]

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Registering Kernel netlink reflector

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Registering Kernel netlink command channel

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'.

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Configuration is using : 12417 Bytes

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Activating healtchecker for service [192.168.1.253:80]

Oct 15 15:40:26 node1 Keepalived_healthcheckers: Activating healtchecker for service [192.168.1.254:80]

绿色字体表示启动成功

 

6、测试,我现在停掉主lvs上面的keepalived,从lvs会出现以下日志,表示从lvs能正常接管主的lvs,从而实现lvs主从互备功能,当主lvskeepalived启动后。会自动切换回来

[root@node1 ~]# tali -f /var/log/messages

Oct 15 15:43:18 node1 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE

Oct 15 15:43:19 node1 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE

Oct 15 15:43:19 node1 Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.

Oct 15 15:43:19 node1 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.1.250

Oct 15 15:43:19 node1 avahi-daemon[3087]: Registering new address record for 192.168.1.250 on eth0.

Oct 15 15:43:24 node1 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.1.250

 

7、测试down机,比如我这机跑的是web服务,我现在停止apache,出现以下现像

 

绿线画的是lvs正常,当我停止httpd的时候,再看lvs时,192.168.1.253这个IP已不在lvs表中(画红线处),因为我停掉了httpd服务。

我再启动httpd服务时,再查看lvs192.168.1.253又自动加进表中(画蓝线处),此时已实现了负载均衡、故障剔除功能。

 

 

 

 

 

 

 

 

阅读(717) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~