lvs作业

简介: 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从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 网络协议 算法
搞懂分布式技术7:负载均衡概念与主流方案
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80774560   负载均衡的原理 原创: 刘欣 码农翻身 4月23日 这是1998年一个普通的上午。
|
弹性计算 运维 网络协议
揭秘云网络大会“网红”:阿里云自研高性能网关XGW
XGW是洛神云网络平台的硬件转发层核心,提供了高性能的网络转发能力,负责公网,专线和跨Region流量的汇聚和分发,满足用户大带宽、大单流、稳定性、低延时/低抖动等需求。
7975 0
揭秘云网络大会“网红”:阿里云自研高性能网关XGW
|
消息中间件 NoSQL 前端开发
知识付费卖课和在线教育系统源码
随着越来越多的教师和内容创作者希望通过专属平台售卖课程,搭建一套知识付费和在线教育系统成为行业热点。本文详细介绍了系统的架构设计、核心功能模块、技术实现、源码示例及开发建议,帮助开发者快速实现课程发布、学员学习、订单支付等功能。
726 6
|
数据挖掘
R语言笔记丨数据的合并、拆分、整合
R语言笔记丨数据的合并、拆分、整合
|
算法 测试技术 数据安全/隐私保护
没有接口需求文档,如何开展接口测试?建议收藏
没有接口需求文档,如何开展接口测试?建议收藏
434 1
|
存储 Android开发
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
705 0
|
并行计算 算法 大数据
Dask 与图形处理:大规模图数据的并行分析
【8月更文第29天】在大数据时代,图数据结构因其能够高效表达实体之间的复杂关系而变得越来越重要。然而,处理大规模图数据集往往需要高效的并行计算框架。Dask 是一个灵活的并行计算库,它能够与 Python 的现有科学计算生态系统无缝集成。本文将介绍如何利用 Dask 来处理和分析大规模的图数据结构。
624 4
|
JavaScript 前端开发 API
使用Python和Vue构建多用户协作平台的终极指南
【4月更文挑战第11天】本指南介绍了如何使用Python和Vue.js构建多用户协作平台。首先确保安装Node.js、Python 3.x、pip和git。使用Flask搭建后端,设计RESTful API实现用户注册、登录等功能。前端利用Vue.js创建组件,结合Vuex和Vue Router处理状态管理和页面路由。通过Axios与后端通信,实现用户交互和数据同步。完成后进行测试,用Docker容器化应用并选择云服务部署。随着需求和技术发展,持续迭代和完善平台。
472 0
|
机器学习/深度学习 人工智能 自然语言处理
AIGC多模态学习
7月更文挑战第11天
|
JavaScript Java 测试技术
基于微信小程序的小说阅读系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的小说阅读系统的设计与实现(源码+lw+部署文档+讲解等)
338 0

热门文章

最新文章