DR模式配置
配置yum源:
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.55.250/6.5
enabled=1
gpgcheck=0
[LoadBalancer]
name = LoadBalancer
baseurl = http://172.25.55.250/6.5/LoadBalancer
gpgcheck = 0
[HighAvailability]
name = HighAvailability
baseurl = http://172.25.55.250/6.5/HighAvailability
gpgcheck = 1
# 下载调度器工具
yum install ipvsadm -y
# 配置轮询模式dr
ipvsadm -A -t 172.25.55.100:80 -s rr
# 配置轮询的web服务
ipvsadm -a -t 172.25.55.100:80 -r 172.25.55.2:80 -g
ipvsadm -a -t 172.25.55.100:80 -r 172.25.55.1:80 -g
# 查看
ipvsadm -l
# 分别给调度器和两台机器配置vip
ip addr add 172.25.55.100/24 dev eth0
ip addr add 172.25.55.100/32 dev eth0
ip addr add 172.25.55.100/32 dev eth0
server1和server2
#以及给两个调度的web服务器配置arp过滤
yum install arptables_jf #下载工具
测试结果如下,但是如果http服务挂了之后,他无法检查后端服务(这里是httpd服务)的状态,还会调度无法正常工作的后端服务器。
lvs+ldirectord+实现调度器健康检查
#在前面实验的基础上
# 安装
yum install ldirectord-3.9.5-3.1.x86_64.rpm
# 复制一个配置文件,修改以下配置
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.cf
# 配置如下
# Sample for an http virtual service
virtual=172.25.254.100:80 # 设置为vip
real=172.25.254.1 gate # 指定后端真实服器的ip
real=172.25.254.2 gate #同上
fallback=127.0.0.1:80 gate #如果后端服务器全都挂了,本地主机也就是调度器自己顶替
service=http #提供的服务http
scheduler=rr #轮询算法
#persistent=600
#netmask=255.255.255.255
protocol=tcp #
checktype=negotiate
checkport=80 端口
request="index.html" 默认主页
#receive="Test Page"
#virtualhost=www.x.y.z
# 在启动之前将调度器配置的清空,ldirectord会自动检测后端服务器状态,将正常工作的服务器添加到调度策率中,反之会删除
测试当一台httpd服务停止工作后,访问VIP只调度正常工作的服务器
lvs+keepalived实现调度器主备配置(自带将康检测与ldirectord冲突,所以关闭ldirectord)
# 解决依赖
yum install gcc openssl-devel libnl-devel -y
yum install libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm -y
# 编译安装
tar zxf keepalived-2.0.6.tar.gz
cd keepalived-2.0.6
./configure --with-init=SYSV --prefix=/usr/local/keepalived #安装路径
make && make install
# 设置软链接,也就是快捷方式,不占用系统空间
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived #给启动脚本加执行权限
# 主设备配置文件
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #节点健康检查报告,通知本地邮箱
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict # 开启后VIP默认加入到iptables禁止列表
vrrp_garp_interval 0
vrrp_gna_interval 0
}
# 高可用配置
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 105 # 0~255,虚拟路由id
priority 100 # 权重越大,主高于备
advert_int 1 #同步检查时间,单位s
authentication { #认证设置
auth_type PASS # 认证方式
auth_pass 1111
}
# 设置VIP,可以设置多,换行
virtual_ipaddress {
172.25.55.100
}
}
virtual_server 172.25.254.100 443 {
delay_loop 3 # 多次确认错误
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
# 两台真实后端服务器配置
real_server 172.25.55.1 80 {
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
real_server 172.25.55.2 80 {
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
#配置完成后删除VIP,停止ipvsadm服务,
# 备用设置通主配置
主机:server4
# 其他配置于主设备配置一致,包括lvs,
# 同样安装keepalived
# 辅助设备配置,在主配置基础上修改如下
vrrp_instance VI_1 {
state BACKUP # 辅助设备
interface eth0
virtual_router_id 105 #主备配置标示要一样
priority 50 # 权重小于主
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.55.100
}
}
#启动后VIP自动配置在主调度器所在的主机server3,同样启动备调度器
#测试,当主设备重启后,VIP就自动配制到备用调度器,并开始工作