1/18/2010

NFS还是iSCSI?关于VMware vSphere的存储连接的选择题

VMware连接共享存储的方式有三种,SAN,IP SAN(也就是iSCSI) 和NAS(NFS)。这篇文章不是介绍这3者的区别的,关于SAN和NAS的区别,请去google一下。
其次,这篇文章也不考察FC SAN,如果你的环境中已经有了支持MPIO的SAN并且有足够的存储空间,那么尽量利用起来吧。因为很多文章都指出:NAS/NFS是低I/O需求工作负载的理想介质,光纤则是针对高需求工作负载的理想选择。(这里有一篇可供参考的译文: http://storage.chinabyte.com/387/8638887.shtml)
那么,对于VMware来说,NFS好还是iSCSI好呢?看了不少文档,包括NetApp和VMware都没有明确的说孰优孰劣。比较笼统的一个说法是,看你自己熟悉哪一种环境。
【成本】
首先,不能不考虑的最重要的因素是成本。如果从头构建一个存储网络,那么成本应该是FC SAN>HW iSCSI > SW iSCSI = NFS 。在这里,我们没有考虑10G以太网和FCoE。还是因为10G的设备和配件都太贵。
现实案例:在我们单位的环境中,因为考虑成本的因素,没有SAN(SAN通常都比较贵,你必须购买专用的HBA卡,至少2个SAN Switch,并且还要为你的存储配备FC SAN接口)。我们内部的存储网络环境主要就是2种:iSCSI和NFS。MS Cluster Service(比如email和MS SQL)用的是iSCSI,Oracle DB用的是NFS。于是,我们的VWware就剩下了2个选择,iSCSI和NFS。(硬件的iSCSI因为CPU资源并不是瓶颈,吞吐量上也没有优势,处于成本考虑也放弃掉了)
成本上:SW iSCSI 和 NFS打平手。
【性能】
NFS是基于IP的,但是不是基于IP的存储协议,在网络开销方面似乎要略大一些。但是性能测试却表明,NFS和iSCSI几乎不相上下(读性能相当,写性能略差)。(参考文档 http://www.vmware.com/files/pdf/perf_vsphere_storage_protocols.pdf)
读性能:(需要注意的是,这里的FC一枝独秀是因为FC是4Gb/s带宽,而其他3种则是1Gb/s的千兆以太网)
NFS还是iSCSI?关于VMware vSphere的存储连接的选择题_第1张图片
写性能
CPU占用率。从这图可以看出,ESX4.0的SW iSCSI大有改进。ESX3.5的时候,SW iSCSI的效率甚至低于NFS。
NFS还是iSCSI?关于VMware vSphere的存储连接的选择题_第2张图片
性能上,SW iSCSI略略胜出,但是胜的不多。
【配置的便利性】
根据我在ESX3.01和ESX3.5上这3年来的经验,配置iSCSI要比配置NFS复杂很多。这方面NFS胜出
【功能】
功能看下面四个表(详见NetApp的最佳实践文档 http://blogs.netapp.com/virtualization/2009/07/new-tr3749-netapp-vmware-vsphere-best-practices.html)
NFS还是iSCSI?关于VMware vSphere的存储连接的选择题_第3张图片
表1说明采用LUN的FC或iSCSI没有NFS灵活,所以虽然单个的datastore可以高达64TB,但是每个LUN建议的VMDK只有16个。因此,必须配置更多的datastore,也增加了配置的复杂程度。
NFS还是iSCSI?关于VMware vSphere的存储连接的选择题_第4张图片
表2说明,只有FC支持MSCS(微软集群),如果你必须用MSCS,那只有一个选择了。其次,FC和iSCSI支持VMware NMP (Native Multi-Path),这个优点有待我进一步测试。
NFS还是iSCSI?关于VMware vSphere的存储连接的选择题_第5张图片
表3是在NetApp这一端比较的。NFS因为其天生的特性,可以灵活地扩大或者缩小datastore,明显优于LUN方式的iSCSI。(Snapdrive是用来扩大LUN用的,NFS无需Snapdrive)
NFS还是iSCSI?关于VMware vSphere的存储连接的选择题_第6张图片
表4比较了备份方式。NFS的备份可以针对VM级别,相对更加灵活。
【总结】
总的来说,NFS的性能略差,但是管理上灵活度更高。在我这的环境中,将偏向于采用NFS方式。