6787grws 发表于 2011-3-28 11:46:28

HTTP服务器之嵌入式负载平衡路由器实战(1)

我们实作了一个嵌入式Web Switch,利用这个Web Switch我们并不需要改变任何现存的网路协定便可以达到负载平衡的目标一.计划摘要  由于网路的蓬勃发展,使得HTTP成为最重要的网路服务之一。很不幸地,硬体的发展远远跟不上网路交通成长的速度。单一的Web伺服器已经无法负担大型网站的流量,加上现在网站提供服务的多样化,由于容错(fault tolerance)的需要,业者多半会将每种服务分散到多台伺服器上,所以多伺服器已经是必然的趋势。  伴随着多伺服器的出现,负载平衡(Load Balance)也成为一门重要的研究课题。目前最普遍的作法是多Web伺服器搭配Round-Robin DNS来分配流量给后真个伺服器群。如图一,当客户端(Web Client)向www.cs.nthu.edu.tw发出要求,客户端会先向区域的DNS(Local DNS)询问www.cs.nthu.edu.tw的IP位址是多少,假如区域的DNS没有纪录的话,则会向掌管cs.nthu.edu.tw网域的DNS(Authorized DNS)询问,则Authorized DNS会以Round Robin的方式传回140.114.87.20 " 140.114.87.22其中一个位址。但是很明显的,上面的做法会由于Local DNS会快取(cache)网域名称和IP位址的对应,并且静态Round-Robin的方式将无法应付动态的网路流量变化,所以流量分配不均是可以预期的。再者,以上面的方法,DNS的设定必须被改变,又增加了环境架设的困难。  我们采用另外一种Web Switch的架构(如图二),也就是在所有的Web Node(文中会将Web Server及Web Node混用)前面加上一台Web Switch来做分配流量的工作,外面的客户端不能直接接触到后真个Server。  Web Switch不使用DNS来做流量分配的工作,避免DNS快取造成的流量无法掌控的题目,并且Web Switch可以快速且正确地获得后端Web Node的资讯,所以流量分配也会较之前的做法精确。在Web Switch的架构下我们不需要对现存的DNS系统做任何的修改,由于在DNS看来www.cs.nthu.edu.tw单纯就是一台机器。我们只需要在后真个Web Server猬集(Cluster)前加上我们实作的Web Switch,所以环境架设上也较之前做法简便。二.硬体平台  这个计画使用的硬体平台为PowerNet-AP(见图三),其搭载了Samsung S5N8947 MCU。这块板子主要是作为xDSL路由器(Router)的发展平台,并且可以搭配PCMCIA的Wireless Adapter增加无线网路的功能,下面是其硬体的规格:MCU  Samsung S5N8947 with ARM7 TDMI core @ 72MHzSDRAM  16MB SDRAM  作为系统记忆体及根档案系统(root file system)Network Inte***ce  LAN:四个RJ-45介面连接四台PC,不需要额外的Hub  WAN:一个RJ-45介面用以连接ADSL或是Cable modem  在PowerNet-AP上运行的作业系统是vLinux。vLinux是一个针对non-MMU嵌入式ARM平台的Linux的解决方案,我们将会修改vLinux的程式码来实做负载平衡演算法。
页: [1]
查看完整版本: HTTP服务器之嵌入式负载平衡路由器实战(1)