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 集群系统已经运行起来了。





原文地址:https://www.cnblogs.com/yangliheng/p/5692079.html