调度主机:192.168.0.85;192.168.0.52
realserver:192.168.0.96;192.168.0.66
192.168.0.52:
到http://www.keepalived.org/download.html下载源码keepalived,我用的是keepalived-1.2.5.tar.gz
[root@desktop52 ~]# yum install kernel-devel openssl-devel libnl-devel popt-devel gcc make
如果不装kernel-devel可以编译成功,但安装后只有调度,没有lvs支持,因为他是调用内核的lvs,编译需要kernel-devel
解压,编译,如果要用snmp和debug也可已先安装再编译
configure后,可以看到Extra Lib:-lpot -lssl -lcrypto -lnl
默认安装目录为/usr/local/etc下,我们需要把相应文件靠到系统目录下(也可已在安装的时候指定安装目录为/etc)
[root@desktop52 etc]# pwd
/usr/local/etc
[root@desktop52 etc]# cp rc.d/init.d/keepalived /etc/init.d/
[root@desktop52 etc]# cp sysconfig/keepalived
keepalived/ rc.d/ sysconfig/
[root@desktop52 etc]# cp sysconfig/keepalived /etc/sysconfig/
[root@desktop52 keepalived]# ln -s /usr/local/sbin/keepalived /usr/sbin/ <===因为脚本里面的运行keepalived时只在/usr/sbin里面找
配置keepalived.conf
[root@desktop52 keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
XXXX@gmail.com <===管理员邮箱
}
notification_email_from keepalived@desktop52 <===通知邮箱from
smtp_server 127.0.0.1 <===使用本机转发 email
smtp_connect_timeout 30
router_id LVS_DEVEL <== load balancer 的标识 ID,用于 email 警报
}
vrrp_instance VI_1 {
state MASTER <===备机改为 BACKUP,此状态是由 priority 的值来决定的,当前
priority 的值小于备机的值,那么将会失去 MASTER 状态
interface eth0 <==#HA 监测网络接口
virtual_router_id 57 <==主、备机的 virtual_router_id 必须相同,arbitary unique number 0..255
priority 50
advert_int 1 <===主备之间的通告间隔秒数
authentication { <===主备切换时的验证
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {<====HA 虚拟 ip,可加多个
192.168.0.136
}
}
virtual_server 192.168.0.136 80 {
delay_loop 6 <===每隔 6 秒查询 realserver状态
lb_algo rr <===lvs 调度算法,这里使用轮叫
lb_kind DR
# nat_mask 255.255.255.0
# persistence_timeout 50 <===同一 IP 的连接 60 秒内被分配到同一台 realserver
protocol TCP <===同一 IP 的连接 60 秒内被分配到同一台 realserver
real_server 192.168.0.96 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3 <====故障重试秒数
delay_before_retry 3 <===重试延迟
}
}
real_server 192.168.0.66 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
备用机上该两个地方:
state,priority,而 notification_email_from 可改可不该
[root@desktop52 keepalived]# /etc/init.d/keepalived start
Starting keepalived: [ OK ]
启动时可以监控/var/log/messages日志文件,可以看到Activating healthchecker ...:80和Transition to MASTER STATE(备用机为BACKUP STATE)
realserver:(两台电脑都一样)
[root@desktop66 ~]# ifconfig lo:0 192.168.0.136 netmask 255.255.255.255 up <===lo上是默认是nonarp的所以不用更改内核,如果是别的端口,要注意该下面的内核配置:
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@desktop66 ~]# route add -host 192.168.0.136 dev lo:0
[root@desktop66 ~]# yum install -y httpd
[root@desktop66 ~]# vim /var/www/html/index.html
[root@desktop66 ~]# /etc/init.d/httpd start
[root@desktop85 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 52:54:00:6c:e6:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.85/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.136/32 scope global eth0
inet6 fe80::5054:ff:fe6c:e609/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 52:54:00:8d:82:cc brd ff:ff:ff:ff:ff:ff
看到我们的eth0中我们配置的136虚拟IP
注:这个我们只能用ip addr show查看调度器在哪台上运行,不想piranha和heartbeat可以ifconfig查看虚拟IP
高可用keepalived + lvs
原创yunzhen ©著作权
文章标签 高可用 lvs keepalived 文章分类 服务器
下一篇:我的友情链接

-
lvs高可用----------keepalived
keepalived
keepalived -
keepalived实现LVS高可用
keepalived+lvs高可用的简单实现
LVS keepalived -
lvs + keepalived + nginx 实现高可用
lvs + keepalived + nginx 实现高可用
lvs keepalived nginx