设为首页 收藏本站
查看: 1214|回复: 0

[经验分享] LVS的基本应用和LVS的NAT模型的配置

[复制链接]

尚未签到

发表于 2019-1-3 12:22:10 | 显示全部楼层 |阅读模式
  LVS的工作机制

一、LVS的简介

  LVS : Linux Virtual Server  也就是Linux 虚拟服务器。

LVS是一台主机,是将数据转发给其他的真正的服务器主机的。LVS的应用只需要装在调度节点上,它的工作原理基本类似于DNAT。其实虚拟服务器可以看做是一个四层交换。通过套接字来完成的转发。
  LVS的特点:高吞吐能力、高并发能力,冗余能力,适用性。

二、在LVS中的命名机制:



CIP : 客户端的IP
VIP :(Virtual IP)虚拟地址,外网用户看到的那个地址。
DIP :(Director’s IP)用于转发请求的转发器上的那个地址,一般是跟RIP相连的。
RIP :(Real IP)后端真正提供节点的那些些IP地址

三、LVS有三种工作类型:

1、Network address translation (LVS-NAT)网络地址转换





工件特征:
    1、所有的集群结点要在同一个网络中
    2、RIP是私有的,仅用于集群结点间的通信
    3、Director 要处理入站和出站
    4、V_sever 的网关要指向DIP
    5、可以实现端口映射
    6、R-serverk 可以是任意操作系统
    7、direct 很易成为系统瓶颈


2、Direct routing (LVS-DR)直接路由 简称为 DR


用户的请求经过Director,服务器的响应由服务器直接返回给用户
工作特点:
    1、集群结点Real-server和Director的ip在同一个物理网络,因为转发是基于MAC地址的
    2、RIP可以使用公网地址
这样有个好处就是当Director不能工作时,用户可以通过IP地址访问服务器
    3、director 仅处理入站请求
    4、R-server 的网关一定不要指向director,出站请求不经过director
    5、不支持端口映射
    6、大多数操作系统都可以用于 R_SERVER 能配置多个IP地址并要支持隔离ARP广播
    7、DR当中 directot的性能比远远优于DNAT
3、IP tunneling (LVS-TUN) ip遂道


与DR模型相似,不同的是,Director与Realserver的ip可以不在同一个网络中
   1、R-server与director
   2、rip一定不是私有地址
   3、director 仅处理入站请求,不支持端口映射
   4、仅有具有隧道功能的操作系统才能用于R-server


四、LVS  调度方法 Scheduling Methods


可分为两大类:静态调度、动态调度

静态调度有四种:

1、Round-Round 轮询 简写为RR
2、Weight Round-Round 加权轮询 简写为 WRR
3、Destination hashing 简写为 DH 目标地址hash 用于缓存服务器
  4、Source hashing SH 源地址hash 也是用于缓存服务器

动态调度有六种:

1、Least-connection(LC) 最少连接
检测服务器上的最少活动的连接数,同时也要检测活动和非活动连接数用下面的的方法计算,谁的overhead小,谁就接受下次的连接请求。这种方式不能区分服务器的响应能力。
计算方法:RS:active*256+inactive=overhead
把请求发给overhead值小的那个

2、 Weight Least-connetion(WLC) 加权最少连接
基于LC在每个服务器上加上权重。计算方法:
RS:(active*256+inactive)/weight=overhead
在这些算法中WLC算法可以说是最公平的算法了。

3、SED Shortest Expected Delay对于WLC的改进

最短期望延迟,这种算法是对WLC的一种改进,不考虑非活动连接数,并且将正处于活动状态的值加1。加1的主要目的,是尽可能的把权重大的服务器尽可能的利用起来。这种机制如果在权重比值比较大情况下会使权重下的服务器的处在空闲状态。
计算方法:RS: (active+1)*256/weight=overhead

4、Nerver Queue (NQ)永不排队。基于SED基础的算法,将权重低的空闲服务器分配进一个请求。

5、LBLC:DH Locality-Based Least-Connection 基于本地的最少连接。LBLC是从WLC的基础上做出来的,支持权重。它跟DH算法几乎相同,不过DH是静态的,而LBLC是动态的。这种改进并不明显

6、LBLCR 带复制的基于本地的最少连接。是对LBLC的一种改进,能在LBLC的基础上对负载均衡机制实现真正的负载均衡。

五、 实现 LVS的方法:ipvs


LVS的机制与Iptables有些类似,有一段是专门定义在用户空间,命令叫ipvsadm,而工作在内核空间中的代码叫ipvs,2.4内核之后,ipvsadm已经被做进内核中,只需要将相应的功能开启即可。而我们就是通过用户空间中的ipvsadm定义一些规则来实现对内核中ipvs的控制的。

ipvsadm 命令选项以及运用

ipvsadm

   -A 定义一个新的集群服务
   -E 修改或者编辑已存在的集群服务
   -D 删除一个集群服务

   -a 添加
   -e 编辑

   -C 清空

   -R == -restore
   -S == -safe
   -L|l 列出所有的相关ipvsadm规则
   -Z :清空计数器
   --stats 输出统计信息,与-L一起用
   --rate 也与-L一起用
   -n 以数字形式输出

定义一个集群服务的完整语法:

ipvsadmin -A|E -t|u|f VIP:port -s 调度算法[默认WLC]

   -t : tcp的服务器
   -u:udp的服务
   -f:基于防火墙的服务
   -s:指定调度算法

定义Realserver

ipvsadm -a|e -t|u VIP:port -r REALSERVER[:port] [-g|i|m] [-w weight]
ipvsadm -d -t|u VIP:port -r REALSERVER

NAT模型构建LVS
说明:在这里运用三台虚拟机,一台用作Director,别外两台用于web服务器,分别是web1和web2。

配置前的ip规化:

对于Director:

安装两个网卡:eth0、eth1。eth0用于桥接,eth1工作在仅主机。ip分别为:

eth0 :172.16.35.2/24

eth1 :192.168.35.10/24

对于web服务器,分别有一个网卡,并都工作于仅主机模式。ip地址为:
web1:192.168.35.100/24
web2:192.168.35.101/24


在这里还要开启Director服务器上的ip地址的转发功能

# echo 1 > /proc/sys/net/ipv4/ip_forward



下面来配置ipvsadm

在配置之前要安装ipsadm。所以要配置好yum源。

要在Director服务器上安装ipvsadm.

用命令:

  # yum install ipvsadm

来直接安装。

安装完成后就在Director 配置ipvsadm规则。

ipvsadm -A -t 172.16.35.2:80 -s rr(也可以是其他的调度方法)
ipvsadm -a -t 172.16.35.2:80 -r 192.168.35.100 -m
ipvsadm -a -t 172.16.35.2:80 -r 192.168.35.101 -m


好了。这样一个基于LVS的NAT模型就配置完成了。

可以用命令:

ipvsadm -E -t 172.16.35.2:80 -s s后面要加上所要用的调度方法来验证。如果要加上权重可以在

ipvsadm -Z 要先清空一下

ipvsadm -a -t 172.16.35.2:80 -r 192.168.35.100 -m -w 8(相对于web2的倍数)



下面在浏览器中输入:http://172.16.35.2 就可以测试了,是否能正常的在web1和web2上运用不同的调度方式。















运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-658987-1-1.html 上篇帖子: lvs配置使用篇 下篇帖子: Corosync+Pacemaker+Ldirectord+Lvs+Httpd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表