共计 16809 个字符,预计需要花费 43 分钟才能阅读完成。
一、keepalived 高可用
Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。
系统环境: RHEL6.5x86_64 small install selinux and iptables disabled
Virtual IP 192.168.2.254
192.168.2.162 server62.exampl.com (master)
192.168.2.163 server63.example.com(backup)
192.168.2.52 desktop52.example.com(real server)
192.168.2.53 desktop53.example.com(real server)
编辑 /etc/hoststs 做以上解析
1.keepalived 的安装配置
主备机上的软件包安装与配置
#yum install ipvsadm kernel-devel openssl-devel popt-devel libnl-devel gcc make -y
源码编译安装 keepalived:
#wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz
#tar zxf keepalived-1.2.12.tar.gz
#cd keepalived-1.2.12
#./configure –prefix=/usr/local/keepalived (安装目录)
… Keepalived configuration
————————
Keepalived version : 1.2.5
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto -lnl
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : Yes
Use VRRP Framework : Yes
Use VRRP VMAC : Yes
SNMP support : No
Use Debug flags : No
#make && make install
创建链接:
#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#ln -s /usr/local/keepalived/etc/keepalived /etc/
#ln -s /usr/local/keepalived/sbin/keepalived /sbin
keepalived 主配置文件的修改:
#vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #接收警报的 email 地址, 可以添加多个
}
notification_email_from keepalived@server62.example.com #设置邮件的发送地址
smtp_server 127.0.0.1 #设置邮件的发送地址
smtp_connect_timeout 30 #设置连接 smtp 服务器超时时间
router_id LVS_DEVEL #load balancer 的标识 ID, 用于 email 警报
}
vrrp_instance VI_1 {
state MASTER #备机改为 BACKUP, 此状态是由 priority 的值来决定的, 当前 priority 的值小于备机的值, 那么将会失去 MASTER 状态
interface eth0 #HA 监测网络接口
virtual_router_id 200 #主、备机的 virtual_router_id 必须相同, 取值 0-255
priority 78 #主机的优先级, 主机优先级一定要大于备机
advert_int 1 #主备之间的通告间隔秒数
authentication {#主备切换时的验证
auth_type PASS #设置验证类型, 主要有 PASS 和 AH 两种
auth_pass 1111 #设置验证密码, 在一个 vrrp_instance 下,MASTER 与 BACKUP 必须使用相同的密码才能正常通信
}
virtual_ipaddress {
192.168.2.254 #设置虚拟 IP 地址, 可以设置多个虚拟 IP 地址, 每行一个
}
virtual_server 192.168.2.254 80 {# 定义虚拟服务器
delay_loop 6 #每隔 6 秒查询 realserver 状态
lb_algo rr #lvs 调度算法, 这里使用轮叫
lb_kind DR #LVS 是用 DR 模式
#persistence_timeout 50 #会话保持时间, 单位是秒, 这个选项对于动态网页是非常有用的, 为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能, 用户的 请求会被一直分发到某个服务节点, 直到超过这个会话保持时间。需要注意的是, 这个会话保 持时间, 是最大无响应超时时间, 也就是说用户在操作动态页面时, 如果在 50 秒内没有执行任 何操作, 那么接下来的操作会被分发到另外节点, 但是如果一直在操作动态页面, 则不受 50 秒 的时间限制。
protocol TCP #指定转发协议类型, 有 tcp 和 udp 两种
real_server 192.168.2.52 80 {#配置服务节点
weight 1 #配置服务节点的权值, 权值大小用数字表示, 数字越大, 权 值越高, 设置权值的大小可以为不同性能的服务器分配不同的负载, 可以对性能高的服务器设 置较高的权值, 而对性能较低的服务器设置相对较低的权值, 这样就合理的利用和分配了系统 资源
TCP_CHECK {#realserve 的状态检测设置部分, 单位是秒
connect_timeout 3 #10 秒无响应超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔
}
}
real_server 192.168.2.53 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
#/etc/init.d/keepalived restart 启动 keepalived
2.realserver 的配置
# 分别在 realserver 上执行以下命令添加策略
192.168.2.53
#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up 添加虚拟 ip
#arptables -A IN -d 192.168.2.254 -j DROP
#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.53
这些配置会写入文件 /etc/sysconfig/arptables
#/etc/init.d/arptables_jf save
#/etc/init.d/arptables_jf start
#echo `hostname` > /var/www/html/index.html
#service httpd start
192.168.2.52
#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up
#arptables -A IN -d 192.168.2.254 -j DROP
#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.52
这些配置会写入文件 /etc/sysconfig/arptables
#/etc/init.d/arptables_jf save
#/etc/init.d/arptables_jf start
#echo `hostname` > /var/www/html/index.html
#service httpd start
最后在 master 主机查看是否添加成功
# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.254:http rr
-> server52.example.com:http Route 1 0 7
-> server53.example.com:http Route 1 0 8
Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm
Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm
CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm
Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm
Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm
4. 测试:
1. 高可用测试: 停止 master 上的 keepalived 服务, 看 backup 是否接管。
2. 负载均衡测试: 访问 http://192.168.2.254, 看到页面在两个 realserver 上切换表示成功你也可以通过 ipvsadm -Lnc 查看详细连接情况!
3. 故障切换测试: 任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现, 然后屏蔽故障节点, 同时将服务转移到正常节点来执行。
5. 添加 ftp 服务:(理论需要再加一个需拟 IP,可是一个 IP 也可以)
在两个服务节点安装 vsftpd 服务
[root@server52 ~]# yum install -y vsftpd
[root@server52 ftp]# ls 在 ftp 的发布目录里写东西测试;
pub server52(server53)
[root@server52 ftp]#service vsftpd restart 开启服务
修改两台调度器的配置文件:
master 和 backup 主机修改住配置文件
# vim /etc/keepalived/keepalived.conf 在其后添加
virtual_server 192.168.2.254 21(ftp 端口号是 21){
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50 —–》持续链接(!很重要哦)
protocol TCP
real_server 192.168.2.52 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.53 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
reload 两台调度器
# /etc/init.d/keepalived reload
!注意:如果使用的是另一个虚拟 ip,要在 real server 主机上用 arptables 分别添加进去(本实验为了方便不做演示,具体过程如上)。
测试:先用浏览器测试 httpd 服务是否能正常启动,再用真机终端测 ftp 服务
# lftp 192.168.2.254
lftp 192.168.2.254:~> ls
drwxr-xr-x 2 0 0 4096 Feb 12 2013 pub
-rw-r–r– 1 0 0 0 May 31 08:02 server52
lftp 192.168.2.254:/> quit
查看是否添加成功
# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.254:ftp rr persistent 50
-> server52.example.com:ftp Route 1 0 0
-> server53.example.com:ftp Route 1 0 0
TCP 192.168.2.254:http rr
-> server52.example.com:http Route 1 0 0
-> server53.example.com:http Route 1 0 0
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-07/104794p2.htm
二、haproxy 负载均衡
HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理, 支持虚拟主机, 它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上, 完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整 合进您当前的架构中, 同时可以保护你的 web 服务器不被暴露到网络上。
节点主机:192.168.2.162 haproxy、keepalived
192.168.2.163 haproxy、keepalived
realserver:192.168.2.52 web1
192.168.2.53 web2
vip:192.168.2.254
1.haproxy 的安装配置
1.1、rpm 包方式:rpmbuild -tb haproxy-1.4.23.tar.gz
rpm -ivh /root/rpmbuild/RPMS/x86_64/haproxy-1.4.23-1.x86_64.rpm
1.2、源码方式:
tar zxf haproxy-1.4.23.tar.gz
cd haproxy-1.4.23
make TARGET=linux26 ARCH=x86_64 USE_PCRE=1 PREFIX=/usr/local/haproxy install
2、修改配置文件:
#vi /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local0 #指定日志设备
#log 127.0.0.1 local1 notice
log loghost local0 info #指定日志类型, 还有 err warning debug
maxconn 65535 #并发最大连接数量
chroot /usr/share/haproxy #jail 目录
uid 99 #用户
gid 99 #组
daemon #后台运行
#debug
#quiet
defaults
log global
mode http #默认使用 http 的 7 层模式 tcp: 4 层
option httplog #http 日志格式
option dontlognull #禁用空链接日志
retries 3 #重试 3 次失败认为服务器不可用
option redispatch #当 client 连接到挂掉的机器时, 重新分配到健康的主机
maxconn 65535
contimeout 5000 #连接超时
clitimeout 50000 #客户端超时
srvtimeout 50000 #服务器端超时
stats uri /status #haproxy 监控页面
listen www.example.com *:80 #监听的实例名称, 地址和端口
balance roundrobin #负载均衡算法
server web1 192.168.2.52:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2 192.168.2.53:80 cookie app1inst2 check inter 2000 rise 2 fall 5
#cookie app1inst1: 表示 serverid 为 app1inst1 #check inter 2000: 检测心跳频率
#rise 2: 表示 2 次正确认为服务器可用 #fall 5: 表示 5 次失败认为服务器不可用
# mkdir /usr/share/haproxy
# /etc/init.d/haproxy start
当 haproxy 启动报错——Starting proxy www.example.com: cannot bind socket 这个问题,其实就是因为你的 haproxy 没有得到 VIP 的原因,而你的配置文件又绑定了 VIP 地址,所以会提示以上错误当然,你也要确保你 的 haproxy 服务器做了 hearbeat 或 keepalived,绑定 VIP,要不就无法高可用了。
解决方法:
修改内核参数:/etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
保存结果,使结果生效
sysctl –p
或者使用 echo 进去,前提是 sysctl.conf 文件中没有本条参数:
echo ‘net.ipv4.ip_nonlocal_bind = 1’>>/etc/sysctl.conf ##net.ipv4.ip_nonlocal_bind=1 意思是启动 haproxy 的时候,允许忽视 VIP 的存在
除上面的原因之外,还有可能造成 Starting proxy www.example.com: cannot bind socket 确定你的 haproxy 服务器中是否开启有 apache 或 nginx 等 WEB 服务,如果有,请先停掉这些服务否则就出现以上故障。
顺便提醒下,haproxy 代理服务器同时也要打开内核的转发功能,如下参数:
net.ipv4.ip_forward = 1
2. 测试:
访问 http://www.example.com 测试负载,访问 haproxy 监控页面:http://192.168.2.162/status
监控页面添加认证:
listen stats_auth *:80
stats enable
stats uri /status #监控页面地址
stats auth admin:westos #管理帐号和密码
stats refresh 5s #刷新频率
haproxy 日志:
# vi /etc/rsyslog.conf #接受 haproxy 日志
$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/haproxy.log #日志文件位置
# /etc/init.d/rsyslog restart
三、haproxy+keepalived 的整合
MASTER:
#vim /etc/keepalived/ keepalived.conf
# cat keepalived.conf
! Configuration File for keepalived
vrrp_script check_haproxy {
script “/etc/keepalived/check_haproxy.sh”
interval 2
weight 2
}
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@server62.example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 151
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.254
}
track_script {
check_haproxy
}
}
BACKUP:
# cat keepalived.conf
! Configuration File for keepalived
vrrp_script check_haproxy {
script “/opt/check_haproxy.sh”
interval 2
weight 2
}
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@server63.example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 151
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.254
}
track_script {
check_haproxy
}
}
检测脚本:
# cat /etc/keepalived/check_haproxy
#!/bin/bash
/etc/init.d/haproxy status &> /dev/null || /etc/init.d/haproxy restart &> /dev/null
if [$? -ne 0];then
/etc/init.d/keepalived stop &> /dev/null
fi
四、验证此架构及注意事项
我们可以关闭主 HAProxy 机器或重新启动,看在此过程中,VIP 地址有没有正确的转移到从 HAProxy 机器上,影响我们访问网站没,以上步骤我自己测试过多次,而且线上环境的稳定行,证明 HAProxy+Keeaplived 双机方案确实是有效的。
关于 HAProxy+Heartbeat 这种负载均衡高可用架构,有些情况我也跟大家说明一下:
◆在此 HAProxy+Keepalivp 负载均衡高可用架构中,我们是如何解决 session 的问题呢?我们这里采用的是它自身的 balance source(负载均衡)机制,它跟 Nginx 的 ip_hash 机制原理类似,是让客户机访问时始终访问后端的某一台真实的 web 服务器,这样让 session 就固定 下来了;
◆有网友配置 HAProxy 时喜欢用 listen xxx.xxx.xxx.xxx:80 这样的格式,这样其实不好,做负载均衡高可用时由于从机分配不到 VIP 地址,会导致从机启动不了,我建议用 bind *:80 的方式来代替。
◆HAProxy 的并发监控暂时没有 Nginx 中的相关模块,但可以考虑用 SHELL 命令或自行开发 PHP 或 JSP 程序来监控。
CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm
Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm
Keepalived+Haproxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm
Haproxy+Keepalived��建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm
HAproxy 的详细介绍 :请点这里
HAproxy 的下载地址 :请点这里
一、keepalived 高可用
Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。
系统环境: RHEL6.5x86_64 small install selinux and iptables disabled
Virtual IP 192.168.2.254
192.168.2.162 server62.exampl.com (master)
192.168.2.163 server63.example.com(backup)
192.168.2.52 desktop52.example.com(real server)
192.168.2.53 desktop53.example.com(real server)
编辑 /etc/hoststs 做以上解析
1.keepalived 的安装配置
主备机上的软件包安装与配置
#yum install ipvsadm kernel-devel openssl-devel popt-devel libnl-devel gcc make -y
源码编译安装 keepalived:
#wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz
#tar zxf keepalived-1.2.12.tar.gz
#cd keepalived-1.2.12
#./configure –prefix=/usr/local/keepalived (安装目录)
… Keepalived configuration
————————
Keepalived version : 1.2.5
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto -lnl
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : Yes
Use VRRP Framework : Yes
Use VRRP VMAC : Yes
SNMP support : No
Use Debug flags : No
#make && make install
创建链接:
#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#ln -s /usr/local/keepalived/etc/keepalived /etc/
#ln -s /usr/local/keepalived/sbin/keepalived /sbin
keepalived 主配置文件的修改:
#vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #接收警报的 email 地址, 可以添加多个
}
notification_email_from keepalived@server62.example.com #设置邮件的发送地址
smtp_server 127.0.0.1 #设置邮件的发送地址
smtp_connect_timeout 30 #设置连接 smtp 服务器超时时间
router_id LVS_DEVEL #load balancer 的标识 ID, 用于 email 警报
}
vrrp_instance VI_1 {
state MASTER #备机改为 BACKUP, 此状态是由 priority 的值来决定的, 当前 priority 的值小于备机的值, 那么将会失去 MASTER 状态
interface eth0 #HA 监测网络接口
virtual_router_id 200 #主、备机的 virtual_router_id 必须相同, 取值 0-255
priority 78 #主机的优先级, 主机优先级一定要大于备机
advert_int 1 #主备之间的通告间隔秒数
authentication {#主备切换时的验证
auth_type PASS #设置验证类型, 主要有 PASS 和 AH 两种
auth_pass 1111 #设置验证密码, 在一个 vrrp_instance 下,MASTER 与 BACKUP 必须使用相同的密码才能正常通信
}
virtual_ipaddress {
192.168.2.254 #设置虚拟 IP 地址, 可以设置多个虚拟 IP 地址, 每行一个
}
virtual_server 192.168.2.254 80 {# 定义虚拟服务器
delay_loop 6 #每隔 6 秒查询 realserver 状态
lb_algo rr #lvs 调度算法, 这里使用轮叫
lb_kind DR #LVS 是用 DR 模式
#persistence_timeout 50 #会话保持时间, 单位是秒, 这个选项对于动态网页是非常有用的, 为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能, 用户的 请求会被一直分发到某个服务节点, 直到超过这个会话保持时间。需要注意的是, 这个会话保 持时间, 是最大无响应超时时间, 也就是说用户在操作动态页面时, 如果在 50 秒内没有执行任 何操作, 那么接下来的操作会被分发到另外节点, 但是如果一直在操作动态页面, 则不受 50 秒 的时间限制。
protocol TCP #指定转发协议类型, 有 tcp 和 udp 两种
real_server 192.168.2.52 80 {#配置服务节点
weight 1 #配置服务节点的权值, 权值大小用数字表示, 数字越大, 权 值越高, 设置权值的大小可以为不同性能的服务器分配不同的负载, 可以对性能高的服务器设 置较高的权值, 而对性能较低的服务器设置相对较低的权值, 这样就合理的利用和分配了系统 资源
TCP_CHECK {#realserve 的状态检测设置部分, 单位是秒
connect_timeout 3 #10 秒无响应超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔
}
}
real_server 192.168.2.53 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
#/etc/init.d/keepalived restart 启动 keepalived
2.realserver 的配置
# 分别在 realserver 上执行以下命令添加策略
192.168.2.53
#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up 添加虚拟 ip
#arptables -A IN -d 192.168.2.254 -j DROP
#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.53
这些配置会写入文件 /etc/sysconfig/arptables
#/etc/init.d/arptables_jf save
#/etc/init.d/arptables_jf start
#echo `hostname` > /var/www/html/index.html
#service httpd start
192.168.2.52
#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up
#arptables -A IN -d 192.168.2.254 -j DROP
#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.52
这些配置会写入文件 /etc/sysconfig/arptables
#/etc/init.d/arptables_jf save
#/etc/init.d/arptables_jf start
#echo `hostname` > /var/www/html/index.html
#service httpd start
最后在 master 主机查看是否添加成功
# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.254:http rr
-> server52.example.com:http Route 1 0 7
-> server53.example.com:http Route 1 0 8
Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm
Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm
CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm
Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm
Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm
4. 测试:
1. 高可用测试: 停止 master 上的 keepalived 服务, 看 backup 是否接管。
2. 负载均衡测试: 访问 http://192.168.2.254, 看到页面在两个 realserver 上切换表示成功你也可以通过 ipvsadm -Lnc 查看详细连接情况!
3. 故障切换测试: 任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现, 然后屏蔽故障节点, 同时将服务转移到正常节点来执行。
5. 添加 ftp 服务:(理论需要再加一个需拟 IP,可是一个 IP 也可以)
在两个服务节点安装 vsftpd 服务
[root@server52 ~]# yum install -y vsftpd
[root@server52 ftp]# ls 在 ftp 的发布目录里写东西测试;
pub server52(server53)
[root@server52 ftp]#service vsftpd restart 开启服务
修改两台调度器的配置文件:
master 和 backup 主机修改住配置文件
# vim /etc/keepalived/keepalived.conf 在其后添加
virtual_server 192.168.2.254 21(ftp 端口号是 21){
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50 —–》持续链接(!很重要哦)
protocol TCP
real_server 192.168.2.52 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.53 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
reload 两台调度器
# /etc/init.d/keepalived reload
!注意:如果使用的是另一个虚拟 ip,要在 real server 主机上用 arptables 分别添加进去(本实验为了方便不做演示,具体过程如上)。
测试:先用浏览器测试 httpd 服务是否能正常启动,再用真机终端测 ftp 服务
# lftp 192.168.2.254
lftp 192.168.2.254:~> ls
drwxr-xr-x 2 0 0 4096 Feb 12 2013 pub
-rw-r–r– 1 0 0 0 May 31 08:02 server52
lftp 192.168.2.254:/> quit
查看是否添加成功
# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.254:ftp rr persistent 50
-> server52.example.com:ftp Route 1 0 0
-> server53.example.com:ftp Route 1 0 0
TCP 192.168.2.254:http rr
-> server52.example.com:http Route 1 0 0
-> server53.example.com:http Route 1 0 0
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-07/104794p2.htm