Linux虚拟服务器的结构、调度算法综述

Linux虚拟服务器(Linux Virtual Server, LVS)建筑于实际的服务器集群之上,用户
看不到提供服务的多台实际服务器,而只能看见一台作为负载平衡器的服务器。实际的服务器通过高速局域网或地理上分散的广域网连接。实际服务器的前端是一台负载平衡器,他将用户的请求调度到实际服务器上完成,这样看起来好像所有服务都是通过虚拟服务器来完成的。Linux虚拟服务器能够提供良好的17814.html">可升级性、可靠性和可用性。用户可以透明地增加或减少一个节点,可以对实际服务器进行监测,如果发现有节点失败就重新配置系统。

  

  结构

  

  Linux Virtual Server的结构如图1所示。

  

 

                图1 Linux虚拟服务器结构图
  
  调度算法
  
  LVS提供了四种调度算法:轮转调度,加权轮转调度,最少连接调度,加权最少连接调度。
  
  轮转调度(Round Robin Scheduling)
  轮转调度不考虑服务器的连接数和响应时间,它将所有的服务器都看作是相同的。当以轮转的形式将连接分发到不同的服务器上。
  加权轮转调度(Weighted Round Robin Scheduling)
  根据每个机器的处理能力的不同给每个机器分配一个对应的权重,然后根据权重的大小以轮转的方式将请求分发到各台机器。这种调度算法的耗费比其它的动态调度算法小,但是当负载变化很频繁时,它会导致负载失衡,而且那些长请求会发到同一个服务器上。
  最少连接调度(Least Connection Scheduling)
  最少连接调度将用户请求发送到连接数最少的机器上。最少连接调度是一种动态调度方法,如果集群中各台服务器的处理能力相近,则当负载的变化很大时也不会导致负载失衡,因为它不会把长请求发送到同一台机器上。但是当处理器的处理能力差异较大时,最少连接调度就不能很好的发挥效能了。
  加权最小连接调度(Weighted Least Connection Scheduling)
  根据服务器的性能不同而给它们分配一个相应的权重,权重越大,获得一个连接的机会就越大。有如下的运算方法:(假设共有n台机器,每一台服务器i的权重为Wi (i=1,..,n),活跃连接数为Ci (i=1,..,n), 所有的连接数为Ci (i=1,..,n)的总和,下一个连接会发送给服务器j,服务器j满足以下的要求): (Cj/ALL_CONNECTIONS)/Wj = min { (Ci/ALL_CONNECTIONS)/Wi } (i=1,..,n) 由于ALL_CONNECTIONS是一个常数,因此上面的式子可以优化为: Cj/Wj = min { Ci/Wi } (i=1,..,n)
  
  负载平衡方法
  
  LVS提供了三种IP级的负载平衡方法:Virtual Server via NAT 、Virtual Server via IP Tunneling、Virtual Server via Direct Routing。
  
  Virtual Server via NAT方法使用了报文双向重写的方法, Virtual Server via IP Tunneling采用的是报文单向重写的策略, Virtual Server via Direct Routing采用的是报文转发策略,这些策略将在以后的文章中详细描述。
  
  MOSIX
  
  MOSIX为Linux核心增添了集群计算的功能。它支持的操作系统平台有BSD/OS 和Linux,它允许任意多个基于X86/Pentium的服务器和工作站">协同工作。在MOSIX集群环境中,用户无需对应用程序进行修改,或将应用程序与库连接起来,或将应用程序分配到不同的节点上运行。MOSIX会自动将这些工作透明地交给别的节点来执行。
  
  MOSIX的核心是适应性的资源管理算法,它对各节点的负载进行监测并做出相应的回应,从而提高所有进程的整体性能。它使用抢先的进程迁移方法来在各节点中分配和再分配进程,从而充分利用所有的资源。适应性的资源管理算法具体上又包括适应性的负载平衡算法、内存引导算法和文件I/O的优化算法。这些算法都对集群中的资源使用情况的变化做出响应。如:节点上的不平衡的负载分布或由于内存不足而导致的过多的磁盘换入换出。在这种情况下,MOSIX将进程从一个节点迁移到另外一个节点上,从而来均衡负载或将进程迁移到有足够的内存空间的节点上。
  
  由于MOSIX是在Linux的核心中实现的,因此它的操作对应用程序而言是完全透明的。可以用它来定义不同的集群类型,这些集群中的机器可以相同也可以不同。
  
  与Turbocluster、Linux Virtual Server、Lsf等集群系统不同的是,MOSIX集群中的每个节点既是主节点又是服务节点,不存在主控节点。对于那些在本地节点创建的进程而言,该节点就是一个主节点;对于那些从远方节点迁移过来的进程而言,该节点就是服务节点。这意味着可以在任意时刻向集群中增加节点或从集群中删除节点,而不会对正在运行的进程产生不良的影响。MOSIX的另外一个特性就是它的监测算法能够监测每个节点的速度、负载、可用内存、IPC 以及I/O rate 。系统使用这些信息来决定将进程发送到哪个具体的节点上。当在某个节点上创建了一个进程以后,该进程就在这个节点上执行。当该节点的负载超过了一定的阀值以后,就将该进程透明地迁移到别的节点上继续执行。

时间: 2024-07-31 03:12:27

Linux虚拟服务器的结构、调度算法综述的相关文章

【Linux】LVS --Linux虚拟服务器

    LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器.  LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序.为此,在设计

LVS(Linux Virtual Server)Linux 虚拟服务器介绍及配置(负载均衡系统)_服务器其它

一,简介 LVS(Linux Virtual Server) 是Unix-like系统中的一个虚拟服务器,是国内贡献给开源组织的一个最优秀的项目之一.LVS在Unix-like系统中 是作为一个前端(Director)存在的,又称为调度器,它本身不提供任何的服务,只是将通过互联网进来的请求接受后再转发给后台运行的真正的 服务器(RealServer)进行处理,然后响应给客户端. LVS有两个重要的组件:一个是IPVS,一个是IPVSADM.ipvs是LVS的核心组件,它本身只是一个框架,类似于i

通过远程桌面客户端连接云环境下的虚拟服务器

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   如果你已经开始着手实施云计算,那么有可能你正在使用这三种工具中的一种来连接你的服务器.也许你更习惯于使用Windows Remote Desktop或者Secure Shell(SSH)来远程管理物理服务器.如果你从未使用过上述的三种工具,那么快来了解一下哪些虚拟机资源可以使用它们来连接通信. 如果你想直接对服务进行管理,那么你必须使用另一个工具.比如你想要运行

在linux虚拟机上安装docker和在linux服务器上安装docker区别,在linux虚拟机上安装docker 如果这个虚拟机没有外网 是不是很难设置网络

问题描述 在linux虚拟机上安装docker和在linux服务器上安装docker区别,在linux虚拟机上安装docker如果这个虚拟机没有外网是不是很难设置网络该问题来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理. 解决方案 解决方案二:看需求了,但差别不大该解答来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理,由于手工编辑,提问者和回答者的QQ号和昵称没有一一注明,只简单用ABCD代替提问或回复,A代表提问

简述Linux文件系统的目录结构

Linux文件系统结的结构是树形结构,其入口从/开始,了解Linux文件系统的结构,对于我们需要掌握的基础知识点之一. 1.什么是文件系统: 请参见:<Linux 文件系统概述> 2.文件系统的组织结构简说: 当您使用Linux的时候,如果您通过ls -la / 就会发现,在/下包涵很多的目录,比如etc.usr.var.bin ... ... 等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件.文件系统在Linux下看上去就象树形结构,所以我们可以把文件系统的结构形象的称为树形结

什么是虚拟服务器

  虚拟服务器是:通过 Web 服务器(一台高性能的机器),在一块网卡上绑定多个 IP 地址,而不同的 IP 地址绑定于同一台 WWW 服务器上的不同的主页目录,当用户访问不同的 IP 地址时,其对应的主页就会被分发出去,一台 WWW 服务器就好像许多 WWW 服务器一样.这样可以节约硬件资源,降低 WWW 服务器维护的成本,便于网页的集中管理,缺点是对 WWW 服务器的硬件要求较高,在网络访问高峰期系统性能下降较大,还有安全隐患.在 WindowsNT 和 Linux 上都可以建立虚拟服务器.

《Linux高性能服务器编程》——导读

前 言 为什么要写这本书 目前国内计算机书籍的一个明显弊病就是内容宽泛而空洞.很多书籍长篇大论,恨不得囊括所有最新的技术,但连一个最基本的技术细节也无法解释清楚.有些书籍给读者展现的是网络上随处可见的知识,基本没有自己的观点,甚至连一点自己的总结都没有.反观大师们的经典书籍,整本书只专注于一个问题,而且对每个技术细节的描述都是精雕细琢.最关键的是,我们在阅读这些经典书籍时,似乎是在用心与一位编程高手交流,这绝对是一种享受. 我们把问题缩小到计算机网络编程领域.关于计算机网络编程的相关书籍,不得不

AMD三代Opteron处理器虚拟服务器动态迁移

AMD Opteron(皓龙) 处理器采用具有划时代意义的 AMD64 结构,可以同时支持 32 位或 64 位的计算.AMD Opteron(皓龙) 处理器的设计可确保用户以出众的性能运行现有 32 位应用程序,同时为用户提供一条转移 64 位计算的捷径.这一秉承渐进发展理念而设计的处理器在包括兼容性.性能.投资保护及降低 TCO (总拥有成本) 方面都实现了重大的跨越.AMD Opteron(皓龙) 处理器有三个不同系列可供选择:100 系列 (单路).200 系列 (单或双路) 及 800

最好的linux虚拟主机空间推荐

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 现如今,很多个人博客.个人网站以及中小型企业网站站长都选择Linux虚拟主机来托管自己的网站,这是因为Linux除了它开源和免费的特性之外,还能很好的支持基于PHP+MySQL的网站开发,更大限度的发挥其功能,为网站快速而稳定的运行提供保障. 对于国内的用户,选择Linux虚拟主机空间首推香港Linux虚拟主机空间,结合本人的使用经验,给各位