当前位置: 首页 > news >正文

LVS实验步骤解析

一、LVS介绍

LVS(Linux Virtual Server)是一个开源的负载均衡解决方案,它基于Linux内核构建,能够在多个服务器之间分发网络流量和请求。LVS 提供了高性能、高可用性的服务器负载均衡功能,适用于各种网络服务,如 Web、数据库、邮件等。

二、lvs的调度算法

lvs静态调度算法

1、(轮询)RRroundrobin 轮询 RS分别被调度,当RS配置有差别时不推荐
2、(加权轮询)WRRWeighted RR加权轮询根据RS的配置进行加权调度,性能差的RS被调度的次数少
3、(源地址散列)SHSource Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往 第一次挑中的RS,从而实现会话绑定
4DHDestination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商

lvs动态调度算法

主要根据RS当前的负载状态及调度算法进行调度Overhead=value较小的RS会被调度
1、()LCleast connections最少链接
适用于长连接应用Overhead(负载值)=activeconns(活动链接数) x 256+inactiveconns(非活
动链接数)
2WLCWeighted LC权重最少链接
默认调度方法Overhead=(activeconns x 256+inactiveconns)/weight
3SEDShortest Expection Delay, 初始连接高权重优Overhead(activeconns+1+inactiveconns) x 256/weight 但是,当node1的权重为1node2的权重为10,经过运算前几次的调度都会被node2承接
4NQNever Queue,第一轮均匀分配,后续SED
5LBLCLocality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理
6LBLCRLBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS

三、lvs集群中的增删改

管理集群服务中的增删改

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
-A       添加
-E       修改
-t        tcp服务
-u       udp服务
-s       指定调度算法,默认为WLC
-p       设置持久连接超时,持久连接在同一个时间段同一个来源的请求调度到同一 Realserver
-f        firewall mask 火墙标记,是一个数字
#增加
ipvsadm -A -t 172.25.254.100:80 -s rr
ipvsadm -A -f 66 -p 3000
#修改
 ipvsadm -E -t 172.25.254.100:80 -s wrr -p 3000
#删除
 ipvsadm -D -t 172.25.254.100:80
 ipvsadm -D -f 66

管理集群中RealServer的增删改查

ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]
-a      添加realserver
-e      更改realserver
-t        tcp协议
-u       udp协议
-f        火墙 标签
-r        realserver地址
-g       直连路由模式
-i        ipip隧道模式
-m      nat模式
-w      设定权重
-Z       清空计数器
-C      清空lvs策略
-L       查看lvs策略
-n       不做解析
--rate :输出速率信息pvs规则:/proc/net/ip_vs
ipvs连接:/proc/net/ip_vs_conn
添加
 ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.30 -m
 ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.40 -m -w 2
更改
 ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.30 -m -w 1
 ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.30 -i -w 1
删除
 ipvsadm -d -t 172.25.254.100:80 -r 192.168.0.30
查看
ipvsadm -Ln

Nat模式集群实验

LVS 作为网关设备,通过修改数据包的源或目的IP 地址来实现负载均衡

实验环境

LVS:192.168.0.10(仅主机)  172.25.254.100(nat模式)

启用内核路由功能安装ipvsadm

echo net.ipv4.ip_forward=1 > /etc/sysctl.conf

sysctl -p
yum install ipvsadm -y

添加调度策略

 ipvsadm -A -t 172.25.254.100:80 -s rr
 ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
 ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.30:80 -m

查看策略:ipvsadm -Ln

RS1:192.168.0.20(仅主机)192.168.0.10(网关)

安装http:      dnf install http -y 

关闭防火墙:systemctl disable --now firewalld

 将文本写入默认输出文件:echo RS1 -192.168.0.20 > /var/www/html/index.html

RS2:192.168.0.30(仅主机) 192.168.0.10(网关)

安装http:      dnf install http -y 
关闭防火墙:systemctl disable --now firewalld
将文本写入默认输出文件:echo RS2 -192.168.0.30 > /var/www/html/index.html

Client:172.25.254.10(NAT模式)

测试结果:

 

DR模式集群实验

直接路由模式,LVS 修改数据包的目的 MAC 地址,将流量直接路由到真实服务器3.TUN 模式:隧道模式,LVS 通过 IP 隧道将流量转发到真实服务器,这种方式下真实服务器可以分布在不同的地理位置。

实验环境

Router

网卡ens160配置

[connection]
id=ens160
type=ethernet
interface-name=ens160

[ipv4]
method=manual
address1=172.25.254.100/24

网卡ens192配置

[connection]
id=ens192
type=ethernet
interface-name=ens192

[ipv4]
method=manual
address1=192.168.0.10/24

启用内核路由功能

echo net.ipv4.ip_forward=1 > /etc/sysctl.conf
sysctl -p

打开防火墙

systemctl enable --now firewalld.service
firewall-cmd --permanent --add-masquerade

刷新防火墙:firewall-cmd --reload

查看:firewall-cmd --list-all 

LVS

网卡ens160配置

[connection]
id=ens160
type=ethernet
interface-name=ens160

[ipv4]
method=manual
address1=192.168.0.200/24,192.168.0.10
address2=192.168.0.220/24
dns=8.8.8.8

添加调度策略

ipvsadm -A -t 192.168.0.220:80 -s rr
ipvsadm -a -t 192.168.0.220:80 -r 192.168.0.20:80 -g
ipvsadm -a -t 192.168.0.220:80 -r 192.168.0.30:80 -g

RS1

ens160配置


[connection]
id=ens160
type=ethernet
interface-name=ens160

[ipv4]
method=manual
address1=192.168.0.20/24,192.168.0.10
dns=8.8.8.8

lo配置

[connection]
id=lo
type=loopback
interface-name=lo
[ipv4]
method=manual
address1=127.0.0.1/0

address=192.168.0.220/32

配置全局变量:

echo net.ipv4.conf.all.arp_ ignore=1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_ announce=2 >> /etc/sysctl.conf

配置局部变量:

echo net.ipv4.conf.lo.arp_ ignore=1 >>/etc/sysctl.conf
echo net.ipv4.conf.lo arp_announce=2 >> /etc/sysctl.conf

RS2

ens160配置

[connection]
id=ens160
type=ethernet
interface-name=ens160

[ipv4]
method=manual
address1=192.168.0.30/24,192.168.0.10
dns=8.8.8.8

lo配置

[connection]
id=lo
type=loopback
interface-name=lo

[ipv4]
method=manual
address1=127.0.0.1/0
address=192.168.0.220/32

设置不对外响应

配置全局变量:

echo net.ipv4.conf.all.arp_ ignore=1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_ announce=2 >> /etc/sysctl.conf

配置局部变量:

echo net.ipv4.conf.lo.arp_ ignore=1 >>/etc/sysctl.conf
echo net.ipv4.conf.lo arp_announce=2 >> /etc/sysctl.conf

网卡配置后重启ens:

nmcli conncetion reload

 nmcli connection up 网卡名

实验结果:

http://www.dtcms.com/a/288494.html

相关文章:

  • yolo8实时识别目标(和平精英敌人+骨骼关键点)
  • 云计算与 DevOps(开发与运维)
  • 分立元件线性稳压器12V转5VMultisim仿真
  • [FFmpeg] 输入输出访问 | 管道系统 | AVIOContext 与 URLProtocol | 门面模式
  • LP wizard 软件安装教程
  • 嵌入式学习-PyTorch(8)-day24
  • Mybatis学习之简介(一)
  • 强化学习入门-免模型预测
  • 动态规划——数位DP经典题目
  • 关于饥饿加载(Eager Loading)
  • 智能体上下文压缩-裁剪和摘要
  • Compose笔记(三十六)--SearchBar
  • 人脸识别独立部署解决方案:一劳永逸的本地化对接方案
  • python的多线程无法并行只能并发,why?
  • 80、【OS】【Nuttx】【启动】caller-saved 和 callee-saved 示例:栈空间对齐
  • kubeadm方式部署Kubernetes v1.22.2集群
  • 零基础学习性能测试第二章-linux服务器监控:磁盘监控
  • 如何设计一个高效的网页爬虫?
  • 7月19日 暴雨蓝色预警:全国多地迎强降雨,需防范次生灾害
  • Linux练习二
  • 信息系统风险的安全技术防范思路
  • 零基础学习性能测试第二章-linux服务器监控:CPU监控
  • [每日随题10] DP - 重链剖分 - 状压DP
  • stm32继电器使用方法
  • Java并发7--FutrureTask 及CompletetableFuture
  • 高速SAR架构ADC选型设计
  • 为什么选择PGCE中级认证?
  • startnet.cmd命令里面的factory -minint
  • 零基础学习性能测试第二章-监控体系
  • 多线程 示例