通过Redhat提供的工具piranha来配置LVS
yum -y install piranha
[[email protected] ~]# sed -n "/^[^#]/p" /etc/sysconfig/ha/lvs.cf
serial_no = 18 #序号
service = lvs #指定双机的服务名
primary = 10.2.16.250 #指定LVS的真实IP
network = direct #指定LVS的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUN模式
#backup_active = 1 #是否激活备用LVS调度服务器,0表示不激活,1表示激活。
#backup = 10.2.16.245 #指定备用LVS调度服务器的真实IP,如果没有备用的director-server,可以用0.0.0.0代替
#heartbeat = 1 #是否开启心跳,1表示开启,0表示不开启
#heartbeat_port = 539 #指定心跳的UDP端口
#keepalive = 5 #心跳间隔时间,单位S
#deadtime = 10 #如果主director-server在deadtime秒后没有响应,那么备用director-server就会主动接管主
#debug_level = NONE #定义debug调试信息的级别
virtual server1 { #LVS对外提供虚拟服务的名称
address = 10.2.16.252 eth0:1 #对外提供服务的VIP以及网络接口
vip_nmask = 255.255.255.255 #设置掩码
active = 1 #是否激活
load_monitor = none 吗 #LVS监控real-server负载状态,rup/ruptime/none,rup需要real-server运行rstatd服务,ruptime需要real-server运行rwhod服务。
timeout = 5 #real-server失效后,从LVS路由表中移除失效的real-server所须时间,单位S
reentry = 10 #当某个real-server被移除后,重新加入lvs路由表中必须持续的时间,单位为S
port = 80 #虚拟服务端口
send = "GET / HTTP/1.0\r\n\r\n" #向real server发送的验证字符串
expect = "HTTP" #real-server正常返回的文本应答信息,用来判断real-server是否工作正常。
scheduler = rr #指定LVS选择rr轮询调度算法
quiesce_server = 0 #如果为1,新节点加入LVS时,最少连接数会被设置为0,所以LVS会发送大量的请求到此节点,造成服务堵塞,建议设置为0
protocol = tcp #指定协议类型
# sorry_server = 127.0.0.1
server Real1 { #指定real-server的服务名
address = 10.2.16.253 #指定real-server的真实IP
active = 1 #是否激活
weight = 1 #权值
}
server Real2 {
address = 10.2.16.254
active = 1
weight = 1
}
}
在Real-server上运行着nginx服务,写lvsrs脚本并运行(脚本内容见本博另一篇LVS配置文档),指定real-server的lo的VIP为LVS的VIP:
启动脚本:
[[email protected] ~]# service lvsrs start
Start LVS of Real Server
启动pulse服务:
[[email protected] ~]# service pulse restart
Shutting down pulse: [ OK ]
在director-server上查看lvs路由表:
[[email protected] ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.2.16.252:80 rr
-> 10.2.16.253:80 Route 1 1 0
-> 10.2.16.254:80 Route 1 1 0
验证: 在浏览器输入 http://10.2.16.252/ 可正常访问即为成功!
用piranha配置LVS