[转]FC、iSCSI、NAS:服务器虚拟化环境下谁是最好存储
选择合适的存储系统是服务器虚拟化环境整体架构设计的关键一环,它是我们必须面对的,也是最具挑战性的一项工作。表面上看我们似乎有很多选择,但现实中还没有哪一种网络存储类型敢说自己一定是服务器虚拟化环境的最佳选择。因为每个应用环境都是不同的,即使在一个地方表现良好,那也不能保证在其他地方同样合适。
对于服务器虚拟化环境来说,光纤通道存储是比较传统的选择。但现在iSCSI和NAS的普及程度也越来越高,毕竟它们的性价比更加突出。下面就让我们看看每一种网络存储技术的规格特性,并逐一分析它们的优势和不足。
光纤通道存储
单从性能和可靠性的角度看,光纤通道无疑是出色的存储架构,其它产品很难与之PK。但凡事都有两面性,使用光纤通道存储的确获得了高性能,可用户却不得不承担更高的成本,以及面对更复杂的技术架构。不过,光纤通道技术在数据中心领域的应用历史很长,基础非常好,因此比较大的虚拟化环境通常都倾向于选择光纤通道,这些用户主要还是考虑速度和可靠性的因素(光纤通道当前的带宽是8 Gbps,下一代是16 Gbps)。另外,光纤通道存储网络一直是相对独立的,因此与基于以太网的存储设备相比安全性更好。可问题是,光纤通道需要特殊的HBA主机适配器、特殊的交换机,而且这些配件比以太网络使用的同类配件更加昂贵。
客观的说,如果要从零开始构建一个光纤通道网络代价是很高的。除此之外,光纤通道环境的部署和管理也更复杂,与传统网络架构相比,它配置起来难度很大,熟悉此项技术的人才也偏少。当前,很多公司都有技术熟练的网络管理员,但其中却很少有光纤通道存储网络方面的管理人才。设计并管理一个SAN架构通常需要经过特殊的培训,这无形中又进一步增加了实施的费用。
光纤通道存储的优势:
FC是部署企业级存储架构的首选,而且许多应用环境本身就已经在使用SAN了;
由于具有更高的可用带宽,通常情况下性能表现最好;
独立的光纤通道网络更安全;还有LUN zoning和LUN masking等访问控制机制;
支持boot from SAN(从存储启动系统),服务器本地不再需要硬盘;
基于block的块存储类型,可以使用VMware vSphere自带的VMFS卷(一种文件系统)。
光纤通道存储的不足:
从零开始构建的话,部署成本会很高;
需要特殊的、昂贵的配件,比如交换机、线缆和HBA卡;
实施和管理也许更复杂,通常需要专职的存储管理员;
可用的安全控制功能较少,实现认证和加密比较复杂。
如果用户的物理服务器上准备运行多个虚拟机,且应用类型对磁盘I/O有较高的要求,那么为了得到最佳的性能,用户或许应该认真考虑使用光纤通道存储系统。此外,FCoE也是一个选择,它相当于在传统的以太网设备上承载光纤通道协议。但目前FCoE必须部署在同样昂贵的10 Gbps以太网环境,需要特殊的交换设备。
如果用户的应用环境中已经有了FC SAN,那么在构建虚拟化平台时使用光纤通道储存是很合适的。扩展一个已有的SAN环境很容易,而且比部署一个全新的环境要便宜许多。如果用户的预算充足,而且有管理复杂环境的技术能力,那么选择光纤通道存储一定没错。
iSCSI存储
iSCSI也是一种流行的存储技术,同时也是光纤通道存储的有力竞争者。像光纤通道一样,iSCSI也是一种基于block的块存储协议,它使用传 统的以太网组件作为载体,连接服务器和存储设备。iSCSI的部署成本通常很低,理由很简单,因为它可以借用已有的以太网设备。iSCSI的工作原理是在 主机端利用一个叫做initiator的client,通过LAN网络将SCSI命令发送给目标端的SCSI存储设备(目标端也叫做target)。
iSCSI的initiator可以基于软件,也可以是硬件。基于软件的initiator通过调用hypervisor虚拟化引擎内嵌的设备驱 动,利用以太网适配器和以太网协议,将I/O信息发送给远端的iSCSI target设备。硬件initiator则基于专用的iSCSI HBA卡,iSCSI HBA卡整合了网络适配器,TOE引擎(TCP/IP offload engine)和SCSI适配器的功能,利用卡上的芯片处理I/O请求,对于提高服务器端的性能很有帮助。大多数情况下,基于软件的initiator都 可以很好的工作,但如果追求更高的I/O性能并且希望减少主机的资源开销,那么基于硬件的initiator是更好的选择。此外,与光纤通道的Boot from SAN类似,我们可以通过硬件initiator实现从存储设备直接启动操作系统;而且,最近还出现一种叫做iSCSI Boot Firmware Table(iBFT)的技术,支持通过软件initiator实现SAN Boot。需要注意的是iBFT依赖于hypervisor环境的支持。
在1 Gbps网络环境下,iSCSI的性能就已经非常不错了,而一旦切换到10 Gbps,性能还会有巨大的提升,完全可以媲美甚至超过FC光纤通道。大多数hypervisor虚拟化引擎都支持10 Gbps iSCSI,但目前部署10 Gbps iSCSI的成本还很高,价格几乎跟光纤通道一样。使用iSCSI最大的风险在于如果是基于软件的initiator,那么它会增加服务器端的CPU开销 (使用硬件initiaor,CPU负载会小很多),同时它所依赖的以太网环境相对比较脆弱(容易受到干扰)且不稳定。解决网络冲突问题的方法其实很简 单,我们只需要把iSCSI流量和其他网路流量做物理隔离就可以了。
iSCSI存储的优势:
iSCSI是光纤通道存储的低成本替代方案,它使用标准的以太网组件,iSCSI磁盘阵列的价格通常也低于光纤阵列;
基于软件的initiator简单易用而且非常便宜,基于硬件的initiator则可以提供更好的性能;
像光纤通道一样,iSCSI是基于block的块存储系统,在VMware vSphere环境下可以使用VMFS卷;
升级到10 Gbps以太网之后,速度和性能将有大幅度提升;
部署和管理iSCSI不需要特殊的培训和特殊技能;
支持CHAP认证和加密等安全机制,也支持multipathing多路径这样的可以增加带宽和可靠性的技术;
部署起来比光纤通道更快。
iSCSI存储的不足:
因为多数情况下iSCSI使用的都是软件initiator,因此它会增加服务器CPU的负担;
性能通常不如FC SAN;
通常无法扩展到像光纤通道存储系统那样大的规模;
网络延迟和非iSCSI网络流量的干扰都会影响iSCSI的传输性能。
iSCSI产品的种类很丰富,选择起来也更加灵活。iSCSI产品线的范围很广,小到2000美元以下的办公室存储设备,大到企业级产品都有覆盖。 但请记住一点,iSCSI产品的性能通常与价格成正比。如果用户要运行大量的虚拟机并承担繁重的负载,那么就应该把更多的钱用在存储系统上。用户如果追求 低成本并关注简单易用等特性,那么iSCSI是个不错的选择。尽管常常有人诟病iSCSI的性能不佳,但实际应用表明,一个独享网络通道且经过优化配置的 iSCSI系统完全能够达到与光纤通道系统相近的性能,并且能够满足大多数应用的需求。
NAS(尤其是NFS)与iSCSI之间最大的区别是协议类型不同。在将数据写入存储设备的过程中,它们使用了不同的协议。iSCSI使用block块协议,数据以块为单位从前端虚拟机写入到后端的存储设备。主机端负责维护磁盘上的文件系统,在主机看来,存储设备与服务器本地磁盘并没有区别。NAS则是另外一种情况,存储设备端负责维护磁盘文件系统,使用的是文件共享协议,服务器与存储设备之间只有简单的通讯。
NAS本质上是把写数据到磁盘的工作从主机端转移到了存储设备端,原本由主机负责的存储功能转而由NAS来处理。在虚拟化环境下,NAS系统使用集成在 hypervisor虚拟化引擎中的专用NFS client软件,通过物理服务器的网络适配器与NFS server端进行通信。
NFS是一个应用广泛的协议,当下几乎所有主流的服务器虚拟化平台都支持NAS设备。考虑到NAS产品有多种不同的形式,因此在虚拟机环境中使用NAS也可以有多种不同的方式。比如,我们可以把一台标准的物理服务器变成NAS服务器;还可以使用虚拟NAS软件;或者使用一台专用的NAS存储装置。每个产品类型在性能和价格方面的差异非常大,其中专用NAS硬件装置的性能最好,但同时价格也最高。
现在,几乎每一个存储厂商都可以提供支持 NFS的NAS存储设备。与block块存储不同的是,block块存储系统一旦将空间分配给服务器,这些空间就会立即被文件系统或应用程序占用。而 NAS系统则会根据写入的实际数据量消费空间资源。如果预算不是问题,那么市场上有很多优秀的NAS产品可供选择。
一般说来,NAS的性能还达不到光纤通道SAN的水平,但是一个在架构上设计合理的NAS系统完全能够满足大多数应用负载的需求。像iSCSI一样,NAS使用以太网端口与存储设备通信,这意味着过去NAS系统的速度上限为1 Gbps,但新出现的10 Gbps以太网端口能够大幅度的提升传输速度,只要用户负担得起,性能不再是问题。NAS的性能与iSCSI几乎一样。只要CPU的处理能力不是瓶颈,那么对iSCSI和NAS性能的制约因素只有最大可用网络带宽这一点。
NAS存储的优势:
许多NAS存储设备默认使用自动精简配置功能,它能帮助用户节省大量宝贵的磁盘空间;
文件级锁和排队机制由NAS设备自己控制,而iSCSI和光纤通道储存则由主机端控制锁和排队,相较而言NAS性能更好;
与block块存储不同,NAS不需要维护单一的磁盘I/O队列,这对提高性能有很大帮助。NAS的性能取决于网络连接的带宽以及磁盘阵列的处理能力;
因为使用标准的以太网组件,因此NAS的部署成本低于光纤通道存储,而且NAS阵列的价格也低于光纤通道阵列;
部署和管理NAS设备不需要特殊的培训和专门的技术;
虚拟化环境的存储池扩展非常简单,只需要增加NFS服务器的磁盘容量,存储池也会相应的随之扩展;
支持文件系统级别的快照和克隆功能,与LUN级别的对应功能相比,具有更好的弹性并支持更多的粒度。
NAS存储的不足:
不支持直接从NAS设备启动操作系统;
Hypervisor虚拟化引擎只能使用基于软件的客户端与NAS服务器进行通信,会消耗一定的CPU资源;
由于存在网络延迟,所以有些厂商不推荐用户在某些比较敏感的应用上使用NAS存储;
对虚拟化环境的新特性支持较慢,这一点不如block块存储设备;
NAS系统没有主机端到NAS服务器之间的多路径技术,只能建立一个单独的TCP连接,性能受物理条件制约,不容易扩展。
虽然NAS存储有不足的地方,但是我们也不应该对它失去信心,因为这些问题只在少数特殊环境下才能遇到,或者是因为NAS方案的架构存在缺陷导致的。一个完善的NAS解决方案完全可以处理服务器端虚拟机应用的I/O请求,所以说NAS跟block块存储一样,也是一个不错的选择。过去,NAS在虚拟化环境的应用上有一些限制,不过现在完全没有这个问题。
结论……
当我们为虚拟化环境选择存储设备时,可能有许多因素需要考虑,不过,最终让我们下决心的无非是那些最基本的因素,比如预算、性能和容量。现在,许多存储系统都集成了支持虚拟化应用的定制功能,这一因素也是用户需要着重考虑的。VMware vStorage API提供了很多有价值的功能,它能够让存储设备与hypervisor虚拟化引擎更加紧密的集成,同时把许多原来由hypervisor负责处理的存储操作转移到存储阵列上执行。
另一个需要注意的方面是平台的支持问题。正如任何被Window支持的存储阵列同时也能够被 Microsoft Hyper-V完美支持一样,VMware也有一个严格的硬件兼容性列表,其中列明了所有受支持的存储设备型号。VMware提供兼容性列表的主要原因是 它有一套与硬件紧密集成的API,VMware要确保每一个设备在通过了兼容性测试之后才能加入列表。这个兼容性列表还可以显示每个阵列所支持的集成功能 的细节和不同设备之间的差别。
虽然光纤通道是一个成熟稳定的存储平台,但它不是唯一的选择,我们依然可以放心地尝试iSCSI和 NAS,对于预算有限的用户来说,它们都是不错的替代方案。需要注意的是,鉴于iSCSI和NAS产品众多,所以在选择的时候用户必须详细了解产品的功能 和扩展性,确保所选产品能够完全满足应用环境的要求。对于虚拟化应用来说,存储部分的设计是最关键的,多花点时间用于考察产品,了解各种产品的技术和功能 方面的差异是十分必要的。
相关链接一:新兴技术:FCoE、10 GbE与CNA
现在有很多新技术已经步入了实用阶段,比如FCoE(Fibre Channel over Ethernet)和10 Gbps以太网,这些都是存储架构未来的可选方案,在性能和吞吐量方面比过去都有大幅度的提升。FCoE是一种将光纤通道数据帧封装在以太网数据帧内部的技术,它将以太网基础架构的高性价比优势与光纤通道架构的效率优势结合在了一起。FCoE技术本身构建在10 Gbps以太网基础之上,在成本方面比原有的光纤通道有所降低,而且在性能方面大幅超越传统的1 Gbps以太网。唯一的问题是,FCoE需要使用特殊设计的10 Gbps网卡和交换机等组件。
FCoE和10Gbps以太网这两种技术结合的十分紧密,而且目前我们只能在10Gbps网络上运行FCoE。CNA(Converged network adapter)是一种将这两项技术融合在一起的新型网卡,同时支持FCoE和10Gbps,这样用户就不必分开购买光纤通道HBA卡和10 Gbps以太网卡了。使用CNA还可以减少服务器端I/O卡、线缆的数量,交换机上也不再需要那么多的端口,这些都可以压缩开支。FCoE、10 GbE和CNA都是很棒的技术,只不过通常新技术在刚出现的时候价格都要比老产品贵一些。
相关链接二:I/O虚拟化
随着服务器虚拟化应用的普及,I/O虚拟化应用也在快速增长。它能够将一个物理I/O适配器虚拟成多个虚拟的网卡或HBA卡。服务器虚拟化应用的一 个难题就是主机端同时需要很多的I/O端口,既要连接数据网络,也要连接存储网络。一般情况,物理服务器上可能需要6-8个网络端口用于普通的前端网络连 接,于此同时,至少还要2个网卡或HBA卡连接到后端的存储网络。I/O虚拟化技术可以帮助用户将多个I/O卡的I/O处理需求合并到1~2个卡上。I /O虚拟化产品有很多不同的类型,比如Xsigo公司能够用一个HBA和网卡模拟出8个以上的标准以太网或InfiniBand端口。另一家公司 Virtensys的技术则完全不同,Virtensys利用一个PCI-E外联扩展卡与一个独立的外部装置连接,该装置中则包含了可以共享的I/O适配 器。总之,不管怎样,各种I/O虚拟化技术都可以简化主机端的I/O连接,同时降低硬件采购成本及主机端的电力消耗。