LVS+Keepalived群集

2023-11-06

Keeoalived 工具介绍

专门为LVS 和 HA 设计的一款健康检查工具

专为LVS和HA设计的一款健康检查工具,支持故障自动切换(Failover)以及节点健康状态检查(Health Checking)。判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到 backup 节点保证业务正常,当 master故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

支持故障自动切换
支持节点的健康状态检查

1、keepalived 实现原理剖析

keepalived 采用VRRP热备份协议实现Linux 服务器的多机热备功能

2、VRRP (虚拟路由冗余协议)是指对路由器的一种备份解决方案

由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务

每个热备组内同时只有一台主路由器提供服务,其他路由器处于几余状态

若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

3、keepalived 案例讲解

双机热备的故障切换是由虚拟IP地址的飘逸来实现,使用于各种应用服务器

实现基于web 服务的双机热备

飘移地址:192.168.10.72
主,备服务器:192.168.10.73、192.168.10.74
提供的应用服务:web

4、keepalived 的安装与启动

在LVS 群集环境中应用时,也需要ipvsadm 管理工具

使用yum 进行安装 keepalived

启动keepalived 服务

Keepalived及其工作原理

Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。

在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP(VIP),主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

Keepalived体系主要模块及其作用

keepalived体系架构中主要有三个模块,分别是core、check和vrrp

●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。

●vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换)

●check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)

判断服务器主备,及如何配置浮动IP

Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器。
然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务器。
优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址。

keepalived的抢占与非抢占模式

抢占模式:MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。
非抢占模式:MASTER恢复后不抢占BACKUP升级为MASTER后的VIP
非抢占式俩节点state必须为bakcup,且必须配置nopreempt。
注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了。

部署LVS+keepalived

主DR 服务器:192.168.47.100

备DR 服务器:192.168.47.60

web1服务器:192.168.47.30

web1服务器:192.168.47.50

VIP : 192.168.47.188

客户端:192.168.47.200

1.配置负载调度器(主、备相同)

systemctl stop firewalld.service
setenforce 0

yum -y install ipvsadm keepalived #安装服务
modprobe ip_vs                    #开启ipvsadm服务
cat /proc/net/ip_vs

配置keepalived(主备DR服务器都要设置)

cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs {						#定义全局参数
--10行--修改,邮件服务指向本地
	smtp_server 127.0.0.1
--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
	router_id LVS_01
--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
	#vrrp_strict
}

vrrp_instance VI_1 {				#定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
    state MASTER
--21行--修改,指定承载vip地址的物理接口
    interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
    virtual_router_id 10
	#nopreempt		#如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt
--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
    priority 100
    advert_int 1					#通告间隔秒数(心跳频率)
    authentication {				#定义认证信息,每个热备组保持一致
		auth_type PASS				#认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass abc123
    }
    virtual_ipaddress {				#指定群集vip地址
        192.168.47.188
    }
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.47.188 80 {
    delay_loop 6					#健康检查的间隔时间(秒)
    lb_algo rr						#指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
    lb_kind DR
    persistence_timeout 0			#连接保持时间(秒)
    protocol TCP					#应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
    real_server 192.168.47.30 80 {
        weight 1					#节点的权重
--45行--删除,添加以下健康检查方式		
        TCP_CHECK {
			connect_port 80			#添加检查的目标端口
			connect_timeout 3		#添加连接超时(秒)
			nb_get_retry 3			#添加重试次数
			delay_before_retry 3	#添加重试间隔
		}
	}

	real_server 192.168.47.50 80 {		#添加第二个 Web节点的地址、端口
        weight 1
        TCP_CHECK {
			connect_port 80
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		}
	}
##删除后面多余的配置##
}


systemctl start keepalived
ip addr						#查看虚拟网卡vip

 

 配置keeplived 备DR服务器

systemctl stop firewalld.service
setenforce 0

yum -y install ipvsadm keepalived #安装服务
modprobe ip_vs                    #开启ipvsadm服务
cat /proc/net/ip_vs

进入keepalived 目录,给里面的内容备份

cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak

进入配置文件里修改

 启动ipvsadm服务

--192.168.47.30---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
 
ipvsadm -ln
#如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived
 
--192.168.47.50---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
 
ipvsadm -ln

 

 调整 proc 响应参数,关闭Linux 内核的重定向参数响应

vim /etc/sysctl.conf
#由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
 
sysctl -p

配置节点服务器

systemctl stop firewalld
setenforce 0
 
yum -y install httpd
systemctl start httpd
 
--192.168.47.30---
echo 'this is web30' > /var/www/html/index.html
 
--192.168.47.50---
echo 'this is web50' > /var/www/html/index.html
 
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.47.188
NETMASK=255.255.255.255
 
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
 
route add -host 192.168.88.188 dev lo:0      #临时配置
或
vim /etc/rc.local                            #永久配置
/sbin/route add -host 192.168.80.188 dev lo:0
chmod +x /etc/rc.d/rc.local
source /etc/rc.d/rc.local
 
vim /etc/sysctl.conf
 
net.ipv4.conf.lo.arp_ignore = 1      #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2    #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
 
sysctl -p

注意:子网掩码必须全为1

启动虚拟网卡,并添加路由,将发送给vip地址的包从虚拟网卡回环地址发送(将访问vip的数据限制在本地以免arp混乱)

测试验证

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LVS+Keepalived群集 的相关文章

  • 阿里云2核4G服务器优惠价格30元3个月?小心坑

    2024年阿里云2核4G服务器优惠价格30元3个月 活动 https t aliyun com U bLynLC 配置为云服务器ECS经济型e实例ecs e c1m2 large 3M固定带宽 系统盘为40GB ESSD Entry 活动打
  • Nexus5596交换机支持3层需要的子卡

    3层子卡 nexus5596如果没有这块子卡 无法支持3层特性 TEST Cisco N5596 1 show modu Mod Ports Module Type Model Status 1 48 O2 32X10GBase T 16X
  • 消耗服务器带宽的因素有哪些

    消耗 服务器 带宽的因素有 1 网站布局更改使网站页面大小增加 用户获取数据时会加大带宽的消耗 2 网站访客增加使浏览页面数据增加 从而加大对带宽的消耗 3 网页数量增加导致服务器带宽消耗加快 4 突然引起流量峰值 导致带宽使用量增加 5
  • 双系统安装win7出现grub怎么解决

    我们在重装系统时 特别苹果装双系统时 会出现安装过程或者安装后的问题 发现系统开机显示grub 导致不能正常进入系统 让人很是着急 其实出现这种情况是因为系统找不到主引记录所导致 只要重建主引记录mbr即可解决 下面小编就教教大家win7系
  • 在阿里云ECS云服务器上部署和使用开源的应用程序容器引擎Docker

    Docker 是一个开源的应用程序容器引擎 具有可移植性 可扩展性 高安全性和可管理性等优势 它允许开发人员将应用程序和依赖项打包到可移植容器中 从而在 Linux 机器上高效构建 部署和管理应用程序 阿里云提供Docker镜像仓库 用于快
  • 小白成功搭建Elasticsearch 只需五步(包含配置xpack)

    ElasticSearch 安装成功后 是不需要使用用户名和密码就可以访问的 这也是在配置skywalking的apm过程中 连接es数据库无需设置用户名和密码的原因 启动es也非常的简单 在 bin 目录下运行elasticsearch
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许
  • 进程间通信

    进程间通信 进程间通信介绍 进程间通信目的 数据传输 一个进程需要将它的数据发送给另一个进程 资源共享 多个进程之间共享同样的资源 通知事件 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如进程终止 时要通知父进程
  • TeslaMate特斯拉神器本地Docker部署实现无公网远程访问

    文章目录 1 Docker部署TeslaMate 2 本地访问TeslaMate 3 Linux安装Cpolar 4 配置TeslaMate公网地址 5 远程访问TeslaMate 6 固定TeslaMate公网地址
  • 改善python程序的91建议记录

    使用else子句简化循环 异常处理 案例1 执行sql异常时处理 def save db obj try save attr1 db execute a sql stmt obj attr1 save attr2 db execute an
  • 盘点那些年我们一起玩过的网络安全工具

    大家好 我是IT共享者 这篇文章给大家盘点那些年 我们一起玩过的网络安全工具 一 反恶意代码软件 1 Malwarebytes 这是一个检测和删除恶意的软件 包括蠕虫 后门 流氓 拨号器 间谍软件等等 快如闪电的扫描速度 具有隔离功能 并让
  • Linux中如何查看开启了哪些端口?

    在Linux中 端口是设备与外界通讯交流的出口 常用于指TCP IP协议中的端口 其按照端口号可以分为三类 分别是 公认端口 注册端口 动态端口 那么Linux中如何查看开启了哪些端口 以下是常用命令介绍 1 使用netstat命令 net
  • 数据采集才是MES系统的核心内容

    一 数据采集在MES管理系统中的应用 1 设备数据采集 MES管理系统通过与生产设备的连接 可以实时采集设备运行状态 产量 质量等相关数据 这有助于企业及时掌握设备运行状况 优化设备资源配置 提高设备利用率 2 工艺数据采集 MES管理系统
  • CTF之逆向入门

    逆向工程 Reverse Engineering 又称反向工程 是一种技术过程 即对一项目标产品进行逆向分析及研究 从而演绎并得出该产品的处理流程 组织结构 功能性能规格等设计要素 以制作出功能相近 但又不完全一样的产品 逆向工程源于商业及
  • 服务器集群是如何提高计算性能的?

    服务器集群是一种将多台服务器连接起来协同工作的技术 通过集群配置 可以提高计算性能 可靠性和可扩展性 以下是服务器集群如何提高计算性能的详细解释 一 并行处理能力 服务器集群的核心优势在于其并行处理能力 通过将多个服务器组成一个集群 可以将
  • VMware 最新版 - 虚拟机安装、激活、Centos安装、XShell 连接虚拟机、网络配置(全流程)

    目录 一 VMware 从安装到使用全流程 1 1 安装和激活 1 2 下载 Centos 镜像 以 7 为例 1 3 创建虚拟机 1 4 网络配置 1 5 验证网络是否可用 一 VMware 从安装到使用全流程 1 1 安装和激活 a 从
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • ssh:connect to host github.com port 22: Connection timed out

    解决流程 1 将github的端口由22改为443 ssh T p 443 git ssh github com 2 接着输入yes进行确认 The authenticity of host ssh github com 443 192 1
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • NULL0路由的作用(概述)

    简单的来说 NULL0是属于路由器的逻辑接口 NULL0接口总是处于Up状态 但不转发任何报文 当NULL0接口接收到报文后 会把报文丢弃 不能在NULL0接口上配置IP地址 也不能在NULL0接口上封装任何链路层协议 NULL0主要用于防
  • Elasticsearch查询——Sort(查询排序)

    Sort 查询排序 测试索引 Elasticsearch针对普通数据 数组 嵌套对象 地理位置都提供了排序功能 为了测试其排序方式我们需要可以能够足够数据类型的索引 所以创建了下面一个索引以及其映射 PUT offline sales PU
  • AcWing 3708. 求矩阵的鞍点

    输入样例 3 4 1 2 3 4 1 2 3 4 1 2 3 4 输出样例 1 4 4 2 4 4 3 4 4 include
  • mysql安装(Linux中redhat版本,redhat密码破解)

    破解密码 1 先重启系统 开始界面点击鼠标入进电脑 按下e键 2 在界面中间输入rd break 输入Ctrl x执行 3 输入下面命令 修改命令 mount o 是字母o不是数字0 remount rw sysroot chroot sy
  • 【华为OD机试真题 python】等和子数组最小和【2022 Q4

    前言 华为OD笔试真题 python 专栏含华为OD机试真题 华为面试题 牛客网华为专栏真题 如果您正在准备华为的面试 或者华为od的机会 有任何想了解的可以私信我进行交流 我会尽可能的给一些建议 和帮您解答 PS 文中答案仅供参考 不能照
  • 操作系统实验—处理机调度算法的模拟

    操作系统实验 处理机调度算法的模拟 一 实验目的 二 实验内容 PCB进程控制块结构 设计要求 三 实验过程记录 1 算法的思路 2 主要数据结构 3 程序代码 运行效果 一 实验目的 熟悉处理器调度算法的工作原理 掌握调度算法的实现 进程
  • WEB网站常见受攻击方式及解决办法

    一个网站建立以后 如果不注意安全方面的问题 很容易被人攻击 下面就讨论一下几种漏洞情况和防止攻击的办法 一 跨站脚本攻击 XSS 跨站脚本攻击 XSS Cross site scripting 是最常见和基本的攻击WEB网站的方法 攻击者在
  • 大端小端问题总结及相关面试题

    昨天有一同学问了我一个关于大端小端的面试题 以前掌握的蛮好的现在突然之间想不起来了 回来翻了翻书 觉得现在有必要写一篇文章来记录一下这个知识点 大端小端是存储讲的是数据在内存中的存放顺序 大端存储格式就是自数据的高字节存放在低地址中 低字节
  • 数据库设计的 10 个最佳实践

    作者 Emily Williamson 译者 孙薇 责编 屠敏 出品 CSDN ID CSDNnews 以下为译文 数据库是应用及计算机的核心元素 负责存储运行软件应用所需的一切重要数据 为了保障应用正常运行 总有一个甚至多个数据库在默默运
  • make menuconfig 添加新选项

    如何在make menuconfig 界面添加新选项步骤 1 先在Linux内核源码目录下创建个新目录 哪个位置都行 一般添加新驱动时 都会在 drivers目录下创建 这里为了实验的方便就在 源码目录下创建了 mkdir hmq test
  • Visual Studio 2019(VS 2019)配置Qt开发环境(最新!)

    1 Qt下载与安装 1 Qt下载 Qt全版本下载网址 Index of archive qt 根据操作系统下载对应的安装包即可 我选择的是5 9 9的版本 2 Qt的安装 双击打开下载好的qt opensource windows x86
  • FRP代理及其在数据库安全上的实践

    1 代理 现如今的互联网世界里 代理服务已经十分常见 它通常作为一个第三方或者说中转站角色替代用户取得信息或者服务 根据代理对象的不同 代理服务可以分为正向代理和反向代理 1 1 正向代理 我们通常所说的代理一般都指的是正向代理 正向代理的
  • LlamaIndex 提供的索引

    LlamaIndex 以前称为 GPT Index 是一个开源项目 它在 LLM 和外部数据源 如 API PDF SQL 等 之间提供一个简单的接口进行交互 它提了供结构化和非结构化数据的索引 有助于抽象出数据源之间的差异 它可以存储提示
  • 严重漏洞已存在16年,数亿台打印机受影响

    聚焦源代码安全 网罗国内外最新资讯 编译 奇安信代码卫士 安全专家在惠普 Xerox 和三星使用的常用打印机驱动中找到一个严重漏洞 该漏洞编号为 CVE 201 3438 在2005年就存在于打印机驱动代码中 影响过去16年来出售的数亿台打
  • 火狐浏览器使用HttpRequester模拟发送http请求

    个人感觉网上的在线模拟http请求工具相比火狐的HttpRequester没那么实用方便 首先安装HttpRequester 打开菜单 附加组件 搜索框输入 HttpRequester 就会搜出来 然后点击安装 成功后在工具这里就会显示有H
  • Android数据的四种存储方式

    Android数据的四种存储方式 SharePreferences SQLite Contert Provider File 网络存储 作为一个完整的应用程序 数据存储的操作是必不可少的 Android系统提供了四种存储数据方式 分别为 S
  • Cache-Control浏览器缓存

    描述 同一个标签页 打开 A 站点 访问 config 接口 正常 打开 B 站点 访问 config 接口 正常 通过浏览器后退返回 A 站点 访问 config 接口 数据异常 config 返回了 B 站点的数据 测试站点数据 htt
  • 浅谈Spring切面编程AOP的实现,以及两种写法aspect和advisor

    在开发过程种 很多地方会用到Spring的AOP 之前一致使用
  • 在centos7系统下解决java程序需要依赖外部jar包的问题

    javac cp xxxx jar bbbbb java cp也可以换成 classpath 转载 https blog csdn net weixin 34023863 article details 94448291 utm mediu
  • LVS+Keepalived群集

    Keeoalived 工具介绍 专门为LVS 和 HA 设计的一款健康检查工具 专为LVS和HA设计的一款健康检查工具 支持故障自动切换 Failover 以及节点健康状态检查 Health Checking 判断LVS负载调度器 节点服务