LVS+keepalived群集

一:Keepalived 双机热备基础知识

Keepalived 起初是专门针对LVS 设计的一款强大的辅助工具, 主要用来提供故障切换( Failover) 和健康检查( Health Checking )功能------判断LVS 负载调度器、节点服务器的可用性, 当master主机出现故障及时切换到backup节点保证业务正常, 当master 故障主机恢复后将其重新加入群集并且业务重新切换回master 节点。

1.1:Keepalived 概述及安装

  1. Keepalived 的热备方式

Keepalived 采用VRRP ( Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议, 以软件的方式实现L i nux 服务器的多机热备功能。VRRP 是针对路由器的一种备份解决方案------由多台路由器组成一个热备组,通过共用的虚拟IP 地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP 地址, 以继续提供服务, 如下图所示。

热备组内的每台路由器都可能成为主路由器, 虚拟路由器的IP 地址(VIP ) 可以在热备组内的路由器之间进行转移, 所以也称为漂移IP 地址。使用Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如ens33 : 0 ) , 而是由Keepal i ved 根据配置文件自动管理。

2 . Keepalived 的安装与服务控制

(1)安装Keepalived

在CentOS 7 系统中, 使用YUM 方式安装keepalived. x86_64 0 : 1. 2. 13-8. el 7, 会自动安装Keepal ived 所需的软件包。除此之外,在LVS 群集环境中应用时,也需要用到ipvsadm管理工具

[root@localhost ~]# yum -y install keepalived ipvsadm

1.2:使用Keepalived 实现双机热备

基于VRRP 的热备方式, Keepalived 可以用作服务器的故障切换, 每个热备组可以有多台服务器------当然, 最常用的就是双机热备了。在这种双机热备方案中, 故障切换主要针对虚拟IP 地址的漂移来实现, 因此能够适用千各种应用服务器( 不管是Web 、FTP 、Mail ,还是SSH、DNS ... ... )。

本小节将通过一个简单的案例来说明Keepal i ved 双机热备的配置方法。其中,主、备服务器的IP 地址分别为172 . 16. 16. 17 3 和172. 16. 1 6.174, 基千漂移地址1 72. 16. 16. 172提供Web 服务, 如下图所示。

1.主服务器的配置

Keepalived 服务的配置目录位于/et c/keepal ived/。其中, keepalived. conf是主配置文件。另外包括一个子目录samp les/ , 提供了许多配置样例作为参考。

在Keepalived 的配置文件中,使用"g lobal_de fs { ... }"区段指定全局参数, 使用"vrrp_ ins t ance 实例名称{ ...} "区段指定VRRP 热备参数,注释文字以"!"符号开头。

[root @localhost ~]# systemct l stop firewalld //关闭防火墙

[root @localhost ~]# cd /etc/keepalived/

[root @localhost keepalived]# cp keepalived.conf keepalived.conf .bak

[root@l ocalhost keepal i ved]# vi keepalived.conf

global_defs {

router_ i d HA_TEST_Rl

}

vrrp_inst ance VI_l { //定义VRRP 热备实例

state MASTER //热备状态, MASTER 表示主服务器

int erface ens33 //承载VIP 地址的物理接口

virtual_router_id 1 //虚拟路由器的ID 号,每个热备组保持一致

priority 100 //优先级,数值越大优先级越高

advert_int 1 //通告间隔秒数(心跳频率)

authentication { //认证信息,每个热备组保持一致

auth_ type PASS //认证类型

auth_pass 123456 //密码字串

}

virtual_ipaddress { //指定漂移地址(VIP),可以有多个

      1. 172

}

}

确认上述配置无误, 然后启动Keepalived 服务。实际状态为MASTER 的主服务器将为ens33 接口自动添加VIP 地址,通过ip命令可以查看。注意: ifconfig命令看不到。

  1. 备用服务器的配置

在同一个Keepa l i ved 热备组内, 所有服务器的Keepalived 配置文件基本相同, 包括虚拟路由器的ID 号、认证信息、漂移地址、心跳频率等。不同之处主要在于路由器名称、热备状态、优先级

► 路由器名称(router_i d ) : 建议为每个参与热备的服务器指定不同的名称。

► 热备状态( state ) : 至少应有一台主服务器, 将状态设为MASTER: 可以有多台备用的服务器, 将状态设为BACKUP 。

► 优先级(priority) : 数值越大则取得VIP 控制权的优先级越高, 因此主服务器的优先级应设为最高; 其他备用服务器的优先级可依次递减,但不要相同, 以免在争夺VIP 控制权时发生冲突。

配置备用服务器( 可以有多台)时,可以参考主服务器的keepalived. conf配置文件内容, 只需修改路由器名称、热备状态、优先级。

确认配置无误, 一样需要启动Keepalived 服务。此时主服务器仍然在线, VIP 地址实际上仍然由主服务器控制, 其他服务器处于备用状态。因此, 在备用服务器中将不会为ens33接口添加VIP 地址

  1. 测试双机热备功能

Keepalived 的日志消息保存在/var/log/messages 文件中, 在测试主、备故障自动切换功能时, 可以跟踪此日志文件来观察热备状态的变化。

二:LVS+Keepalived 高可用群集

Keepalived 的设计目标是构建高可用的LVS 负载均衡群集, 可以调用ipvsadm 工具来创建虚拟服务器、管理服务器池, 而不仅仅用作双机热备。使用Keepalived 构建LVS 群集更加简便易用, 主要优势体现在: 对LVS 负载调度器实现热备切换, 提高可用性;对服务器池中的节点进行健康检查, 自动移除失效节点, 恢复后再重新加入。

在基千LVS+Keepalived 实现的LVS 群集结构中, 至少包括两台热备的负载调度器, 三台以上的节点服务器。本节将以DR 模式的LVS 群集为基础,增加一台从负载调度器, 使用Keepalived 来实现主、从调度器的热备, 从而构建兼有负载均衡、高可用两种能力的LVS网站群集平台,如下图所示。

使用Keepalived 构建LVS 群集时,也需要用到ipvsadm 管理工具。但大部分工作会由Keepalived 自动完成,不需要手动执行ipvsadm ( 除了查看和监控群集以外)

相关推荐
九河云1 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
free7 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程7 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法