虽然现代数据中心的每一部分都是至关重要的,但是网络却是所有通信的绝对基础。这正是为什么从一开始就必须设计和建设一个合理网络的原因。毕竟,没有稳固的网络,即使最好的服务器和存储器也干不了什么。
为此,我们提供几个设计要点和最佳方法,以有助于你巩固这个通信基础。
对网络核心的考虑
“网络”这个词可应用于从LAN到SAN、WAN的多个领域。所有这些领域都需要一个网络核心。我们的讨论就从这儿开始。
一个单位的大小决定了核心交换机的大小和能力。在多数基础架构中,数据中心的构成与LAN的核心构成有着很大的不同。让我们看一个假想的网络,假设它在一栋大楼中,为几百或几千个用户服务,而数据中心居于中央,那么,我们通常会发现,在中心会有一些大型交换机而在边缘会有聚合交换机。
理想情况下,核心是由两个交换平台组成的,此平台将数据从边缘传送经过千兆位的光纤(与服务器和存储器基础设施位于同样的房间)。如果要链接到有100个交换端口的插座,只要有两条千兆位光纤就足以满足多数业务需要。如果上这种连接不能满足需要,可能最好的办法是将多个千兆位的连接联合起来,而不是升级到一个万兆位。随着万兆位产品价格的下降,这种状况会发生改变。但是现在,将几个千兆位端口聚合起来要比向核心和边缘增加万兆位的功能要便宜得多。
如果要部署VoIP,在网络边缘部署小型的模块化交换机也是很有益的,这使得PoE模块(Power over Ethernet)可以象非PoE端口一样安装到相同的交换机上。另外一种选择是,将汇聚(骨干)端口部署给每一个用户也是一种可能。这就使得单个端口可用于VoIP和桌面的访问任务。
在我们熟悉的星型扑拓模式中,核心至少要通过两条链路才能连接到边缘的聚合交换机,要么直接通过铜线连接到服务器的基础架构,要么通过机架中的服务器聚合交换机来连接。您必须在现场根据铜线布线的距离限制来做出决定。
不管怎么说,将服务器部署到每个机架中的聚合交换机中,并仅铺设到达核心交换机的几条光缆,要比勉强将全部线缆插入到几个大型交换机更为简洁。此外,使用服务器的聚合交换机将使得到达冗余核心交换机的冗余连接成为可能,这样,在一台核心交换机发生故障时,与服务器的通信就不可能丢失。如果贵单位预算准许,而且规划也允许,那么,使用服务器的聚合交换机是一个不错的选择。
不管其物理设计方法怎样,核心交换机都需要以每种可能的方法保持冗余:冗余的电源、冗余的互联、冗余的路由协议等。理想情况下,核心交换机也应当有冗余的控制模块,如果预算不允许,你只能勉强应付了。
核心交换机需要为基础架构中的几乎每一个数据包负责,所以需要保持平稳。充分利用HSRP(热备份路由协议)或VRRP(虚拟路由冗余协议)。如此,两台独立的交换机就可以有效地共享一个IP地址和一个MAC地址,并将其用作某个VLAN的默认路由。一旦某台核心交换机故障,这些VLAN仍可以访问。
最后, 正确使用生成树协议(STP)对于正确的网络运作是至关重要的。全面地讨论这些技术已超出了本文的范围,但是正确配置这两个要素对于任意的三层交换网络的正确操作及其弹性都有着极大的影响。
关心存储
一旦组建好了网络的核心,你就可以着手存储网络问题了。虽然可以运用许多技术,但是在你将服务器连接到存储阵列时,可行的选择有可能归结为一个熟悉的问题:是选择光纤通道还是iSCSI?
光纤通道一般要比iSCSI更快,并且其交付的延迟更低,但是,对于多数应用来说,却真得没有必要。光纤通道要求特定的光纤通道交换机,而且每台服务器中还要有价格不菲的FC HBA(光纤通道主机总线适配器),并且最好是两个FC HBA,以实现网络冗余; 而iSCSI使用标准的千兆位的铜线端口就可以表现优良。如果你有面向业务的应用,如拥有大量用户的大型数据库,你不妨选择iSCSI,这样做不会影响性能但可以节约大量的金钱。
光纤通道网络与网络的其余部分无关,它基本上独立地存在,仅通过管理链路连接到不承载任何业务通信的主要网络。使用能够处理普通网络通信的以太网交换机就可以构建iSCSI网络,虽然iSCSI网络应当至少被限制到其自己的VLAN中,并且可能要在一组特定的以太网交换机的基础上构建,这些交换机因为性能的原因需要对通信进行分离。
务必谨慎选择用于存储网络的交换机。有些厂商的交换机在一般负载的情况下表现还可以,但是在面对iSCSI通信时,却令人大失所望,这是由于其内部的结构所致。一般说来,如果一台交换机的厂商宣称“特别为iSCSI增强”,它也许就能够很好地处理iSCSI负载吧。
不管如何,你的存储网络应当反映主要网络,并且应当尽可能地实现冗余:冗余交换机、到服务器的冗余链路(不管是FC HBA、标准的以太网端口,还是iSCSI加速器)等。服务器“也不喜欢看到”自己的存储器突然就消失了,所以这儿的冗余性至少如同在网络中一样重要。
关注虚拟化
谈到存储网络,如果贵单位打算运行企业级的虚拟化的话,可能就需要它的某种形式。虚拟化主机(本文中所谈到的虚拟化主机指的是运行虚拟化管理软件的物理主机)要求虚拟服务器在虚拟化群组设备中能够绝对稳定地迁移,并要求快速的集中存储。这种存储可以通过光纤通道,iSCSI,甚至在多数情形中还可以通过NFS,但关键是所有的主机服务器可以访问可靠的集中化的存储网络。
然而,联网的虚拟化主机并不像将普通的服务器联网一样。虽然一台服务器可能拥有前端和后端两个链接,但是虚拟化主机可能拥有六个以上的以太网接口。其中的一个原因是性能问题:虚拟化主机产生的通信要比普通服务器更多,这是由于这样一个简单事实:大量的虚拟机运行在同一台主机上。另外一个原因是冗余性问题:由于有这么多的虚拟机运行在一个物理机上,你不会希望某个发生故障的网卡突然间将大量的虚拟服务器“踢出”网络吧。
为了应对这个问题,虚拟化主机应当至少构建两个专用的前端链接,两个后端链接,而且,理想情形下,还要有一个独立的管理链接。如果这种基础架构要为安装在DMZ等区域的“半安全”网络中的主机服务,那么,我们也有理由为这些网络增加物理链接,除非你对于它们作为一个VLAN而将“半可信的”数据包传输通过核心网络感到满意。物理上分离仍是最安全的方法,并不易受到人为错误的影响。如果你能够向虚拟化主机中增加接口,从而从物理上分离这种通信,那就这样做吧。
每对接口都应当使用某种形式的链路聚合来实现联合,如LACP(链路汇聚控制协议)或802.3ad等。不管哪一种都可满足要求,虽然你的交换机可能仅支持一种形式。绑定这些链接可以实现负载平衡,并且可以在链路水平上实现失效转移保护,因而是一种不容置疑的要求,更因为你很难找到一种不支持此特性的交换机。
除了绑定这些链接,前端链接应当与802.1q进行汇聚。这样,就在一个独立的逻辑接口上存在多个VLAN,并使得部署和管理虚拟化设备更为轻松。然后,你就可以在任何主机的VLAN或VLAN组合上部署虚拟服务器,而不必担心虚拟接口的配置。你也不必仅为了连接到一个不同的VLAN而向主机增加物理接口。
虚拟化主机的存储链路没有必要绑定或汇聚,除非你的虚拟化服务器将会与大量的后端存储阵列通信。在多数情况下,将仅使用一个存储阵列,绑定这些接口未必会使单台服务器的性能有所提升。
但是,如果你的网络需要繁重的服务器与服务器的通信,如前端的Web服务器和后端的数据库服务器,那么,建议你将这种通信交给专用的绑定链路。虽然有可能并不需要链路汇聚,但是绑定这些链路将会提供主机之间的负载平衡和冗余性。
虽然专用的管理接口并非一种绝对需要,但它可以使得虚拟化主机的管理更为轻松,特别是修改网络参数的时候尤其如此。变更承载管理通信的链路容易导致与虚拟化主机的通信发生丢失。
如果你数一下,就会发现在一个繁忙的虚拟化主机中可能拥有七个或更多个接口。很明显,这会增加虚拟化要求实施的交换机的端口数量,所以应当谨慎规划。10G网络的日益普及和10G接口的成本降低,都会使每一家单位减少线缆需求,因而拥有管理接口的主机仅使用一对汇聚和绑定的10G接口就可以了。当然,前提条件是你的预算允许。