19、LVS+keepalived

LVS+Keepalived

                                              

 

为了保证DR的在线时间,所以我们要对DR做备份,两台DR分别安装Keepalived软件

让一台DR为Master,另一台DR为Slave

Keepalived不是红帽系统中的软件,把这款软件安装在红帽系统中,要用源码包安装

/usr/local/src 这个目录是红帽专门存放源码包的

 

注意:在上一个实验的基础上做,Realserver1和2配置一样,不过DR就不要做ipvsadm策略了,其它配置一样,因为Keepalived是基于IPVS模块的一个软件,你对Keepalived做配置其实就是在做ipvsadm策略,Keepalived在两台DR上都做配置,使两台DR有主次之分

前面的步骤我就省略了

DR Slave:192.168.0.50

DR Master

 

[root@localhost yum.repos.d]# yum  -y  install  gcc  kernel-devel  openssl-devel

要想安装源码包,需要你本地安装gcckernel-developenssl-devel三个软件包,才支持你有安装源码包的坏境,否则你安装不了源码包

kernel-devel软件包很重要,升级内核时需要这个软件包

[root@localhost student]# cd /usr/local/src/

[root@localhost src]# ls

keepalived-1.2.7.tar.gz   keepalived-1.2.7.tar.gz是一个源码包

[root@localhost src]# tar   zxvf  keepalived-1.2.7.tar.gz

tar.gz结尾的源码包用tar  zxvf来解压缩。tar.bz2结尾的源码包用tar  jxvf来解压缩。tar cvf命令来对源码包来压缩

[root@localhost src]# ls

keepalived-1.2.7 keepalived-1.2.7.tar.gz

[root@localhost src]# cd  keepalived-1.2.7

[root@localhost keepalived-1.2.7]# ls

AUTHOR ChangeLog  configure.in  COPYING genhash  install-sh  keepalived.spec.in  Makefile.in TODO

bin    configure  CONTRIBUTORS doc     INSTALL keepalived  lib                 README      VERSION

每一个源码包都会有configureinstallreadme,里面会有安装说明

[root@localhost keepalived-1.2.7]# ./configure   --sysconf=/etc/   --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686/

./configure命令是检测当前坏境是否可以完成这次编译,如果./configure直接回车则表示在当前目录坏境下编译的。

--sysconf=/etc把编译的结果放在/etc目录下,源码包编译的结果一盘都会放在/etc/目录下

--with-kernel-dir=/usr/src/kernels/2.6.18-164.e15-i686在编译的时候要去匹配现有的内核

Keepalived configuration

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

Keepalived version       : 1.2.7

Compiler                 : gcc

Compiler flags           : -g -O2 -DETHERTYPE_IPV6=0x86dd

Extra Lib                : -lpopt -lssl -lcrypto

Use IPVS Framework       : Yes

IPVS sync daemon support : Yes

IPVS use libnl           : No

Use VRRP Framework       : Yes

Use VRRP VMAC            : No

SNMP support             : No

Use Debug flags          : No

IPVS FrameworkIPVS syncVRRP Framework三个一定要为yes,为no代表你之前的某个包或某个库不支持,不匹配

[root@localhost keepalived-1.2.7]# make && make  install   安装源码包

;;两个分号代表前面的命令和后面的命令一起执行,即使前面的命令错了,后面的命令也会执行

&&代表前面的命令和后面的命令一起执行,在前面的命令执行成功后,后面的命令才能执行

[root@localhost keepalived-1.2.7]# ls  /etc/keepalived/

keepalived.conf  samples

/etc/keepalived/keepalived.conf就是源码包编译出来的结果

[root@localhost keepalived-1.2.7]# ln  -s  /usr/local/sbin/keepalived   /sbin

链接开机脚本,让keepalived服务可以开机时自动启动

内核是在开机加载的一瞬间就被加载,系统启动完sysctl之后,才会执行/etc/rc.d/rc.local里的命令,/etc/rc.d/rc3.d/realserver开机时自动运行脚本

[root@localhost keepalived]# cp  keepalived.conf   keepalived.conf.bak

[root@localhost keepalived]# vim  keepalived.conf

rrp_instance VI_1  {

   state MASTER

   interface eth0

   priority 100

   virtual_ipaddress {

       192.168.0.156

   }

}

 

virtual_server 192.168.0.156 80 {

   lb_algo wrr

   lb_kind DR

 

   real_server 192.168.0.11  80 {

       weight 1

       TCP_CHECK  {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

           connect_port  80

          }

}

 

 

   real_server 192.168.0.12  80 {

       weight 2

       TCP_CHECK  {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

           connect_port  80

          }

}

}

在keepalived做的配置其实不仅做了DR冗余的配置连带着也罢ipvsadm的策略也做了,所以你不用做ipvsadm策略

[root@localhost keepalived]# /etc/init.d/keepalived  restart   启动keepalived服务

Stopping keepalived:                                       [FAILED]

Starting keepalived:                                       [  OK  ]

[root@localhost keepalived]# chkconfig   keepalived on

[root@localhost keepalived]# yum  -y install  ipvsadm

[root@localhost keepalived]# ipvsadm  -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port          Forward Weight ActiveConn InActConn

TCP 192.168.0.156:http wrr persistent 50

 -> 192.168.0.12:http           Route   2      0         0        

 -> 192.168.0.11:http           Route   1      0         0

DR  Slave

[root@localhost ~]# yum  -y  install gcc  kernel-devel  openssl-devel

[root@localhost src]# ls

keepalived-1.2.7.tar.gz

[root@localhost src]# pwd

/usr/local/src

[root@localhost src]# tar  zxvf keepalived-1.2.7.tar.gz

[root@localhost src]# ls

keepalived-1.2.7 keepalived-1.2.7.tar.gz

[root@localhost src]# cd  keepalived-1.2.7

[root@localhost keepalived-1.2.7]# ls

AUTHOR ChangeLog  configure.in  COPYING genhash  install-sh  keepalived.spec.in  Makefile.in TODO

bin    configure  CONTRIBUTORS doc     INSTALL keepalived  lib                 README      VERSION

[root@localhost keepalived-1.2.7]# ./configure   --sysconf=/etc/  --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686/

Keepalived configuration

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

Keepalived version       :1.2.7

Compiler                 : gcc

Compiler flags           : -g -O2 -DETHERTYPE_IPV6=0x86dd

Extra Lib                : -lpopt -lssl -lcrypto

Use IPVS Framework       : Yes

IPVS sync daemon support : Yes

IPVS use libnl           : No

Use VRRP Framework       : Yes

Use VRRP VMAC            : No

SNMP support             : No

Use Debug flags          : No

[root@localhost keepalived-1.2.7]# make  && make  install

[root@localhost keepalived-1.2.7]# ln  -s /usr/local/sbin/keepalived  /sbin

[root@localhost keepalived-1.2.7]# cd  /etc/keepalived/

[root@localhost keepalived]# ls

keepalived.conf samples

[root@localhost keepalived]# cp  keepalived.conf   keepalived.conf.bak

[root@localhost keepalived]# vim  keepalived.conf

rrp_instance VI_1  {

   state SLAVE  由于是该台DR是做备份的,所以要写成SLAVE

   interface eth0

   priority 50   谁的优先级大,谁就是Master

   virtual_ipaddress {

       192.168.0.156

   }

}

 

virtual_server 192.168.0.156 80 {

   lb_algo wrr

   lb_kind DR

 

   real_server 192.168.0.11  80 {

       weight 1

       TCP_CHECK  {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

           connect_port  80

          }

}

 

 

   real_server 192.168.0.12  80 {

       weight 2

       TCP_CHECK  {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

           connect_port  80

          }

}

}

[root@localhost keepalived]# /etc/init.d/keepalived  restart

Stopping keepalived:                                       [FAILED]

Starting keepalived:                                       [  OK  ]

[root@localhost keepalived]# chkconfig   keepalived on

[root@localhost keepalived]# yum  -y install   ipvsadm

[root@localhost keepalived]# ipvsadm  -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port          Forward Weight ActiveConn InActConn

TCP 192.168.0.156:http wrr persistent 50

 -> 192.168.0.12:http           Route   2      0         0        

 -> 192.168.0.11:http           Route   1      0         0  

 

Realserver12

两个节点上都要做,让两个节点机器重启后配置也一样

[root@localhost ~]# cd /tmp

[root@localhost tmp]# touch  realserver.sh

[root@localhost tmp]# ls

realserver.sh

[root@localhost tmp]# cp  realserver.sh   /etc/init.d/realserver.sh

[root@localhost tmp]#/etc/init.d/realserver.sh    start

[root@localhost tmp]# ln -s/etc/init.d/realserver.sh /etc/rc.d/rc3.d/S99realserver.sh

[root@localhost tmp]# ln -s/etc/init.d/realserver.sh /etc/rc.d/rc5.d/S99realserver.sh

 

客户端访问:

 

[root@localhost keepalived]# init 0 DR Master机器关掉

 

依然可以访问

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值