21
课程咨询 QQ3978248703335603751 _______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地 爱维 Linux 公开课 企业集群平台架构实现与应用实战 (LVS+keepalived 篇) 主讲人:南非蚂蚁

爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

  • Upload
    buitram

  • View
    239

  • Download
    15

Embed Size (px)

Citation preview

Page 1: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

爱维 Linux 公开课

企业集群平台架构实现与应用实战 (LVS+keepalived 篇)

主讲人:南非蚂蚁

Page 2: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

课程安排

LVS 集群常见架构图

基于 IP 的负载调度策略

LVS 负载调度算法与应用场景

通过 prianha 实现 LVS 高可用负载均衡集群

基于 keepalived 实现 LVS 高可用负载均衡集群

一、 LVS 集群常见架构图

数据

LAN/WAN

InternetUser

Load Balancer层

Shared Storage层

Real Server 3

Real Server 1

Real Server 2

Real Server N...

Director Server

Server Arrary层

数据 数据

Load Balancer 层:位于整个集群系统的最前端,由一台或多台负载调度器(Director

Server)组成。LVS 核心模板 IPVS 就安装在 Director Server上,而 Director 的主要作

用类似于一个路由器,它含有为完成 LVS 功能所设定的路由表,通过这些路由表把用户的

请求分发给 Server Array 层的应用服务器(Real Server)。同时,在 Director Server

上还要安装对 Real Server 的监控模块 Ldirectord,此模块用于监测各个 Real Server

服务的健康状况。在 Real Server不可用时可以把它从 LVS 路由表中剔除,在恢复时重新

加入。

Server Array 层:由一组实际运行应用服务的机器组成,Real Server 可以是 Web

Page 3: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

服务器、Mail服务器、FTP服务器、DNS 服务器、视频服务器中的一个或多个,每个 Real

Server 之间通过高速的 LAN 或分布在各地的 WAN 相连接。在实际的应用中,Director

Server 也可以同时兼任 Real Server 的角色。

Shared Storage 层:是为所有 Real Server 提供共享存储空间和内容一致性的存储

区域,一般由磁盘阵列设备组成。,为了提供内容的一致性,一般可以通过 NFS网络文件系

统共享数据,但是 NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系

统,例如 Red hat 的 GFS 文件系统,Oracle 提供的OCFS2 文件系统等。

从整个 LVS 结构可以看出,Director Server是整个 LVS 的核心,目前,用于 Director

Server的操作系统只有Linux和FreeBSD,Linux 2.6内核完全内置了LVS 的各个模块,

不用任何设置就可以支持 LVS 功能。

对于 Real Server,几乎所有的系统平台,Linux、Windows、Solaris、AIX、BSD

系列都能很好地支持。

二、负载调度算法

负载均衡技术有很多实现方案,有基于 DNS 域名轮流解析的方法、有基于客户端调度

访问的方法、有基于应用层系统负载的调度方法,还有基于 IP 地址的调度方法,在这些负

载调度算法中,执行效率最高的是 IP 负载均衡技术。

LVS 的 IP 负载均衡技术是通过 IPVS 模块来实现的,IPVS 是 LVS集群系统的核心软

件,它的主要作用是:安装在 Director Server 上,同时在 Director Server上虚拟出一

个 IP 地址,用户必须通过这个虚拟的 IP 地址访问服务器。这个虚拟 IP 一般称为 LVS 的

VIP,即 Virtual IP。访问的请求首先经过 VIP 到达负载调度器,然后由负载调度器从 Real

Server 列表中选取一个服务节点响应用户的请求。

在用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的 Real Server

节点,而 Real Server节点如何返回数据给用户,是 IPVS 实现的重点技术。IPVS 实现负

载均衡的方式有三种,分别是NAT(FULL NAT)、TUN 和 DR,下面进行详细介绍。

三、DR 模式

下面是 DR 模式数据传输图:

Page 4: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

DR 模式: 即 Virtual Server via Direct Routing,也就是用直接路由技术实现虚拟

服务器。这种方式的连接调度和管理与前两种一样,但它的报文转发方法又有所不同,

VS/DR 通过改写请求报文的 MAC 地址,将请求发送到 Real Server,而 Real Server 将

响应直接返回给客户,免去了 VS/TUN 中的 IP 隧道开销。这种方式是三种负载调度方式中

性能最好的。

下面是 DR 模式 IP 包调度过程图:

Page 5: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

INTERNET

Client

LB负载均衡

Realserver1 Realserver2

CIP

目的IP源IP 端口

VIP 80

CIP

DIP

CIP

目的IP源IP 端口

VIP 80

目标MAC

LB-MAC

CIP

目的IP源IP 端口

VIP 80

目标MAC

RS-MAC

CIP

目的IP源IP 端口

VIP 80

目标MAC

RS-MAC

VIP

目的IP源IP 端口

CIP 80

1

2

3

4

5

原理图简述:

DR 模式将报文直接路由给目标真实服务器。在 DR 模式中,调度器根据各个真实服务

器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标 IP 地址和目标端口,

也不封装 IP 报文,而是将请求报文的数据帧的目标 MAC 地址改为真实服务器的 MAC 地址。

然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的 MAC 地址是真实服务器

的 MAC 地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够

收到由 LB 发出的数据包。真实服务器接收到请求数据包的时候,解开 IP 包头查看到的目标

IP 是 VIP。

此时只有自己的 IP 符合目标 IP 才会接收进来,所以我们需要在本地的回环借口上面配

置 VIP。另:由于网络接口都会进行 ARP 广播响应,但集群的其他机器都有这个 VIP 的 lo 接

口,都响应就会冲突。所以我们需要把真实服务器的 lo 接口的 ARP 响应关闭掉。

然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客

户,并且源 IP 地址还是 VIP。

DR 模式小结:

1、通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP,目的

地址仍然是 VIP 地址。

2、请求的报文经过调度器,而 RS 响应处理后的报文无需经过调度器 LB,因此并发访问量

Page 6: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

大时使用效率很高(和 NAT 模式比)

3、因为 DR 模式是通过 MAC 地址改写机制实现转发,因此所有 RS 节点和调度器 LB 只能在

一个局域网里面

4、RS 主机需要绑定 VIP 地址在 LO 接口上,并且需要配置 ARP 抑制。

5、RS 节点的默认网关不需要配置成 LB,而是直接配置为上级路由的网关,能让 RS 直接出

网就可以。

6、由于 DR 模式的调度器仅做 MAC 地址的改写,所以调度器 LB 就不能改写目标端口,那

么 RS 服务器就得使用和 VIP 相同的端口提供服务。

四、 NAT/FULL NAT 模式

NAT 模式: 即 Virtual Server via Network Address Translation,也就是网络地

址翻译技术实现虚拟服务器。当用户请求到达调度器时,调度器将请求报文的目标地址(即

虚拟 IP 地址)改写成选定的 Real Server 地址,同时将报文的目标端口也改成选定的 Real

Server 的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,

Page 7: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

Real Server 将数据返回给用户时,需要再次经过负载调度器将报文的源地址和源端口改

成虚拟 IP 地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。

下面是 NAT 模式 IP 包调度过程图:

INTERNET

Client

LB负载均衡

Realserver1 Realserver2

CIP

目的IP源IP 端口

VIP 80

CIP

DIP

CIP

目的IP源IP 端口

RIP2 8000

RIP2

目的IP源IP 端口

VIP 80

VIP

目的IP源IP 端口

CIP 80

1

2

3

4

原理图简述:

1、客户端请求数据,目标 IP 为 VIP

2、请求数据到达 LB 服务器,LB 根据调度算法将目的地址修改为 RIP 地址及对应端口(此

RIP 地址是根据调度算法得出的。)并在连接 HASH 表中记录下这个连接。

3、数据包从 LB 服务器到达 RS 服务器 webserver,然后 webserver 进行响应。Webserver 的

网关必须是 LB,然后将数据返回给 LB 服务器。

4、收到 RS 的返回后的数据,根据连接 HASH 表修改源地址为 VIP、目标地址为 CIP,及对应

端口 80.然后数据就从 LB 出发到达客户端。

5、客户端收到的就只能看到 VIP\DIP 信息。

NAT 模式优缺点:

1、NAT 技术将请求的报文和响应的报文都需要通过 LB 进行地址改写,因此网站访问量比较

Page 8: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

大的时候 LB 负载均衡调度器有比较大的瓶颈,一般要求最多之能 10-20 台节点

2、只需要在 LB 上配置一个公网 IP 地址就可以了。

3、每台内部的 realserver 服务器的网关地址必须是调度器 LB 的内网地址。

4、NAT 模式支持对 IP 地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不

一致。

FULL NAT 模式

FULL NATT 的基本原理:

FULL NAT 在 client 请求 VIP 时,不仅替换了 package 的 dst ip,还替换了 package 的 src

ip;但 VIP 返回给 client 时也替换了 src ip。

INTERNET

Client

LB负载均衡

Realserver1 Realserver2

CIP

目的IP源IP 端口

VIP 80

CIP

DIP

DIP

目的IP源IP 端口

RIP2 8000

RIP2

目的IP源IP 端口

DIP 80

VIP

目的IP源IP 端口

CIP 80

1

2

3

4

(1)、首先 client 发送请求 package 给 VIP;

(2)、 VIP 收到 package 后,会根据 LVS 设置的 LB 算法选择一个合适的 realserver,然后把

package 的 DST IP 修改为 realserver IP;把 sorce ip 改成 lvs 集群的 LB IP

(3)、 realserver 收到这个 package 后判断 dst ip 是自己,就处理这个 package ,处理完后把

这个包发送给 LVS LB IP。

(4)、 LVS 收到这个 package 后把 sorce ip 改成VIP的 IP,dst ip 改成 client ip 然后发送给 client

Page 9: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

FULL NAT 模式的注意事项:

FULL NAT 模式也不需要 LBIP 和 realserver ip 在同一个网段;

full nat 跟 nat 相比的优点是:保证 RS 回包一定能够回到 LVS;因为源地址就是 LVS--> 不确

full nat 因为要更新 sorce ip 所以性能正常比 nat 模式下降 10%

五、IP TUNNEL 模式

TUN :即 Virtual Server via IP Tunneling 也就是通过 IP 隧道技术实现虚拟服务

器。在 VS/TUN 方式中,调度器采用 IP 隧道技术将用户请求转发到某个 Real Server,而

这个 Real Server 将直接响应用户的请求,不再经过前端调度器。此外,对Real Server

的地域位置没有要求,可以和 Director Server 位于同一个网段,也可以在独立的一个网

络中。因此,在 TUN方式中,调度器将只处理用户的报文请求,从而使集群系统的吞吐量

Page 10: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

大大提高。

TUN 的工作流程图如下所示:

INTERNET

Client

LB负载均衡

Realserver1 Realserver2

CIP

目的IP源IP 端口

VIP 80

CIP

DIP

CIP

目的IP源IP 端口

VIP 80

目标MAC

LB-MAC

CIP

目的IP源IP 端口

VIP 80

T-IP

T-IP

VIP

目的IP源IP 端口

CIP 80

1

2

3

4

5

IP TUNNEL

CIP

目的IP源IP 端口

VIP 80

它和 NAT 模式不同的是,它在 LB 和 RS 之间的传输不用改写 IP 地址。而是把客户请求

包封装在一个 IP tunnel 里面,然后发送给 RS 节点服务器,节点服务器接收到之后解开 IP

tunnel 后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过 LB 服务

器。

原理图过程简述:

1、客户请求数据包,目标地址 VIP 发送到 LB 上。

2、LB 接收到客户请求包,进行 IP Tunnel 封装。即在原有的包头加上 IP Tunnel 的包头。然

后会根据 LVS 设置的 LB 算法选择一个合适的 realserver;并把 client 发送的 package 包装到

一个新的 IP 包里面;新的 IP 包的 dst 是 realserver 的 IP。

3、RS 节点服务器根据 IP Tunnel 包头信息收到请求包,realserver 收到这个 package 后判断

dst ip 是自己,然后解析出来的 package 的 dst 是 VIP;会检测我们的网卡上是否绑定了 VIP

的 ip地址;如果绑定了就会处理这个包,如果没有直接丢掉。 我们一般在 realserver 上面 lo:0

绑定了 VIP 的 ip 地址,就可以处理得到客户的请求包并进行响应处理。

4、响应处理完毕之后,RS 服务器使用自己的公网线路将这个响应数据包发送给客户端。源

IP 地址是 VIP 地址。

Page 11: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

IP TUNNEL 模式的注意事项:

TUNNEL 模式必须在所有的 realserver 机器上面绑定 VIP 的 IP 地址

TUNNEL 模式的 vip ------>realserver 的包通信通过 TUNNEL 模式,不管是内网和外网都能通

信,所以不需要 lvs vip 跟 realserver 在同一个网段内

TUNNEL 模式 realserver 会把 packet 直接发给 client 不会给 lvs 了

TUNNEL 模式走的隧道模式,所以运维起来比较难,所以一般不用。

六、LVS 负载调度算法

Lvs 的调度算法决定了如何在集群节点之间分布工作负荷。当 director调度器收到来

自客户端访问 VIP的上的集群服务的入站请求时,director调度器必须决定哪个集群节点

应该处理请求。Director调度器用的调度方法基本分为两类:

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lc,lblc,lblcr

算法 说明

rr 轮询算法,它将请求依次分配给不同的 rs节点,也就是 RS节点中均摊分配。这种算法简

单,但只适合于 RS节点处理性能差不多的情况

wrr 加权轮训调度,它将依据不同 RS的权值分配任务。权值较高的 RS将优先获得任务,并且

分配到的连接数将比权值低的 RS更多。相同权值的 RS得到相同数目的连接数。

Wlc 加权最小连接数调度,假设各台 RS 的全职依次为 Wi,当前 tcp 连接数依次为 Ti,依次去

Ti/Wi为最小的 RS作为下一个分配的 RS

Dh 目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态 hash表来

获得需要的 RS

SH 源地址哈希调度(source hashing)以源地址为关键字查找一个静态 hash表来获得需要的

RS

Lc 最小连接数调度(least-connection),IPVS 表存储了所有活动的连接。LB会比较将连接

请求发送到当前连接最少的 RS.

Lblc 基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地

址的请求分配给同一台 RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连

接数最小的 RS,并以它作为下一次分配的首先考虑。

LVS 调度算法的生产环境选型:

1、一般的网络服务,如 www,mail,mysql 等常用的 LVS 调度算法为:

a.基本轮询调度 rr

b.加权最小连接调度 wlc

c.加权轮询调度 wrc

Page 12: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

2、基于局部性的最小连接 lblc 和带复制的给予局部性最小连接 lblcr 主要适用于 web

cache 和 DB cache

3、源地址散列调度 SH 和目标地址散列调度 DH可以结合使用在防火墙集群中,可以保

证整个系统的出入口唯一。

实际适用中这些算法的适用范围很多,工作中最好参考内核中的连接调度算法的实现原

理,然后根据具体的业务需求合理的选型。

七、高可用 LVS 集群构建实战

高可用架构图:

共享数据

LAN/WAN

Shared Storage层

Real Server 2Real Server 1

Server Arrary层

User

通过eth1进行心跳监控

主 Director Server 备用 Director Server

Internet

route

HA Load Balancer层

Public IP:192.168.12.130

private IP:10.10.10.1

Virtual IP:192.168.12.200

Public IP:192.168.12.131

private IP:10.10.10.2

Public IP:192.168.12.133

Virtual IP:192.168.12.200

Public IP:192.168.12.132

Virtual IP:192.168.12.200

磁盘阵列存储

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

piranha是 REDHAT 提供的一个基于 Web 的 LVS 配置软件,通过 piranha可以省去手工

配置 LVS 的繁琐工作;同时,piranha也可以单独提供集群功能,例如,可以通过 piranha激

活 Director Server 的备用主机。这里利用piranha来配置 Director Server 的双机热备功能。

1.安装与配置piranha

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

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

Page 13: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

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 界面配置此文件,也可以直接手动编辑此文件。编辑好的 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 #是否开启心跳,1表示开启,0表示不开启

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

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

deadtime = 10 #如果主 Director Server在 deadtime(秒)后没有响应,那么备份

#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\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 服务。如果选择了

Page 14: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

#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

Page 15: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

;;

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

7.2 通过 Keepalived搭建 LVS高可用性集群系统

1、安装 keepalived+ipvsadm 环境

[root@host236 ~]# yum install ipvsadm keepalived

Page 16: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

2.配置 Keepalived

Keepalived 的配置非常简单,仅需要一个配置文件即可完成对 HA cluster 和 LVS 服务节

点监控。Keepalived 的安装已经在前面介绍过,在通过 Keepalived 搭建高可用的 LVS 集群实

例中,主、备 Director Server 都需要安装 Keepalived 软件,安装成功后,默认的配置文件

路径为/etc/Keepalived/Keepalived.conf。一个完整的 keepalived 配置文件由三个部分组

成,分别是全局定义部分、vrrp 实例定义部分以及虚拟服务器定义部分,下面详细介绍这个配

置文件中每个选项的详细含义和用法。

! Configuration File for keepalived

#全局定义部分

global_defs {

notification_email {

[email protected] #设置报警邮件地址,可以设置多个,

#每行一个。注意,如果要开启邮件报警,

#需要开启本机的 Sendmail 服务

[email protected]

}

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 下,MASTER 和

#BACKUP 必须是一致的

priority 100 #定义优先级,数字越大,优先级越高。

#在一个 vrrp_instance 下,MASTER 的

#优先级必须大于 BACKUP 的优先级

advert_int 1 #设定 MASTER 与 BACKUP 负载均衡器之

#间同步检查的时间间隔,单位是秒

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

Page 17: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

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

auth_pass 1111 #设置验证密码,在一个 vrrp_instance 下,

#MASTER 与 BACKUP 必须使用相同的密码

#才能正常通信

}

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 实现负载均衡的机制,有 NAT、TUN

#和 DR 三个模式可选

persistence_timeout 50 #会话保持时间,单位是秒。这个选项对动态

#网页是非常有用的,为集群系统中的 session 共享

#提供了一个很好的解决方案。有了这个会话保持

#功能,用户的请求会被一直分发到某个服务节点,

#直到超过这个会话的保持时间。需要注意的是,

#这个会话保持时间是最大无响应超时时间,

#也就是说,用户在操作动态页面时,如果在 50

#秒内没有执行任何操作,那么接下来的操作会被

#分发到另外节点,但是如果用户一直在操作动态

#页面,则不受 50 秒的时间限制

protocol TCP #指定转发协议类型,有 TCP 和 UDP 两种

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 #表示重试间隔

}

}

real_server 192.168.12.133 80 { #配置服务节点 2

Page 18: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

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”

3.配置 Real server 节点

与heartbeat+LVS类似,Keepalived+LVS也需要为Real server节点配置相关的脚本,

以达到与 Director Server 相互通信的目的,脚本的内容已经在前面介绍过,这里不在讲述。

4.启动 Keepalived+LVS 集群系统

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

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

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

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

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

Page 19: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

下期公开课预告

主题:企业常见集群应用架构(keepalived/lvs/haproxy)实战

内容:

1、 常见的集群架构与集群应用技术

2、 基于 haproxy 的负载均衡集群应用案例

3、 高可用集群 keepalived 与负载均衡集群 haproxy 的整合实战

参与方式:

加入 Linux 运维专家(134896298),然后关注群公告,每周会定期进行公开课技术分享,具体开课

时间会进行提前通知,欢迎大家届时参加。

参与方式:打开爱维 Linux 腾讯课埻:http://ke.qq.com/course/117291,点击报名,即可免费参

加,如果你没来及参加线上直播,那么可以通过访问爱维 Linux 交流论坛:http://i.iivey.com/ 观看公开

课的录播视频。

Page 20: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

爱维 Linux 实战培训

爱维 Linux,专注与 Linux 运维实战教育,课程涉及 Linux 运维、集群架构、

大数据、虚拟化等;所有授课教师都来自企业一线,确保学员能能够学习到最优

质的课程和最好的学习体验!

开班介绍

爱维 Linux,专注 Linux 运维实战教育,我们开设了两个班级:

高薪运维入门提高班 详情:http://www.iivey.com/666-2

高薪运维实战提升班 详情:http://www.iivey.com/archives/66

授课模式

课程汇聚了以南非蚂蚁领衔的行业顶尖技术专家 10 年一线工作经验和培训

心得,课程由浅入深,循序渐进,能够帮助学员们系统学习 Linux 一线经验,并

迅速掌握 Linux 的各种应用技能。

我们的授课方法:

直播+录播+理论结合实际+实战技巧+经验分享+实时互动+专业学习教材

开课时间

实战提高班将在 5 月份开课, 4 个月的授课时间,现在实战提高班接受报

名,有意向的朊友可通过如下方式联系我们:

QQ:397824870(蚂蚁老师) 3335603751(章老师) 18966929688(王老师)

微信:ixdba8

爱维 Linux 学习交流群:134895190

Page 21: 爱维 Linux 公开课 企业集群平台架构实现与应用实战img.bss.csdn.net/026689fa9b7ffd70dd04ffb7660eb232.pdf · 统,例如Red hat 的GFS文件系统,Oracle 提供的OCFS2文件系统等。

课程咨询 QQ:397824870、3335603751

_______________________________________________________________________________ 爱维 Linux,实战类技能培训第一品牌 专业 Linux 运维人才培养基地

课程下载:

百度网盘:

http://yun.baidu.com/share/link?shareid=1471417839&uk=4245145857

360 云盘:https://yunpan.cn/OcY6DdsPd53vBI (提取码:0ca8)

在线观看:http://edu.csdn.net/agency/index/187