LVS-DR+keepalived高可用群集

LVS-DR+keepalived高可用群集

1.1 Keepalived概述

1.1.1 Keepalived介绍

keepalived是一个类似于layer3,4 & 5交换机制的软件,也就是我们平时说的第三层,、第四层和第五层交换。keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

1.1.2 Keepalived工作原理

Layer3,4 & 5工作在IP/TCP协议栈的IP层,TCP层,及应用层。

Layer3:kepalived使用Layer3的方式工作时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(即我们平时用的ping程序),如果我们发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。

Layer4:主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,咋keepalived将把这台服务器从服务器群中删除。

Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将吧服务器从服务器群中剔除。

1.1.3 Keepalived的作用与构建

1、管理VIP     VIP会在LVS之间漂移

2、监控LVS分发器

运行在主分发的Keepalived会以组播的形式向网络中宣告自己,即主分发器还活着,备用节点能收到。当备用节点,在一个时间单位中收不到组播,备用节点会认为主LVS挂了,开始接手主分发器工作,把VIP配给自己。

3、管理RS

Keepalived会每隔一个时间段去做一次类似于访问的操作如:

探针:elinks http://192.168.1.20 -dump

官网地址:http://www.keepalived.org/

http://www.keepalived.org/software/keepalived-2.0.2.tar.gz

1.2 使用Keepalived构建LVS-DR模式的高可用集群


主机名


主机IP


网关


机器作用


centos21.cn


DIP:192.168.1.21/24

VIP:192.168.1.20/24


192.168.1.1


主LVS


centos22.cn


DIP:192.168.1.22/24

VIP:192.168.1.20/24


192.168.1.1


被LVS


centos23.cn


192.168.1.23/24


192.168.1.1


RS1:web1


centos24.cn


192.168.1.24/24


192.168.1.1


RS2:web2

1.2.1 网络拓扑

1.2.2 安装ipvsadm

[[email protected] ~]# rpm -ivh /mnt/cdrom/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

Preparing...                          ################################# [100%]

Updating / installing...

1:ipvsadm-1.27-7.el7               ################################# [100%]

安装完成不需要做任何配置,启动方式由keepalived控制。

1.2.3 安装keepalived

第一种安装方法:

[[email protected] ~]# yum -y install keepalived

查看安装软件包

[[email protected] ~]# rpm -qf `which keepalived`

keepalived-1.3.5-1.el7.x86_64

[[email protected] ~]# rpm -ql keepalived-1.3.5-1.el7.x86_64

第二种安装方法(源码安装)

[[email protected] ~]# wget http://www.keepalived.org/software/keepalived-2.0.2.tar.gz       #下载源码包

安装依赖关系,需要使用网络yum源

[[email protected] ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo -P /etc/yum.repos.d/

[[email protected] ~]# yum -y install gcc openssl-devel libnl libnl-devel libnfnetlink-devel

[[email protected] ~]# tar zxf keepalived-2.0.2.tar.gz -C /usr/local/src/

[[email protected] ~]# cd /usr/local/src/keepalived-2.0.2/

[[email protected] keepalived-2.0.2]# ./configure --prefix=/usr/local/keepalived

成功之后会出现以下信息

......省略

Keepalived configuration

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

Keepalived version       : 2.0.2

Compiler                 : gcc

Preprocessor flags       :

Compiler flags           : -Wall -Wunused -Wstrict-prototypes -Wextra -Winit-self -g -O2 -D_GNU_SOURCE -fPIE -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches

Linker flags             :  -pie

Extra Lib                :  -lcrypto  -lssl  -lnl

Use IPVS Framework       : Yes

IPVS use libnl           : Yes

IPVS syncd attributes    : No

IPVS 64 bit stats        : No

fwmark socket support    : Yes

Use VRRP Framework       : Yes

Use VRRP VMAC            : Yes

Use VRRP authentication  : Yes

With ip rules/routes     : Yes

Use BFD Framework        : No

SNMP vrrp support        : No

SNMP checker support     : No

SNMP RFCv2 support       : No

SNMP RFCv3 support       : No

DBUS support             : No

SHA1 support             : No

Use Json output          : No

libnl version            : 1

Use IPv4 devconf         : No

Use libiptc              : No

Use libipset             : No

init type                : systemd

Build genhash            : Yes

Build documentation      : No

[[email protected] keepalived-2.0.2]# make

[[email protected] keepalived-2.0.2]# make install

1.2.4 查看keepalived的文件

[[email protected] ~]# ll /usr/local/keepalived/

total 0

drwxr-xr-x 2 root root 21 Jun 13 10:15 bin

drwxr-xr-x 4 root root 41 Jun 13 10:15 etc

drwxr-xr-x 2 root root 24 Jun 13 10:28 sbin

drwxr-xr-x 5 root root 40 Jun 13 10:15 share

1.2.5 创建启动脚本

[[email protected] keepalived-2.0.2]# cp keepalived/etc/init.d/keepalived /etc/init.d/           #因为我们使用非默认路径(/usr/local)安装 keepalived, 故需要修改几处路径,以保证 keepalived 能正常启劢, 需要修改的文件如下:

[[email protected] keepalived-2.0.2]# vim /etc/init.d/keepalived

#. /etc/sysconfig/keepalived                     #注释此行

./usr/local/keepalived/etc/sysconfig/keepalived    #修改为安装路径

export PATH="$PATH:/usr/local/keepalived/sbin"     #添加这两行内容

[[email protected] keepalived-2.0.2]# chmod +x /etc/init.d/keepalived

[[email protected] keepalived-2.0.2]# chkconfig --add keepalived

[ro[email protected] keepalived-2.0.2]# chkconfig keepalived on

1.2.6 修改配置文件

1、使用安装路径指定配置文件

如果想要让配置文件在/usr/local/keepalived/etc/keepalived/下的话,需要修改以下内容

[[email protected] ~]# vim /usr/local/keepalived/etc/sysconfig/keepalived

#KEEPALIVED_OPTIONS="-D"       #将路径改为下面的

KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"

2、使用/etc/keepalived/路径,如果上面修改,下面的配置文件路径就要修改为上面的。或者是上面不用修改,直接使用下面的路径就可以

[[email protected] keepalived-2.0.2]# mkdir /etc/keepalived    #创建目录

[[email protected] keepalived-2.0.2]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

[[email protected] keepalived-2.0.2]# cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived

[[email protected] keepalived-2.0.2]# ln -s /usr/local/keepalived/sbin/keepalived /usr/bin/

1.2.7 启动

[[email protected] ~]# service keepalived start

Starting keepalived (via systemctl):                       [  OK  ]

[[email protected] ~]# ip a

: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:00:64:f3 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.21/24 brd 192.168.1.255 scope global ens33

valid_lft forever preferred_lft forever

inet 192.168.1.20/32 scope global ens33

valid_lft forever preferred_lft forever

inet6 fe80::204:1fdd:f930:4804/64 scope link

valid_lft forever preferred_lft forever

备份节点配置yum安装配置相同

拓展:

虚拟路由冗余协议(Virtual Router Redundancy Protocol简称VRRP)是由IETF提出的解决局域网种配置静态网关出现单点失效现象的路由协议。使用组播方式通信。

VRRP是一种路由容错协议,也可以叫做备份路由协议。一个局域网内的所有主机都设置缺省路由(默认网关),当网内主机发出的目的地址不在本网段时,报文将被通过缺省路由发往外部路由器,从而实现了主机于外部网络的通信。当缺省路由器down掉(即端口关闭)之后,内部主机将无法与外部通信,如果路由器设置了VRRP时,那么这是,虚拟路由将启用备份路由器,从而实现全网通信。

工作流程图:

HSRP:热别分路由协议(HSRP)的设计目标时支持特定情况下IP流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的IP地址时,HSRP协议能够保护第一跳路由器不出故障,是CISCO的私有协议!该协议中含有多台路由器,对应一个HSRP组。该组中只有一个路由器承担转发用户流量的职责,这就是活动路由器。当活动路由器失效后,备份路由器将承担该指责,成为新的活动路由器。这就是热备份的原理。

HSRP和VRRP的区别:HSRP是CISCO的专有协议,在Cisco的HSRP之后,Internet工程任务小组(Internet engineering task force,IETF)也指定一种路由冗余协议:虚拟路由冗余协议(Virtual Router Redundancy Protocol,VRRP),目前包括Cisco在内的主流厂商均在其产品中支持VRRP协议!VRRP和HSRP也有很多不同。VRRP和HSRP的一个主要的区别在安全方面;它允许参与VRRP组的设备间建立认证机制。另一个主要区别:VRRP中只有三种状态----初始状态(initialize)、主状态(master)、备份状态(Backup),而HSRP有六种状态。其余在报文类型、报文格式和通过TCP而非UDP发送的报文方面也有所不同。

1.3 配置keepalived+LVS-DR模式

在这种模式下,虚拟IP在某时刻只能属于某一个节点,另一个节点作为备用节点存在。在主节点不可用是,备用节点接管虚拟IP,提供正常服务。

配置参数:节点centos21(主节点);节点centos22(备用节点);虚拟IP:192.168.1.20对外提供服务的IP。要求默认情况下由节点centos21提供服务,当节点centos21不可用时,由节点centos22提供服务(即虚拟IP漂移至节点centos22)。

1.3.1 主节点centos21.cn配置

[[email protected] ~]# cd /etc/keepalived/

[[email protected] keepalived]# cp keepalived.conf keepalived.conf.bak

[[email protected] keepalived]# ls

keepalived.conf  keepalived.conf.bak

[[email protected] keepalived]# vim keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]               #默认三个地址,修改本机主机名也可以

}

notification_email_from [email protected]

smtp_server localhost

smtp_connect_timeout 30        #邮件服务器可以注释

router_id cenos21              #标识当前节点名字,两个节点的此项需要不相同

}

#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其指定为 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。如果不需要也可以直接注释掉

vrrp_instance apache { #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改

state MASTER          #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可

interface ens33:1      #绑定虚拟 IP 的网络接口

virtual_router_id 51   #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组

priority 100   #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低

advert_int 1       #组播信息发送间隔,两个节点设置必须一样

authentication {   #设置验证信息,两个节点必须一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.20       #指定虚拟 IP, 两个节点设置必须一样

}

}

#类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.20:80 -s rr

virtual_server 192.168.1.20 80 {   #对虚拟IP63添加LVS相关内容

delay_loop 6                    #Keepalived 多长时间监测一次 RS

lb_algo rr                   #分发算法

lb_kind DR                   #DR模式

nat_mask 255.255.255.0

persistence_timeout 50        #同一个IP 50秒内的请求都发到同个real server,这个会影响LVS的rr调度算法,同一IP超过50秒,在此访问,才会被转发到另一台real server上。persistence持久性的意思。为了测试方便可以注释掉,启动的时候只用去掉!就可以。

protocol TCP

# ipvsadm -a -t 192.168.1.20:80 -r 192.168.1.23 -g 添加的内容,类似这条命令

# ipvsadm -a -t 192.168.1.20:80 -r 192.168.1.24 -g 添加的内容,类似这条命令

real_server 192.168.1.23 80 {        #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不端口之间用空格隔开

weight 1        #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器

TCP_CHECK {                     #这段内容手动添加,把以前的内容删除

connect_timeout 3        #表示 3 秒无响应超时

nb_get_retry 3           #表示重试次数

delay_before_retry 3    #表示重试间隔

connect_port 80         #检测端口

}

}

real_server 192.168.1.24 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

#默认配置文件中还有两个 virtual_server 模版,把剩下的都删除了就可以。 如:

#virtual_server 10.10.10.2 1358 {  。。。 }

#virtual_server 10.10.10.3 1358 {  。。。 }

[[email protected] keepalived]# systemctl start keepalived.service

[[email protected] keepalived]# systemctl enable keepalived.service

[[email protected] keepalived]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.20:80 rr persistent 50

1.3.2 配置备用节点centos22

1、安装ipvsadm

[[email protected] ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

Preparing...                          ################################# [100%]

Updating / installing...

1:ipvsadm-1.27-7.el7               ################################# [100%]

安装完成不需要任何配置,启动方式由keepalived控制

2、安装keepalived

[[email protected] ~]# yum -y install keepalived

第一种安装方法:

和主节点centos21配置差不多相同,直接从centos21上拷贝配置文件

[[email protected] keepalived]# scp keepalived.conf 192.168.1.22:/etc/keepalived/

[[email protected] ~]# cd /etc/keepalived/

[[email protected] keepalived]# ls

keepalived.conf

[[email protected] keepalived]# mv keepalived.conf keepalived.conf.bak

[[email protected] keepalived]# ls

keepalived.conf  keepalived.conf.bak

注:红色为改动项值

router_id centos22        #运行 keepalived 的机器标示符

}

vrrp_instance apache {

state BACKUP            #当前 LVS 状态为备用分发器

interface ens33:1

virtual_router_id 51

priority 90             #LVS 优先级,备的要比主的小

……

[[email protected] keepalived]# systemctl start keepalived.service

[[email protected] keepalived]# systemctl enable keepalived.service

1.3.3 测试LVS IP漂移

[[email protected] keepalived]# systemctl stop keepalived.service

[[email protected] keepalived]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:0e:cd:5f brd ff:ff:ff:ff:ff:ff

inet 192.168.1.22/24 brd 192.168.1.255 scope global ens33

valid_lft forever preferred_lft forever

inet 192.168.1.20/32 scope global ens33

valid_lft forever preferred_lft forever

inet6 fe80::7fa6:2d98:1e52:ee5b/64 scope link

valid_lft forever preferred_lft forever

[[email protected] keepalived]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.20:80 rr persistent 50

#可以看到192.168.1.20漂移过来了,就证明一切正常了

1.3.4 配置real server1

[[email protected] ~]# vim /etc/init.d/lvsrsdr

#!/bin/bash

#description:start relserver

VIP=192.168.1.20

source /etc/init.d/functions                #加载环境变量(可以加载所有的环境变量)

case $1 in

start)

echo ‘start LVS of Realserver DR‘

/sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host $VIP dev lo:1

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:1 down

echo ‘Close LVS of Realserver DR‘

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

[[email protected] ~]# chmod +x /etc/init.d/lvsrsdr

[[email protected] ~]# /etc/init.d/lvsrsdr start

[[email protected] ~]# echo "/etc/init.d/lvsrsdr" >>/etc/rc.local

[[email protected] ~]# yum -y install httpd

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

ServerName 192.168.1.23:80

[[email protected] ~]# systemctl start httpd

1.3.5 配置real server2

[[email protected] ~]# scp /etc/init.d/lvsrsdr 192.168.1.24:/etc/init.d/

[[email protected] ~]# ll /etc/init.d/lvsrsdr

-rwxr-xr-x 1 root root 964 Jun 12 23:03 /etc/init.d/lvsrsdr

[[email protected] ~]# echo "/etc/init.d/lvsrsdr start" >>/etc/rc.local

[[email protected] ~]# /etc/init.d/lvsrsdr start

Reloading systemd:                                         [  OK  ]

Starting lvsrsdr (via systemctl):                          [  OK  ]

[[email protected] ~]# ifconfig -a

……………………………

lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 192.168.1.20  netmask 255.255.255.255

loop  txqueuelen 1  (Local Loopback)

[[email protected] ~]# yum -y install httpd

[[email protected] ~]# echo "192.168.1.24" >/var/www/html/index.html

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

ServerName 192.168.1.24:80

[[email protected] ~]# systemctl start httpd

1.3.6 测试

一直显示192.168.1.24的内容,等待50s之后查看,或者是将这一行信息(!   persistence_timeout 50)使用!注释掉。

50s之后刷新查看

测试主备切换,首选在主上centos21上查看状态

[[email protected] ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.20:80 rr persistent 5

-> 192.168.1.23:80              Route   1      6          10

-> 192.168.1.24:80              Route   1      0          0

在备上查看centos22的状态

[[email protected] ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

在centos21上停掉keepalived,模拟故障,在查看centos22

[[email protected] ~]# service keepalived stop

Stopping keepalived (via systemctl):                       [  OK  ]

[[email protected] ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.20:80 rr

-> 192.168.1.23:80              Route   1      0          0

-> 192.168.1.24:80              Route   1      0          0

[[email protected] ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:0e:cd:5f brd ff:ff:ff:ff:ff:ff

inet 192.168.1.22/24 brd 192.168.1.255 scope global ens33

valid_lft forever preferred_lft forever

inet 192.168.1.20/32 scope global ens33

valid_lft forever preferred_lft forever

inet6 fe80::7fa6:2d98:1e52:ee5b/64 scope link

valid_lft forever preferred_lft forever

[[email protected] ~]# ipvsadm -Ln               #在浏览器刷新之后在次查看

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.20:80 rr

-> 192.168.1.23:80              Route   1      2          0

-> 192.168.1.24:80              Route   1      2          1

从日志看:

[[email protected] ~]# tail /var/log/messages

当我们重启主上的keepalived,自动从备份分发器转到主分发器上。因为备的优先级低。

[[email protected] ~]# service keepalived start

Starting keepalived (via systemctl):                       [  OK  ]

当 keepalived 主从优先级一样时,当主恢复后,还是要回切资源的。第一次建立主从关系时,需要10s 左右的认证时间。

附件:一个配置文件模板详解

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]                       #设置报警邮件地址,即收件人地址

}

notification_email_from [email protected]  #设置邮件的发送地址

smtp_server 127.0.0.1                    #设置smtp server的ip地址

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

router_id LTT                            #表示运行keepalived服务器的一个标识名字可以随便取,名字会显示在发邮件时邮件的主题信息

}

vrrp_instance IN_1 {

state MASTER                  #指定keepalived的角色,此服务为master

interface ens160                        #指定监测网络的接口

virtual_router_id 22                    #虚拟路由的标识

priority 100                            #定义优先级,数字越大优先级越高,1-255之间

advert_int 1                            #设置同步检查的时间间隔,单位是秒

authentication {                        #设置验证类型

auth_type PASS                      #验证类型为PASS

auth_pass aaaa                      #验证的密码

}

virtual_ipaddress {

192.168.2.111                        #设置虚拟IP

}

}

virtual_server 192.168.2.111 80 {            #定义虚拟服务器,需指定虚拟ip和端口

delay_loop 6                            #设置健康检查时间,单位为秒

lb_algo wlc                             #设置负载调度算法,此处为加权轮叫算法

lb_kind DR                              #设置LVS实现负载均衡的模式

persistence_timeout 120                 #设置会话持续时间

nat_mask 255.255.255.0                  # 设置子网掩码

protocol TCP                            #设置转发协议的类型

real_server 192.168.2.64 80 {           #定义realserver,需指定ip和端口

weight 1                            #指定权重

HTTP_GET {                          #设置检测后端realserver的方式为获取http协议报文

url {

path /

status_code 200               #状态码为200则证明后端服务器是在线的

}

connect_timeout 3               #设置超时时间

nb_get_retry 3                  #设置超时时候重试几次

delay_before_retry 3            #在重试的时候的时间间隔

}

}

virtual_server 192.168.2.111 8090 {           #定义虚拟服务器,需指定虚拟ip和端口

delay_loop 6                                  #设置健康检查时间,单位为秒

lb_algo wlc                                   #设置负载调度算法,此处为加权轮叫算法

lb_kind DR                                    #设置LVS实现负载均衡的模式

persistence_timeout 120                     #设置会话持续时间

nat_mask 255.255.255.0                     #设置子网掩码

protocol TCP                                 #设置转发协议的类型

real_server 192.168.2.90 80 {           #定义realserver,需指定ip和端口

weight 1                            #指定权重

HTTP_GET {               #设置检测后端realserver的方式为获取http协议报文

url {

path /

status_code 200     #状态码为200则证明后端服务器是在线的

}

connect_timeout 3             #设置超时时间

nb_get_retry 3                 #设置超时时候重试几次

delay_before_retry 3            #在重试的时候的时间间隔

}

}

}

原文地址:https://www.cnblogs.com/baorong/p/9194048.html

时间: 2024-08-29 06:57:25

LVS-DR+keepalived高可用群集的相关文章

虚拟机 搭建LVS + DR + keepalived 高可用负载均衡

一:环境说明:   LVS-DR-Master:    10.3.0.82   LVS-DR-Backup:    10.3.0.70   VIP:                10.3.0.60   RealServer1:    10.3.0.69   RealServer1:    10.3.0.83   Centos:5.7    二:安装LVS和Keepalvied软件包   1. 下载相关软件包    mkdir /usr/local/src/lvs    cd /usr/loca

LVS + Keepalived 高可用群集 【DR模式】

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!!

Keepalived的设计目标就是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器.管理服务器池,而不仅仅用作双机热备.使用Keepalived构建LVS群集更加简便易用,主要优势体现在,对LVS负载调度器实现热备切换.提高可用性,对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 在基于LVS(DR模式)+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,本次实验以DR模式的LVS群集为基础,增加一台负载

keepalived高可用群集与lvs群集结合搭建

 keepalived双机热备 1:keepalived双机热备,主要是用来提供故障切换,和对节点服务器的健康检查.当故障主机回复之后加入群集 2:keepalived是基于vrrp协议的方式进行热备方式,除了一个主服务器之外可以有多个从服务器,而且每一台从服务器的优先级等级各不相同. 3:工作的时候只有主服务器在工作其他服务器处于冗余状态,只要主服务器一旦发生宕机,从服务器,优先级最高的将接任主服务器的位置,以此类推.当主服务器故障排除之后,将重新夺得控制权                  

高可用群集HA介绍与LVS+keepalived高可用群集

一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/ Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协

构建LVS+Keepalived高可用群集

防伪码:不必向我诉说春天,我的心里并没有秋寒 第六章 构建LVS+Keepalived高可用群集 前言:keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换和健康检查,官方网站:http://www.keepalived.org.类似于我们以前学习过的HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务.我们今天学习的双机热备是就是利用了

LVS+Keepalived高可用群集

keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务. 双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障

CentOS7.4—构建LVS+Keepalived高可用群集

LVS+Keepalived高可用群集 目录第一部分 环境准备第二部分 使用Keepalived搭建双机热备第三部分 配置Web节点服务器第四部分 测试LVS+Keepalived高可用群集 第一部分 环境准备一:调度器两台(双机热备)系统:Linux-CentOS 7.4IP地址:192.168.80.10(主)IP地址:192.168.80.20(备)二:Web服务器两台系统:Linux-CentOS 7.4IP地址:192.168.80.30(SERVER AA)IP地址:192.168.

LVS+keepalived 高可用群集

LVS+keepalived 高可用群集 实验目的: 使用 keepalived 实现 LVS 双机热备. 实验环境: 主机 操作系统 IP地址 主要软件 LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.128 keepalived LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.129 keepalived web 服务器 1 CentOS 7.3 x86_64 192.168.217.130 http web 服务器 2 Cen

构建LVS-DR+keepalived 高可用群集

LVS-DR+keepalived高可用群集 所需环境:     192.168.10.5   主LVS 192.168.10.6   从LVS 192.168.10.7   web 1      虚拟IP:      192.168.10.100 192.168.10.8   web 2      虚拟IP:      192.168.10.100 192.168.10.9   xp客户机 配置要求:断开主LVS,查看客户机是否能ping通10.100 配置原理: 负载均衡的工作模式使用的是直