题记:算法
服务器是企业信息网络的核心。windows
随着应用的深刻,企业网内的信息流量快速增加,当用户量及其应用量很大时,在同一时刻企业的主机服务器可能要承受大量用户的来访请求,然而一台主机的处理能力是有限的,假若访问量的增加超过了主机的处理极限,主机的处理能力就会成为企业网应用的瓶颈,这将制约网络应用的继续发展。 服务器
解决之道 网络
解决这个问题的传统思路是更换技术更加先进、性能更增强大的主机服务器,然而这将使企业面临资金投入的巨大压力,并且对于一个成长型企业来讲,网络应用信息量增加的速度很快,新的主机可能在不远的未来遭遇相同的尴尬处境。 分布式
另外一个解决思路就是使用流量分担技术。即在网络内增长多台主机服务器,并让这些服务器保存和处理相同的应用内容。这样的主机服务器并不必定要求是技术最早进、性能最强大的,因此投资能够相对较少,可是由它们组成的服务器群,却可以共同完成网络的服务功能。当用户来访时,这些服务器轮流响应不一样用户的请求,经过流量分担技术把大量的用户请求自动地分散到了不一样的主机服务器中处理,从而减小了单个主机上的任务量,实现了网络流量在多台主机间的平衡处理。 ide
流量分担技术实现的方法根据系统的软硬件不一样而有所区别,有通用方法也有专用方法,有的网络系统还为此提供了专门的服务。微软的Windows Server 2003就在其网络内提供了许多此类技术,主要是分布式文件系统(DFS)。 工具
DFS 发威 性能
DFS即分布式文件系统,主要用于解决把分散的共享资源集中管理的问题,它其实还有一个重要的功能,就是在域环境中可以利用文件复制服务(FRS)为共享目录产生副本。 操作系统
DFS的基本概念是DFS根和DFS链接。DFS根指服务器或服务器组,是客户端试图访问文件时首先要前往的地方。这些服务器一般分布在一个域的各个站点中。DFS 链接是指从逻辑目录到能够处理文件请求的服务器(位于企业内的任意位置)上的物理共享文件夹的引用。在Windows Server 2003中,大大加强了DFS的功能。 Windows Server 2003 在可靠性方面,针对DFS 做了重要的功能提高:一个服务器能够主持多个DFS 根。在Windows 2000中,不可能在一个服务器上有多个DFS根。所以,须要有大量运行Windows 2000 的服务器来主持多个DFS根。在Windows Server 2003 中,取消了这一限制。此外,Windows 2000 群集的独立DFS 服务器只能主持一个DFS根,而Windows Server 2003容许主持多个DFS根。 指针
Windows Server 2003 还改进了在跨越多个站点对复制操做进行设置时的DFS行为。在 Windows 2000中,DFS 会优先考虑与客户端位于同一站点中的目标,若是在该站点中没有链接目标,它会在任何其余站点中为该客户端请求选择任意的链接目标。这种算法不是最有效的。
例如,若是某企业有分别位于北京、天津和上海的站点,而且其客户端计算机试图访问天津中的链接,则当天津中的全部链接目标都没法访问时,该客户端计算机不会考虑通讯成本的高低,而故障转移到北京或上海中的某个目标。与此不一样的是,Windows Server 2003会使用主动目录(Active Directory)中的站点开销信息来选择可以知足客户端请求的站点外目标。对于该企业的这种状况,DFS 可以从主动目录了解到从天津到上海的通讯费用比从天津到北京的通讯费用更昂贵,所以它会根据主动目录中的站点配置相应地将天津的客户端重定向到最近的北京目标。
利用DFS
实现流量分担方法的首先要在多台主机服务器内保持相同的内容,即把某主机的特定内容动态地复制到多台主机中。好比在Windows Server 2003 里,咱们就能够借助DFS 技术来完成此目的。经过使用DFS 在域环境中可以利用文件复制服务(FRS)为共享目录产生副本这一功能,就可以把指定主机服务器内某一文件夹下的内容自动拷贝到其余一台或多台服务器中,从而就实现了主机间保持相同内容的目的。
在Windows Server 2003 中使用DFS的第一步是要创建DFS 根目录。
从Windows Server 2003 的管理工具进入“分布式文件系统”管理器,在这里新建DFS根目录。创建根目录的时候系统会要求选择根的类型。DFS根的类型有两种:一种是域DFS;另外一种是独立DFS,要想实现目录的副本,必须
选择域DFS 类型。独立DFS 只是在非域环境内创建的,它不能支持文件复制服务。
在域环境里创建DFS,需指定域名和保存DFS 根的主机服务器名,其中域能够是本地域也能够信任域。而后如图1 所示要定义根的名称,此名称是用来在域中标识 DFS根的。接着要在主机服务器的NTFS分区内指定一个共享文件夹用来放置DFS 根。第二步是要创建连接。连接是从DFS 根中指向网络内各共享目录的指针。在“分布式文件系统”管理器里用鼠标右击已经创建的DFS根,选择“新建连接”。在新建连接的向导里须要指定连接指向的目标位置,而后为此连接起一个形象的名称。
经过以上创建连接的方法能够分别把网络中各个共享目录都组织DFS 中来,这样用户只要访问DFS 根就可以访问到其中的全部共享目录了。
域DFS的连接创建后,就能够为其建立副本。指定另外一台服务器上的一个共享目录做为副本复制的目的地。接下来在复制向导中定义复制的具体对象。一台主机服务器里的共享目录能够被指定复制到其余多台服务器中。
至此,在多台主机内保持相同内容的工做就完成了。Windows Server 2003的DFS会利用文件复制服务,把某主机服务器的特定内容动态地复制到多台服务器中。经过定义DFS 根的属性,还能够把DFS 发布到活动目录中,当域用户在活动目录里访问此主机服务器的连接内容时,DFS就会自动在多台服务器的副本间分流访问流量。然而这样的应用只解决了企业网内部 Windows用户的访问问题,可是,许多非企业网用户也许根本访问不到域的DFS根,好比广域网用户在访问主机服务器上的Web页内容时就不是直接访问DFS根的,从而也就没法访问其中的连接副本。所以还应该选择一种更通用的方法来实现不一样主机服务器间的流量分担。
借助DNS
对于上述问题,能够经过域名服务(DNS)来解决。根据DNS的工做特色,咱们的思路是让DNS将同一个主机名称轮流解析到不一样的IP地址,即把信息轮流交换到不一样的网络主机内,这些主机就是咱们在前面已经利用Windows Sever 2003 的DFS 副本技术准备好了的、保存了相同内容的服务器,从而达到在多台主机间分担网络流量的目的。
实现这一功能能够借助Windows Server 2003 的 DNS 服务器里提供的循环解析功能来完成。
首先要在DNS管理器内进行“新建主机”操做,即指定主机名称与其IP地址的映射对应关系,在此应该将全部在前面介绍的已经保存了副本目录的各台主机都定义到 DNS服务器中。设置时应该注意,要根据主机的网络地址为各台主机指定不一样的IP,但同时各主机都要起同一个相同的名称。通过这一步的定义后在DNS服务器里就配置出了多台具备相同名称但不一样地址的主机。接下来进入属性设置的高级配置中定义服务器选项。要达到让DNS把信息轮流交换到不一样主机的目的,必须在这里选中“启用循环”选项,这个功能是此技术的关键,它利用DNS将同一个主机名称轮流解析到不一样的IP地址上。
完成这些设置工做后,Windows Server 2003 网络中利用多主机服务器来分担网络流量的任务就能够实现了。当许多用户同时访问网络主机时,DNS服务器会先把第一台主机的IP地址回应给第一个用户,而后把第二台主机的IP地址回应给第二个用户,等等,当用完最后一个IP地址后再动态循环到第一台主机,以次类推。用户在访问时不用知道主机的具体网络地址,只要访问主机的名称便可,全部流量的分配工做由DNS 服务器自动完成,并且DNS 服务器还可以根据子网的划分,优先由子网内的主机来处理来自同一子网的用户访问,这样就实现了网络流量在多台主机服务器间的负载平衡。
以上介绍的这种分担流量的方法,使用了Windows Server 2003 中的DFS 和DNS两个服务,技术彻底由软件实现,实现起来比较简单,并且成本低,不须要配置额外的硬件。虽然功能相对较少,但使用操做系统自己的网络技术,不须要另外的其余负载平衡服务,因此此方法通用性较强,任何提供目录副本技术和支持DNS循环解析功能的主机服务器都可以实现。
另外,在实际使用时,主机数量要依据网络的流量统计来决定,不切实际地增长主机数量可能会加剧文件复制服务和DNS 服务的负担,反而有可能下降系统的整体性能。对于系统要求高,功能复杂的环境,应该根据需求来选择可以知足应用的方案。总之,最终目的是减轻单个主机服务器的负载压力,但不能牺牲网络其余方面的性能,因此要对网络进行统筹规划,如正确划分子网以及肯定子网内的主机数量等等。