【请教】两台机器实现LVS(NAT)+Keepalived的结构,配置成功,访问时却只有一台能正常工作【解决】

志波同学
博客专家认证
2011-05-25 10:47:25
【请教】两台机器实现LVS(NAT)+Keepalived的结构,配置成功,访问时却只有一台能正常工作【解决】

使用两台rhel 5机器做的 lvs + keepalived的配置!
lvs使用的NAT模式,使用的mysql服务进行测试
最开始只安装了lvs时,测试能够成功轮询到不同的机器的mysql上
后来我装上keepalived,测试keepalived的切换这些都成功了,我以为所有都成功的时候,才发现LVS的轮询工作出问题了
使用VIP连接mysql时,如果LVS是轮询到keepalived的MASTER所在机器,那么可以连接,如果是轮询到BACKUP服务器时,mysql连接就超时了
其他一些可能有帮助的线索:
1、在BACKUP机器上,ping VIP是能通的,但是 telnet [VIP] 3306 就不通了,连接mysql更是不行了
2、在MASTER机器上,telnet [VIP] 3306 能通,使用VIP连接mysql只能连接到自己机器的mysql上(应该是保持了会话)
3、在任何机器上 telnet [realserver的真实IP] 3306 是通的
4、使用VIP连接mysql时,BACKUP机器上的mysql一定无法连接,感觉就像端口被屏蔽了一样
以下是我的配置,请教到底出了什么问题??- -
VIP 192.168.10.17
realserver1 192.168.11.200
realserver2 192.168.11.201

realserver1(MASTER)

############ keepalived 配置 ################
! Configuration File for keepalived

global_defs {
notification_email {
uimeet@gmail.com
}
notification_email_from uimeet@gmail.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id realserver1
}
vrrp_sync_group VG_1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass tianzhen
}
virtual_ipaddress {
192.168.10.17/24 broadcast 192.168.10.255 dev eth0 label eth0:1
}
track_interface {
eth0
}
}

virtual_server 192.168.10.17 3306 {
delay_loop 6
lb_algo wlc
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 5
protocol TCP

real_server 192.168.11.200 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.11.201 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}



########### LVS ##############
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.17:mysql wlc persistent 5
-> realserver2:mysql Masq 3 0 0
-> 192.168.11.200:mysql Local 3 0 0

########### /etc/sysconfig/ipvsadm ###########
#keepalived自动生成的lvs规则
-A -t 192.168.10.17:mysql -s wlc -p 5
-a -t 192.168.10.17:mysql -r realserver2:mysql -m -w 3
-a -t 192.168.10.17:mysql -r 192.168.11.200:mysql -g -w 3

realserver2(BACKUP)

############ keepalived 配置 ################

! Configuration File for keepalived

global_defs {
notification_email {
uimeet@gmail.com
}
notification_email_from uimeet@gmail.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id realserver2
}
vrrp_sync_group VG_1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass tianzhen
}
virtual_ipaddress {
192.168.10.17/24 broadcast 192.168.10.255 dev eth0 label eth0:1
}
track_interface {
eth0
}
}

virtual_server 192.168.10.17 3306 {
delay_loop 6
lb_algo wlc
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 5
protocol TCP

real_server 192.168.11.200 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.11.201 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}



########## LVS ################

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.17:mysql wlc persistent 5
-> 192.168.11.201:mysql Local 3 0 0
-> realserver1:mysql Masq 3 0 0


########### /etc/sysconfig/ipvsadm ###########
#keepalived自动生成的lvs规则
-A -t 192.168.10.17:mysql -s wlc -p 5
-a -t 192.168.10.17:mysql -r 192.168.11.201:mysql -g -w 3
-a -t 192.168.10.17:mysql -r realserver1:mysql -m -w 3
...全文
368 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧