第一节:高可用集群、LVS详解、LVS实战(NAT模式、DR模式)
一. 高可用集群知识
1. 什么是高可用集群
高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外部不间断的提供服务,把因为软件,硬件,认为造成的故障对业务的影响降低到最小程度。总而言之就是保证公司业务7*24小时不宕机。
2. 高可用集群的衡量标准
衡量集群的可用性(HA)高低,可以从MTTF(平均无故障时间)和MTTR(平均故障维修时间)进行考量,公式为:HA=MTTF/(MTTF+MTTR)*100%,具体衡量标准可以参考下表
3. 高可用保障
(1) 负载均衡
硬件负载均衡,如F5
软件负载均衡,如nginx、haproxy、lvs
(2) 健康检测和自动切换
常见的健康监测和自动切换软件有keepAlived和heartBeat,其二者对比如下:
Keepalived使用更简单:从安装、配置、使用、维护等角度上对比,Keepalived都比Heartbeat要简单
Heartbeat功能更强大:Heartbeat虽然复杂,但功能更强大,配套工具更全,适合做大型集群管理,而Keepalived主要用于集群倒换,基本没有管理功能
4. 高可用拓扑图
二. Lvs详解
1. lvs简介
LVS是Linux Virtual Server的简写,在1998年5月由章文嵩博士成立。
工作在OSI模型的四层,基于IP进行负载均衡。
在linux2.2内核时,IPVS就已经以内核补丁的形式出现。
从2.4版本以后,IPVS已经成为linux官方标准内核的一部分。
中文官网: http://zh.linuxvirtualserver.org
2. lvs常用术语
客户端主机IP地址(CIP),终端请求用户的主机IP地址
LVS服务器(DS)
虚拟IP地址(VIP),用于向客户端提供服务的IP地址(配置于负载均衡器上)
负载均衡器IP地址(DIP),负载均衡器的IP地址,物理网卡上的IP
集群中节点服务器(RS)
真实服务器的IP地址(RIP), 集群中节点服务器的IP地址
3. lvs三种工作模式
(1). NAT模式
NAT(Network Address Translation)模式是基于NAT技术实现的。在此模式中,LVS服务器既要处理请求的接入,又要处理请求的响应。因此存在较大的性能瓶颈。
NAT模式存在的问题-->LVS性能瓶颈
(2). DR模式
DR(Direct Routing)模式是LVS的默认工作模式,也叫直接路由模式。只处理请求的接入,不处理请求的响应。因此性能高,瓶颈小。
(3). TUN模式(了解)
TUN(Tunneling)模式需要服务器支持IP隧道(IP tunneling,是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程)技术,限制较大,一般不用。
4. lvs调度算法
(1). 静态调度
(2). 动态调度
5. lvs基本指令
安装:yum install ipvsadm
对于lvs的操作,主要是通过ipvsadm软件实现,常用的lvs操作命令如下:
(1). 集群服务管理
命令 | 说 明 |
---|---|
ipvsadm -A -t IP(VIP) -s 调度算法(RR) | 此命令用来添加一个lvs策略,IP指VIP,调度算法是12种调度算法的一种 |
ipvsadm -C | 此命令用来清除一个lvs策略 |
ipvsadm -S | 此命令用来保存一个lvs策略 |
ipvsadm -R | 此命令用来加载一个lvs策略 |
ipvsadm -L | 此命令用来查看策略 |
(2). 集群RS管理
命令 | 说 明 |
---|---|
ipvsadm -a -t IP1(VIP) -r IP2(RIP) -m|g|i | 添加一台RS,IP1指VIP,IP2指RIP,-m|g|i中m是NAT,g是DR, |
ipvsadm -d -t IP1 -r IP2 | 此命令用来删除一台RS,IP1指VIP,IP2指RIP |
三. Lvs实战-NAT模式
1. 前置准备
准备四台服务器,一台客户端、一台lvs服务器、两台业务服务器
客户端(client): 192.168.3.40
lvs服务器(DS):配置两个网卡
(1). 主机网卡: 192.168.3.30 ,此ip为VIP,用于接收外部请求。
(2). NAT网卡:192.168.10.30,此ip为DIP,用于和后端的RS业务服务器通信。
业务服务器1(RS1):192.168.10.31 ,称为:RIP1,需要配置该服务器的网关为:192.168.10.30
业务服务器2(RS2):192.168.10.31 ,称为:RIP2,需要配置该服务器的网关为:192.168.10.30
其中lvs服务器可以设置主机名为lvs,设置方式如下:
hostnamectl set-hostname lvs
2. 业务服务器RS1和RS2配置
(1) 配置网卡为NAT模式,RS1设置静态IP为192.168.10.31,RS2设置静态IP为192.168.10.32。
(2) 下载安装httpd服务,命令如下
yum install -y httpd
echo this is RS01 > /var/www/html/index.html
(4) 启动httpd
systemctl start httpd
[root@rs01 ~]# curl localhost
能输出 this is RS01 或 this is RS02即为成功
(6) RS1和RS2指定网关为 192.168.10.30 (需要和lvs服务器的vip相同),子网掩码255.255.255.0
cat /etc/sysconfig/network-scripts/ifcfg-ens33
(7). 查看网关是否生效
【yum install net-tools】
【systemctl restart network】
【route -n】
3. LVS服务器配置
(1) 安装ipvsadm
yum install -y ipvsadm
(2) 设置双网卡
仅主机网卡一块,IP配置为192.168.3.30,此IP是接受外部请求的VIP
NAT网卡一块,IP配置为192.168.10.30,此IP是与后端RS服务器通信的DIP
配置步骤详见:https://liguogang.blog.csdn.net/article/details/118854591
(3) 配置ip_forward转发
vi /etc/sysctl.conf
#添加如下内容并保存退出
net.ipv4.ip_forward = 1
#执行如下命令使修改生效
sysctl -p
(4) 使用ipvsadm进行负载均衡配置
在lvs服务器上运行下面指令
A. 指定负载80端口的VIP,并指定调度策略为轮询
【 ipvsadm -A -t 192.168.3.30:80 -s rr】
B. 添加两台RS,并指定负载均衡工作模式为NAT
【ipvsadm -a -t 192.168.3.30:80 -r 192.168.10.31 -m】
【ipvsadm -a -t 192.168.3.30:80 -r 192.168.10.32 -m】
C. 查看上述配置是否生效
【ipvsadm -Ln】
4. 客户端测试
配置网卡为仅主机模式,IP为192.168.3.40,网关无需配置即可。
四. Lvs实战-DR模式
1. 前置准备
通过对比NAT模式和DR模式的拓扑图可以发现,需要让LVS和RS在同一个网段,并且在两个RS服务器上也需要绑定VIP。所以DR模式实验可以在刚才的基础上进行,步骤如下:
准备四台服务器,一台客户端、一台lvs服务器、两台业务服务器
客户端(client): 192.168.10.33
lvs服务器(DS):配置两个网卡
(1). 主机网卡: 192.168.3.34 ,此ip为VIP,用于接收外部请求。
(2). NAT网卡:192.168.10.30,此ip为DIP,用于和后端的RS业务服务器通信。
业务服务器1(RS1):192.168.10.31 ,称为:RIP1,需要配置该服务器绑定VIP 192.168.3.34 (不需要配置网关)
业务服务器2(RS2):192.168.10.31 ,称为:RIP2,需要配置该服务器绑定VIP 192.168.3.34 (不需要配置网关)
2. 业务服务器RS1和RS2配置
(1). arp抑制,rs1和rs2都需要配置
#arp_ignore: default 0
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
#arp_announce: default 0
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
(2). rs1和rs2去掉网关配置,然后重启。
注意:RS1和RS2在之前进行NAT模式实验时设置了网关为LVS的DIP,这里进行DR试验时需要把网关删除
systemctl restart network
(3). rs1和rs2均配置VIP到Lo网卡,并配置子网掩码为 255.255.255.255
ifconfig lo:9 192.168.10.34 netmask 255.255.255.255
(4). 查看配置
3. LVS服务器配置
(1). 在LVS服务器上关闭之前的ens37网卡(注意:你的网卡名称可能不是这个)
ifdown ens37
ifconfig ens37 down
(2). 在 lvs 的ens33网卡上绑定VIP:192.168.10.34 (下面的 /24代表 4个255的子网掩码)
ifconfig ens33:9 192.168.10.34/24
(3) 在lvs服务器上清空LVS策略,并重新设置DR模式策略
(4). 设置DR策略
#设置规则
ipvsadm -A -t 192.168.10.34:80 -s rr
#添加RS
ipvsadm -a -t 192.168.10.34:80 -r 192.168.10.31 -g
ipvsadm -a -t 192.168.10.34:80 -r 192.168.10.32 -g
#查看策略
ipvsadm -Ln
4. 客户端测试
(1) 修改client服务器配置,更改使用NAT网卡,并设置IP为192.168.10.33
(2) 在client测试效果
(3) 在LVS服务器上查看调度情况
!
- 作 者 : Yaopengfei(姚鹏飞)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
- 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?