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

[经验分享] LVS介绍以及部署

[复制链接]

尚未签到

发表于 2019-1-4 11:01:45 | 显示全部楼层 |阅读模式
  LVS 是(Linux Virtual Server)
  1.1  LVS 体系结构
LVS 建筑于实际的服务器集群之上,用户看不到提供服务的多台实际服务器,而只能看见一台
作为负载平衡器的服务器。实际的服务器通过高速局域网或地理上分散的广域网连接。实际服务器
的前端是一台负载平衡器,他将用户的请求调度到实际服务器上完成,这样看起来好像所有服务都
是通过虚拟服务器来完成的。Linux 虚拟服务器能够提供良好的可升级性、可靠性和可用性。用户 可以透明地增加或减少一个节点,可以对实际服务器进行监测,如果发现有节点失败就重新配置系
统。
  1.2 LVS 调度算法
LVS 提供了十种调度算法:
可以透明地增加或减少一个节点,可以对实际服务器进行监测,如果发现有节点失败就重新配置系
统。

  1.3 LVS 调度算法
LVS 提供了十种调度算法:

  1.轮叫(Round Robin RR)
调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对
待每一台服务器,而不管服务器上实际的连接数和系统负载。
  

  2.加权轮叫(Weighted Round Robin WRR)
调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保
证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态
地调整其权值。

  3.最少链接(Least Connections LC)
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如
果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。

  4.加权最少链接(Weighted Least Connections WLC)
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载
均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务
器的负载情况,并动态地调整其权值。

  5.基于局部性的最少链接(Locality-Based Least Connections LBLC)
"基于局部性的最少链接" 调度算法是针对目标IP 地址的负载均衡,目前主要用于Cache 集群
系统。该算法根据请求的目标IP 地址找出该目标IP 地址最近使用的服务器,若该服务器是可用的
且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的
工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。
  

  6.带复制的基于局部性最少链接(Locality-Based Least Connections with Replication LBLCR
"带复制的基于局部性最少链接"调度算法也是针对目标IP 地址的负载均衡,目前主要用于
Cache 集群系统。它与LBLC 算法的不同之处是它要维护从一个目标IP 地址到一组服务器的映射,
而LBLC 算法维护从一个目标IP 地址到一台服务器的映射。该算法根据请求的目标IP 地址找出该目
标IP 地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,
将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该
服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,
将最忙的服务器从服务器组中删除,以降低复制的程度。

  7.目标地址散列(Destination Hashing DH)
"目标地址散列"调度算法根据请求的目标IP 地址,作为散列键(Hash Key)从静态分配的散列
表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  8.源地址散列(Source Hashing SH)
"源地址散列"调度算法根据请求的源IP 地址,作为散列键(Hash Key)从静态分配的散列表找
出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  9.最短期望延迟(Shortest Expected Delay Scheduling SED)
分配一个接踵而来的请求以最短的期望的延迟方式到服务器。

  10.最小队列调度(Never Queue Scheduling NQ)
分配一个接踵而来的请求到一台空闲的服务器,此服务器不一定是最快的那台,如果所有服务
器都是繁忙的,它采取最短的期望延迟分配请求。
  1.4 LVS 负载均衡方法
  Virtual Server via NAT  NAT转化
  Virtual Server via IP Tunneling  虚拟隧道
  Virtual Server via Direct  Routing 路由选择
  1.4.1  LVS-NAT 方式体系结构
  Virtual Server via NAT 方法使用了报文双向重写的方法。
  客户通过访问虚拟服务器的IP地址时,请求报文到调度服务器,调度器根据算法从真实服务器后中选出一台服务器将报文的目标地址Virtual IP
Address 改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后
的报文发送给选出的服务器。同时,调度器在连接Hash 表中记录这个连接,当这个连接的下一个
报文到达时,从连接Hash 表中可以得到原选定服务器的地址和端口,进行同样的改写操作,并将报
文传给原选定的服务器。当来自真实服务器的响应报文经过调度器时,调度器将报文的源地址和源
端口改为Virtual IP Address 和相应的端口,再把报文发给用户。
  1.4.2部署配置
  IP 地址                      主机名         描述
192.168.130.130 Web-Master Director 分发器(VIP)
192.168.140.132 Web-Master Director 分发器(DIP)
192.168.140.133 Web-node1 Real Server Web 节点1
192.168.140.134 Web-node2 Real Server Web 节点2
  192.168.130.131 Web-Client  测试客户端
  1.4.3 设置主机名解析
  vim /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.140.132 Web-node
192.168.140.133 Web-node1
192.168.140.134 Web-node2
  1.4.4 节点1配置
  [root@Web-node1 ~]# mount /dev/cdrom /mnt
[root@Web-node1 ~]# rpm -ivh /mnt/Server/httpd-2.2.3-31.el5.i386.rpm
[root@Web-node1 ~]# echo Web-node1 > /var/www/html/index.html
[root@Web-node1 ~]# /etc/init.d/httpd start
[root@Web-node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.140.133
NETMASK=255.255.255.0
GATEWAY=192.168.140.132 注意:默认网关设置为DIP
ONBOOT=yes
HWADDR=00:0c:29:7c:cf:ba
[root@Web-node1 ~]# /etc/init.d/network restart
2> Web-node2
[root@Web-node2 ~]# mount /dev/cdrom /mnt
[root@Web-node2 ~]# rpm -ivh /mnt/Server/httpd-2.2.3-31.el5.i386.rpm
[root@Web-node2 ~]# echo Web-node2 > /var/www/html/index.html
[root@Web-node2 ~]# /etc/init.d/httpd start
[root@Web-node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.140.134
NETMASK=255.255.255.0
GATEWAY=192.168.140.132 注意:默认网关设置为DIP
ONBOOT=yes
HWADDR=00:0c:29:5d:2d:90
[root@Web-node2 ~]# /etc/init.d/network restart
请用浏览器访问两个Web 几点,保证服务是正常运行。

  1.4.5 节点2配置
  mount /dev/cdrom /mnt
[root@Web-node2 ~]# rpm -ivh /mnt/Server/httpd-2.2.3-31.el5.i386.rpm
[root@Web-node2 ~]# echo Web-node2 > /var/www/html/index.html
[root@Web-node2 ~]# /etc/init.d/httpd start
[root@Web-node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.140.134
NETMASK=255.255.255.0
GATEWAY=192.168.140.132 注意:默认网关设置为DIP
ONBOOT=yes
HWADDR=00:0c:29:5d:2d:90
[root@Web-node2 ~]# /etc/init.d/network restart
请用浏览器访问两个Web 几点,保证服务是正常运行。
  1.4.6 调度服务器配置
  1> 打开IP_Forward
  vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@Web-node ~]# sysctl -p
  2> 绑定DIP 和VIP
  [root@Web-node ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.140.132
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=00:0c:29:17:39:9c
  3> 安装ipvsadm 软件包
[root@Web-node ~]# rpm -ivh /mnt/Cluster/ipvsadm-1.24-10.i386.rpm
4> 设置ipvsadm
[root@Web-node ~]# modprobe iptable_nat
[root@Web-node ~]# ipvsadm -A -t 192.168.130.130:80 -s rr
[root@Web-node ~]# ipvsadm -a -t 192.168.130.130:80 -r 192.168.140.133 -m
[root@Web-node ~]# ipvsadm -a -t 192.168.130.130:80 -r 192.168.140.134 -m
[root@Web-node ~]# service ipvsadm save
Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
[root@Web-node ~]# chkconfig ipvsadm on
  注释:-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务
  -a--add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。

  -r --real-server server-address 真实的服务器
  -m --masquerading 指定LVS 的工作模式为NAT 模式
  1.4.7 LVS -NAT 方式集群测试

  1> 手动效果测试
[root@Web-Client ~]# elinks http://192.168.130.130 发现访问的是Web-node1
[root@Web-Client ~]# elinks http://192.168.130.130 发现访问的是Web-node2
  尊重原创http://www.unixhot.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-659257-1-1.html 上篇帖子: 搭建VIP和RIP不在同一网段的DR模型的LVS 下篇帖子: LVS 自开发脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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