您现在的位置是:首页 > IT基础架构 > 计算存储 >

NFS还是iSCSI:难以做出的抉择

2012-06-04 17:28:00作者: 来源:

摘要这两种协议根据应用场合的不同,各自都存在优缺点。但是存储的未来发展将会成为做出最终选择的重要依据。...

  在过去的数周内,我花功夫钻研了与构建IP存储网络有关的一些已被遗忘的部分,以及如何最好地利用它与NFS和iSCSI——虚拟化所使用的两大IP存储协议——相配套的问题。这段时间我也收到了大量的读者来信,这些来信全都和这样一个问题有关:NFS或iSCSI,哪个更好?

  与很多引起热烈争论的IT话题一样,要在任何两种流行的竞争技术之间进行选择,关注其整体更优的人并不多,更多的人关注的是它们能否最好地解决面前的挑战。这两种协议根据应用场合的不同,各自都存在优缺点。但是存储的未来发展将会成为做出最终选择的重要依据。

  文件 vs 块

  我之前曾经说过,NFS和iSCSI两者无论就实施状况还是历史发展来看,都不存在很大的差异。NFS是由Sun公司在上世纪80年代初开发的,当时是作为通用的文件共享协议,允许网络用户到网络上的一台文件服务器上去读写文件。iSCSI出现的较晚,最初是在2000年初,作为光纤通道(FC)的一种IP替代方案出现的,它和FC类似,都是将块级SCSI命令进行封装,然后在网络上发送。

  两者间的主要差别在于文件系统的实施和管理上。NFS使用文件级别的实施,服务器或存储阵列托管整个文件系统,客户到文件系统上读写文件。而iSCSI和FC则使用数据块,存储阵列向客户提供数据块集合,赋予原始存储数据一定的格式化,而不去管文件系统究竟如何使用。

  虽然这种差异产生了诸多的后果,但最重要的后果可能在于,在诸如iSCSI和FC的块级协议中,存储阵列一般不会去管它存储的内容是什么。它只知道分配块集合给需要访问的客户。相反地,在诸如NFS的文件级协议中,存储阵列对存储在其中的应用数据具有充分的可视性。

  从实用角度来看,对存储在NFS系统上数据的这种阵列端感知能力可以让存储阵列更容易跟踪实际的存储使用情况——例如在精简配置场合,它可以拍摄快照,或者对单个虚拟机做备份,甚至可以在阵列端对主存储数据进行重复数据删除。

  不过最近在VMware的VAAI(vSphere API for Array Integration)中实现的SCSI T10增强功能为块存储也增加了类似的感知功能,通过支持UNMAP SCSI原始,可对空闲块增加虚拟化堆栈能力(因而允许阵列回收这些块)和阵列端副本卸载能力,可以加速虚拟机克隆等任务。从某种意义上说,一些智能化的hypervisor与阵列的集成也使得使用NFS的文件级系统可以移植到采用SCSI协议的块级系统中去。

  但我不能因此而肯定文件与块的竞争是否已经结束。尽管增加了这些SCSI原始可允许基于SCSI存储协议的系统执行某些类似NFS的功能,但在其他情形下,文件级协议依然拥有某些领先之处——延伸集群就是一个很好的例子。在此类可同步复制、地理分布不同的存储系统中,存储层具备将每个虚拟机视作单独存储资源的能力——可以单独对其进行删除和故障处理——这一点极其重要,也是使用块存储协议的系统所无法实现的。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们