存储网络的替代选择:你会选择哪种协议

存储网络这个话题往往不太能引起人们的关注,因为大家的关注点大都被吸引到服务器或者与它相连的存储上去了。然而随着存储网络作为新技术在数据中心使用,存储网络相关话题也再次成为人们讨论的焦点。当然,我们承认有关服务器技术、虚拟化技术、操作系统本身以及应用方面也有不少值得我们讨论的话题,然而不论是这其中的哪种技术,都需要一个存储数据的地方,那么存储网络技术的发展就很好的解决了这个问题。

存储网络技术是个很宽泛的话题,可以有各种不同的组成类型来满足预算和存储空间两方面的需要。存储网络技术能帮助我们满足现有的存储需求甚至能以此推断出未来需求的趋势。其中一些技术在生产环境中已经或者正在得到证实。另外的一些则相对较新,或者还没有很好的市场认可,未来相对有更多的未知。

存储网络的类型

存储网络类型包括有直连型存储(DAS)、网络附加存储(NAS)以及存储区域网络(SAN)。我们也会关注存储网络中与接口有关的技术,包括大家所熟悉的光纤通道(FC)、iSCSI以及SAS,另外还包括有相对较新,使用人群也较少的基于以太网的光纤通道(FCoE)。同样我们也会了解文件服务器接口,例如我们常见的CIFS以及NFS两种协议。之后我们也会学习I/O虚拟化相关的技术,因为这项技术的应用也会为我们带来许多有意思的结果。

曾经有过有关存储网络诸多类型中究竟哪一种应用最广泛、最受欢迎的讨论,大家也预言了哪些技术会被淘汰。在查阅了研究机构IDC有关根据主机接口类型排名的存储反馈来看,我们发现直连型存储DAS、光纤存储、iSCSI存储以及NAS存储各自都有数十亿甚至上百亿的业务额,并且谁都没有退出市场的趋势。此外,它们中的每种都正努力在未来几年在装机容量上继续达到新高度。

直连存储

直连型存储是最常见也最为人们所知的存储类型。在DAS部署环境中,主机可以有专用接口直接连到后端存储设备上并且对存储设备有完全控制权。这种部署方式相对简单且成本较低。而这种方式潜在的问题在于,宿主计算机和存储本身的连接通常是很有限的,比如主机和存储可能在同一个机柜里或者在相邻的机柜里。

然而SAS,也是直连型存储的一种,正逐渐在一些存储网络环境中得以应用。SAS交换机最近也在市场出现因为它提供了一种相对简单的方式以帮助在特定数量的服务器中间共享存储。

网络附加存储

NAS设备,也是我们常说的文件服务器,通过以文件共享或者挂载点共享的方式将存储资源共享到客户端上。这些客户端用CIFS/SMB或者NFS这样的网络文件访问协议来读取存放在文件服务器上的数据。因为NAS设备本质上是走网络的,存储设备往往和客户端是分开的。

对于运行在Windows设备上的文件服务器,或者是需要将存储数据共享给windows平台客户端的时候,使用的是CIFS/SMB协议。微软公司一直在致力于这项协议的开发和增强。Windows 7和 Windows Server 2008版本使用的是SMB 2.1版本,和早期的版本相比性能上有了不同程度的提高。早期的版本包括有Samba 3.6、SMB协议是2.0版本的,还有SMB1.0的版本。

运行在Unix或者Linux上的文件服务器支持的是NFS协议。NFS主要的版本包括NFSv2, NFSv3和NFSv4。其中NFSv3版本看起来相对是部署最为广泛的,它对于需对应用和环境都是可以胜任的。NFSv4增加了性能和安全性方面的提 升,因而也成为了稳定的协议。NFSv4中包括的新特性有进程以及目录指定功能和并行NFS(pNFS)。pNFS协议在集群环境中可以允许对多台服务器 的并行访问。

iSCSI

iSCSI协议在使用以太网架构的同时也充分利用了SAN网络的优势。iSCSI存储网络由于其成本上的优势以及简单易扩展,通常部署在中小企业环境下。对于大规模企业环境,尤其是针对10GbE的环境,也能扩展上去。

由于iSCSI本身是依赖于底层的TCP/IP协议,因此它也可以运行在现有以太网络架构下,而无需专门准备一条用于iSCSI数据流的链路。理论 上说,iSCSI可以使用任意速率的以太网;然而,最佳实践建议我们使用千兆或者更快的网络环境。从长远角度来看,iSCSI将能运行在任意以太网速率 上,不论是40Gbps还是100Gbps。

虚拟化环境可以通过虚拟层充分利用iSCSI网络存储或者绕过虚拟层,从客户端虚拟机上直接访问iSCSI存储。

随着10GbE以太网的发展,iSCSI逐渐成为企业在筹划未来长期数据中心发展规划时的着眼点。许多现有的iSCSI存储都有类似的高级特性,比 如复制功能、精简配置、压缩功能、重复数据删除功能以及其他企业级数据中心环境所必备的功能。对于需要现代存储系统来说,iSCSI和FC及其他接口一 样,都是主机必备接口。

光纤通道

光纤通道在设备级磁盘驱动器接口以及SAN网络接口中得以应用,并已经有大约15年的历史。光纤通道携带着SCSI命令通过铜口或者光纤口传输到设备上。光纤通道的速率发展也是惊人的,几乎每三到四年就会翻番,2008年升级到 8Gbps,四年后的今天,16Gbps的产品也开始问世。几乎所有的高端存储系统以及许多的中端存储系统都会使用光纤通道作为主机接口或者众多接口中的一个。

企业级存储系统上配备了光纤通道作为磁盘驱动器的接口,单个磁盘速率最多能达到4Gbps。业内也正由用于企业级环境的光纤通道磁盘转向更快的6 Gbps的SAS盘,同样也包括传统硬盘和固态硬盘。

光纤通道为非传统局域网提供了一个独立的高性能、高可用性和高可扩展性的数据交换网络。现在如果看到一套系统中有成千上万个光纤通道端口也已经不是一件鲜有的事情。

部分16Gbps的光纤SAN产品将在今年年底问世。适用于此类设备的环境包括有大型虚拟化服务器环境、服务器加固环境以及多服务器应用。企业级应 用中广泛使用固态硬盘的趋势增长也帮助16Gbps速率的产品的市场进程。此外,存储厂商们已经开始着手研发32Gbps的光纤通道的SAN接口,并期望 于三到四年后问世。

基于以太网的光纤通道

基于以太网的光纤通道是通过一种叫做数据中心桥接的技术将光纤协议打包封装到以太网数据包。数据中心桥接技术将传统以太网数据传输的性能大大提升并 已经与用于搭建10GbE架构环境。基于以太网的光纤通道能够实现让光纤数据在10Gbps速率的以太网链路上传输,并能够与现有光纤存储系统架构相兼 容。

基于以太网的光纤通道为我们提供了全新的交换机和适配器接口。能支持这项技术的以太网需要能支持数据中心桥接,而新的主机适配器则是众所周知的聚合 网络适配器,因为它们需要同时支持以太网和光纤通道。一些聚合网络适配器能支持基于以太网的光纤通道和iSCSI的全硬件卸载功能。等同的,光纤通道主机 适配器(HBA卡)也能为光纤通道支持全硬件卸载功能。数据中心桥接交换机能够在同一个连接中分别管理不同的数据流类型,除此之外,还能将总带宽按比例分 配给不同的数据流类型。从长远角度讲,通过将不同的以太网和光纤交换机组合起来,能够减少存储和数据网络上的整体成本。

企业在规划新数据中心或者新的服务器及存储架构各有不同,因此在使用基于以太网光纤通道以及数据中心桥接技术的问题上需要仔细分析。它们为性能的提升提供了可能,并且降低了所需要的适配器数量,同时降低了在现有光纤架构上的电能消耗。

I/O虚拟化

I/O虚拟化做的事情是将服务器和存储设备之间的I/O传输链路进行虚拟化操作,以保证能满足服务器虚拟化性能上的需求。当我们做虚拟化操作的时 候,我们将设备的逻辑表现层从物理设备上去掉,使得这些资源能够得到更为充分的利用。操作的过程可以由将设备分割成多个小的逻辑单元后再组成一个大的单元 或者将设备重新表示成多个不同的设备。这种方式对于任何在服务器主机上有适配器的环境都能适用,比如说网卡、RAID控制器、FC HBA卡、显卡或者基于PCI-e口的固态硬盘存储。比如说,网卡teaming是我们知道的将设备重组成“更大”设备的一种方式。虚拟网卡则是一种基于 一个物理设备来表现多个设备的方式。

一对有关联的技术正开始在业界得以实施,它们分别是单根I/O虚拟化(SR-IOV)以及多根I/O虚拟化。前者的实施难度会比后者低,但是两者所 能实现的效果都是令人称道的。这些技术可以和服务器虚拟化搭配使用并允许多个操作系统实现共享本地PCIe设备。单根I/O虚拟化是为多个主机操作系统而 设定,多根I/O虚拟化则是为上面可以跑多个虚拟机的多个物理服务器来共享设备。

当单根I/O虚拟功能的适配器放入虚拟机环境后,只要虚拟层能支持单根I/O虚拟化,那么对管理虚拟适配器的工作则由原先的虚拟层转嫁到适配器自身上,这样做的意义在于能大大节省主机CPU使用率并将性能提升至物理机实施水平。现在市场上许多的以太网适配器,FC HBA卡以及RAID控制器都能够支持单根I/O虚拟化功能。

多根I/O虚拟化将I/O虚拟化的本质提升到了一个新的高度并提升了其跨越多个物理机平台的能力。这样的功能是通过将PCIe总线通过专用的 PCIe总线扩展适配器扩展至服务器外接底盘来实现的。网卡、显卡或者其他适配器,尤其是那些成本较高的适配器,都可以放置到外接底盘上以允许共享给多个 物理机。

这样类型技术里很有意思的一个应用是使用有单根I/O虚拟化或者多根I/O虚拟化功能的RAID卡或者SAS/SATA适配器用于SAN环境下虚拟机的迁移操作。此外,假想如果使用能具备单根I/O虚拟化功能的网卡,那么就不再需要使用外部交换机了。

这一切的关键就是需要先得到管理程序厂商的支持。在撰写本文的时候,暂时只有Red Hat Enterprise Linux 6支持有限类型网卡上实现单根I/O虚拟化(SR-IOV)。微软在他们下一代Windows产品的特性上也守口如瓶,如果在他们的Hyper-V上看到此类技术的支持也不足为奇。就目前来说,VMware何时支持单根I/O虚拟化还是一个未知数。