Lvs + Keepalived

lvs三种工作模式:NAT(地址转换)IP Tunneling(隧道)DR(直接路由)

DR:

1.检查是否安装ipvs模块

# lsmod | grep ip_vs

# yum install -y ipvsadm

1.1 install ipvsadm Download ipvsadm-1.24.tar.gz   http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz    //安装ipvsadm需要安装gcc包

# tar zxvf ipvsadm-1.24.tar.gz

# ln -s /usr/src/kernels/2.6.18-53.el5-i686 /usr/src/linux

# ls -l /usr/src/

total 16

drwxr-xr-x 3 root root 4096 Jun 24 17:28 kernels

lrwxrwxrwx 1 root root 35 Aug 3 18:35 linux -> /usr/src/kernels/2.6.18-53.el5-i686  //*ipvsadm安装不成功,2.6.18的link指向/usr/src/kernels/2.6.18-398.el5-x86_64根据实际情况改动, kernel.x86_64 kernel-devel.x86_64 kernel-headers.x86_643个包文件得具备

drwxr-xr-x 7 root root 4096 Jun 24 17:27 redhat

#cd ipvsadm-1.24

[ipvsadm-1.24]# make && make install

2.配置LVS负载均衡

ipvsadm -C              //清除当前所有LVS规则

ipvsadm --set 30 5 60             //设置tcp、tcpfin、udp链接超时时间

ipvsadm -A -t 10.0.0.3:80 -s rr(轮询) -p 20          //添加虚拟服务(-A),-t指定VIP加端口,-s调度算法,-p会话保持

ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.7:80 -g   //将虚拟服务关联到真实服务上(-a),-g DR模式

3.开启路由转发

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1         //此参数改为1

# sysctl -p                             // 使修改生效

4.安装keepalived

Download keepalived-1.1.15.tar.gz     //依赖openssl

http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

# tar zxvf keepalived-1.1.15.tar.gz

# cd keepalived-1.1.15

# ./configure                                           //

……………省略……………………………………

Keepalived configuration

------------------------

 Keepalived version : 1.1.15

Compiler : gcc

Compiler flags : -g -O2

Extra Lib : -lpopt -lssl -lcrypto

Use IPVS Framework : Yes          //提示YES,安装成功                   

IPVS sync daemon support : Yes     //提示YES,安装成功

Use VRRP Framework : Yes           //提示YES,安装成功

Use LinkWatch : No

Use Debug flags : No

……………结束……………………………………

# make && make install

5.配置keepalived

# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

       notification_email {

              xxx@xxx.com          //配置邮箱

}

notification_email_from lvs1@xxx.com      //定义虚拟发件邮箱名

smtp_server 10.232.xx.xxx                 //配置邮件服务器

smtp_connect_timeout 60

router_id  LVS_LEVEL

}

vrrp_instance VI_1 {

           state MASTER

           interface eth0

           virtual_router_id 90

          priority 200

          advert_int 1

          authentication {

                auth_type PASS

                auth_pass 1111

     }

           virtual_ipaddress {

                    $VIP/24

    }

 }

 virtual_server $VIP 80{

          delay_loop 6

          lb_algo rr            //指定轮询模式

          lb_kind DR         //DR模式

          persistence_timeout 50

          protocol TCP

         real_server 10.23x.1xx.11 80{

                weight 50

                TCP_CHECK {

                             connect_timeout 10

                             nb_get_retry 3

                             delay_before_retry 5

                  }

        } 

 }

5.1 COPY keepalive to services

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/sbin/keepalived /usr/sbin/

这样就可以用 service keepalived start|stop来管理keepalived

5.2 Set keepalived auto start/stop when SYSTEM start/stop

ln -s /etc/init.d/keepalived /etc/rc0.d/K79keepalived

ln -s /etc/init.d/keepalived /etc/rc1.d/K79keepalived

ln -s /etc/init.d/keepalived /etc/rc2.d/K79keepalived

ln -s /etc/init.d/keepalived /etc/rc3.d/K79keepalived

ln -s /etc/init.d/keepalived /etc/rc4.d/K79keepalived

ln -s /etc/init.d/keepalived /etc/rc6.d/K79keepalived

ln -s /etc/init.d/keepalived /etc/rc5.d/S21keepalived


6.配置realserver

#vim /etc/sysctl.conf

net.ipv4.ip_forward = 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

# sysctl -p >/dev/null 2>&1

# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up

# /sbin/route add -host $VIP dev lo:0

7.测试

# ipvsadm  -Ln





最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容