WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

评论分析 > 磁盘 > 正文
存储协议未来会出现统一吗?
作者: WS 2016-05-23 14:32 【WatchStor】

在本周召开的TECHunplugged大会"QA"的环节中,其中针对存储架构师的一个问题是,未来我们能否会看到一个单一的存储协议的发展。

这是一个有趣的想法,运用到对象存储上来说,似乎具有一定的道理。然而,这跟技术一样,答案"取决于"似乎看起来最明显的,但还是让我们一起深入研究一下"取决于"到底在这里意味着什么。

协议底层

现在有很多方法可以永久访问存储上的数据,包括服务器上的磁盘以及外部存储阵列。包括以下一些内容(但这不是一个全面的列表):

ATA - AT附件接口,用于早期的PC,从IDE(集成驱动电子设备)衍生而来,并提供给我们PATA(并行)和SATA(串行)接口。

SCSI - 小型计算机系统接口,最初是为更多的商业服务器提供并行接口,SCSI带给我们SAS(串行连接SCSI),并与光纤通道和iSCSI的顶端并行。

IBM CCW - 通道命令字,通过结合而创造了一个"渠道项目"用于大型机的I/O,运行在总线和标签,ESCON以及后来的FICON接口。

光纤通道 - ESCON开放系统的推导,目前广泛用于外部存储阵列和在内部连接驱动器的一些传统平台。我们也有尝试通过以太网使用光纤通道,但最终没有成功。

CIFS/SMB - 用于访问Windows服务器上的基于文件的数据(虽然最初由IBM设计)的客户端协议,尤其是用于最新的SMB3.x版本中的扩展。

NFS - 由Sun Microsystems公司在80年代中期开发的,到今天还广泛使用的客户端/服务器的文件访问协议。

REST API、SOAP - 通过本地和广域网访问的用于对象数据的基于HTTP/网络的协议。

此外还有其他的一些协议,但是在这里我们只覆盖到最常见的,具有代表性的用来连接外部存储的协议。几乎所有的I/O协议可以分为三大类:

块存储 - 寻址和访问每个数据块的高粒度(最少512个字节)低延迟的I/O请求。数据存储在LUN或者卷上,数据的内容就缺乏一定的智能存储装置,访问需要一些额外的格式(例如LUN上的分层文件系统)或智能应用程序(例如数据库访问原始卷)。

文件 - 数据作为文件在层级结构中被访问(例如文件系统),其提供了先进的功能,例如数据的安全性(ACL),文件的锁定(在一个时间内连续访问的过程),元数据(日期/时间被访问,文件大小等)和用户友好的对象名称。缓存允许子分档的更新,而不必检索/存储每个修改过的整个文件的内容。

对象 - 数据被存储并作为二进制对象访问,没有由对象平台直接格式化理解,虽然内部的对象能够具有结构,并且可以通过元数据一起使用,以帮助理解对象的更多细节。通常,对象存储不允许子对象的更新,作为"原子"操作被有效的创建/检索/更新整个对象上的命令。对象存储比文件服务器更具可扩展性,通常能够以比文件系统更低的开销来存储更大更多的对象。对象存储工作是基于Web的协议。

在传输层,现代化的系统使用以太网,光纤通道或者是FICON。 FICON仅限于IBM大型机领域,但是我们将其放置一边进行设置以作为此次讨论的一部分。作为一个专门的运输,光纤通道比起以太网来说具有显著地优点,例如无损交付,但是其被设计成一个本地协议并需要通过广域网来扩展实现的工作。

各显其能

我们可以看到每个协议已经发展到满足特定的要求。基于块的系统非常适合的交易数据,因其更新粒度小,也相对比较随意。文件通过数据提供了更多的结构,对象存储位于中间。对象存储在扩展性方面表现很好,但是在延迟性/性能方面有所欠缺。事实上,延迟与对象存储的相关性并不大,相反,我们应该注重吞吐量和第一个字节的时间。

为了做到尽量合理化尝试和合理化协议和传输,我们可以专注于以太网。然而正如前面提到的,有关于标准以太网的问题以及为了解决此问题相关的数据中心桥接和FCoE。不幸的是,该技术的支持者,传统的光纤通道对于转变仍然很顽固,这并不奇怪,对于任何需要终端用户投资巨大的技术来说。当然,我不是专门指的硬件,还有建立存储网络的知识和经验,都需要重新学习一下。

合并

还是有一些整合可以做的。文件是对象协议的一种特定的形式,使用相同的传输和基于IP的技术访问数据。许多对象存储正在转向支持基于文件的本地协议,这样可以很容易看到文件和对象是如何合并的。事实上,许多存储系统(例如Exablox的OneBlox)已经使用对象作为底层存储机制,而将目前的数据当做传统文件。

块存储更难应付。LUN或者卷可以被对象存储所模仿,以提供子对象的更新支持。然而,对象存储系统通常用于规模(即容量)和或者是小块存储更新所遇到的问题。擦除编码作为对象存储中的数据保护机制是管理小块存储更新时,一个真正的性能问题。

抽象对象

我相信一些读者认为我们已经开始管理其他的对象类型,通过引入VVOLs ,用于VMware和Tintri借助于NFS获得本地支持。事实上,VVOLs只是一个组装的过程,简单地使用基于块的文件协议,例如光纤通道等,创建了多个LUNs(一个整体对于多个文件和类型),并提供外部管理能力。实际上这并不是一个新的协议。

架构师的观点

作为另一个小组成员指出,我们将不得不接受对于多个I/O协议的需求,虽然我们使得传输层更加合理化。在块协议中加入更多的智能部分也会有所帮助;例如添加sub-LUN锁定功能。

这里讨论的不光是高性能协议,例如Infiniband、iWARP、RoCE(RDMA聚合以太网)或NVMe,有可能随着时间的推移,他们都将会成为市场主流。我们可以看到,努力减少协议经常受到发展的更快更有效的技术所阻挠。所以大规模的合并协议可能还有一段路需要走,或者是(更有可能)将永远不会发生。


标签:磁盘 光纤通道 混合存储 

LecVideo
论坛与活动