CentOS release 6.8 x64 (Final)2.6.32-642.4.2.el6.x86_64 安装keepalived-1.3.5+lvs
============
一、环境安装:
============
1.依赖安装
yum install -y openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt* 增加软连接 ln -s /usr/src/kernels/`uname -r` /usr/src/linux
2.4台机器IP设置
LVS1: 172.16.0.100
LVS2: 172.16.0.101
VIP: 172.16.0.150
WEB: 172.16.0.102
WEB2:172.16.0.103
3.关闭selinux
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
4.注:原计划打算关闭iptables,但测试发现,多次(通过命令service iptables stop且chkconfig iptables off,)将iptables关闭后,但启动keepalived后,自动又启动起来且自动加了一条把VIP地址DROP掉的规则。导致VIP查不到,ping不通。原因没有查出来,
所以这里就增加了一下iptables规则。
#iptables -I INPUT -p tcp --dport 80 -j ACCEPT #iptables -I INPUT -p icmp -j ACCEPT #service iptables save
二、安装步骤(在LVS1.LVS2上安装):
============
1)安装lvs管理工具
1.tar zxvf ipvsadm-1.26.tar.gz 2.cd ipvsadm-1.26 3.‘make‘ 4.‘make install‘ 5.#ipvsadm 6.lsmod | grep ip_vs
2)安装keepalived软件
1. tar zxvf keepalived-1.3.5.tar.gz 2. cd ikeepalived-1.3.5 3. ‘./configure --prefix=/usr/local‘ --with-init=SYSV #注:(upstart|systemd|SYSV|SUSE|openrc) #根据你的系统选择对应的启动方式 4. ‘make‘ 5. ‘make install‘.
6.配置keepalived文件的路径
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
7.配置文件(vim /etc/keepalived/keepalived.conf)
#这里是全局定义部分
global_defs { notification_email { [email protected] #设置报警邮件单个或多个地址 [email protected] [email protected] } notification_email_from [email protected] #邮件的发送地址 smtp_server 192.168.138.10 #smtp 地址 smtp_connect_timeout 30 #连接smtp服务器超时的实际 router_id LVS_ONE #路由ID两台机器不能相同。LVS2更改为不同 } #vrrp 实例定义部分 vrrp_instance VI_1 { state MASTER #keepalived 的角色 MASTER 表示主服务器。LVS2更改为:BACKUP interface eth0 #指定监测网卡 virtual_router_id 51 #虚拟路由标示,相同实例,需相同标示。 priority 150 #优先级 数字越大 优先级越高 MASTER的优先级高于BACKUP优先级(如master 150,backup 100) advert_int 1 #设定主备之间检查时间 单位s authentication { #设定验证类型和密码 auth_type PASS auth_pass 1111 } virtual_ipaddress { #设定虚拟IP地址 可以设置多个 每行一个 172.16.0.150/24 brd 172.16.0.255 dev eth0 label eth0:0 } } #虚拟服务器部分 virtual_server 172.16.0.150 80 { delay_loop 6 #设定运行情况检查时间 单位s lb_algo rr #负载调度算法 rr即轮叫算法 lb_kind DR #设置LVS负载机制 NAT TUN DR 三种模式可选 persistence_timeout 0 #会话时间 #会话保持在某个服务节点 #用户在动态页面50s内没有任何动作,那么后面就会被分发到其他节点 #用户一直动作,不受50s限制 protocol TCP #使用协议 #以下为real_server部分 real_server 172.16.0.102 80 { weight 1 #服务节点权值,数字越大,权值越高 #权值的大小可以为不同性能的服务器分配不同的负载 #这样才能有效合理的利用服务器资源 TCP_CHECK { #状态检查部分 connect_timeout 3 #3s无响应超时 nb_get_retry 3 #重试次数 delay_before_retry 3 #重试间隔 connect_port 80 #连接端口 } } real_server 172.16.0.103 80 { weight 1 #服务节点权值,数字越大,权值越高 #权值的大小可以为不同性能的服务器分配不同的负载 #这样才能有效合理的利用服务器资源 TCP_CHECK { #状态检查部分 connect_timeout 3 #3s无响应超时 nb_get_retry 3 #重试次数 delay_before_retry 3 #重试间隔 connect_port 80 #连接端口 } } }
三、客户端设置(web1,web2配置)
1.增加启动关闭脚本,并chmod执行权限
#!/bin/bash # # Script to start LVS DR real server. # description: LVS DR real server # . /etc/rc.d/init.d/functions VIP=172.16.0.150 #修改相应的VIP host=`/bin/hostname` case "$1" in start) # 启动 LVS-DR 模式,real server on this machine. 关闭ARP冲突检测。 /sbin/ifconfig lo down /sbin/ifconfig lo 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 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 ;; stop) #停止LVS-DR real server loopback device(s). /sbin/ifconfig lo:0 down echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce ;; status) # Status of LVS-DR real server. islothere=`/sbin/ifconfig lo:0 | grep $VIP` isrothere=`netstat -rn | grep "lo:0" | grep $VIP` if [ ! "$islothere" -o ! "isrothere" ];then # Either the route or the lo:0 device # not found. echo "LVS-DR real server Stopped!" else echo "LVS-DR real server Running..." fi ;; *) # Invalid entry. echo "$0: Usage: $0 {start|status|stop}" exit 1 ;; esac
2.增加web http服务,使用80端口可以打开网站。
3.测试四台服务器相互之间是否可以PING通。
四、测试检查keepalived+lvs问题
1、 查看系统日志 /var/log/messages
2、 检查负载均衡器的网络连通状况(ping命令或arping)。
3、 检查 keepalived 的运行情况。ps -aux | grep keepalived查看是否进程启动。lsmod | grep ip_vs,检查ipvs 模块是否被加载到系统的内核,vip 是否被绑定到网络接口,ipvsadm 是否有输出。
4、 检查 keepalived 的配置文件书写是否正确。
5、 检查负载均衡器是否启用防火墙规则。
6、 realserver的web是否正常
推荐文档:http://www.keepalived.org/pdf/sery-lvs-cluster.pdf