LVS(Linux virual server)
创始人
2024-09-25 05:19:40
0

一、LVS相关原理

1.LVS简介

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是https://blog.csdn.net/m0_68096246/article/details/www.linuxvirtualserver.org。

VS:负责调度

RS:负责真正提供服务

2.LVS概念

VIP:虚拟IP地址Director用于向客户端计算机提供服务的IP地址
RIP真实IP地址在集群下面节点上使用的IP地址
DIP:Director的IP地址Director用于连接内外网网络的IP地址
CIP:客户端主机IP地址客户端用户计算机请求集群服务器的IP地址,该地址用作发送给集群的请求的源IP地址

3.LVS集群的类型

IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR

3.1 lvs-net

修改请求报文的目标ip,多目标ip的dnat

这种模式适用于任何类型的Real Server,Real Server网络通常是私有的,最多支持10到20个Real Server,Real Server的网关是负载均衡器。优点是可以进行端口转换,缺点是存在性能瓶颈。它主要工作在OSI模型的第三层(网络层)和第四层(传输层)。NAT允许内部网络使用私有IP地址,并通过公共IP地址进行外部通信。

3.2 lvs-tun

操纵封装新的MAC地址

这种模式要求Real Server支持隧道,Real Server网络可以是局域网或广域网,支持较多数量的Real Server(高达100个),Real Server有自己的路由器。优点是支持WAN,缺点是需要支持隧道,不支持端口转换。这种技术可以用于实现虚拟专用网(VPN),并通常工作在OSI模型的第三层(网络层)和第四层(传输层)。

3.3 lvs-dr

在原请求ip报文在外新加一个ip首部

这种模式适用于非ARP设备的Real Server,Real Server网络是局域网,同样支持大量Real Server(高达100个),Real Server有自己的路由器。优点是性能最佳,缺点是不支持跨网段和端口转换。工作在数据链路层。

4.lvs调度算法

10种调度算法

固定调度算法:rr,wrr,dh,sh

动态调度算法:lc, wlc,lblc,lblcr,SED,NQ

rr循环调度,它将请求依次分配不同的RS,也就是在RS中均匀请求。这种算法简单,但是只适合于处理性能相差不大的情况
wrr加权轮循调度,它将依据不同RS的权重分配任务。权重较高的RS将优先获得任务,并且分配到的连接数将比权重较低的RS更多。相同权重的RS得到相同数目的连接数
dh目的哈希调度,以目的地为关键字查找一个静态hash表来获得需要的RS。
sh源地址哈希调度,以源地址为关键字查找一个静态hash表来获得需要的RS
lc最小连接数调度,IPVS表存储了所有的活动的连接。把新的连接请求发送到当前连接数最小的RS。
wlc基于地址的最小连接数调度,将来自同一目的地的请求分配给同一台RS如果这台服务器尚未负荷,则分配给连接数最小的RS,并以它为下一次分配的首先考虑。
lblc基于地址的最小连接数调度,将来自同一目的地的请求分配给同一台RS如果这台服务器尚未负荷,则分配给连接数最小的RS,并以它为下一次分配的首先考虑。
lblcr基于地址带重复最小连接数调度,对于某一目的地,为其分配子集中连接数最小RS
SED短期望的延迟,基于wlc算法
NQ最少队列调度,无需队列。如果有realserver的连接数=0就直接分配过去,不需要在进行sed运算

二、lvs实验实例

一、LVS的nat模式

1.配置网络

lvs

nmcli connection reload

nmcli connection up eth0

nmcli connection up eth1

lvs中打开内核路由功能

客户端

wenserver1:

webserver2:

2.开始配置

webserber1:

[root@webserver1 ~]# dnf install httpd -y [root@webserver1 ~]# echo webserver1 - 192.168.0.10 > /var/www/html/index.html [root@webserver1 ~]# systemctl enable --now httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

webserber2:

[root@webserver2 ~]# dnf install httpd -y [root@webserver2 ~]# echo webserver2 - 192.168.0.20 > /var/www/html/index.html [root@webserver2 ~]# systemctl enable --now httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

先在lvs中测试:

lvs:

首先安装lvs软件 [root@lvs ~]# dnf install ipvsadm -y [root@lvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn [root@lvs ~]# ipvsadm -A -t 172.25.254.100:80 -s rr [root@lvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  172.25.254.100:80 rr [root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m [root@lvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  172.25.254.100:80 rr   -> 192.168.0.10:80              Masq    1      0          0 [root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m [root@lvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  172.25.254.100:80 rr   -> 192.168.0.10:80              Masq    1      0          0   -> 192.168.0.20:80              Masq    1      0          0 

在镇机中测试:

保存:

[root@lvs boot]# ipvsadm-save > /etc/sysconfig/ipvsadm

[root@lvs boot]# ipvsadm -A -t 172.25.254.100:80 -s wrr [root@lvs boot]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 1 [root@lvs boot]# ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 2 Destination already exists [root@lvs boot]# ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.20:80 -m -w 1 [root@lvs boot]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  172.25.254.100:80 wrr   -> 192.168.0.10:80              Masq    2      0          0   -> 192.168.0.20:80              Masq    1      0          0 [root@lvs boot]# curl 172.25.254.100 webserver2 - 192.168.0.20 [root@lvs boot]# for i in {1..10} > do > curl 172.25.254.100 > done webserver1 - 192.168.0.10 webserver1 - 192.168.0.10 webserver2 - 192.168.0.20 webserver1 - 192.168.0.10 webserver1 - 192.168.0.10 webserver2 - 192.168.0.20 webserver1 - 192.168.0.10 webserver1 - 192.168.0.10 webserver2 - 192.168.0.20 webserver1 - 192.168.0.10  [root@lvs boot]# cat /etc/sysconfig/ipvsadm -A -t 172.25.254.100:80 -s rr -A -t 192.168.0.100:80 -s rr -a -t 192.168.0.100:80 -r 192.168.0.10:80 -m -w 1 -a -t 192.168.0.100:80 -r 192.168.0.20:80 -m -w 1  [root@lvs boot]# ipvsadm -C    [root@lvs boot]# systemctl stop  ipvsadm.service   [root@lvs boot]# systemctl restart ipvsadm.service

二、LVS的dr模式

共五台设备:客户机(client),路由器(router),lvs,两台真机(rs)

1.配置网络

客户机(client)172.25.254.200

路由器(router)172.25.254.100

lvs:192.168.0.50

主机:

2.rs主机使vip不对外响应

rs主机中: server1: [root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce server2: [root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

3.在rs主机中和lvs中添加vip

server1、server2、lsv中都要添加 [root@webserver1 ~]# ip a a 192.168.0.200/32 dev lo  ip a 查看是否添加成功

4.lvs中

[root@lvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn [root@lvs ~]# ipvsadm -A -t 192.168.0.200:80 -s wrr [root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1 [root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2 [root@lvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  192.168.0.200:80 wrr   -> 192.168.0.10:80              Route   1      0          0   -> 192.168.0.20:80              Route   2      0          0

5.在客户机client中测试

三、LVS-火墙mark标记解决调度问题

在dr模式完成基础之上

1.两台rs上安装

RS安装mod_ssl模块,让rs支持https

重启服务

2.端口标记

3.client测试

所有防火墙关闭!!!

相关内容

热门资讯

原生安卓系统哪个最好使,探寻最... 亲爱的手机控们,你是否在寻找一款能让你爱不释手的原生安卓系统呢?今天,就让我带你一起探索,看看哪个原...
安卓系统扫描仪软件,轻松捕捉每... 你有没有想过,手机也能变成强大的扫描仪?没错,就是那个你每天不离手的安卓手机!今天,就让我带你一起探...
安卓系统webview要更新吗... 你有没有发现,你的安卓手机最近是不是有点儿“慢吞吞”的?别急,这可能是你的安卓系统WebView需要...
安卓哪个系统最帅气,探寻最帅气... 你有没有发现,手机系统就像是个人的风格,有的低调内敛,有的张扬个性。今天,咱们就来聊聊安卓系统里哪个...
闪耀暖暖安卓系统卡,探寻解决之... 最近是不是有很多小伙伴在玩《闪耀暖暖》这款游戏呢?不过,有些小伙伴在体验过程中遇到了一个让人头疼的问...
酷开系统装安卓app,畅享海量... 你有没有发现,家里的电视突然变得聪明起来?没错,就是那个酷开系统,它现在可是装安卓app的高手呢!今...
安卓系统通话息屏,通话无忧 你有没有遇到过这种情况:手机屏幕熄灭了,但电话却还在响个不停?是不是觉得有点尴尬,又有点无奈?别担心...
支持安卓系统的导航,支持安卓系... 你有没有想过,在手机上安装一款支持安卓系统的导航软件,就像是给你的出行装上了“顺风耳”和“千里眼”呢...
安卓系统启动机制,揭秘启动流程... 你有没有想过,当你按下那个小小的开机键,安卓系统是如何从沉睡中苏醒,开始它的一天呢?今天,就让我带你...
安卓装系统用什么软件,精选软件... 你有没有想过,你的安卓手机或者平板,有一天突然想要换换口味,换一个全新的操作系统呢?别急,今天就来给...
wps安卓系统如何横屏,文章的... 你有没有发现,用WPS在安卓系统上办公的时候,横屏模式简直太方便了!想象屏幕宽广,文字清晰,是不是瞬...
TCL电视搭载安卓系统,畅享智... 亲爱的读者们,你是否在寻找一款既时尚又实用的电视呢?今天,我要给你介绍一款特别受欢迎的电视——TCL...
安卓系统qq动态怎么删,一键操... 你是不是也有过这样的烦恼?手机里QQ动态堆得像小山,想删又不知道怎么下手?别急,今天就来手把手教你如...
安卓手机的系统游戏,解锁手机游... 你有没有发现,安卓手机的系统游戏越来越丰富了呢?没错,现在就让我带你一起探索这个充满乐趣的世界吧!一...
安卓系统ui流畅排名,谁才是流... 你有没有发现,手机用久了,有时候操作起来就像蜗牛爬行一样慢吞吞的?这不,最近我在网上闲逛,无意间发现...
安卓系统怎么连接音响蓝牙,安卓... 你家的安卓手机是不是已经更新到了最新的系统,音响也换成了那个高大上的蓝牙款?但是,连接起来却有点小麻...
炸金花如何开好友房间房卡/嫦娥... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
微信链接炸金花房卡怎样买/欢乐... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
微信牛牛房卡自建房间/战皇大厅... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享受...
微信牛牛房卡如何购买/美猴王大... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受更...