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

[经验分享] LVS 负载均衡群集详解、地址转换模式(LVS

[复制链接]

尚未签到

发表于 2019-1-4 10:10:50 | 显示全部楼层 |阅读模式
前言
  · Linux Virtual Server (LVS)是针对 Linux 内核开发的一个负载均衡项目,是由我国章文嵩博士在 98 年 5月创建。
· LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种搞笑的解决办法。
·LVS 现在已称为 Linux 内核的一部分,默认编译为 ip_vs 模块,必要时能够自动调用

群集的类型
  1· 负载均衡群集
·以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能。
  2·高可用群集
·以提高应用系统的可靠性、尽可能的减少终端时间为目标,确保服务的连续性,达到高可用 (HA)的容错效果。
  3·高性能运算群集
以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得高性能运算能力。
负载均衡的分层结构
  典型的负载均衡群集中,包括三个层次的组建。前端至少有一个负载调度器,负载响应并分发来自客户端的访问请求;后端由大量的真是服务器构成服务器池,提供实际的应用服务;为了保持服务的以执行,所有节点使用共享储存设备。
  第一层:
·负载调度器,是访问整个集群系统的唯一入口,对外使用所有服务器共有的 VIP 地址。
  第二层
·服务器池,群集提供的应用服务由服务器池承担,其中的每个节点具有独立的 RIP 地址,只处理调度器分发的请求。
  第三层
·共享储存,为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个集群的统一性
  下图是分层结构图

负载均衡的工作模式
  ·基于 IP 的负载均衡模式中,常见的有地址转换、IP 隧道和直接路由三种工作模式
  1·地址转换模式 (NAT 模式):
·负载调度器作为所有服务器节点的网关,即作为客户端访问入口,也是各个节点回应客户机的访问出口。下图是结构拓扑图:

  2·IP 隧道 (TUN 模式):
·采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各个节点通过 Internet 直接回应客户端,不再经过负载调度器

  3·直接路由 (DR模式):
采用半开放式的网络结构,与 TUN 模式类似,但是各个节点不是分散各地,而是与调度器位于同一个物理网络,负载调度器与各节点通过本地网络连接。

三种工作模式的优缺点
  NAT 模式:
·优点:
1 ·服务器可以运行任何支持TCP/IP的操作系统;
2·它只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址;
3·基于 NAT 的集群系统可以适合许多服务器的性能要求;
·缺点:
1·它的伸缩能力有限,当服务器结点数目升到20时,调度器本身有可能成为系统的新瓶颈;
2·相比其他两种模式,负载能力比较弱,使用范围比较小。
  TUN 模式:
·优点:
1·负载调度器就可以处理大量的请求,它甚至可以调度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈
2·可以用来构建高性能的超级服务器。
·缺点:
1·所有的服务器必须支持“IP Tunneling”或者“IP Encapsulation”协议
2·只适用运行其他操作系统的后端服务器。
  直接路由 (DR 模式):
·优点
1·调度器只处理客户到服务器端的连接,响应数据可以直接从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。
缺点
1·方法没有IP隧道的开销,但是要求负载调度器与实际服务器都有一块网卡连在同一物理网段上,服务器网络设备(或者设备别名)不作ARP响应
LVS 的负载调度算法
  1·轮询:
将收到的访问请求按照顺序轮流分配给真是服务器,不会管服务器的实际连接数量和系统负载;
  2·加权轮询:
根据真实服务器的处理能力轮流分配请求,调度器可以自动查询各个节点的负载情况,并调整器权重。这样可以保证处理能力强的服务器承担更多的访问流量;
  3·最少连接:
根据真实服务器已建立的连接数进行分配,把请求优先分配给连接数最少的节点。这样可以更好的均衡负载;
  4·加权最少连接:
在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的承担更大比例的活动连接负载。
构建LVS-NAT 模式案例
  1·部署准备:
主机IP地址用途RedHat 6.5内网eth0:192.168.100.1 外网eth1:12.0.0.1调度服务器RedHat 6.5192.168.100.30节点服务器1RedHat 6.5192.168.100.40节点服务器2RedHat 6.5192.168.100.50NFS服务器window 712.0.0.12客户端
  2·部署说明:
·LVS 的工作模式是:采用 NAT 模式
·LVS 的负载调度算法:采用 轮询算法 (rr)
开始部署
  1·部署NFS服务器
  1·在192.168.100.40主机上部署 NFS 服务器。查看 NFS、与rpcbind是否安装
[root@redhat01 ~]# rpm -q nfs-utils
·nfs-utils-1.2.3-39.el6.x86_64
·[root@redhat01 ~]# rpm -q rpcbind
·rpcbind-0.2.0-11.el6.x86_64
·[root@redhat01 ~]#
  2·开启服务
[root@redhat01 ~]# service nfs start
启动 NFS 服务:                                            [确定]
关掉 NFS 配额:                                            [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[root@redhat01 ~]# service rpcbind start
  3·编辑共享文件路径、权限!
·vim /etc/exports
/usr/share *(ro,sync)
/opt/benet 192.168.100.0/24(rw,sync)
/opt/accp 192.168.100.0/24(rw,sync)
  4·创建共享文件、并放大权限
·[root@HedHat ~]# cd /opt/
[root@HedHat opt]# mkdir benet accp
[root@HedHat opt]# ls
accp  benet  lost+found  pscount.txt  rh  test.tar.bz2
[root@HedHat opt]# chmod 777 benet/
[root@HedHat opt]# chmod 777 accp/
  5·在文件夹随意写一个网页格式的文件,方便后面验证!
[root@HedHat opt]# echo "this is benet test 01" > /opt/benet/index.html
[root@HedHat opt]# echo "this is accp test 02" > /opt/accp/index.html
  6·发布共享文件、并且查看是否共享成功、关闭防火墙!
·[root@HedHat accp]# exportfs -rv
exporting 192.168.100.0/24:/opt/accp
exporting 192.168.100.0/24:/opt/benet
exporting :/usr/share
[root@HedHat accp]# showmount -e 192.168.100.50
Export list for 192.168.100.50:
/usr/share

/opt/accp  192.168.100.0/24
/opt/benet 192.168.100.0/24
[root@HedHat ~]# service iptables stop
[root@HedHat ~]# setenforce 0
  2·部署两台节点服务器
  1·安装httpd服务器、开启服务
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# service httpd start
  2·查询共享文件、并且把共享文件挂载到 httpd 的站点目录上、查看挂载情况!
· [root@localhost html]# showmount -e 192.168.100.50
Export list for 192.168.100.50:
/usr/share *
/opt/accp  192.168.100.0/24
/opt/benet 192.168.100.0/24
[root@localhost html]# mount 192.168.100.50:/opt/benet /var/www/html/
[root@localhost html]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/sda2                   15G  3.1G   11G  23% /
tmpfs                      491M     0  491M   0% /dev/shm
/dev/sda1                  194M   30M  155M  16% /boot
/dev/sda3                   15G  165M   14G   2% /home
/dev/sda6                  8.4G  220M  7.8G   3% /opt
/dev/sr0                   3.6G  3.6G     0 100% /mnt
192.168.100.50:/opt/benet   12G  158M   11G   2% /var/www/html
  3·上面是第一台节点服务器,第二台节点服务器的配置和第一台都一样!
·[root@HedHat ~]# yum install httpd -y
·[root@localhost ~]# service httpd start
·[root@HedHat ~]# mount 192.168.100.50:/opt/accp /var/www/html/
  3·部署调度服务器
  1·加载 LVS 服务模块、安装 ipvsadm 管理工具、开启管理工具
> ·[root@HedHat ~]# modprobe ip_vs
[root@HedHat ~]# rpm -ivh /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
warning: /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
package ipvsadm-1.26-2.el6.x86_64 is already installed
[root@HedHat ~]# service ipvsadm start
  2·配置负载分配策略
[root@HedHat ~]# ipvsadm -A -t 12.0.0.1:80 -s rr
[root@HedHat ~]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.30:80 -m
[root@HedHat ~]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.40:80 -m
  3·负载分配策略命令说明:
· -A :表示调价虚拟服务器
· -t :指定 VIP 地址及 TCP 端口
· -s :指定负载调度算法(rr:轮询。wrr:加权轮询。lc:最少连接。wlc:加权最少连接)
· -r:指定 节点服务器地址及端口
· -m:表示是哦那个 NAT 群集模式
  4·配置 SNAT 转发规则、开启路由转发功能
·[root@HedHat ~]# echo "1" /proc/sys/net/ipv4/ip_forward
1 /proc/sys/net/ipv4/ip_forward
·[root@HedHat ~]# iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1
测试
  1·用windows 7 来测试,这里测试需要把IP地址修改为外网地址,因为这里是用的NAT模式,具体地址在部署准备阶段已经提供,可以返回看看。下图是测试结果:


总结
  1·负载均衡工作模式:NAT模式、IP隧道(TUN)模式、直接路由(DR)模式
2·LVS 常用调度算法:轮询(rr)、加权轮询(wrr)、最少连接(lc)、加权最少连接(wlc)
3· ipvsadm 工具可用来配置 LVS 负载调度和管理群集节点
4· NAT 模式采用单一出入口,一个公网IP地址;而DR模式的群集采用单一入口+多路出口,需要多个公网 IP 地址。
5·注意在NAT模式下,调度服务器是不能关闭防火墙的,因为需要它来做SNAT转换。




运维网声明 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-659216-1-1.html 上篇帖子: 用piranha配置LVS 下篇帖子: ipvsadm 实现LVS负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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