lvs作业

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: lvs作业

1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。

2.基于 CentOS 7 构建 LVS-DR 群集。

NAT模式

LVS 的 NAT 模式中,LVS 将客户端请求的 IP 地址和端口号修改为 LVS 的 NAT 网络接口 IP 地址和端口号,然后将请求转发给后端的服务器。当后端服务器响应时,LVS 将响应中的 IP 地址和端口号还原为客户端请求的 IP 地址和端口号,并将响应发送回给客户端。

在将VIP转换为RIP时我们使用到的技术为DNAT——目标地址转换,同理在回包时的技术叫SNAT——源地址转换

LVS NAT 模式的主要优点包括:

  1. 隐藏了后端服务器的真实 IP 地址,提高了安全性;
  2. 负载均衡器可以使用公网 IP 地址,而不需要将其配置到后端服务器上;
  3. LVS 可以基于 IP 地址和端口号进行负载均衡,从而实现了基于四层(传输层)的负载均衡。

需要注意的是,NAT 模式的缺点是可能会引入单点故障,因为所有客户端请求都必须通过负载均衡器的 NAT 网络接口。因此,在使用 LVS NAT 模式时,需要考虑故障转移和高可用性的实现。

DR模式

在 LVS 的 DR 模式中,LVS 只负责转发数据包,而不对数据包进行 NAT 处理。具体来说,当客户端发送请求时,请求会到达负载均衡器的虚拟 IP 地址,然后被转发到后端的服务器。服务器响应时,响应数据包直接返回给客户端,不经过负载均衡器。在此过程中,LVS 只负责修改数据包的目的 IP 地址,将其替换为后端服务器的 IP 地址。

我们通过抑制ARP来帮助rs接收来自d的数据包

DR 模式的主要优点包括:

  1. 可以处理大量的并发请求,因为数据包不需要经过负载均衡器处理;
  2. 避免了 NAT 处理的性能瓶颈,提高了系统的性能;
  3. 可以通过后端服务器来处理请求,从而提高了系统的可扩展性和灵活性。
  4. 在三种模式中压力最小,只需要接受入方向的数据包

需要注意的是,DR 模式需要在后端服务器上进行网络配置,以保证负载均衡器能够将请求正确地转发到后端服务器。此外,DR 模式的缺点是需要配置双向路由,可能会引入网络层面的复杂性和故障。因此,在使用 LVS DR 模式时,需要对网络拓扑和路由协议进行仔细的设计和配置。

基于 CentOS 7 构建 LVS-DR 群集。

yum install ipvsadm首先是安装ipvsadm

lvs director 上的脚本
=================================================================
#!/bin/sh
#
# Startup script handle the initialisation of LVS
# chkconfig: - 28 72
# description: Initialise the Linux Virtual Server for DR
#
### BEGIN INIT INFO
# Provides: ipvsadm
# Required-Start: $local_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
# Short-Description: Initialise the Linux Virtual Server
# Description: The Linux Virtual Server is a highly scalable and highly
# available server built on a cluster of real servers, with the load
# balancer running on Linux.
# description: start LVS of DR
LOCK=/var/lock/ipvsadm.lock
VIP=192.168.133.151
RIP1=192.168.133.130
RIP2=192.168.133.137
DipName=ens33
. /etc/rc.d/init.d/functions
start() {
PID=`ipvsadm -Ln | grep ${VIP} | wc -l`
if [ $PID -gt 0 ];
then
echo "The LVS-DR Server is already running !"
else
#Set the Virtual IP Address
/sbin/ifconfig ${DipName}:10 $VIP broadcast $VIP netmask
255.255.255.255 up
/sbin/route add -host $VIP dev ${DipName}:10
#Clear IPVS Table
/sbin/ipvsadm -C
#Set Lvs
/sbin/ipvsadm -At $VIP:80 -s rr
/sbin/ipvsadm -at $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -at $VIP:80 -r $RIP2:80 -g
/bin/touch $LOCK
#Run Lvs
echo "starting LVS-DR Server is ok !"
fi
}
stop() {
#clear Lvs and vip
/sbin/ipvsadm -C
/sbin/route del -host $VIP dev ${DipName}:10
/sbin/ifconfig ${DipName}:10 down >/dev/null
rm -rf $LOCK
echo "stopping LVS-DR server is ok !"
}
status() {
if [ -e $LOCK ];
then
echo "The LVS-DR Server is already running !"
else
echo "The LVS-DR Server is not running !"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $1 {start|stop|restart|status}"
exit 1
esac
exit 0
======================================================
RS上的脚本
#!/bin/sh
#
# Startup script handle the initialisation of LVS
# chkconfig: - 28 72
# description: Initialise the Linux Virtual Server for DR
#
### BEGIN INIT INFO
# Provides: ipvsadm
# Required-Start: $local_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
# Short-Description: Initialise the Linux Virtual Server
# Description: The Linux Virtual Server is a highly scalable and highly
# available server built on a cluster of real servers, with the load
# balancer running on Linux.
# description: start LVS of DR-RIP
LOCK=/var/lock/ipvsadm.lock
VIP=192.168.133.151
. /etc/rc.d/init.d/functions
start() {
PID=`ifconfig | grep lo:10 | wc -l`
if [ $PID -ne 0 ];
then
echo "The LVS-DR-RIP Server is already running !"
else
/sbin/ifconfig lo:10 $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIP dev lo:10
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
/bin/touch $LOCK
echo "starting LVS-DR-RIP server is ok !"
fi
}
stop() {
/sbin/route del -host $VIP dev lo:10
/sbin/ifconfig lo:10 down >/dev/null
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
rm -rf $LOCK
echo "stopping LVS-DR-RIP server is ok !"
}
status() {
if [ -e $LOCK ];
then
echo "The LVS-DR-RIP Server is already running !"
else
echo "The LVS-DR-RIP Server is not running !"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $1 {start|stop|restart|status}"
exit 1
esac
exit 0

脚本完成之后通过chkconfig命令将lvs_dr添加为系统服务,再通过systemctl开启和关闭它。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
基于阿里云,构建一个企业web应用上云经典架构,让IT从业者体验企业级架构的实战训练。
相关文章
|
10月前
|
存储 负载均衡 应用服务中间件
LVS负载均衡群集——NAT模式实操
LVS负载均衡群集——NAT模式实操
339 0
|
2月前
|
负载均衡 算法 Linux
LVS集群
LVS(Linux Virtual Server)集群是一种基于Linux操作系统的高可用性和负载均衡解决方案。它通过将网络流量分发到多个后端服务器上,实现了对网络服务的负载均衡,并提高了系统的可用性和性能。
82 1
|
2月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
127 2
|
负载均衡 调度
LVS负载均衡群集——NAT模式实操(下)
一、群集概述 1.1 群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。
178 0
|
存储 负载均衡 算法
LVS负载均衡群集——NAT模式实操(上)
一、群集概述 1.1 群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。
173 0
|
存储 缓存 负载均衡
负载均衡集群LVS调度算法实战
一、复习LVS的四种模式 二、LVS介绍 三、调度算法 四、实操演示
负载均衡集群LVS调度算法实战
|
算法 网络协议 调度
|
网络协议 Linux 调度