LVS+keepalived群集

devtools/2024/9/24 6:46:39/

        在这个高度信息化的 IT时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络服务。
        本文将学习如何使用 Keepalived实现双机热备,包括针对IP地址的故障切换,以及在LVS 高可用群集中的热备应用。

一、Keepalived基础知识

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

1.Keepalived概述

        Keepalived 采用 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案--由多台路由器组成一个热备组,通过共用的虚拟 IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。
        热备组内的每台路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移 IP地址。使用 Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如 ens33:0),而是由Keepalived 根据配置文件自动管理。

2.使用Keepalived实现双机热备

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

(1)主服务器的配置

Keepalived 服务的配置目录位于/etc/keepalived/。其中,keepalived.conf 是主配置文件。

[root@localhost~]#systemctl stop firewalld     //关闭防火墙
[root@localhost~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived,conf keepalived. conf. bak
[root@localhost keepalived]# vi keepalived.confglobal defs {router_id HA TEST R1                     //本路由器(服务器)的名称
}
vrrp_instance VI_l{                          //定义 VRRP 热备实例
state MASTER                                 //热备状态,MASTER 表示主服务器
interface ens33                              //承载 VIP 地址的物理接口
virtual_router_id l                          //虚拟路由器的 ID号,每个热备组保持一致
priority 100                                 //优先级,数值越大优先级越高
advert_int 1                                 //通告间隔秒数(心跳频率)
authentication {                             //认证信息,每个热备组保持一致auth type PASS                           //认证类型auth pass 123456                         //密码字串
}
virtual ipaddress{                           //指定漂移地址(VIP),可以有多个192.168.10.172
}
}

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

(2)备用服务器的配置

         在同一个Keepalived 热备组内,所有服务器的 Keepalived 配置文件基本相同,包括虚拟路由器的 ID号、认证信息、漂移地址、心跳频率等。不同之处主要在于路由器名称、热备状态、优先级。
        路由器名称(router _id):建议为每个参与热备的服务器指定不同的名称。
        热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为 BACKUP。
        优先级(priority):数值越大则取得 VIP 控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺 VIP 控制权时发生冲突。
        配置备用服务器(可以有多台)时,可以参考主服务器的keepalived.conf 配置文件内容只需修改路由器名称、热备状态、优先级。

[root@localhost~]# systemctl stop firewalld  //关闭防火墙
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf  keepalived.conf.bak
[root@localhost keepalived]# vi keepalived.conf
global defs {router id HA TEST R2                    //本路由器(服务器)的名称
}
vrrp instance VI_l{state BACKUP                            //热备状态,BACKUP表示备用服务器    priority 99                             //优先级,数值应低于主服务器

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

(3)测试双机热备功能

        连通性测试
        在客户机中执行“ping 192。168.10.172”命令,能够正常、持续 ping 通,根据以下
操作继续观察测试结果。
        停止启用主服务器的 Keepalived 服务,发现 ping 测试只中断了1或2个包即恢复正常,说明已有其他服务器接替VIP地址,并及时响应客户机请求。
        重新启用主服务器的 Keepalived 服务,发现 ping 测试再次中断1或2个包即恢复正常,说明主服务器已恢复正常,并夺回 VIP 地址的控制权。
        Web访问测试
        在客户机中访问 http://192.168.10.172/,将看到由主服务器 192.168.10.101 提供的网页文档。
        停止启用主服务器的Keepalived 服务,再次访问上述 Web 服务,将看到由备用服务器 192.168.10.104提供的网页文档,说明 VIP 地址已切换至备用服务器
        重新启用主服务器的Keepalived 服务,再次访问上述 Web 服务,将看到重新由主服务器 192.168.10.103提供的网页文档,说明主服务器已重新夺取 VIP 地址。

二、LVS+Keepalived高可用群集

        Keepalived 的设计目标是构建高可用的 LVS 负载均衡群集,可以调用 ipvsadm 工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。使用 Keepalived 构建 LVS 群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。
        在基于 LVS+Keepalived 实现的 LVS 群集结构中,至少包括两台热备的负载调度器,三台以上的节点服务器。本节将以 DR模式的 LVS 群集为基础,增加一台从负载调度器,使用Keepalived 来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的 LVS网站群集平台。
        使用 Keepalived 构建 LVS 群集时,也需要用到 ipvsadm 管理工具。但大部分工作会由Keepalived 自动完成,不需要手动执行 ipvsadm(除了查看和监控群集以外)。下面主要讲解 Keepalived 的服务器池设置。

1.配置主调度器 

(1)全局配置

        参考上文主服务器配置。

(2)Web服务器池配置

......                                        //省略部分信息
virtual server 192.168.10.172 80{             //虚拟服务器地址(VIP)、端口delay loop 15                             //健康检查的间隔时间(秒)lb algo rr                                //轮询(rr)调度算法lb kind DR                                //直接路由(DR)群集工作模式persistence 60                            //连接保持时间(秒),若启用请去掉protocol TCP                              //应用服务采用的是 TCP 协议    real server 192.168.10.103 80{            //第一个 Web 节点的地址、端口weight 1                              //节点的权重TCP CHECK {                           //健康检查方式connect_port 80                   //检查的目标端口connect_timeout 3                 //连接超时(秒)nb_get_retry 3                    //重试次数delay_before_retry 4              //重试间隔(秒)}}real server 192.168.10.104 80{            //第二个 Web 节点的地址、端口
......                                        //省略部分信息

2.配置从调度器

        参考上文备用服务器的设置

3.配置Web节点服务器

        根据所选择的群集工作模式不同(DR或NAT),节点服务器的配置也有些差异。以DR模式为例,除了需要调整/proc系统的ARP响应参数以外,还需要为虚拟接口lo:0配置VIP地址,并添加一条到VIP的本地路由。

4.测试LVS+Keepalived高可用群集

        在客户机的浏览器中,能够通过 LVS+Keepalived群集的 VIP地址(192.168.10.172)正常访问 Web 页面内容。当主、从调度器任何一个失效时,Web站点仍然可以访问(可能需要刷新或者重新打开浏览器);只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡。


http://www.ppmy.cn/devtools/58099.html

相关文章

【计算机】同步/异步

同步/异步 在计算机科学和编程中,“同步”(Synchronization)是一种机制,用于协调不同进程或线程之间的操作,以避免竞态条件(race conditions)、死锁(deadlocks)和其他并…

域名、网页、HTTP概述

目录 域名 概念 域名空间结构 域名注册 网页 概念 网站 主页 域名 HTTP URL URN URI HTML 超链接 发布 HTML HTML的结构 静态网页 特点 动态网页 特点 Web HTTP HTTP方法 GET方法 POST方法 HTTP状态码 生产环境下常见的HTTP状态码 域名 概念 IP地…

事件总线使用

创建一个eventBus.js import { reactive } from vue// 创建一个响应式的事件对象用于存储事件处理器 const eventBus reactive({})// 添加事件监听器的函数 function on(eventName, handler) {if (!eventBus[eventName]) {eventBus[eventName] []}eventBus[eventName].push(…

常见的设计模式

单例/工厂比较常见,不写了 1. 原型模式(Prototype Pattern) 定义:通过复制现有对象来创建新对象的一种方式,而不是通过实例化类。 适用场景: 当一个系统应该独立于它的产品创建、构成和表示时。要避免重…

虚拟机使用

1、安装 如何安装虚拟机?保姆级安装教程! - 知乎 (zhihu.com) 2、使用 2.1 快照 作用:保留当前系统信息为快照,随时可以恢复,以防未来系统被你玩坏,就好比游戏中的归档!每配置好一个就可以保…

Android与Java后端联调RSA加密的注意事项

项目中常常会遇到Android前端使用后端提供的公钥加密数据的场景。需要注意Java后端的java.util.Base64默认Base64标准和Android的android.util.Base64是不一样的。 此外,RSA算法标准也需要前后端显式约定。 示例代码: import android.util.Base64;impo…

Linux系统安装软件包的方法rpm和yum详解

起因: 本篇文章是记录学习Centos7的历程 关于rpm 常见命令 1)查看已经安装的软件包 rpm -q 软件包名 2)查看文件的相关信息 rpm -qi 软件包名 3)查看软件包的依赖关系 就是说要想安装这个软件包,就必须把一些前…

【AutoencoderKL】基于stable-diffusion-v1.4的vae对图像重构

模型地址:https://huggingface.co/CompVis/stable-diffusion-v1-4/tree/main/vae 主要参考:Using-Stable-Diffusion-VAE-to-encode-satellite-images sd1.4 vae 下载到本地 from diffusers import AutoencoderKL from PIL import Image import torch import to…