• 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  
  • 相关阅读:
    netbeans 快捷键
    Netbeans Platform的Lookup 边学边记
    Swing中的并发使用SwingWorker线程模式
    转:ExtJS:tabpanel 多个tab同时渲染问题
    NetBeans Platform Login Tutorial
    检测项目
    C#实现通过程序自动抓取远程Web网页信息
    WebClient类
    string字符串的方法
    WebClient的研究笔记认识WebClient
  • 原文地址:https://www.cnblogs.com/eastonliu/p/10102678.html
Copyright © 2020-2023  润新知