实验环境
| LVS-Master | 10.0.100.201 |
VIP:10.0.100.203 |
| LVS-Slave |
10.0.100.204 |
| WEB1-Tomcat | 10.0.2.29 | gateway:10.0.2.253 |
| WEB2-Tomcat | 10.0.100.202 |
(注意:应保持所有服务器的时间一致)
Install LVS
# ln -s /usr/src/kernels/2.6.32-431.el6.i686/ /usr/src/linux //若找不到这个目录则先安装kernel-devel # yum -y install kernel-devel # tar xf ipvsadm-1.24.tar.gz # cd /soft/ipvsadm-1.24 # make;make install # ipvsadm -L IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn
Install keepalived
# tar –xvf keepalived-1.2.12.tar.gz # ./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.i686/ Keepalived version : 1.2.12 Compiler : gcc Compiler flags : -g -O2 Extra Lib : -lssl -lcrypto -lcrypt Use IPVS Framework : Yes //表示使用ipvs框架也代表启动ipvs功能 IPVS sync daemon support : Yes //表示启动ipvs的同步功能,--disabled-lvs-sysncd此参数可以关闭 IPVS use libnl : No //表示使用新的libn1版本,如果想使用新的版本,需要重新安装libn1的包 Use VRRP Framework : Yes //表示使用VRRP框架,这个实现keepalived高可用的必须功能 Use VRRP VMAC : Yes //表示使用基础VMAC接口的xmit VRRP包 SNMP support : No SHA1 support : No Use Debug flags : No # make;make install # cp /soft/keepalived-1.2.12/bin/keepalived /usr/bin/
配置
1. LVS-Master的Keepalived配置
! Configuration File for keepalived //全局定义 global_defs { notification_email //定义邮件 { xxxxxxxxx@163.com //定义邮件地址 } notification_email_from xxxxxxxxx@163.com smtp_server mail.163.com //定义邮件服务器 smtp_connect_timeout 30 //邮件超时时间 router_id LVS_DEVEL //route_id标识 } //定义VRR组 vrrp_instance VI_1 { state MASTER //定义为MASTER interface eth0 //对外访问的网络接口 virtual_router_id 100 //虚拟路由标识(注意要主从一致) priority 100 //优先级(主肯定比从高) nopreempt //不抢占模式 advert_int 1 //广播周期秒数 authentication { auth_type PASS auth_pass 2209 } virtual_ipaddress { 10.0.100.203 //VIP地址 } } //VIP地址与端口等设置-->注意DR模式的VIP端口和所有WEB端口应该保持一致 virtual_server 10.0.100.203 80 { delay_loop 6 //健康检查时间间隔,单位秒 lb_algo rr //调度算法为rr lb_kind DR //模式为DR persistence_timeout 0 //设置同一IP多少秒内的请求都发送到同一个realserver protocol TCP //使用TCP协议 //realserver的IP与端口等设置 real_server 10.0.2.29 80{ weight 1 TCP_CHECK { connect_timeout 10 //连接超时时间,单位s nb_get_retry 3 delay_before_retry 3 connect_port 80 //连接端口 } } real_server 10.0.100.202 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }