第 4 章 使用 Keepalived 初始负载均衡器配置
安装 Load Balancer 软件包后,您必须执行一些基本步骤来设置 LVS 路由器和实际服务器以用于 Keepalived。本章详细介绍了这些初始步骤。
4.1. 基本 Keepalived 配置 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在这个基本示例中,两个系统配置为负载平衡器。LB1 (Active)和 LB2 (Backup)将对运行 httpd 的四个 Web 服务器池的路由请求路由到 httpd,其中实际 IP 地址为 192.168.1.20 到 192.168.1.24,共享虚拟 IP 地址 10.0.0.1。每个负载均衡器有两个接口(
eth0 和 eth1),一个用于处理外部互联网流量,另一个用于将请求路由到真实服务器。使用的负载平衡算法是 round Robin,路由方法将是网络地址转换。
4.1.1. 创建 keapalived.conf 文件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
keepalived 通过配置为负载均衡器的每个系统中的
keepalived.conf 文件进行配置。要创建类似 第 4.1 节 “基本 Keepalived 配置” 所示的负载均衡器拓扑,请使用文本编辑器在活跃和备份负载均衡器(LB1 和 LB2)中打开 keepalived.conf。例如:
vi /etc/keepalived/keepalived.conf
vi /etc/keepalived/keepalived.conf
一个带有配置的基本负载均衡系统,如 第 4.1 节 “基本 Keepalived 配置” 所述,它有一个
keepalived.conf 文件,如以下代码部分所述。在本例中,keepalived.conf 文件在活动和备份路由器上相同,但 VRRP 实例除外,如 所述 第 4.1.1.2 节 “VRRP 实例”
4.1.1.1. 全局定义 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
keepalived.conf 文件的 Global Definitions 部分允许管理员在发生负载均衡器更改时指定通知详情。请注意,全局定义是可选的,对于 Keepalived 配置不需要。keepalived.conf 文件的这一部分在 LB1 和 LB2 上都相同。
notification_email 是负载均衡器的管理员,而 notification_email_from 是一个发送负载均衡器状态更改的地址。SMTP 特定配置指定从中发送通知的邮件服务器。
4.1.1.2. VRRP 实例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
以下示例显示了 master 路由器和备份路由器中的
keeplalived.conf 文件的 vrrp_sync_group 小节。请注意,state 和 priority 值在两个系统之间有所不同。
以下示例显示了 LB1 中
keepalived.conf 文件的 vrrp_sync_group 小节,即 master 路由器。
以下示例显示了 LB2 的
keepalived.conf 文件的 vrrp_sync_group 小节,即备份路由器。
在这些示例中,
vrrp_sync_group 小节定义了通过任何状态更改(如 failover)来保持在一起的 VRRP 组。为与互联网通信的外部接口定义了一个实例(RH_EXT),也为内部接口(RH_INT)定义了一个实例。
vrrp_instance 行详细说明了 VRRP 服务守护进程的虚拟接口配置,它会创建虚拟 IP 实例。MASTER 状态指定活动服务器 ,状态 BACKUP 指定备份服务器。
interface 参数将物理接口名称分配给这一特定的虚拟 IP 实例。
virtual_router_id 是虚拟路由器实例的数字标识符。它在所有参与此虚拟路由器的 LVS 路由器系统上必须相同。它用于区分在同一网络接口中运行的 keepalived 实例。
优先级指定分配接口在故障切换中接管的顺序 ;数值越大,优先级越高。此优先级值必须在 0 到 255 范围内,并且配置为 状态 MASTER 的 Load Balancing 服务器的优先级值应设置为比配置为 状态 BACKUP 的优先级值高的值。
身份验证块指定身份验证类型 (auth_type)和密码(auth_pass),用于验证服务器以进行故障转移同步。PASS 指定密码身份验证;Keepalived 还支持 AH 或身份验证标头来实现连接完整性。
最后,virtual_ipaddress 选项指定接口虚拟 IP 地址。
4.1.1.3. 虚拟服务器定义 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
keepalived.conf 文件的 Virtual Server definitions 部分在 LB1 和 LB2 上都相同。
在此块中,virtual_server 首先使用 IP 地址配置。然后,delay_loop 配置健康检查之间的时间(以秒为单位)。lb_algo 选项指定用于可用性的算法类型(本例中为 r-Robin;对于可能的 lb_algo 值列表,请参阅 表 4.1 “适用于虚拟服务器的 lv_algo 值”)。lb_kind 选项决定路由方法,本例中使用了网络地址转换(ornat)。
配置虚拟服务器详细信息后,将再次通过首先指定 IP 地址来配置
real_server 选项。TCP_CHECK 小节使用 TCP 检查实际服务器的可用性。connect_timeout 以秒为单位配置超时前的时间。
注意
不支持从负载均衡器或其中一个实际服务器访问虚拟 IP。同样,不支持在与真实服务器相同的计算机上配置负载平衡器。
| 算法名称 | lv_algo 值 |
|---|---|
|
round-Robin
| rr
|
|
加权 round-Robin
| wrr
|
|
minimum-Connection
| lc
|
|
加权 Least-Connection
| wlc
|
|
基于本地性的 Least-Connection
| lblc
|
|
使用复制基于本地的 Least-Connection 计划
| lblcr
|
|
目标哈希
| dh
|
|
源哈希
| sh
|
|
源预期 Delay
| sed
|
|
Never Queue
| nq
|