最近为那个公司很重视的项目搭建 lvs ,在这里 log 一下吧。
利用red hat 提供的 piranha ,简单快捷。
我选择的是 centos 5.4 ,安装 piranha ,很简单
yum install piranha
此时,它还需要你安装 ipvsadm , php , php-cli , php-common , httpd ,piranha 是一个 web 管理的工具,没办法,虽然我不用web 界面,但这些在yum 下还是必须装上的。
装完以后,/etc/sysconfig/ha/lvs.cf 还是空的,我去抄一份过来。
serial_no = 1
primary = 60.12.227.1
service = lvs
backup_active = 1
backup = 60.12.227.2
heartbeat = 1
heartbeat_port = 10001
keepalive = 6
deadtime = 18
network = direct
debug_level = NONE
virtual vs[1] {
active = 1
address = 60.12.227.200 eth0:200
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 rs[1] {
address = 192.168.0.1
active = 1
weight = 2
}
server rs[2] {
address = 192.168.0.2
active = 1
weight = 2
}
}到此,lvs 的 director 端,算是安装完成了。
有人会问了,为什么我没有修改 /proc/sys/net/ipv4/ip_forward 为1 。其实,这里我也还不是很懂,理论上,转发是必须设为1 的,但我发现,貌似不设,也可以正常工作,难道是 piranha 的关系??
然后就是配置 real server 端了。
我又抄一个shell 过来
#!/bin/sh VIP=60.12.227.200 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
由于我的director 端配置的是 dr 模式,所以必须关闭arp 响应。
执行一下这个shell,real server 端也算是完成了。
启动 director 端:
# /etc/init.d/pulse start Starting pulse: [ OK ]
查看服务状态:
# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 60.12.227.200:80 wlc -> 192.168.0.1:80 Route 2 326 172 -> 192.168.0.2:80 Route 2 326 192
搭建完成了,算是比较快速的了,呵呵。还有一点知识点的,下回再说吧。