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

[经验分享] LVS基本原理、类型和调度算法以及NAT、DR模型的实现

[复制链接]

尚未签到

发表于 2019-1-6 08:41:47 | 显示全部楼层 |阅读模式
  
LVS简介
支持IPVS的集群负载均衡器和集群节点一起称为Linux Virtual Server

LVS基本原理
      LVS集群负载平衡器接受服务的所有入站客户端计算机请求, 集群并决定哪个集群节点应该回复给请求。负载平衡器有时被称 为LVS Director或者简称之为DirectorLVS集群内部的节点称为真实服务器(Real Server),也叫做集群节点。链接到集群请求集群服务的计算机称为客户端计算机。与计算机通常在网上交换数据包的方式相同,客户端计算机、Director和真实服务器使用IP地址进行彼此通信

集群定义
       是一种并行或分布式系统,该系统:包括一个互连的整体计算机集合,作为一种单一、统一的计算资源使用

集群计算机按功能和结构可以分成以下几类:
高可用性集群 High-availability (HA) clusters
负载均衡集群 Load balancing clusters
高性能计算集群 High-performance (HPC) clusters
网格计算 Grid computing

LVS调度算法
动态调度方法
lc:最小连接谁的小,挑谁
wlc:加权最小连接
sed:最短期望延迟
    LBLC:基于本地的最少连接
    LBLCR:基于本地的带复制功能的连接
四种静态
rr:轮叫,轮询
wrr:Weight,加权
sh:source hash,源地址hash 源地址散列调度
dh:目标地址散列调度
NAT模型的实
NAT: 地址转换
    集群节点跟director必须在同一个IP网络中
    RIP通常是私有地址,仅用于各个集群节点间的通信
    director位于clientreal server 之间,并负责处理进出的所有通信
    realserver 必须将网关指向DIP
    支持端口映射
    realserver可以使用任意OS
较大规模应用场景中,director易成为系统瓶颈
规划:

Client

Director

Real Server 1

Real Server 2

IP

172.16.0.345

eth0172.16.86.1

eth1192.168.86.1

eth0:192.168.86.3

eth0192.168.86.4

通信模型图:

客户端的请求经路由到达DirectorDirector再转发到Real Server中的任意一个,Real Server回应的报文再经过网关通过路由到达客户端。
下面我们就用 HTTP服务为例子来讲解一下LVS-NAT 的实现吧。前端服务器配置VIP向外响应来自客户端的请求,后端两台Real Server运行web服务,应该在后端两台web上配置相同的网页,但是这里为了便于观察效果我们将两个网页内容配置的稍微有点差别,设置网关都指向192.168.86.1

实验步骤:
一、DirectorReal Server配置IP地址
RS1

       RS2:



Director以同样的方法配置其IP地址,其中内网的网卡类型也要设置成Host-only使其能与内网完成通信

二、Real Server 安装web服务并配置网页
Real Server 1
[root@server39 ~]# yum install httpd -y
[root@server39 ~]# echo RS2.magedu.com > /var/www/html/index.html   #提供网页内容
[root@server39 ~]#service httpd start
[root@server39 ~]#curl http://localhost##测试网页
[root@server39 ~]#RS1.magedu.com

Real Server 2
[root@server39 ~]# yum install httpd -y
[root@server39 ~]# echo RS2.magedu.com > /var/www/html/index.html   #提供网页内容
[root@server39 ~]#service httpd start
[root@server39 ~]#curl http://localhost##测试网页
[root@server39 ~]#RS2.magedu.com
三、Director的相关配置
先介绍一下命令的应用:
ipvsadm:
管理集群服务
添加:-A -t|u|f service-address [-s scheduler]
-tTCP协议的集群
-uUDP协议的集群
service-address: IP:PORT
-fFWM:防火墙标志
service-address: Mark Number
修改:-E
删除:-D  -t|u|f service-address

# ipvsadm -A -t 172.16.86.1:80 -s rr
管理集群服务中的RS
添加:-a -t|u|f service-address -r service-address [-g|i|m] [-w weight]
-t|u|f service-address :事先定义好的吗,某集群服务器
-r service-address:RS的地址,在NAT模型中,可使用IP:PORP实现端口映射
[-g|i|m]:LVS类型
-g:DR
-i:TUN
-m:NAT
[-w weight]:定义服务器权重
修改:-e
删除:-d -t|u|f service-address -r service-address

#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m
#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m

查看:
-L|-l
-n:数字格式显示主机地址和端口
--stats:统计数据
--rate:速率
--timeout:显示tcptcpfinudp的回话超时时长
-c:显示当前的ipvs连接状况

删除所有集群服务
-C:清空ipvs规则
保存规则:
-S
#ipvsadm -S > /path/to/somefile
载入此前规则
-R
#ipvsadm -R < /path/to/somefile
安装ipvsadm配置命令:
[root@localhost ~]# yum install ipvsadm
[root@localhost ~]# service ipvsadm start
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Applying IPVS configuration:                      [  OK  ]
[root@localhost ~]# ipvsadm -A -t 172.16.86.1:80 -s rr
[root@localhost ~]# ipvsadm -a -t 172.16.86.1:80 -r 192.168.86.3 -m      ###-m表示为NAT模型
[root@localhost ~]# ipvsadm -a -t 172.16.86.1:80 -r 192.168.86.4 -m
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.86.1:80 rr
  -> 192.168.86.4:80              Masq    1      0          0         
  -> 192.168.86.3:80              Masq    1      0          0         
[root@localhost ~]# ipvsadm -S > /etc/sysconfig/ipvsadm    ##保存配置信息
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 172.16.86.1:http -s rr
-a -t 172.16.86.1:http -r 192.168.86.4:http -m -w 1
-a -t 172.16.86.1:http -r 192.168.86.3:http -m -w 1

        [root@localhost ~]#echo 1 > /proc/sys/net/ipv4/ip_forward  ##打开路由转发功能



测试网页:

刷新网页:


DR模型的实现
DR: 直接路由
集群节点跟director必须同一个物理网络中
RIP可以使用公网地址,实现便捷远程管理和控制
director仅负责入站请求,响应报文则有real server直接发往客户端
real server 不能将网关指向DIP
不支持端口映射
规划:

Client

Director

Real Server 1

Real Server 2

IP

172.16.0.345

eth0,dip: 172.16.86.2
eth0:0,vip:172.16.86.1
eth0,rip:172.16.86.3

lo:0,vip:172.16.86.1

eth0,rip:172.16.86.4
Lo:0,vip172.16.86.1
通信模型图:


客户机发出请求经过路由和交换机到达DirectorDirector然后再转发到Real Server中的任意一个,Real Server再负责响应报文经过交换机和路由器到达客户机。客户端的请求报文到达Directorvip上然后再转发到Real Server上,再由Real Servervip作为源地址回应客户端请求,所以每个Real Server上都要配置vip,并配置特定的路由条目即可。Real Server上的vip对外是不可见的,所以在接收客户端的APR请求时是不与相应的。
实验步骤:
一、RS1RS2的配置。
    RS1RS2的配置是相同的。下面就介绍RS1一个的配置吧。IP地址的配置和上面的NAT的配置一样,下面就该配置对ARP响应和向外通告的级了,首先介绍一下它的级别:
arp_ignore:定义接收到ARP请求时的相应级别;
0:只要本地配置的有相应的地址,就给予相应;
1:仅在请求的目标地址配置请求到达的接口上的时候,给予相应
arp_announce:定义将自己地址向外通告时的通告级别
0:将本地任何接口上的任何地址向外通告
1:试图仅向目标网络通告与其网络匹配的地址
2:仅向与本地接口上地址匹配的网络进行通告
    配置如下:

配置vip地址并添加特定路由信息,提供网页内容(和NAT中的相同)
[root@localhost ~]ifconfig lo:0 172.16.86.1 broadcast 172.16.86.1 netmask 255.255.255.255 up
[root@localhost ~]route add -host 172.16.86.1 dev lo:0
二、配置Director
首先是IP地址的配置,IP地址的配置和上面的都是相同的只是地址不一样而已,eth0:172.16.86.2eth0:0:172.16.86.1,在这里就不给出配置信息了。
配置ipvsadm规则命令:
[root@localhost ~]# ipvsadm -A -t 172.16.86.1:80 -s wlc
[root@localhost ~]# ipvsadm -a -t 172.16.86.1:80 -r 172.16.86.3 -g -w 2
[root@localhost ~]# ipvsadm -a -t 172.16.86.1:80 -r 172.16.86.4 -g -w 1
添加路由条目:
[root@localhost ~]# route add -host 172.16.86.1 dev eth0:0
测试网页:

刷新:

访问比例是1 2,即访问两次RS1.magedu.com后才访问一次RS2.magedu.com

  





运维网声明 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.yunweiku.com/thread-659836-1-1.html 上篇帖子: LVS原理及三种模式优缺点比较 下篇帖子: LVS模式的持久连接与健康状况检查
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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