Lvs+keepalived安装配置(v1.0)
测试环境系统:centos6.5_x86_64主DR IP:192.168.1.216备DR IP:192.168.1.218VIP:192.168.1.253/254real_server1:192.168.1.220real_server2:192.168.1.219一、安装ipvsadm
1.1 安装依赖包yum -y installlibnl-devellibnl popt popt-static1.2 下载并安装ipvsadmwget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gztar zxf ipvsadm-1.26.tar.gz && cd ipvsadm-1.26 && make && make install1.3调整hash表大小echo "options ip_vs conn_tab_bits=20" > /etc/modprobe.conf验证是否生效ipvsadm -LnIP Virtual Server version 1.2.1 (size=1048576)1.4 关闭gro和lroethtool-K em1 gro offethtool-K em1 lro offethtool-K em2 gro offethtool-K em2 lro off验证看是否关闭ethtool-k em1|grep generic-receive-offloadgeneric-receive-offload: offethtool-k em1|grep large-receive-offloadlarge-receive-offload: off 1.5 用四个参数来关闭arp查询响应请求: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
二、keepalived安装
2.1 创建目录并下载安装包mkdir -p /data/ops/{packages,app} && cd /data/ops/packageswget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz2.2 解压并安装keepalivedtar zxf keepalived-1.2.12.tar.gz && cd keepalived-1.2.12 && ./configure --prefix=/data/ops/app/keepalived && make && make install2.3 配置keepalived配置文件路径,启动路径拷贝启动文件到/etc/init.d目录下cp -p /data/ops/app/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp -p /data/ops/app/keepalived/etc/sysconfig/keepalived /etc/sysconfig/创建配置文件存放目录mkdir /etc/keepalived cp -p /data/ops/app/keepalived/sbin/keepalived /usr/sbin/配置开启自启动级别chkconfig --level 2345 keepalived on
三、keepalived配置
说明:备keepalived的配置文件只需去掉nopreempt,修改优先级(priority)的值改为:100(没有设置nopreempt的keepalived优先级必须低于设置nopreempt的keepalived,不然设置非抢占不生效),修改LVS_Nginx_1为LVS_Nginx_2
3.1 keepalived配置cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {#全局配置 router_id LVS_Nginx_1 #运行 keepalive 机器的标示,注意每个机器需要唯一的标示}
vrrp_instance Tenginx_1 { state BACKUP#定义为backup nopreempt#启用非抢占模式 interface bond0 #实例绑定的网卡 virtual_router_id 61# 0-255 在同一个 instance 中一致 在整个 vrrp 中唯一 priority 150#优先级,优先级最大的会成为 master advert_int 1 authentication { auth_type PASS#设置验证类型,主要有PASS和AH两种 auth_pass 1111#设置验证密码 } virtual_ipaddress { 192.168.1.254#设置主DR的虚拟IP地址(virtual IP),可多设,但必须每行1个 }}########Virtual Server######## virtual_server 192.168.1.254 80 {#注意IP地址与端口号之间用空格隔开 delay_loop 6#设置健康检查时间,单位是秒 lb_algo rr#设置负载调度算法,默认为rr,即轮询算法,最优秀是wlc算法 lb_kind DR#设置LVS实现LB机制,有NAT、TUNN和DR三个模式可选 persistence_timeout 50#会话保持时间,单位为秒 protocol TCP#指定转发协议类型,有TCP和UDP两种
real_server 192.168.1.220 80 { weight 3#配置节点权值,数字越大权值越高 TCP_CHECK { connect_timeout 3#表示3秒无响应,则超时 nb_get_retry 3#表示重试次数 delay_before_retry 3#表示重试间隔 } }
real_server 192.168.1.225 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
}
vrrp_instance Tenginx_2 { state BACKUP nopreempt interface bond0 virtual_router_id 62 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.253 }}
virtual_server 192.168.1.253 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP
real_server 192.168.1.220 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
real_server 192.168.1.225 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
}
值得注意的是, keepalived 的启动过程并不会对配置文件进行语法检查,就算没有配置文件,keepalived 的守护进程照样能够被运行起来。在默认状态下-- 即不指定配置文件的位置—keepalived 先查找文件 /etc/keepalived/keepalived.conf,如果为了省事,可以手动创建这个文件,然后在这个文件里书写规则,来达到控制 keepalived 运行的目的。
三、两台real server 配置3.1 配置脚本cat /etc/init.d/realserver#!/bin/bash#add for chkconfig#chkconfig: 2345 70 30#234都是文本界面,5就是图形界面X,70启动顺序号,30系统关闭,脚本#止顺序号#description: RealServer's script#关于脚本的简短描述#processname: realserver #第一个进程名,后边设置自动时会用到
VIP=192.168.1.254VIP2=192.168.1.253source /etc/rc.d/init.d/functionscase "$1" instart) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0
ifconfig lo:1 $VIP2 netmask 255.255.255.255 broadcast $VIP2 /sbin/route add -host $VIP2 dev lo:1 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 echo "RealServer Start OK" ;;stop) ifconfig lo:0 down route del $VIP >/dev/null 2>&1
ifconfig lo:1 down route del $VIP2 >/dev/null 2>&1 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 echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1esacexit 0
3.2 添加执行权限chmod a+x /etc/init.d/realserver3.3 加入开机自启动chkconfig realserver on
页:
[1]