LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2772|回复: 8

负载均衡试验中遇到的问题,麻烦版主及其他老师帮忙看一下

[复制链接]
发表于 2008-1-3 16:17:01 | 显示全部楼层 |阅读模式
实验环境,我在vmware下安装了三台计算机,操作系统均为RHEL4u4,要实现http、mysql及ssh服务的负载均衡,两台计算机作为lvs路由器,一台为真实服务器,其中一台lvs路由计算机名为lvs1,外网卡IP为192.168.10.51,内网卡为10.0.10.51,在其上面安装了piranha和ipvsadm软件包,使用piranha进行配置,并开启了数据包转发功能,开机启动piranha-gui和pulse服务,另外一台lvs路由的设置与lvs1类似,真实服务器的IP地址为10.0.10.151网关为10.0.10.50(NAT网关)。但是运行ipvsadm命令时显示
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddressort Scheduler Flags
  -> RemoteAddressort           Forward Weight ActiveConn InActConn
TCP  192.168.10.50:ssh wlc
TCP  192.168.10.50:http wlc
  -> 10.0.10.151:http             Masq    1      0          0         
TCP  192.168.10.50:mysql wlc
只有http服务做成功了,难道mysql和ssh服务都必须手动运行ipvsadm -a -t 192.168.10.50:3306 -r 10.0.10.151 -m
ipvsadm -a -t 192.168.10.50:22 -r 10.0.10.151 -m命令才行吗?

下面是lvs.cf文件内容:
serial_no = 99
primary = 192.168.10.51
primary_private = 10.0.10.51
service = lvs
backup_active = 1
backup = 192.168.10.52
backup_private = 10.0.10.52
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = nat
nat_router = 10.0.10.50 eth1:1
nat_nmask = 255.255.255.0
debug_level = NONE
monitor_links = 0
virtual web {
     active = 1
     address = 192.168.10.50 eth0:1
     vip_nmask = 255.255.255.0
     port = 80
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "HTTP"
     use_regex = 0
     load_monitor = none
     scheduler = wlc
     protocol = tcp
     timeout = 6
     reentry = 15
     quiesce_server = 0
     server web {
         address = 10.0.10.151
         active = 1
         weight = 1
     }
}
virtual mysql {
     active = 1
     address = 192.168.10.50 eth0:1
     vip_nmask = 255.255.255.0
     port = 3306
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "HTTP"
     use_regex = 0
     load_monitor = none
     scheduler = wlc
     protocol = tcp
     timeout = 6
     reentry = 15
     quiesce_server = 0
     server mysql {
         address = 10.0.10.151
         active = 1
         weight = 1
     }
}
virtual ssh {
     active = 1
     address = 192.168.10.50 eth0:1
     port = 22
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "HTTP"
     use_regex = 0
     load_monitor = none
     scheduler = wlc
     protocol = tcp
     timeout = 6
     reentry = 15
     quiesce_server = 0
     server ssh {
         address = 10.0.10.151
         active = 1
         weight = 1
     }
}
发表于 2008-1-3 17:42:10 | 显示全部楼层
重新去读文档! 你的问题在没有搞清楚pulse的运行机理!

你试图用测试http real server状态的方法, 去测试mysql和ssh服务!
nanny 守护进程是用你给的方法发送"GET / HTTP/1.0\r\n\r\n"到mysql和ssh 的real server , 想得到"HTTP"的返回是不可能的!
自己写个测试脚本,在piranha 中设置"Sending Program" 为你的测试脚本,在piranha 中设置”Expect“为你测试脚本测试real server正常状态的返回值!
nanny 这个watchdog发现real server正常,lvs守护进程才会调用ipvsadm加入这个real server到LVS路由表里!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-3 18:05:43 | 显示全部楼层
恍然大悟!多谢指点,顺便问一下你说的“文档”在什么地方?
回复 支持 反对

使用道具 举报

发表于 2008-1-3 20:50:25 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-3 21:36:49 | 显示全部楼层
问题解决了,再一次对版主的热情帮助表示感谢!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-6 19:34:04 | 显示全部楼层
还想问一下在http://www.redhat.com/docs/manua ... /s1-lvs-cm-VSA.html 这个页面中的realserver以下的部分是怎样实现的,特别是在使用GNBD时怎样配置?
回复 支持 反对

使用道具 举报

发表于 2008-1-6 22:05:55 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-6 23:27:34 | 显示全部楼层
redhat上的手册我都看过了,还是有些地方不理解,可能是英文太差的缘故。是不是这样的,在realserver下面使用一个高可用性集群提供共享存储设备,出于成本考虑可以使用gnbd。
回复 支持 反对

使用道具 举报

发表于 2008-1-9 21:16:28 | 显示全部楼层
刚发现 ,给的redhat文档都是5的了  
看样子要补补课了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表