天天看点

keepalived基于LVS实现高可用,实现web服务的高可用

VRRP:Virtual Routing Redundent Protocal   虚拟路由冗余协议;能够将两个路由设备组织成一个虚拟路由;将多台

物理设备组合成一台虚拟路由

keepalived中的路由设备有两种工作模式:

                               抢占模式

                   非抢占模式

VRRP的主要目的:实现网关地址的漂移

现在流行的版本:VRRPv2 ARRPv3

一个备份组中,有一个主,master,多个从,slave

常用的是一主一从;当然可以实现一主多从的

master:

    选举协议

一主多从的工作机制:

优先级:1-254

在VRRP中,每一个虚拟路由组都有路由组ID

VRRP的工作机制:

例子:当有三个路由器时:假如为Virtual router1 ,Virtual router2,Virtual router3

可以实现三个虚拟路由组:

1、Virtual router1为主,Virtual router2,Virtual router3为从

2、Virtual router2为主,Virtual router1,Virtual router3为从

3、Virtual router3为主,virtual router1,Virtual router3为从

如图所示:

VRRP主要是实现地址漂移的

备份组;master   slave

在一个物理设备上,可以配置多个组,靠组ID来区别不同的组

keepalived设计的最初目的就是为LVS提供高可用功能的;属于多进程的工作模型

keepalived的功能:

            将IP地址转移到另一个节点上

转移ipvs规则(在另一个节点上重新生成并启动ipvs规则)

健康状况检查

keepalived:

    IP:VRRP

    lvs

    health check

keepalived以VRRP的方式工作

在keepalived中:

       --enable-vrrp要启用起来

--disabled-snmp要禁用

vrrp_instance:定义虚拟路由

安装keepalived实现高可用功能:

1、准备两个节点,在这两个节点上安装keepalived

从ftp上下载keepalived-1.2.7-5.el5.i386.rpm

然后安装:

# yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm

keepalived基于LVS实现高可用,实现web服务的高可用

好了,安装完成

2、实现LVS高可用

准备两个RS

使用RS脚本实现

把VIP改成所需要的IP

keepalived基于LVS实现高可用,实现web服务的高可用

给一个执行权限;

# chmod +x startrs.sh

# ./startrs.sh

然后把脚本传递给另一个节点,其过程一样;

配置realserver

改配置文件:

改之前,如图:

改之后,如图:

修改URL,状态码,等等,修改前如图:

keepalived基于LVS实现高可用,实现web服务的高可用

修改后:

keepalived基于LVS实现高可用,实现web服务的高可用

把realserver的地址改为自己需要用的地址

当然,有些修改可根据自己的需要;

另一个realserver的改法和第一个相似

把这个文件复制到另一个节点一份:

# scp keepalived.conf node2:/etc/keepalived/

然后打开修改

改之前,如图:

keepalived基于LVS实现高可用,实现web服务的高可用
keepalived基于LVS实现高可用,实现web服务的高可用

然后启动keepalived,两个都要启动

# service keepalived start

3、实现web服务的高可用

首先先把keepalived停掉,这时就用不上realserver了,要用两个节点

# service keepalived stop

# yum -y httpd

给两个节点各添加一个页面,并启动httpd

# vim /var/www/html/index.html

# service httpd start

如图所示可以访问:

然后配置keepalived

修改脚本名称,修改前,如图:

keepalived基于LVS实现高可用,实现web服务的高可用

修改后,如图:

keepalived基于LVS实现高可用,实现web服务的高可用

然后启动keepalived

# ifconfig

继续阅读