通过LVS+Keepalived搭建高可用的负载均衡集群系统
1、 安装LVS软件
(1)安装前准备
操作系统:统一采用Centos6.5版本,地址规划如下:
- 服务器名 IP地址 网关 虚拟设备名 虚拟ip
- Director Server 192.168.12.25 192.168.12.1 eth0:0 192.168.12.135
- Real Server1 192.168.12.246 192.168.12.1 lo:0 192.168.12.135
- Real Server2 192.168.12.247 192.168.12.1 lo:0 192.168.12.135
更详细的信息如下图所示:
图中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR、TUN模式中,数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址。此IP在Real Server上一般绑定在回环地址上,例如lo:0,同样,在Director Server上,虚拟IP绑定在真实的网络接口设备上,例如eth0:0。
各个Real Server可以是在同一个网段内,也可以是相互独立的网段,还可以是分布在internet上的多个服务器.
1、 安装LVS软件
(1)安装前准备
安装的LVS负载均衡集群拓扑图:
(2)安装操作系统需要注意的事项
Centos6.5版本的Linux,内核默认支持LVS功能,为了方便编译安装IPVS管理软件,在安装操作系统时,建议选择如下这些安装包:
桌面环境:xwindows system、GNOME desktop environment。
开发工具:development tools、x software development、gnome software、development、kde software development。
系统安装完毕,可以通过如下命令检查kernel是否已经支持LVS的ipvs模块:
- [root@localhost ~]#modprobe -l |grep ipvs
- /lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs.ko
- /lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko
如果有类似上面的输出,表明系统内核已经默认支持了IPVS模块。接着就可以安装IPVS管理软件了.
(3)在Director Serve上安装IPVS管理软件
IPVS提供的软件包有源码方式的也有rpm方式的,这里介绍下源码方式安装IPVS,首先从http://www.linuxvirtualserver.org/software/ipvs.html下载对应版本的ipvs源码,这里我们下载ipvsadm-1.24版本,进行安装:
- [root@localhost ~]#tar zxvf ipvsadm-1.24.tar.gz
- [root@localhost ~]#cd ipvsadm-1.24
- [root@localhost ~]#make
- [root@localhost ~]#make install
注意:在make时可能会出现错误编译信息,这是由于编译程序找不到对应内核的原因,按照如下操作就可以正常编译:
- [root@localhost ~]#ln -s /usr/src/kernels/2.6.18-128.el5-i686/ /usr/src/linux
也可以下载rpm安装包,通过rpm方式进行安装:
- [root@localhost ~]#rpm –ivh ipvsadm-1.24-6.1.i386.rpm
- 然后执行:
- [root@localhost ~]# ipvsadm --help
如果看到帮助提示,表明IPVS已经成功安装。
(4)ipvsadm的用法:
2、 开始配置LVS集群
下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置。
(1) Director Server的配置
在Director Server上配置LVS负载均衡集群,有两种方法:
<1.通过ipvsadm命令行进行配置
<2.通过Redhat提供的工具piranha来配置LVS
1)通过ipvsadm命令行方式配置LVS 安装IPVS后,就可以配置LVS集群了,首先在Director Server上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务,执行如下命令:
- [root@localhost ~]#ifconfig eth0:0 192.168.12.135 broadcast 192.168.12.135 netmask 255.255.255.255 up #此处在eth0设备上绑定了一个虚拟设备eth0:0,
同时设置了一个虚拟IP是192.168.12.135,也就是上面我们规划的IP地址,然后指定广播地址也为192.168.12.135,需要特别注意的是,这里的子网掩码为255.255.255.255。 然后给设
备eth0:0指定一条路由,执行如下指令:
[root@localhost ~]#route add -host 192.168.12.135 dev eth0:0
[root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward #指令中,参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是
必须的,而在NAT模式下此操作是必须的。
然后开始配置ipvs,执行如下操作:
- [root@localhost ~]#ipvsadm -C
- [root@localhost ~]#ipvsadm -A -t 192.168.12.135:80 -s rr -p 600
- [root@localhost ~]#ipvsadm -a -t 192.168.12.135:80 -r 192.168.12.246:80 -g
- [root@localhost ~]#ipvsadm -a -t 192.168.12.135:80 -r 192.168.12.237:80 -g
- #上面操作中,第一行是清除内核虚拟服务器列表中的所有记录,第二行是添加一条新的虚拟IP记录。这个新的IP是192.168.12.135,同时指定持续服务时间为600秒。
6 #第三、四行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS 的工作模式为直接路由模式。- 最后,启动LVS服务,执行如下操作:
- [root@localhost ~]#ipvsadm
这样,LVS在Director Server上的配置就完成了.
为了管理和配置的方便,可以将上面的操作写成一个脚本文件,脚本内容如下:
- #!/bin/sh
- # description: Start LVS of Director server
- VIP=192.168.12.135
- RIP1=192.168.12.246
- RIP2=192.168.12.237
- ./etc/rc.d/init.d/functions
- case "$1" in
- start)
- echo " start LVS of Director Server"
- # set the Virtual IP Address and sysctl parameter
- /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
- echo "" >/proc/sys/net/ipv4/ip_forward
- #Clear IPVS table
- /sbin/ipvsadm -C
- #set LVS
- /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600
- /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
- /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
- #Run LVS
- /sbin/ipvsadm
- ;;
- stop)
- echo "close LVS Directorserver"
- echo "" >/proc/sys/net/ipv4/ip_forward
- /sbin/ipvsadm -C
- /sbin/ifconfig eth0:0 down
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- exit 1
- Esac
管理脚本
2)通过Redhat提供的工具piranha来配置LVS
Piranha是REDHAT提供的一个基于Web的LVS配置软件,可以省去手工配置LVS的繁琐工作,同时,也可单独提供cluster功能,例如,可以通过Piranha激活Director Server的后备主机,也就是配置Director Server的双机热备功能。
Piranha工具的安装非常简单,下载Piranha的rpm包,进行安装即可:
- [root@localhost ~]#rpm –ivh piranha-0.8.2-1.i386.rpm
Piranha安装完毕后,会产生/etc/sysconfig/ha/lvs.cf文件,默认此文件是空的,可以通过Piranha提供的web界面配置此文件,也可以直接手动编辑此文件,编辑好的lvs.cf文件内容类似如下:
- [root@localhost ~]# more /etc/sysconfig/ha/lvs.cf
- serial_no = 18 #序号。
- primary = 192.168.12.25 #指定主Director Server的真实IP地址,是相对与有备用的Director Server而言的,也就是给Director Server做HA Cluster。
- service = lvs #指定双机的服务名。
- backup_active = 0 #是否激活备用Director Server。“0”表示不激活,“1”表示激活。
- backup = 0.0.0.0 #这里指定备用Director Server的真实IP地址,如果没有备用Director Server,可以用“0.0.0.0”代替。
- heartbeat = 0 #是否开启心跳,1表示开启,0表示不开启。
- heartbeat_port = 539 #指定心跳的UDP通信端口。
- keepalive = 5 #心跳间隔时间,单位是秒。
- deadtime = 10 #如果主Director Server在deadtime(秒)后没有响应,那么备份DirectorServer就会接管主Director Server的服务。
- network = direct #指定LVS的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUNL模式。
- debug_level = NONE #定义debug调试信息级别。
- virtual www.ixdba.net{ #指定虚拟服务的名称。
- active = 1 #是否激活此服务。
- address = 192.168.12.135 eth0:0 #虚拟服务绑定的虚拟IP以及网络设备名。
- port = 80 #虚拟服务的端口。
- send = "GET / HTTP/1.0\r\n\r\n" #给real server发送的验证字符串
- expect = "HTTP" #服务器正常运行时应该返回的文本应答信息,用来判断real server是否工作正常。
- use_regex = 0 # expect选项中是否使用正则表达式,0表示不使用,1表示使用。
- load_monitor = none #LVS中的Director Server能够使用 rup 或 ruptime 来监视各个real server的负载状态。该选项有3个可选值,rup、ruptime和none,如果选
择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.246 #指定real server的IP地址。
- active = 1 #是否激活此real server服务。
- weight = 1 #指定此real server的权值,是个整数值,权值是相对于所有real server节点而言的,权值高的real server处理负载的性能相对较强。
- }
- server RS2 {
- address = 192.168.12.237
- active = 1
- weight = 1
- }
- }
- 编辑完成,然后启动pulse服务,即启动lvs服务
- [root@localhost ~]#service pulse start
- 同理,此种方式下也要启用系统的包转发功能:
- [root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward
到此为止,Piranha工具方式配置Director Server完毕。
3、Real server 的配置 在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户,增加VIP地址的操作可以通过创建脚本的方式来实现,创建文件/etc/init.d/lvsrs,脚本内容如下:
- #!/bin/bash
- VIP=192.168.12.135
- /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
- /sbin/route add -host $VIP dev lo:0
- 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
- sysctl -p
- #end
此操作是在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通,然后禁止了本机的ARP请求。
由于虚拟ip,也就是上面的VIP地址,是Director Server和所有的Real server共享的,如果有ARP请求VIP地址时,Director Server与所有Real server都做应答的话,就出现问题了,因此,需要禁止Real server响应ARP请求。而lvsrs脚本的作用就是使Real Server不响应arp请求。
4、在Director上配置冗余策略 Ldirectord
如果是通过Piranha工具配置LVS,就无需使用ldirectord,Piranha工具对应的系统进程是pluse,此进程也会自动调用ipvsadm创建LVS路由表,同时会利用自身的nanny守护进程监控real server的状态,这里只是讲解其中的另一种配置方法.
在heartbeat中,ldirectord其实是作为它的一个插件出现的,所以它默认包含在heartbeat软件包中,Ldirectord的核心作用是监控Real Server节点状态,当Real Server失效时,把它从虚拟服务器列表中删除,恢复时重新添加到列表,同时,它还能调用ipvsadm自动创建LVS路由表,这点从下面要讲述的ldirectord.cf中可以看出,这里需要说明的是,ldirectord和Piranha都具有监控Real Server的功能,如果要通过ldirectord监控节点状态,只需启动ldirectord服务,整个集群系统就可以运行起来,而无需执行上面我们配置的LVS脚本,因为ldirectord会自动调用ipvsadm创建LVS路由表,而我们上面讲述的利用ipvsadm命令行方式配置LVS,是为了让读者能更深入的了解ipvsadm的实现细节和实现机制。
ldirectord的安装非常简单,直接通过yum就可以安装完成:
[root@localhost root]#yum install heartbeat-ldirectord
安装完成后,默认的安装路径为/etc/ha.d,同时需要将模板配置文件拷贝到这个目录下,执行如下命令:
[root@localhost root]# rpm -q heartbeat-ldirectord -d
/usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf
/usr/share/man/man8/ldirectord.8.gz
[root@localhost root]# cp /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d
可以通过执行如下命令启动或关闭ldirectord服务
/etc/init.d/ldirectord {start|stop}
Ldirectord的配置文件是/etc/ha.d/ldirectord.cf,下面详述下这个文件每个参数的含义:
下面是需要配置的选项,注意,“#”号后面的内容为注释:
- # Global Directives
- checktimeout=20 #判定real server出错的时间间隔。
- checkinterval=10 #指定ldirectord在两次检查之间的间隔时间。
- fallback=127.0.0.1:80 #当所有的real server节点不能工作时,web服务重定向的地址。
- autoreload=yes #是否自动重载配置文件,选yes时,配置文件发生变化,自动载入配置信息。
- logfile="/var/log/ldirectord.log" #设定ldirectord日志输出文件路径。
- quiescent=no #当选择no时,如果一个节点在checktimeout设置的时间周期内没有响应,ldirectord将会从LVS的路由表中直接移除real server,此时,将中断现有的客
户端连接,并使LVS丢掉所有的连接跟踪记录和持续连接模板,如果选择为yes,当某个real server失效时,ldirectord将失效节点的权值设置为0,新的连接将不能到达,但是并不从LVS路由
表中清除此节点,同时,连接跟踪记录和程序连接模板仍然保留在Director上。- 注意:以上几行为ldirectord.cf文件的“全局”设置,它们可以应用到下面多个虚拟主机,下面是每个虚拟主机的配置。
- # Sample for an http virtual service
- virtual=192.168.12.135:80 #指定虚拟的IP地址和端口号,注意,在virtual行后面的行必
- 须缩进4个空格或以一个tab字符进行标记。
- real=192.168.12.246:80 gate #指定Real Server服务器地址和端口,同时设定LVS工作模式,
- 用gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。
- real=192.168.12.237:80 gate
- fallback=127.0.0.1:80 gate
- service=http #指定服务的类型,这里是对http服务做负载均衡。
- request="index.html" #ldirectord将根据指定的Real Server地址,结合该选项给出
- 的请求路径,发送访问请求,检查Real Server上的服务是否正常运行,确保这里给出的页面地址是可访问的,不然ldirectord会误认为此节点已经失效,发生错误监控现象。
- receive="Test Page" #指定请求和应答字串。
- scheduler=rr #指定调度算法,这里是rr(轮叫)算法。
- protocol=tcp #指定协议的类型,LVS支持TCP和UDP协议。
- checktype=negotiate #指定Ldirectord的检测类型,默认为negotiate。
- checkport=80 #指定监控的端口号。
- virtualhost=www.ixdba.net #虚拟服务器的名称,随便指定。
5、 启动LVS集群服务
LVS负载均衡管理和使用有两种方式,这里以Piranha工具为主进行介绍。
首先,启动每个real server节点的服务:
- [root@localhost ~]# /etc/init.d/lvsrs start
- start LVS of REALServer
- 然后,在Director Server启动pulse服务:
- [root@DR1 ~]#/etc/init.d/pulse start
- [root@DR1 ~]#/ ipvsadm -L
- IP Virtual Server version 1.2.0 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 192.168.12.135:http rr persistent 600
- -> 192.168.12.246:http Route 1 3 22
- -> 192.168.12.237:http Route 1 9 10
此时查看pulse服务的系统日志信息如下:
- [root@localhost ~]# tail -f /var/log/messages
- Nov 22 15:52:55 lvs lvs[7031]: starting virtual service www.ixdba.net active: 80
- Nov 22 15:52:55 lvs lvs[7031]: create_monitor for www.ixdba.net/RS1 running as pid 7039
- Nov 22 15:52:55 lvs nanny[7039]: starting LVS client monitor for 192.168.12.135:80
- Nov 22 15:52:55 lvs lvs[7031]: create_monitor for www.ixdba.net/RS2 running as pid 7040
- Nov 22 15:52:55 lvs nanny[7039]: making 192.168.12.246:80 available
- Nov 22 15:52:55 lvs nanny[7040]: starting LVS client monitor for 192.168.12.135:80
- Nov 22 15:52:55 lvs nanny[7040]: making 192.168.12.237:80 available
从日志可以看出,pulse服务启动了一个www.ixdba.net的虚拟服务,同时加载了RS1和RS2两个节点,然后检测到RS1和RS2两个节点对应的80端口可用,最后启动了虚拟IP的80端口,对外提供服务。
日志中“www.ixdba.net”、“RS1”、“RS2”等标识均在Piranha的配置文件/etc/sysconfig/ha/lvs.cf中定义。
Pulse服务启动完毕,通过“ps –ef”命令可以看到有如下进程在运行:
- [root@localhost ~]# ps -ef|grep nanny
- /usr/sbin/nanny -c -h 192.168.12.246 -p 80 -s GET / HTTP/1.0\r\n\r\n -x HTTP -a 15 -I /
- /usr/sbin/nanny -c -h 192.168.12.237 -p 80 -s GET / HTTP/1.0\r\n\r\n -x HTTP -a 15 -I /
- 其中,nanny就是Pulse服务的守护进程,用于监控LVS服务节点的运行状态,类似与ldirectord的节点监控功能。
6、 LVS+Keepalived构建拓扑图:
7、安装Keepalived
keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,后来又加入了VRRP的功能,VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由出现的单点故障问题,它能够保证网络的不间断、稳定的运行。所以,keepalived一方面具有服务器健康检测功能,另一方面也具有HA cluster功能。
Keepalived的官方站点是http://www.keepalived.org,可以在这里下载到各种版本,我们这里下载的是keepalived-1.1.19.tar.gz,安装步骤如下:
- [root@DR1 ~]#tar zxvf keepalived-1.1.19.tar.gz
- [root@DR1 ~]#cd keepalived-1.1.19
- [root@DR1 keepalived-1.1.19]#./configure --sysconf=/etc \
- > --with-kernel-dir=/usr/src/kernels/2.6.18-8.el5-i686
- [root@DR1 keepalived-1.1.19]#make
- [root@DR1 keepalived-1.1.19]#make install
- [root@DR1 keepalived-1.1.19]#ln -s /usr/local/sbin/keepalived /sbin/
- #在编译选项中,“--sysconf”指定了Keepalived配置文件的安装路径,即路径为/etc/Keepalived/Keepalived.conf,“--with-kernel-dir”这是个很重要的参数,但这个参数并不
是要把Keepalived编译进内核,而是指定使用内核源码里面的头文件,就是include目录。如果要使用LVS时,才需要用到此参数,否则是不需要的。
8、配置Keepalived
Keepalived的配置非常简单,仅仅需要一个配置文件即可完成HA cluster和lvs服务节点监控功能,Keepalived的安装已经在上面章节进行了介绍,在通过Keepalived搭建高可用的LVS集群实例中,主、备Director Server都需要安装Keepalived软件,安装成功后,默认的配置文件路径为/etc/Keepalived/Keepalived.conf。一个完整的keepalived配置文件,有三个部分组成,分别是全局定义部分、vrrp实例定义部分以及虚拟服务器定义部分,下面详细介绍下这个配置文件中每个选项的详细含义和用法:
- #全局定义部分
- global_defs {
- notification_email {
- dba.gao@gmail.com #设置报警邮件地址,可以设置多个,每行一个。注意,如果要开启邮件报警,需要开启本机的sendmail服务。
- ixdba@163.com
- }
- notification_email_from Keepalived@localhost #设置邮件的发送地址。
- smtp_server 192.168.200.1 #设置smtp server地址。
- smtp_connect_timeout 30 #设置连接smtp服务器超时时间。
- router_id LVS_MASTER #运行Keepalived服务器的一个标识。发邮件时显示在邮件标题中的信息
- }
- #vrrp实例定义部分
- vrrp_instance VI_1 {
- state MASTER #指定Keepalived的角色,MASTER表示此主机是主用服务器,BACKUP表示是备用服务器。
- interface eth0 #指定HA监测网络的接口。
- virtual_router_id 51 #虚拟路由标识,这个标识是一个数字,并且同一个vrrp实例使用唯一的标识,即同一个vrrp_instance下,MASTER和BACKUP必须是一致的。
- priority 100 #定义优先级,数字越大,优先级越高,在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级。
- advert_int 1 #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒。
- authentication { #设定验证类型和密码。
- auth_type PASS #设置验证类型,主要有PASS和AH两种。
- auth_pass 1111 #设置验证密码,在一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信。
- }
- virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个。
- 192.168.12.135
- }
- }
- #虚拟服务器定义部分
- virtual_server 192.168.12.135 80 { #设置虚拟服务器,需要指定虚拟ip地址和服务端口,ip与端口之间用空格隔开。
- delay_loop 6 #设置健康检查时间,单位是秒。
- lb_algo rr #设置负载调度算法,这里设置为rr,即轮询算法。
- lb_kind DR #设置LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选。
- persistence_timeout 50 #会话保持时间,单位是秒,这个选项对于动态网页是非常有用的,为集群系统中session共享提供了一个很好的解决方案。
protocol TCP #指定转发协议类型,有tcp和udp两种。- real_server 192.168.12.246 80 { #配置服务节点1,需要指定real server的真实IP地址和端口,ip与端口之间用空格隔开。
- weight 3 #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高.
TCP_CHECK { #realserve的状态检测设置部分,单位是秒- connect_timeout 10 #10秒无响应超时
- nb_get_retry 3 #重试次数
- delay_before_retry 3 #重试间隔
- }
- }
- real_server 192.168.12.237 80 { #配置服务节点2
- weight 1
- TCP_CHECK {
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
- }
在配置Keepalived.conf时,需要特别注意配置文件的语法格式,因为Keepalived在启动时并不检测配置文件的正确性,即使没有配置文件,Keepalived也照样能启动起来,因而配置文件一定要正确。
在默认情况下,Keepalived在启动时会查找/etc/Keepalived/Keepalived.conf配置文件,如果你的配置文件放在了其它路径下,可以通过“Keepalived -f”参数指定你所在的配置文件路径即可。
Keepalived.conf配置完毕后,将此文件拷贝到备用Director Server对应的路径下,然后做两个简单的修改即可:
将“state MASTER”更改为“state BACKUP”
将priority 100更改为一个较小的值,这里改为“priority 80”
最后,还要配置集群的Real server节点,以达到与Director Server相互广播通信并忽略arp的目的,脚本的内容已经在上面进行介绍,这里不做解释。
9、启动Keepalived+lvs集群系统
在主、备Director Server上分别启动Keepalived服务,可以执行如操下作:
- [root@DR1 ~]#/etc/init.d/Keepalived start
接着在两个Real server上执行如下脚本:
- [root@rs1~]#/etc/init.d/lvsrs start
至此,Keepalived+lvs高可用的LVS集群系统已经运行起来了。
.
.
.
本文内容摘自华章教育:
通过LVS+Keepalived搭建高可用的负载均衡集群系统的更多相关文章
- haproxy + keepalived + mycat 高可用与负载均衡集群配置 centos7
架构如上,但是其实keepalived.haproxy.Mycat都可以多台(比如keepalived.haproxy.Mycat各3台,3台keepalived抢占vip,然后抢到vip的hapro ...
- LVS + Keepalived 实现高可用、负载均衡 Web 集群
简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...
- JMS之——ActiveMQ 高可用与负载均衡集群安装、配置(ZooKeeper + LevelDB + Static discovery)
一.说明 从 ActiveMQ 5.9 开始, ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于ZooKeeper + LevelDB 的 Master-Sla ...
- haproxy高可用、负载均衡集群
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G的并发.另外其支持从4层至7层的网络交换, ...
- LVS-DR:搭建HTTP和HTTPS负载均衡集群
目录 LVS-DR实战:搭建HTTP和HTTPS负载均衡集群 1. 搭建lvs-dr模式的http负载集群 1.1 LVS上配置IP 1.2 RS上配置arp内核参数 1.3 RS上配置VIP 1.4 ...
- LVS-NAT:搭建HTTP及HTTPS负载均衡集群
目录 LVS-NAT:搭建HTTP及HTTPS负载均衡集群 环境说明: 搭建NAT模式的HTTP负载集群 1. 配置好IP地址信息 2. DR上开启IP转发 3.DR上配置lvs-nat的转发机制 4 ...
- 超详细干货!Docker+PXC+Haproxy搭建高可用强一致性的MySQL集群
前言 干货又来了,全程无废话,可先看目录了解. MySQL搭建集群最常见的是binlog方式,但还有一种方式是强一致性的,能保证集群节点的数据一定能够同步成功,这种方式就是pxc,本篇就使用图文方式一 ...
- LVS+Keepalived搭建高可用负载均衡
应用环境: LVS负责多台WEB端的负载均衡(LB):Keepalived负责LVS的高可用(HA),这里介绍主备模型. 测试环境: 配置步骤: 1. 安装软件 在LVS-1和LVS-2两台主机上安装 ...
- 用NginX+keepalived实现高可用的负载均衡
Table of Contents 1 规划和准备 2 安装 3 配置 3.1 配置NginX 3.2 配置keepalived 3.3 让keepalived监控NginX的状态 4 还可以做什么 ...
随机推荐
- java-读取类中的属性名称和值
方法 /** * 获取类中的所有属性明名称和值(因涉及到可能会是继承关系的父类,所以从f中去属性名称,从f2中取值,两个可以一样,也可以使父类) * @param f:读取属性类(如果取父类的,则这里 ...
- WakeLock, AlarmManager, JobScheduler
应用程序耗电的实质,是所启用的硬件在消耗电量. 手机的耗电单元 CPU: 应用处理器(AP)和基带处理器(BB或BP) GPU(图形处理单元) 外设:wifi,BT, GPS,LCD等 AP是ARM架 ...
- AI,DM,ML,PR的区别与联系
数据挖掘和机器学习的区别和联系,周志华有一篇很好的论述<机器学习与数据挖掘>可以帮助大家理解.数据挖掘受到很多学科领域的影响,其中数据库.机器学习.统计学无疑影响最大.简言之,对数据挖掘而 ...
- here 文档
#!/usr/bin/perl -w use strict; my $someURL = 'http://www.perl.com'; my $html = <<EOF; # EOF 可以 ...
- 【BZOJ-1497】最大获利 最大流
1497: [NOI2006]最大获利 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 3800 Solved: 1848[Submit][Status] ...
- 遵循PSR-4的自动加载
一.简介 首先这里要了解PSR,Proposing a Standards Recommendation(提出标准建议)的缩写,就是一种PHP开发规范,让我们研发出来的代码更合理.更好维护.可读性更高 ...
- 移动端web app自适应布局探索与总结
要掌握的知识点: iphone6 屏幕尺寸为 375*667 (pt)也就是 网页 全屏显示时候 document.documentElement.clientWidth------可以理解为屏幕越大 ...
- Google Guava vs Apache Commons for Argument Validation
It is an established good practice to validate method arguments at the beginning of the method body. ...
- Oracle实例、用户、权限和角色
1.数据库的实例:数据库创建后会有一系列为该数据库提供服务的内存空间和后天进程,称为该数据库的实例.每一个数据库至少会有一个实例为其服务.实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机 ...
- 团队项目UML用例图
团队项目UML用例图