那些没有为数据库或文件系统写过代码的上了年纪的程序员应该不太可能读到这篇文章。毕竟,一般商业应用程序访问其他数据类型的模式已经存在超过40年了。因此,代表着第一个主要的新型数据结构类型的对象存储,它在两代的时间里对数据管理实践产生了显著影响。对象的实现始于上世纪90年代末,但多数是特殊应用。大规模的部署则由云服务所引领,如亚马逊S3,Facebook和Spotify。现在,无论成熟厂商还是新兴厂商的对象存储解决方案都已达到相当成熟度,使得IT部门开始考虑如何在自己企业中实现对象存储。
对象存储在很多重要方面与SAN和NAS迥然不同,对存储管理员而言最显著的区别在于对象存储没有LUNs,卷以及RAID等要素。对象数据不是存储在固定的块,而是在大小可变的“容器”里。鉴于元数据(metadata)和数据本身可通过传统数据访问方法进行访问,对象存储允许数据被直接访问。此外,支持对象级和命令级的安全策略设置。
然而,企业IT部门却不太认为他们需要对象存储。相反,存储经理们在寻找更好的方法来满足企业的数据访问需求,他们需要尽可能简单而不贵的解决方案,尽管对象存储事实上挺符合这些需求的。
在数据中心使用对象存储是一种“和”而不是“或”的解决方案。对象存储拥有很大前景,但它不会很快就完全取代SAN和NAS存储。存储系统实施中的共性有:
·归档
·云存储
·备份与恢复
·合规性
·内容服务
还有一些应用案例中数据访问是必要的,但性能却不一定是问题。
对象存储的实现模型
当前的对象存储解决方案从即用型的云服务,软硬件捆绑或纯软件的应用交付,直到完全的融合型阵列。有些实现试图拥抱并包容传统存储架构,而另一些则是纯粹的专门设计。
从Helion公有云开始,惠普提供了全系列的对象存储产品。对于内部和私有云环境,惠普的StoreAll 820存储网关应用可作为前端搭载StoreServe 7000型或10000型阵列,也就是3PAR阵列。StoreAll 8800则是基于3PAR的一个完全的融合性阵列,在同一设备里支持SAN,NAS和对象存储。因此,惠普的产品针对了每种类型和大小的客户,从小型到中小型(SMBs)再到最大的企业集团。
当前的对象存储产品从即用型的云服务,软硬件捆绑或纯软件的应用交付,直到完全的融合型阵列。
新兴对象存储厂商Exablox的第一个产品是OneBlox应用,其架构是一群对等节点组成的“环”,待存储对象通过支持SMB/CIFS的通用文件系统在这些节点上被存储。有一点值得注意,OneBlox应用可以支持任何SAS或SATA硬盘驱动器,即使是刚刚发行的最新款—如西数的HGST ultrastar He66TB充氦型硬盘。IT企业可以从它们喜爱的电子设备商采购硬盘,因而避免了常见的阵列加价。Exablox针对中小型企业和云服务提供商,目前已有2000用户。
昆腾Lattus对象存储应用的配置可以从6节点扩展到20节点,这些节点在地理上分散以使得广域接入和协作成为可能。Lattus有三种模式:D,X和M模式。D模式支持原生的S3接口(HTTP Rest);X模式支持NFS,CIFS和HTTPREST协议;M模式则支持昆腾的StorNext存储管理接口。Lattus是业务无中断,自修复和自迁移的系统,主要面向大中型企业,尤其是媒体和娱乐行业,或者那些需要进行计算/处理/编辑的应用场景。
EMC提供多种对象存储产品。Atmos可以以云服务的形式交付,称为Atmos Geo Drive,但也可以作为完全的阵列形式交付。EMC的SourceOne归档应用则通过采用CIFS和NFS协议将文件接口转换为Atmos对象存储,从而提供归档,合规和电子发现功能。此外,EMC的ViPR软件定义存储平台提供对象服务,作为EMC Isilon,VNX,或NetApp阵列的前端,可允许对象访问到达后端数据层。
简单是关键
对象存储与传统存储的差异反映出它的一个关键优势:简单性。当今大多数IT企业并不哀叹缺乏技术,而是一再增加系统的复杂性。与此相反,对象存储系统的特点正是实施和管理上的简单性。比如Exablox声称OneBlox应用的安装和配置是如此简单以至于有那么个不太较真的“卡布奇诺挑战赛”,即Exablox演示如何将他们的设备开箱,上电,安装硬盘到存储数据,整个过程所花时间和品尝一杯卡布奇诺咖啡的时间相当。
由于对象存储不依赖于LUNs和卷,因此可实现无中断扩展。通常,新的存储容量可以通过简单配置加入到运行系统中。Exablox和昆腾都声称用户将永远不会再经历大规模升级,系统配置或重新配置。这种扩展性是由设备底层的文件系统所实现的,比如惠普的StoreAll系统使用StoreAll分布式文件系统,而Exablox则使用它们的环形架构和通用文件系统。它们与其他的对象存储系统一样,很像横向扩展(scale-out)存储系统,由文件系统来实现了跨节点的全局命名空间。然而需要留心的是,由于扩展性并非无限的,在某一特定配置下,厂商对所支持节点的个数确实有限制。
对象友好的应用
这里提到离散用例的一个主要原因是对象存储是使用REST API进行访问,该API的数据访问命令仅限最基本的POST,GET,PUT和DELETE操作,然而很多云供应商却亲睐REST作为首选接口。为了提供更丰富的功能,惠普StoreAll产品是一个融合的文件和对象系统,它的操作系统支持CIFS, NFS, OpenStack, Identity Services, Swift和Keystone等协议。EMC的云网关应用SourceOne和Cloud Tiering,将CIFS和NFS翻译成Atoms对象存储,以及除归档外的其它一系列第三方应用程序。昆腾在它的Lattus对象存储产品中捆绑了RESTful接口,该接口允许昆腾与其他公司如CommVault(Simpana)和Arkivio等展开合作。Exablox的OneBlox支持REST,但是作为一个CIFS共享呈现给应用程序,NFS的支持尚在开发中。
对象存储和数据持久性
由于对象存储并不依赖RAID做故障保护,厂商们需要别的策略来完成。大多数情况下,这涉及到跨节点的复制。昆腾Lattus可以部署持久性策略,即IT经理可以指定跨节点和地点的不同复制策略,以应对一定数量的节点故障。如20/4策略可将数据分散复制到20个节点,从而避免最多4个节点发生故障而导致数据损失;18/7策略则是将数据复制到3个节点以应对单点故障的数据损失。Exablox的OneBlox也将数据复制到其他节点,其中复制到3个节点的数据可以避免两节点故障的数据损失;而如何将数据在节点间做最优化分布则由一个哈希算法来保障。
EMC的Atmos拥有两套保护模式供IT经理来决定如何优化可达性与效率。数据复制是一种选择,无论是同步还是异步。此外,该产品还采用分布式可擦除编码,它具有较高的存储利用率,但每次数据请求都需要访问两个或更多地数据存储。昆腾的Lattus同样使用fountain可擦除编码,使数据在各节点间分布,而不再需要复制。
其它高级存储服务
由于REST API的固有限制,厂商们不得不使用各自的方式来提供API基本功能以外的存储服务。这也正是惠普将StoreAll实现为一个融合设备的原因之一,在需要一整套存储服务的应用环境里惠普可以充分利用NAS端已经具备的特性。例如,当StoreAll 8200和StoreAll 8800使用3PAR作为存储后端时,系统即内置了惠普的自适应优化,加密,WORM(Write Once Read Many)和分层等功能特性。
由于没有遗留系统需要加以考虑,Exablox采取了一条完全不同的道路。它将数据管理的原子单位设置为32KB的哈希块。如果一个块已存在,则创建指向它的指针,而不是一个新块。因而该公司声称他们的重复数据删除功能是“免费”的。数据加密则使用AES 256标准来实现。
对象存储的性能改进
尽管IT用户确实不会在olTP应用中使用对象存储系统,厂商们依然在努力提高其系统性能。例如,EMC使用一种“boxcarting”的方法来处理大量小交易,即将这些小交易合并在一个单次写操作中。Exablox则采用不同技术,他们的哈希算法能将数据平均分布到所有节点从而避免I/O瓶颈。
尽管对象存储系统确实不会用于olTP应用,厂商们依然在努力提高其系统性能。
相较于SAN和NAS的复杂性,尽管对象存储也并非银弹,但是它确实能够简化至少一部分存储投资,特别是在归档和非结构化数据存储方面。对象存储可以提供更低的每GB价格,而最大的优点则是简化了存储管理。按照通常所认为的那样,如果存储管理的成本占据了总拥有成本的85%,那么对象存储系统由于无需配置,重新配置和部署任务,必将极大地影响总拥有成本。IT经理们将会想办法将对象存储纳入到企业IT信息架构中来。