网站集群架构设计LVS实现网络负载均衡实例精讲ppt课件_第1页
网站集群架构设计LVS实现网络负载均衡实例精讲ppt课件_第2页
网站集群架构设计LVS实现网络负载均衡实例精讲ppt课件_第3页
网站集群架构设计LVS实现网络负载均衡实例精讲ppt课件_第4页
网站集群架构设计LVS实现网络负载均衡实例精讲ppt课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网站集群架构设计LVS实现网络负载均衡实例精讲:/DOCIN/SUNDAE_MENGdocin/sundae_meng 清楚为什么会出现LVS LVS能够做到的 LVS实现方式 LVS需要High Availability LVS的应用延伸:/DOCIN/SUNDAE_MENG互联网的发展 Unix诞生于1969年 1987商业化的互联网诞生 1990年互联网的膨胀在继续:/DOCIN/SUNDAE_MENG群集概念的出现 人口大爆炸,男的比女的多3700万,都去上网。于是服务器吃不消了,有人提出了群集、云-概念。:/DOCIN/SUNDAE_MENG解决之道 Html语法URL重定向 Loc

2、ation 返回代码 早前的DNS的多个A记录 负载均衡产品 F5硬件 GSLB服务端应用负载均衡 从程序解决:/DOCIN/SUNDAE_MENG开源解决之道 节约采购硬件成本、减少开发难度 基于开源应用软件的Modules解决之路 apache mod_geoip mod_proxy_balancer mod_proxy_ajp nginx GEO Module tomcat sessions 2019年5月创立LVS 成为了Linux内核的一部分 效率高 真实运行的Web proxy集群系统 :/DOCIN/SUNDAE_MENG什么是LVS LVS是章文嵩博士发起和领导的优秀的集群解决

3、方案,许多商业的集群产品,比如RedHat的Piranha等,都是基于LVS的核心代码的。 LVS是一个开源的软件,在LINUX平台下实现基于IP负载均衡技术和内容请求分发技术 。 LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。 / /:/DOCIN/SUNDAE_MENGLVS能做到的 The Linux Virtual Server is a highly scalable and highly available server built on a clus

4、ter of real servers, with the load balancer running on the Linux operating system. The architecture of the server cluster is fully transparent to end users, and the users interact as if it were a single high-performance virtual server. / :/DOCIN/SUNDAE_MENG高性能的调度器 LVS集群采用IP负载均衡

5、技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,结合健康检测功能调度器自动屏蔽掉服务器的故障,结合High Availability技术从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。:/DOCIN/SUNDAE_MENGLVS不能做到的 机器数量需要多 Nginx 在一个主机上就可以实现很好的负载 基于IP的调度算法不能实现基于语意的调度 对于应用程序的sessions需要借助其他方式 对于数据库RAC、REPLICATION不同

6、 Google file system, Bigtable, Mapreduce (Hadoop开源的可运行于大规模集群上的分布式并行编程框架 ):/DOCIN/SUNDAE_MENG典型LVS结构 一般来说,LVS集群采用三层结构,负载调度器、服务器池、共享存储主要部分组成。:/DOCIN/SUNDAE_MENGLVS的三个部分 负载调度器load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址我们可称之为虚拟IP地址上的。 服务器池server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL

7、、FTP和DNS等。 共享存储shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。 :/DOCIN/SUNDAE_MENG三种IP负载均衡技术 可伸缩网络服务结构,都需要一个前端的负载调度器主从备份) 基于IP负载均衡技术是在负载调度器的实现技术中效率最高的。 在已有的IP负载均衡技术中,主要有通过网络地址转换Network Address Translation将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术Virtual Server via Network Address Translatio

8、n)。 在分析VS/NAT的缺点和网络服务的非对称性的基础上 通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling) 通过直接路由实现虚拟服务器的方法VS/DRVirtual Server via Direct Routing), VS/DR可以极大地提高系统的伸缩性。 VS/NAT、VS/TUN和技术是LVS集群中实现的三种IP负载均衡技术。 :/DOCIN/SUNDAE_MENGVS/NAT的体系结构 :/DOCIN/SUNDAE_MENG半连接的TCP有限状态机 :/DOCIN/SUNDAE_MENGVS/TUN的体系结构 :/D

9、OCIN/SUNDAE_MENGVS/DR的体系结构 :/DOCIN/SUNDAE_MENG调度算法 轮叫调度Round-Robin Scheduling) 加权轮叫调度Weighted Round-Robin Scheduling) 最小连接调度Least-Connection Scheduling) 加权最小连接调度Weighted Least-Connection Scheduling) 基于局部性的最少链接Locality-Based Least Connections Scheduling) Cache 带复制的基于局部性最少链接Locality-Based Least Connec

10、tions with Replication SchedulingCache 目标地址散列调度Destination Hashing Scheduling) 源地址散列调度Source Hashing Scheduling) :/DOCIN/SUNDAE_MENGLVS实现方式 IP Virtual Server Netfilter module ls -l /lib/modules/uname -r/kernel/net/ipv4/ipvs RedHat 7.3/8.0都把ipvs预先编译到了RedHat发行版的内核当在redhat9.0取消了预编译 目前IPVS包含在2.6的内核中,不需要

11、重新编译,非常简单 ipvsadm utility to administer the IP Virtual Server inside the Linux kernel :/DOCIN/SUNDAE_MENGipvsadm常用命令 增加调度服务 ipvsadm -A -t 虚拟服务地址:服务端口 -s 调度算法 增加真实服务器 ipvsadm -a -t 虚拟服务地址:服务端口 -r 真实服务地址 g工作模式 删除真实服务器 ipvsadm -d -t 虚拟服务地址:服务端口 -r 真实服务地址 g工作模式 删除调度服务 ipvsadm -D -t 虚拟服务地址:服务端口 -s 调度算法 查

12、看调度状态 ipvsadm ln ipvsadm -lnc:/DOCIN/SUNDAE_MENG状态同步 主节点 ipvsadm -start-daemon master -mcast-interface eth0 从节点 ipvsadm -start-daemon backup -mcast-interface eth0:/DOCIN/SUNDAE_MENGsession会话保持Persistence -p persistent timeout 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。 解决这个问题,最有效的

13、办法就是在后端web节点间实现session复制,用户在任何一个真实web节点上的session发生变化时,通过一定的策略同步复制到其它web节点上。:/DOCIN/SUNDAE_MENG调度器与真实服务器配置 在调度器上 设置VIP调度地址 开启IP转发 ifconfig eth0:0 虚拟服务地址 netmask 55 broadcast 虚拟服务地址 up route add -host 虚拟服务地址 dev eth0:0 echo 1 /proc/sys/net/ipv4/ip_forward:/DOCIN/SUNDAE_MENG调度器与真实服务器配置 在真实

14、服务器上 设置VIP应答地址 屏蔽arp请求 ifconfig lo:0 虚拟服务地址 netmask 55 borcast 虚拟服务地址 up route add -host 虚拟服务地址 dev lo:0 echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/sys/net/ipv4/conf/all/arp_annou

15、nce :/DOCIN/SUNDAE_MENGRealServer标准配置方式 编辑/etc/sysconfig/network-scripts/ifcfg-lo:0 设置VIP地址 DEVICE=lo:0 IPADDR=60#VIP地址 NETMASK=55 BROADCAST=60#广播地址设置为VIP地址 ONBOOT=yes NAME=loopback 编辑/etc/sysctl.conf 设置禁用arp net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_ann

16、ounce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2:/DOCIN/SUNDAE_MENG演示环境 采用VS/DR模式,通过ipvsadm命令方式建立演示一个典型的环境:一个dr节点、两个realserver节点运行WEB服务。VIP:60/24DR:61/24RealServerA:67/24RealServerB:68/24GATEWAY:DNS::/DOCI

17、N/SUNDAE_MENGDemo 演示视频:/DOCIN/SUNDAE_MENG问题 配置脚本问题 DR节点成为单点故障源 无RealServer的监控状态检测 LVS需要High Availability:/DOCIN/SUNDAE_MENGLVS需要High Availability LVS Piranha LVS heartbeat ldirectord LVS Keepalived:/DOCIN/SUNDAE_MENGLVS Piranha piranha为REDHAT开发的一个LVS集群管理工具叫Piranha,用于控制LVS集群,并提供了一个图形化的配置界面。 Piranha -

18、 Load-balanced Web and FTP Clusters piranha-gui service pulse service Linux Virtual Server Administration redhat/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Virtual_Server_Administration/index.html:/DOCIN/SUNDAE_MENGPiranha:/DOCIN/SUNDAE_MENG GET / /1.0rnrn:/DOCIN/SUNDAE_MENGPiranha安装 Piranha是调度节点的配置

19、,RealServer节点的配置仍不能缺少 rs节点设置VIP rs节点禁用ARP 对于centos yum -y install piranha ipvsadm 不能使用yum需要安装如下包具体版本因OS不同) php-common php-cli php ipvsadm piranha:/DOCIN/SUNDAE_MENGPiranha配置文件 /etc/sysconfig/ha/lvs.cf 添加删除节点 更改调度服务定义 更改参数设置 更改后重新启动pulse:/DOCIN/SUNDAE_MENGPiranha结合Kickstart定制 结合Kickstart %post脚本定制 预定

20、义 修改lvs.cf 快速:/DOCIN/SUNDAE_MENG 采用VS/DR模式,通过Piranha方式建立演示一个典型的环境:一个dr节点、两个realserver节点运行WEB服务。VIP:60/24DR: 61/24BDR:62/24RealServerA:67/24RealServerB:68/24GATEWAY:DNS:配置监控检测,测试节点移除:/DOCIN/SUNDAE_MENGDemo 演示视频:/DOCIN/SUNDAE

21、_MENGLVS Keepalived keepalived keepalived.sourceforge Keepalived在这里主要用作RealServer的健康状态检查以及DR调度Master主机和BackUP主机之间failover的实现 当网卡就可以实现主备监听) VRRP 提示:在centos 5.3 上有异常:/DOCIN/SUNDAE_MENGVRRP:Virtual Router Redundancy Protocol虚拟路由器冗余协议 虚拟路由器冗余协议VRRP是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP

22、 地址的 VRRP 路由器称为主路由器,它负责转发数据包到这些虚拟 IP 地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的 IP 地址可以作为终端主机的默认第一跳路由器。:/DOCIN/SUNDAE_MENGLVS Keepalived Keepalived keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服

23、务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。 Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下: Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否

24、有效作为服务器工作正常与否的标准。 Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。 Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。:/DOCIN/SUNDA

25、E_MENG:/DOCIN/SUNDAE_MENG:/DOCIN/SUNDAE_MENGDemo 演示视频:/DOCIN/SUNDAE_MENGheartbeat ldirectord heartbeat Heartbeat heartbeat是一种心跳检测机制。他可以让两台服务器Master Server 和Slave Server互为备份。Heartbeat的中文是“心跳检测”。Slave Server利用heartbeat来检测Master Master的当前状态,当Master Server不能工作时如:down机Slave Server通过heartbeat来接管Master Server的所有工作,这个接管过程在10秒以内完成,对用户来说没有什么察觉。Heartbeat中包含一个IP take overIP 地址接管的功能,此功能是通过ARP欺骗的手段来完成的。:/DOCIN/SUNDAE_MENGheartbeat ldirectord ldirectord工作原理: l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论