开发者学堂课程【企业集群平台架构设计与实现:lvs/haproxy/keepalived:企业集群平台架构设计与实现lvs篇3(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/391/detail/5011
企业集群平台架构设计与实现lvs篇3(二)
内容介绍:
一、通过Keepalived搭建LVS高可用性集群系统
一、通过Keepalived搭建LVS高可用性集群系统
1.安装 keepalived+ipvsadm环境
直接通过yum安装两个包,核心的负载调度功能是ipvm来实现
[root@host236~]# yum install ipvsadm keeralived
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 {
dba.gao@gmail.com
#设置报警邮件地址,可以设置多个,
#每行一个。注意,如果要开启邮件报警,
#需要开启本机的 Sendmail 服务
ixdba@163.com
}
#设置邮件的发送地址
notification_email_from Keepalived@localhost smtp_server 192.168.200.1
#设置 smtp server 地址
#设置连接 smtp server 的超时时间
smtp_connect_timeout 30
#表示运行Keepalived 服务器的一个
router_id LVS_DEVEL
#标识。发邮件时显示在邮件主题中的信息
}
#vrrp 实例定义部分,定义角色值,默认情况下主用机器的话是master
vrrp_instance Vi__1{
#指定 Keepalived 的角色,MASTER 表示
state MASTER
# 此主机是主服务器,BACKUP 表示
#此主机是备用服务器
#指定 HA 监测网络的接口
interface ethO
#虚拟路由标识,这个标识是一个数字
virtual_router_id 51
#同一个 vrrp 实例使用唯一的标识,
#即同一个vrrp instance 下,MASTER和#BACKUP 必须是一致的
#定义优先级,数字越大,优先级越高。
priority 100
#在一个 vrrp_instance 下,MASTER的
#优先级必须大于 BACKUP 的优先级
#设定 MASTER与 BACKUP 负载均衡器
advert_int 1
#间同步检查的时间间隔,单位是秒
authentication {
#设定验证类型和密码
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
#设置健康检查的时间间隔,单位是秒
Ib_algo rr
#设置负载调度算法,这里设置为 rr,即轮询算法
Ib_kind DR
#设置 LVS 实现负载均衡的机制,有NAT、TUN
#和 DR 三个模式可选
persistence_timeout 50
#会话保持时间,单位是秒。这个选项对动态
#网页是非常有用的,为集群系统中的 session 共享
#提供了一个很好的解决方案。有了这个会话保持
#功能,用户的请求会被一一直分发到某个服务节点,
#直到超过这个会话的保持时间。需要注意的是,
#这个会话保持时间是最大无响应超时时间,
#也就是说,用户在操作动态页面时,如果在 50
#分发到另外节点,但是如果用户一一直在操作动态
#页面,则不受 5O秒的时间限制
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_server192.168.12.133 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"
3.配置 Realserver 节点
与 heartbeat+LVS 类似,Keepalived+LVS 也需要为 Real server节点配置相关的脚本,以达到与 Director Serve 相互通信的目的,脚本的内容已经在前面介绍过,这里不在讲述。
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 集群系统已经运行起来了。