1、 数据中心(Data Center)方案建议书数据中心是近几年国外兴起的一个概念,它的英文单词是Data Center或Server Farm,从字面理解就是将许多应用服务器、电子商务服务器以及数据库服务器集中起来统一进行管理。在国外的ISP或大的企业都有这样的数据中心,有的甚至多处,能做到异地备份,例如AboveNet、Intel Online Service等。而在国内,由于一系列原因,数据中心的建设只局限于少数几家有丰富资源并且专注于IPP(Internet Platform Provider)业务的几家ISP,并且规模较小,大约是几百台服务器左右。导致上述现象的原因很多了:互联网带宽的
2、原因;企业规模的原因以及对电子商务的重视程度和接受程度;企业缺乏足够的IT 人员等。当然随着国内互联网带宽的提高,企业对电子商务日益重视,国内更多的ISP可以大力发展虚拟主机服务(Web Hosting)、主机托管业务(Server Hosting)甚至应用托管业务(Application Hosting)等多种增值服务,建设自己的数据中心。在建设数据中心的过程中,不可避免地涉及到下述问题:网络设备和服务器设备的选型;网络拓扑的冗余设计;服务器的高可用性(HA);如何提高电子商务服务器的性能以及可用性;当数据中心的规模逐渐增加时,如何做到数据的管理、安全以及备份等诸多问题。下面我将就上述问题一
3、一讨论,并给出一个整体方案设计:一、网络设备和服务器设备的选型:在ISP建设数据中心进行设备选型的时候,实际上是选择未来合作伙伴的过程。这里我推荐选择INTEL 是基于以下几点考虑:1. 在局域网网络设备中,目前世界上前三家厂商依次是:3COM、CISCO、 INTEL。但只有INTEL 提供如此全系列的产品:网卡 (PC网卡、服务器网卡、千兆网卡、IPSec网卡);传统的第二层交换机(ES410/460);带路由功能的第三层交换机(ES550);千兆以太网骨干交换机(ES6000);应用层交换机或Layer4/7交换机(NetStructure7140/7170/7190);电子商务加速设备
4、(NetStructure7110/7190) 等。并且INTEL 的网络产品历来性价比最好,这对ISP来讲可以降低初期投资成本,迅速获得利润。所以,在IT业界流传一种说法:“选择3COM是选择昨天;选择CISCO是选择今天;选择 INTEL是选择明天。”2. 服务器设备的选型首先是选择哪一种体系结构的问题,即是选择RISC体系结构还是IA(Intel Achitecture)体系结构。在目前市场上,服务器主要分为两大类:基于RISC CPU的Unix服务器,如Sun的 UltraSparc系列、基于MIPS芯片的SGI Origin系列、基于PowerPC芯片的IBM RS6000系列、DE
5、C的Alpha系列以及HP的高端服务器等;另一类是基于Intel的CPU的IA服务器,这些服务器通常运行Windows NT Server操作系统,也可以运行Unix操作系统。目前各种服务器竞争非常激烈,力量对比也在不断发生变化:在NEC放弃了MIPS芯片后,继续采用MIPS的SGI也遇到了严重问题,出现巨额亏损,市场占有率正在逐渐减少;对于PowerPC芯片而言,它的三个主要研发者是IBM、Motorola和Apple,IBM已经宣布停止开发,Motolora只是把PowerPC用于工业控制,只有Apple还在坚持推广基于PowerPC的Macintosh,市场则定位于出版和图形处理;DEC
6、的主体已经被Compaq收购,而CPU的部门被Intel收购了,因此Alpha芯片的前途必然是融入Intel的IA64架构的CPU中;HP已经放弃了原来的RISC芯片的发展,转而与Intel共同开发IA64架构的CPU,在Intel的CPU上发展自己的Unix系统;这样面向服务器的CPU只有Intel和Sun的UltraSparc,由于Intel的CPU正在由低端向高端占领市场,Sun为了保住服务器的操作系统市场份额,开始把硬件平台扩展到了Intel的服务器,这也就是说以后的Solaris操作系统不仅可以运行在UltraSparc机器上,在Intel的服务器上也能同样运行,甚至更好。总上所述,
7、选择IA体系结构无疑是保证用户投资、适应服务器市场未来发展趋势的明智选择。在体系结构的选择结束之后,我们又面临是选择OEM厂商的服务器,还是Intel的机架服务器。这里,我要推荐选择Intel的机架服务器,有以下几点原因:Intel的机架服务器不同与以往的白牌服务器(White Box Server),它是专门为电信和互联网行业设计的,结构紧凑、易于管理;它的产品系列非常齐全,目前有1U高的支持1颗PentiumIII CPU针对虚拟主机和主机托管服务,2U高的支持2颗 PentiumIII CPU针对前端WWW、EMAIL、DNS、FTP应用,7U高的可支持高达4颗 PentiumIII X
8、eon CPU针对电子商务和后台数据库应用,专门针对中小ISP的Cache服务器。此外,在今年内还要陆续推出全系列的机架服务器;非常全面的管理特性,不仅支持带内管理(通过基于TCP/IP协议的免费管理软件Intel Server Control来实现),还支持带外管理(通过主板上集成的一些管理芯片组来实现);性价比优异,有利于ISP降低初期投资成本,迅速产生利润。二、网络拓扑的冗余设计:限于篇幅原因,我在这里不想对INTEL的局域网交换机产品作过多介绍,请大家参考相关资料。下面是一个关于数据中心的网络拓扑图,力求达到冗余设计:但是,在ISP起初建设数据中心的过程中,不可能做到一步到位,最常见的
9、情况是采用一个中心骨干交换机。此骨干交换机不仅要求有很高的端口密度(无论是千兆位端口还是10M/100M自适应端口);支持广域网路由协议及其它标准TCPIP协议,更重要的是要有非常高的冗余设计,保证所有关键部件都是冗余的并可以在线更换。另外,桌面交换机可以不支持路由(但要求必须支持虚网VLAN划分),由骨干交换机中心路由,在不牺牲性能的情况下降低成本。基于此实际需求,下面是采用ES6000骨干交换机和ES460桌面交换机的网络拓扑图:三、服务器的高可用性(High Availability):一般来讲,在ISP的数据中心托管或租用机器的有形形色色的客户。客户的背景不同,对服务器的高可用性需求就
10、不同。有些从成本考虑,只要求服务器有简单的物理部件冗余即可,即只要求托管或租用的服务器支持多CPU(SMP技术)、交叉内存访问(保证只要有一根内存条正常,不会影响系统的可用性)、硬盘可以设置RAID(保护数据的完整性)甚至电源冗余;而有些则要求很高,不仅要求服务器自身的部件冗余,更要保证服务/应用的高可用性以及负载平衡。对这类客户,作为ISP就要采用一些高可用性技术来满足上述要求。通常数据库服务器的高可用性只能通过专用的群集软件(双机备份软件)来实现,而大部分应用服务器是基于TCP/UDP协议的,因此可以采用其它方式来实现,例如DNS轮询、群集软件、应用层交换机。鉴于篇幅原因,我在此不作详细介
11、绍,只是以实现WWW服务器的高可用性为例对三种实现方式进行简单比较。其中群集软件以TurboLinux Cluster Server为例,应用层交换机以INTEL公司的NetStructure7140/7170为例:1. DNS轮询方案(DNS Round-Robin):它的优点是:实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,它的缺点也非常明显:不是真正意义上的负载均衡,DNS服务器将HTTP请求平均地分配到后台的WWW服务器上,而不考虑每个WWW服务器当前的负载情况;如果后台的WWW服务器的配置和处理能力不同,最慢的WWW服务器将成为系统的瓶颈,处理能力强的服务器不能充分
12、发挥作用;另外未考虑容错,如果后台的某一台WWW服务器出现故障,DNS服务器仍会把DNS请求分配到这台故障服务器上,导致对客户端的不能响应。而这最后一个缺点是致命的,有可能造成相当一部分客户不能享受WWW服务,并且由于DNS缓存的原因,造成的恶劣后果要持续相当长一段时间(一般DNS刷新周期约24小时)。所以在国外最新的建设Central Web Site方案中,已经很少采用这种方案了。2. 群集软件方案(Cluster Software):它的通用做法是通过在操作系统的基础上安装操作系统厂商的群集软件或第三方的群集软件(绝大多数支持WWW服务的群集),例如MicroSoft Cluster S
13、erver、TurboLinux Cluster Server等,来做到应用级的互为备份或负载平衡。互为备份(Active/Standby)方式下,其中一台服务器缺省处于活动状态(Active/Primary),而另一台处于睡眠状态(Standby/Backup),当主服务器系统死机或应用不能正常服务时,备份服务器会自动变成活动状态,从而接管原主服务器的任务,保证应用能够继续服务。负载平衡方式下,可以有多台服务器,每一个服务器都承担一定的应用。它们之间即可以互为备份,也可以有专门一台备份服务器,它在群集正常时不承担任何任务,但是当群集中的某一台服务器发生故障时,它会自动激活,从而接管故障服务器
14、的任务。TurboLinux Cluster Server与其它基于软件的群集解决方案比较起来,有以下优点:成本相对较低;有专门的文件系统同步工具,可以较方便地同步或复制文件以及文件系统(需要人工进行操作);可以做到真正意义上的WWW服务的负载平衡,而其它群集方案只能做到整体应用上的负载平衡,但对某一种应用而言不是真正意义上的负载平衡,例如WWW服务,同一时刻只能有一台服务器可以响应HTTP请求,即只保证了WWW服务的高可用性,但并没有做到WWW服务的负载平衡。例如,服务器A承担WWW应用,服务器B承担EMAIL应用,并且A与B互为备份,当服务器A发生故障时,服务器B会接管A的任务,同时承担W
15、WW和EMAIL应用。但是,它也存在以下缺点:安装、配置复杂,难于维护和管理;群集软件与服务器的硬件平台和操作系统密切相关,不能做到设备无关性和无缝升级;实现负载平衡的算法简单,一般是根据轮询(Round Robin),有些WWW群集软件可支持设定权重(Weighting)算法,但权重(weighting)是人为设定,并不能客观反映每一台服务器的HTTP请求响应能力以及当前负载情况;与硬件实现方案(Layer4的负载平衡交换机)比较起来,性能较低,另外支持的Web Site的规模较小(WWW服务器最多可以到16台);不能实现HTTPS等特殊应用的负载平衡(这是因为在HTTPS应用中,客户端和服
16、务器端要进行身份验证、交换证书和密钥,所以客户端和服务器端应一一对应,同一客户的请求应由同一台服务器来处理)。3. 应用层交换机方案(Layer4/7 Switch):它可以提高WWW服务器的整体处理能力,并提高可靠性、可用性、可维护性,保证WWW服务质量,提供按需服务(当采用第七层交换机时),最终用一组低处理能力的主机提供大规模的WWW服务。以下是关于采用第四层交换机实现WWW服务的负载平衡的一般介绍:在第四层交换机上设置WWW服务的虚拟IP地址(Virtual IP Address),这个虚拟IP地址是DNS服务器中解析到的WWW服务器的IP地址,对客户端是可见的。当客户访问此WWW应用时
17、,客户端的HTTP请求会先被第四层交换机接收到,它会基于第四层交换技术实时检测后台WWW服务器的负载,根据设定的算法进行快速交换。常见的算法有:轮询(Round Robin);权重(Weighting);最少连接(Least connection);随机(Random);响应时间(Response Time)。第七层应用交换机是近一、两年才出现的最新技术,它主要用于实现WWW应用的负载平衡和服务质量保证。它与第四层交换机比较起来:第七层交换机不仅能检查TCP/IP数据包的TCP、UDP端口号(Transportation Layer),从而转发给后台的某一个服务器来处理,而且它能从会话层(Se
18、ssion Layer)以上来分析HTTP请求的URL,根据URL的不同将不同的HTTP请求交给不同的服务器来处理(可以具体到某一类文件,甚至某一个文件),甚至同一个URL请求可以让多个服务器来响应以分担负载(当客户访问某一个URL,发起HTTP请求时,它实际上要与服务器建立多个会话连接,得到多个对象-Object,例如.txt/.gif/.jpg文档,当这些对象都下载到本地后,才组成一个完整的页面)。Intel的NetStructure7140/7170(即原Ipivot公司的Intelligent Broker4000/7000)就是上述所讲的应用层交换机,其中NetStructure71
19、40是第四层交换机,而NetStructure7170是第七层交换机。NetStructure7140/7170有两个10M/100M自适应以太网口(早期版本只有一个以太网口),它们的特性如下: 支持RIP2和OSPF路由协议;支持包括HTTPS在内的绝大多数TCP/UDP应用的负载平衡; 支持自身的互为备份,避免了单故障点; 每一台支持多达256个应用(Service)的负载平衡,而一个服务组(Service Group)可以由理论上多达无限个物理服务器(Real Server)组成,从而可以组建任意大的Central Web Site,极大地保证了可伸缩性和可扩展性; 支持两种负载平衡算法
20、:轮询(Round Robin)和实际响应时间(Actual Response Time)。尽管支持的算法不多,但基于实际响应时间的负载平衡算法比其它厂商的基于最少连接(Least Connection)或设定权重(Weighting)的算法更为合理和科学:这是因为最少连接并不能反映出服务器的真实负载和实际响应能力,例如一个WWW服务器也许每秒能响应多达数百个普通.html请求,即建立数百个连接,但若是.cgi等查询请求,则每秒只能响应数十个,即建立数十个连接。设定权重算法更不合理,它需要人为设置,而人们普遍只是简单地根据WWW服务器的CPU数量和主频随机设置。基于实际响应时间的负载平衡算法是
21、NetStructure7140/7170与每一个后台的WWW服务器建立会话并计算从会话建立的那一刻起(此时NetStructure7140/7170将客户的HTTP请求转交给后台的WWW服务器)直到后台WWW服务器开始响应这一个HTTP请求的时间间隔,从而得知这台WWW服务器的实时负载情况和响应能力,并以此来决定下一个HTTP请求交给那一台服务器来处理。因此基于实际响应时间的负载平衡算法是最合理的算法; 可以灵活设置三种模式:HOT、OPR、RICH。HOT模式效率较高,NetStructure7140/7170代理客户端的每一次HTTP请求,并将HTTP请求包的源IP地址(即客户端IP地址
22、)替换为自身的IP地址,然后转交给后台的WWW服务器来处理,WWW服务器的HTTP响应包先返回给NetStructure7140/7170,再由它响应客户端;OPR(Out of Path Return)模式效率最高,与HOT模式相比,NetStructure7140/7170不替换HTTP请求包的源IP地址,直接交给后台的WWW服务器处理,WWW服务器的响应包不经过NetStructure7140/7170,直接返还给客户端,在这种情况下 NetStructure7140/7170无法对后台服务器的响应时间实时统计,只能根据下一次同一客户端HTTP请求到达的时间来推断后台服务器的处理能力;R
23、ICH模式用于第七层交换机NetStructure7170,可以设置表达式(expession),当客户端的URL请求满足某个表达式时, NetStructure7170根据相应过滤规则来处理,将此请求交给特定WWW服务器来处理,例如一个Web Site后台有三台WWW服务器,其中一台CPU处理能力高,内存配置大,并且同时是数据库服务器,另两台普通配置,则可以设定过滤规则让高配置服务器处理*.cgi、*.asp等动态页面请求,而另外两台服务器处理其它请求; 区分服务类型,保证服务质量,确保服务响应时间;NetStructure7140/7170均对应用清醒,能够区分HTTPS、HTTP、FTP
24、请求,因此我们可以根据客户的需要设定服务级别,确保优先级别最高的应用请求最先响应,并且能够保证响应时间,例如一个Web Site后台有三台WWW服务器,这三台服务器都能响应HTTPS、HTTP、FTP请求,但管理员设定HTTPS请求的优先级最高,每一个HTTPS请求的响应时间不超过50毫秒,HTTP请求次之,不少于60毫秒,而FTP请求优先级最低,视服务器能力尽量满足,当这个Web Site的负载较轻时,所有三种请求都能满足,但是当请求突然增多时,后台服务器不能在规定响应时间内满足HTTPS的请求时,NetStructure就会停止转发FTP请求,甚至HTTP请求,以腾出所有的服务器资源全力保
25、证HTTPS请求的服务质量; 第三代的第七层交换机NetStructure7170,不仅对进入的客户端的URL请求进行会话层以上分析然后转交给某一台服务器,而且对此服务器返回的请求响应包的内容进行分析,当发现返回HTTP错误包(HTTP ERROR404, 500等,例如Remote Server Down, File Not Found)时进行处理,尝试转交给另一台服务器,直到返还一个正确的HTTP响应包,再响应客户端,极大地保证了服务质量; 支持源地址保留(SAP),方便WWW服务器端进行统计、分析客户端IP地址,有利于实行信息源计费; 多种配置和管理手段(Console, telnet,
26、 SNMP, Browser),甚至可以基于浏览器进行配置和管理,非常方便; 支持访问控制列表(Access Control List)、SNMP协议以及日志记录; 可以查看NetStructure7140/7170的CPU负载、当前连接数等性能统计数据;综上所述,采用应用层交换机方案的优点在于:基于应用层交换的原理来实现WWW等应用的负载分担(在第四层/第七层交换机上有一专用逻辑处理芯片来负责拆包、检查TCP/UDP端口),效率高;高可靠性的冗余检错机制,实时监测后端WWW服务器的状态和负载情况,支持对服务器双网卡冗余备份的能力;灵活多变的、动态的负载均衡算法。它的缺点是:价格高昂;对大部分
27、基于UDP协议的应用而言,所采用的负载平衡算法实际上只有一种,即轮询。四、如何提高电子商务服务器的性能以及可用性:随着Internet发展,电子商务被更多的企业所接受,绝大多数开展网上交易的企业将电子商务服务器托管在ISP的机房中,因此ISP将来业务收入的一个重要来源是提供电子商务平台的托管或租赁(Application Hosting)。现在世界上所有的电子商务交易都是基于两种国际标准:SET和SSL,据IDC报道85以上的网上交易基于SSL标准,即大部分电子商务服务器是 HTTPS服务器。众所周知,当一个客户端采用HTTPS协议访问HTTPS服务器时,因为双方要交换证书、协商密钥,并且要对
28、传输的数据进行加密/解密,这时服务器的性能会极剧下降。据NETWORKSHOP的测试报告当一台SUN E450服务器(250兆主频Ultra SPARC CPU,Solaris O.S.,APACHE WWW Server)每秒钟能处理357个HTTP请求,但如果是HTTPS请求则每秒钟只能处理三个,并且CPU负荷急剧增加,高达95左右的CPU占用率。如何解决上述问题,提高电子商务服务器的处理能力成为当今IT行业的一大难题。早些时候,有些公司提出了采用在电子商务服务器上安装加密/解密加速专用SCSI卡来提高服务器的加密/解密性能。此种做法虽能减轻CPU的负荷,但对提高服务器的处理能力收效甚微,
29、而且它还存在以下缺点:安装此SCSI卡与服务器硬件平台、操作系统均有关系,适用范围有限;只能对单台服务器有用,不适用于一组服务器,所以,应用范围并不广泛。也有些厂商提出采用应用层交换机来实现电子商务服务器的负载平衡,从而提高它的性能,但是在此种情况下,服务器的性能只能数倍增长,并且代价高昂。INTEL的解决方案与上述不同,它新近推出的两款电子商务加密/解密加速设备就是专门针对上述问题的:NetStructure7110/7180。NetStructure7110/7180前置在电子商务服务器前端,所有的HTTPS请求都会被它们首先接收到,然后它们会与HTTPS客户端交换证书、协商加密算法及密钥
30、、进行数据的加密/解密,并将解密后的数据即正常的HTTP请求交给后台的电子商务服务器来处理,这样后台的电子商务服务器每秒钟就可以处理大量的请求,而不是几个请求;而电子商务服务器的响应先返回到它前端的NetStructure7110/7180,NetStructure7110/7180会再将未加密的响应加密后返回给HTTPS客户端,这一切对客户端和服务器端都是透明的。由此可知,NetStructure7110/7180的功能即将这些繁重、极易消耗服务器CPU资源的交换证书、协商加密算法及密钥、数据的加密/解密工作从电子商务服务器上卸载到自身来处理,而NetStructure7110/7180的硬
31、件专为执行这些功能而设计的,所以执行起来非常快,因此可以极大提高电子商务服务器的性能。NetStructure7110的特性如下: 有两个10M/100M自适应以太网口,一个端口用于连接客户端的交换机,另外一个端口用于连接电子商务服务器; 自身不具有IP地址,是位于OSI参考模型中的DLL层设备,这样使外界的黑客无从攻击后台的电子商务服务器; 安装、设置非常容易,可以自己产生密钥对(包含私钥和公钥)和证书,也可从外界引入,例如从国际上的CA服务器上申请或引入电子商务服务器上已有的证书; 单台7110可以提高电子商务服务器的响应能力高达数倍至数十倍左右(随服务器硬件平台、操作系统、应用软件的不同
32、而不同),并且多台可以动态级联(Dynamic Cascade)起来,使它们整体的处理能力呈线性增长; 获得专利的故障自动隔离技术(Fail-Off Pass Through),当NetStructure7110失效不能进行加密/解密加速功能、甚至掉电时,它的两个端口会自动短接起来就像一根以太网线一样,不会影响后台的服务器。在这种情况下,后台的服务器自身执行证书交换、协商密钥、加密/解密功能; 对所有基于标准SSL协议开发的应用都有加密/解密加速功能; 与后台服务器的硬件平台、操作系统、应用软件完全无关,适用于任何服务器环境;NetStructure7180与7110的区别在于: NetStr
33、ucture7180是将7110与7170两者的特性结合起来的一款产品,即它不仅能实现SSL加密/解密加速功能,还具有第七层负载平衡交换机的功能; NetSturcture7180不支持7110所具有的故障自动隔离技术(Fail-Off Pass Through)和动态级联技术(Dynamic Cascade),但是它在网络中的连接方式不同与7110,而与7140/7170类似,并且可以做到两台7180之间的备用保护(采用类似于VRRP的专有协议实现),避免单故障点; NetStructure7180可以用于实现一组电子商务服务器的负载平衡和加密/解密加速功能,它的性能大约是7110的五倍左右;五、数据的管理、安全以及备份: