• LVS高可用集群


    高可用LVS 集群构建

     

    LVS集群当中Director的作用是很关键的,所以我们在生产环境中要保证其高可用

    高可用架构图:

    1、通过 piranha搭建LVS高可用性集群

            piranhaREDHAT 提供的一个基于WebLVS 配置软件,通过piranha可以省去手工配置LVS 的繁琐工作;同时,piranha也可以单独提供集群功能,例如,可以通过piranha激活Director Server的备用主机。这里利用piranha来配置Director Server的双机热备功能。

    1.安装与配置piranha

    通过yum命令直接在线安装,过程如下:

    [root@DR2 ~]# yum install ipvsadm modcluster piranha system-config-cluster php php-cli php-common

    通过WEB 界面配置Piranha服务需要设置下面步骤。

    #/usr/sbin/piranha-passwd  //设置密码,请设置你的piranha服务WEB配置登陆密码. http://192.168.12.130:3636/输入用户名: piranha 及刚才设置的密码登陆.

    /etc/sysconfig/ha/lvs.cf     //http://ip:3636 web 界面配置的配置文件写入此文件.

    /etc/init.d/piranha-gui start  //启动piranha服务的WEB配置界面.

    /etc/init.d/pulse        //启动piranha服务读取的就是/etc/sysconfig/ha/lvs.cf.

    piranha安装完毕后,会产生/etc/sysconfig/ha/lvs.cf配置文件。可以通过 piranha提供 Web界面配置此文件(默认的网址地址为`主机IP`3636

     

    也可以直接手动编辑此文件。编辑好的 lvs.cf文件内容类似如下所示, 注意,“#”号后面的内容为注释。

     

    [root@DR1 ~]# more /etc/sysconfig/ha/lvs.cf

    serial_no=18#序号

    primary=192.168.60.130 #指定主用 Director Server 的真实IP地址

    service=lvs#指定双机的服务名

    backup_active=1#是否激活备用Director Server“0”表示不激活,“1”表示激活。这里选择激活方式

    backup=192.168.12.131  #这里指定备用 Director Server 的真实 IP 地址,如果没有备用 #Director Server,可以用“0.0.0.0”代替

    heartbeat=1#是否开启心跳,表示开启,表示不开启

    heartbeat_port=539 #指定心跳的 UDP 通信端口。

    keepalive=5 #心跳间隔时间,单位是秒

    deadtime=10 #如果主 Director Serverdeadtime()后没有响应,那么备份Director Server就会接管主Director Server的服务 

    network=direct #指定 LVS 的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUN模式

    debug_level=NONE #定义debug调试信息级别

    virtual www.ixdba.net{ #指定虚拟服务的名称

    active=1 #是否激活此服务

    address=192.168.12.200 eth0:0 #虚拟服务绑定的虚拟IP及网络设备名

    port=80         #虚拟服务的端口

    send="GET / HTTP/1.0 "  #real server发送的验证字符串

    expect="HTTP"  

    #服务器正常运行时应该返回的文本应答信息,用来判断 Real Server

    #是否工作正常

    use_regex=0    

    #expect选项中是否使用正则表达式,表示不使用,表示使用。

    load_monitor=none    

    #LVS中的Director Server 能够使用rupruptime来监视各个

    Real Server的负载状态。该选项有3个可选值,rupruptimenone,如果选择 rup,每个 Real Server 就必须运行 rstatd 服务。如果选择了ruptime,每个 Real Server 就必须运行 rwhod 服务

    scheduler=rr         #指定LVS的调度算法

    protocol=tcp         #虚拟服务使用的协议类型

    timeout=6          

    #Real Server 失效后从 LVS 路由列表中移除失效Real Server所必须经过

    的时间,以秒为单位

    reentry=15                 

    #某个Real Server被移除后,重新加入LVS路由列表中必须经过的#时间,

    以秒为单位

    quiesce_server=0      

    #如果此选项为1.那么当某个新的节点加入集群时,最少连接数会被重设

    为零,因此 LVS 会发送大量请求到此服务节点,造成新的节点服务阻塞,建议设置为 0

    server RS1 {            #指定 Real Server 服务名

    address=192.168.12.132 #指定 Real Server  IP 地址

    active=1              #是否激活此 Real Server 服务

    weight=1              

    #指定此 Real Server 的权值,是整数值.权值是相对于所有 Real Server

    节点而言的,权值高的 Real Server 处理负载的性能相对较强

    }

    server RS2 {

    address = 192.168.12.133 
    active = 1

    weight = 1 
    }

    接着,还需要对两个 Real Server节点进行配置,也就是创建/etc/init.d/lvsrs脚本,创建文件/etc/init.d/lvsrs,脚本内容如下:

    [root@rs1 ~]#more /etc/init.d/lvsrs 
    #!/bin/bash

    #description : Start Real Server 
    VIP=192.168.12.200

    ./etc/rc.d/init.d/functions 
    case "$1" in

    start)

    echo " Start LVS of  Real Server "

    /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 Director server"

    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 

     

    2.启动通过piranha 配置的LVS集群系统

    将编辑好的 lvs.cf Director Server 的主节点复制到备用节点,然后在主、备节点分别启动pulse服务,即启动LVS 服务,过程如下:

    [root@DR1 ~]#service pulse start

    接下来,还要在主、备节点启用系统的包转发功能(其实只有在NAT模式下需要),命令如下:

    [root@DR1 ~]#echo "1" >/proc/sys/net/ipv4/ip_forward 

    最后,在两个Real server节点上执行lvsrs 脚本,命令如下: 

    [root@rs1 ~]#/etc/init.d/lvsrs start 

    到此为止,利用piranha工具搭建的高可用LVS 集群系统已经运行起来了。

    2通过 Keepalived搭建LVS高可用性集群

    keepalived这个软件最初就是为了LVS诞生的,那么keepalived除了可以实现LVS的高可用,还可以在配置文件里面实现对LVS的配置管理,以及LVS集群后端节点(real server)的健康检查。

     

    1、安装keepalived+ipvsadm 环境

    [root@host236 ~]# yum install ipvsadm keepalived

    2.配置Keepalived

    Keepalived 的配置非常简单,仅需要一个配置文件即可完成对HA clusterLVS 服务节点监控。Keepalived的安装已经在前面介绍过,在通过Keepalived搭建高可用的LVS 集群实例中,主、备 Director Server 都需要安装 Keepalived 软件,安装成功后,默认的配置文件路径为/etc/Keepalived/Keepalived.conf

    一个完整的 keepalived 配置文件由三个部分组成,分别是

    全局定义部分

    vrrp 实例定义部分

    LVS配置部分,

    下面详细介绍这个配置文件中每个选项的详细含义和用法。

    ! Configuration File for keepalived 
    #
    全局定义部分

    global_defs {

    notification_email {    #设置报警邮件地址,可以设置多个,

    731431337@qq.com      #每行一个。注意,如果要开启邮件报警, 

    #需要开启本机的 Sendmail 服务

     

    1148537043@qq.com

    }

    notification_email_from Keepalived@localhost 

    #设置邮件的发送地址

    smtp_server 192.168.200.1

    #设置smtp server地址

    smtp_connect_timeout 30

    #设置连接 smtp server 的超时时间

    router_id_LVS_DEVEL  #表示运行 Keepalived服务器的一个标识。发邮件时显示在邮件主题中的信息

    }

    #vrrp 实例定义部分

    vrrp_instance VI_1 {

    state MASTER     #指定 Keepalived 的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器.

    interface eth0          #指定HA监测网络的接口

    virtual_router_id 51      #虚拟路由标识,这个标识是一个数字,同一个 vrrp 实例使用唯一的标识,即同一个vrrp_instance下,MASTERBACKUP 必须是一致的

    priority 100       #定义优先级,数字越大,优先级越高。在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级

    advert_int 1  #设定MASTERBACKUP 负载均衡器之间同步检查的时间间隔,单位是秒

    authentication{            #设定验证类型和密码

    auth_type PASS             #设置验证类型,主要有PASSAH两种

    auth_pass 1111           

    #设置验证密码,在一个vrrp_instance下,MASTERBACKUP 必须使用相同的密码才能正常通信

    }

    virtual_ipaddress { 

    #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个。

    192.168.12.200

    }

    }

    #虚拟服务器定义部分

    virtual_server 192.168.12.200 80 {

    #设置虚拟服务器,需要指定虚拟IP地址和服务端口IP与端口之间用空格隔开

    delay_loop 6

    #设置健康检查的时间间隔,单位是秒

    lb_algo rr

    #设置负载调度算法,这里设置为rr,即轮询算法

    lb_kind DR

    #设置LVS实现负载均衡的机制,有 NATTUNDR三个模式可选

    persistence_timeout 50

     

    #会话保持时间,单位是秒。这个选项对动态网页是非常有用的,为集群系统中的 session共享提供了一个很好的解决方案。有了这个会话保持功能,用户的请求会被一直分发到某个服务节点,直到超过这个会话的保持时间。需要注意的是,这个会话保持时间是最大无响应超时时间,也就是说,用户在操作动态页面时,如果在 50秒内没有执行任何操作,那么接下来的操作会被分发到另外节点,但是如果用户一直在操作动态页面,则不受50秒的时间限制。

    protocol TCP

    #指定转发协议类型,有TCPUDP两种

    real_server 192.168.12.132 80 {

    #配置服务节点 1,需要指定 real server的真实IP地址和端口,IP与端口之间用空格隔开

    weight 3

    #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值的大小可以为不同性能的服务器分配不同的负载,可以为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配了系统资源

    TCP_CHECK {

    #realserve的状态检测设置部分,单位是秒

    connect_timeout 3

    #表示3秒无响应超时

    nb_get_retry 3

    #表示重试次数

    delay_before_retry 3

    #表示重试间隔

    connect_port 80

    #检查80端口

    }

    }

    real_server 192.168.12.133 80 {

    #配置服务节点 2

    weight 1

    TCP_CHECK {

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

    connect_port 80

    }

    }

    }

     

            在配置 Keepalived.conf 时,需要特别注意配置文件的语法格式,因为Keepalived 在启动时并不检测配置文件的正确性,即使没有配置文件,Keepalived也照样能够启动,所以一定要保证配置文件正确。

    在默认情况下,Keepalived 在启动时会查找/etc/Keepalived/Keepalived.conf 配置文件,如果配置文件放在了其他路径下,可以通过“Keepalived  -f”参数指定配置文件的路径即可。

          Keepalived.conf配置完毕后,将此文件复制到备用Director Server对应的路径下,然后进行两个简单的修改即可。

    u  “state MASTER”更改为“state BACKUP”

    u  priority 100更改为一个较小的值,这里改为“priority 80”

    3.配置Real server 节点

    heartbeat+LVS类似,Keepalived+LVS也需要为Real server节点配置VIP,抑制ARP,以达到与Director Server相互通信的目的。

    4.启动Keepalived+LVS 集群系统

    在主、备 Director Server上分别启动Keepalived 服务,可以执行如下操作:

            [root@DR1 ~]#/etc/init.d/Keepalived  start 

    接着在两个 Real server 上执行如下脚本:    

    至此,Keepalived+LVS 高可用的 LVS 集群系统已经运行起来了。





  • 相关阅读:
    [windbg] 进程、线程
    [Windows 驱动开发] 驱动中获取函数地址
    [DuiLib] 入坑资料收集
    [Windows 驱动开发] 获取驱动详细信息
    基于模板的SPS展示层定制
    关于工作角色的一个新的思考
    中小企业IT建设的有关思路
    定制SharePoint Portal之去除帮助链接
    大客户谈判技巧关于IT行业售前工作
    细节决定成败
  • 原文地址:https://www.cnblogs.com/yangliheng/p/5692079.html
Copyright © 2020-2023  润新知