Believe in yourself.

RedHat6.2系统安装ipvsadm+keepalived

一、安装IPVS

软件包下载:

链接:https://pan.baidu.com/s/1zNgPtALbdBTC1H6e0IaZPw
提取码:xm7t

1、检查内核模块,看一下ip_vs 是否被加载

lsmod |grep ip_vs

如果没有显示,则说明没有加载,执行如下命令 就可以把ip_vs模块加载到内核

modprobe ip_vs

2、查看内核版本

uname -r

3、创建链接文件

ln -sv /usr/src/kernels/2.6.32-431.el6.x86_64 /usr/src/linux

4、安装libnl-devel-1.1.4-2.el6.x86_64.rpm

rpm -ivh libnl-devel-1.1.4-2.el6.x86_64.rpm

 

5、安装popt-static-1.13-7.el6.x86_64.rpm

rpm -ivh popt-static-1.13-7.el6.x86_64.rpm

6、把ipvsadm-1.26.tar.gz安装包上传到/tmp目录下,并解压

tar -xvf ipvsadm-1.26.tar.gz 

7、进入解压后的ipvsadm-1.26文件夹

cd ipvsadm-1.26

8、编译ipvsadm安装文件

make

9、安装

make install

10、检验ipvsadm 是否被正确安装。输入命令

ipvsadm

如果有以下输出表示安装成功:

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

二、安装Keepalive

1、上传keepalived-1.2.4.tar.gz安装包到服务器并解压

tar -xvf keepalived-1.2.4.tar.gz 

2、进入解压后的进入解压后的keepalived-1.1.17目录

cd keepalived-1.2.4

3、配置文件

./configure -prefix=/usr/local/keepalive

因为keepalived 运行在ip_vs 之上,因此上面这条命令是保证这两个软件安装在同一个系统里面。如果configure操作能正常进行,运行完毕后将有如下的汇总输出:

Keepalived configuration
------------------------
Keepalived version       : 1.2.4
Compiler                 : gcc
Compiler flags           : -g -O2
Extra Lib                : -lpopt -lssl -lcrypto  -lnl
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
IPVS use libnl           : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
Use Debug flags          : No

4、编译Keepalive安装文件

make

5、安装

make install

安装完成后,会在安装目录/usr/local/keepalive下生成bin,etc,man,sbin四个目录。其中etc目录为配置文件所在的目录。

三、LVS配置

1、进入Keepalive所在目录

cd /usr/local/keepalive/etc/keepalived/

2、编辑目录下的Keepalived.conf配置文件

vi keepalived.conf

按键盘“i”进行编辑,编辑完成后按“:wq!”保存退出。

编辑完成后的配置文件如下所示:

# more /etc/keepalived/keepalived.conf
# guration File for keepalived
# global define
global_defs {
     router_id  LVS_TJ_1
}
vrrp_sync_group VGM {
     group {
         VI_CACHE
     }
}

# vrrp_instance define
vrrp_instance VI_CACHE {
     state MASTER
     interface eth0
     lvs_sync_daemon_inteface eth0
     virtual_router_id 51
     priority 180
     advert_int 5
     authentication {
     auth_type PASS
     auth_pass 1111
     }
     virtual_ipaddress {
          172.20.100.200
     }
}

# virtual machine(Locator) setting
# setting port 16666 forward
virtual_server 172.20.100.200 16666 {
     delay_loop 6
     lb_algo rr
     lb_kind DR
     persistence_timeout 300
     protocol TCP
     real_server 172.20.100.227 16666 {
          weight 100
          TCP_CHECK {
               connect_timeout 3
               nb_get_retry 3
               delay_before_retry 3
               connect_port 16666
          }
      }
      real_server 172.20.100.229 16666 {
           weight 100
           TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 16666
           }
       }
}

配置项

含义

说明

全局定义块(global define)

router_id

LVS负载均衡器标识

在一个网络内,此标识必须是唯一的。

vrrp_sync_group

同步vrrp 组

确定失败切换(FailOver)包含的路由实例个数。

group

实例组

至少包含一个vrrp 实例。

VRRP实例定义块(vvrp_instance define)

vrrp_instance

vrrp实例

实例名出自实例组group 所包含的那些名字。

state

实例状态

只有MASTER和BACKUP 两种状态,并且需要大写。其中MASTER 为工作状态,BACKUP 为备用状态。当MASTER 所在的服务器失效时,BACKUP 所在的系统会自动把它的状态由BACKUP 变换成MASTER;当失效的MASTER 所在的系统恢复时,BACKUP 从MASTER 恢复到BACKUP 状态。

interface

通信接口

对外提供服务的网络接口。与当前系统使用的网络接口相一致。

lvs_sync_daemon_inteface

负载均衡器间的监控接口

类似于HA HeartBeat的心跳线。但它的机制优于Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在DR 模式中,lvs_sync_daemon_inteface 与服务接口interface 使用同一个网络接口。

virtual_router_id

虚拟路由标识(数字表示)

MASTER和BACKUP的virtual_router_id 是一致的,在整个vrrp 内是唯一的。

priority

优先级(数字表示)

数值愈大,优先级越高。在同一个vrrp_instance里,MASTER 的优先级高于BACKUP。

advert_int

同步通知间隔

MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒。

auth_type

验证类型

主要有PASS、AH 两种类型,通常使用PASS类型。

auth_pass

验证密码

验证密码为明文,同一vrrp实例MASTER 与BACKUP 使用相同的密码才能正常通信。

virtual_ipaddress

虚拟ip地址(VIP)

可以有多个地址,每个地址占一行,不需要指定子网掩码。注意:这个ip就是lvs虚拟出来给真实服务器使用的。

虚拟服务器定义块(virtual machine setting)

virtual_server

虚拟服务器

与virtual_ipaddress地址一致,后面加上端口号。而且定义一个vip,可以实现多个tcp 端口的负载均衡功能。

delay_loop

健康检查时间间隔

单位是秒。

lb_algo

负载均衡调度算法

MAP是基于RTSP的服务,推荐使用基于最简单的轮叫调度算法(rr)或局部性的最少链接算法(lblc),不需配置会话保持(有利于均衡调度);iEPG、AAA都是基于HTTP的服务,推荐使用加权最小连接算法(wlc),不需配置会话保持(有利于均衡调度)。

lb_kind

负载均衡转发规则

包括DR、NAT、TUN三种,一般在OpenCloud解决方案中使用DR方式。

persistence_timeout

会话保持时间

单位是秒。

protocol

转发协议

有TCP和UDP两种。

real_server

真实服务器

可设置多个真实服务器,真实IP加上相同的端口号。

weight

权重

数值越大,权重越高。使用不同的权重值的目的在于为不同性能的机器分配不同的负载,性能较好的机器,负载分担大些;反之,性能差的机器,则分担较少的负载,这样就可以合理的利用不同性能的机器资源。

TCP_CHECK

TCP检查

检查TCP网络情况。

 

3、在/etc下建立keepalived目录

mkdir /etc/keepalived

4、在/etc/keepalived下创建一个软链接

ln -s /usr/local/keepalive/etc/keepalived/keepalived.conf  /etc/keepalived/

5、在/etc/ rc.d/init.d/下创建一个软链接

ln -s /usr/local/keepalive/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/

6、在/etc/sysconfig/下创建一个软链接

ln -s /usr/local/keepalive/etc/sysconfig/keepalived  /etc/sysconfig/

7、在/usr/sbin/下创建一个软链接

ln -s /usr/local/keepalive/sbin/keepalived  /usr/sbin/

8、把keepalived加入到系统服务中

chkconfig --add keepalived

9、将keepalived服务设成开机自启动

chkconfig --level 35 keepalived on

四、真实服务器配置

分别在两台真实Lcator服务器上建立配置脚本,负责服务的启动、停止,具体操作步骤如下:

1、进入配置脚本放置路径

cd /usr/local/bin/

2、新建一文件并输入配置

vi lvs_real

按键盘“i”进行编辑,输入如下配置信息:

# more/usr/local/bin/lvs_real
#!/bin/bash
#description : start realserver
VIP=172.20.100.200
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 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
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
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 "Usage: $0 {start|stop}"
exit 1
esac

五、LVS集群启动

1、启动Keepalived

service keepalived start

2、验证Keepalived是否启动

ps aux|grep keepalived

如有以下输出表示Keepalived已启动:

[root@228 keepalived]# ps aux|grep keepalived
root      96431  1.8  0.0  42136   792 ?        Ss   14:47   0:00 keepalived -D
root      96432  0.0  0.0  44364  2160 ?        S    14:47   0:00 keepalived -D
root      97548  0.0  0.0 103252   852 pts/1    S+   14:47   0:00 grep keepalived

3、在真实的locator服务器上启动LVS脚本

/usr/local/bin/lvs_real start

4、启动locator服务

5、在LVS服务器上验证均衡负载情况

ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.20.100.200:16666 rr persistent 300
  -> 172.20.100.227:16666         Route   100    0          5         
  -> 172.20.100.229:16666         Route   100    0          1  

 

posted @ 2018-12-11 15:50  eastonliu  阅读(1197)  评论(0编辑  收藏  举报