如今,由于各种原因,对象存储与块存储的争论引起了人们的浓厚兴趣。由于云计算的惊人发展以及供应商基于对象的存储解决方案的出现,对象存储越来越受到人们的关注。与此同时,块存储仍然是企业继续保持良好状态的支柱。
以下是IT专业人员应该了解的对象存储和数据块存储,以及它们如何适应当今的数据存储环境的内容。
什么是对象存储?
“对象存储”或“基于对象的存储”一词是由它的名称派生出来的,因为它将数据和元数据封装到对象中。元数据本质上是描述其他数据的数据,或者在基于对象的存储的情况下,是关于通常存储在对象内的文件的信息。
对象存储在平面结构或地址空间中。每个对象都分配一个对象ID或唯一标识符,使它们可以从单个存储库或存储池中检索。企业非常重视这种方法,因为它提供了更大的灵活性,可以将数据放置在基于数据块和文件的存储解决方案之外。
亚马逊网络服务(AWS)公司和其他提供商的云计算对象存储产品的普及促进了近年来对象存储的发展。
什么是块存储?
块存储与存储区域网络(SAN)是同义词,并且支持网络附加存储(NAS)系统中使用的文件存储技术无法实现的存储服务。块存储涉及将数据保存在块或原始存储卷中。
这些存储块中的每一个可以作为一个单独的硬盘驱动器出现在外部服务器操作系统上。操作系统依次使用光纤通道(FC)、以太网上的光纤通道(FCOE)或ISCSI协议来访问这些块。
块存储和SAN因此在企业IT环境中很普及的原因是由于其灵活性和性能特征。块存储支持各种需要低延迟、基于网络的存储操作的工作负载,其中包括业务关键型应用程序、虚拟机、RAID实施和数据库。
虽然不应该将其与文件存储系统混淆,这种类型使组织能够通过网络使用NAS-a文件系统为员工提供共享文件服务,可以将其分层存储在块存储上,因为块存储显示为原始存储到服务器操作系统。
在云平台中,块存储可从AWS Elastic Block Store或AWS EBS等服务获得,该服务提供可扩展块存储,供Elastic Compute Cloud(EC2)实例使用。
对象存储和块存储用例
以下是在数据中心中使用对象存储和块存储的方式:
(1)对象存储用例
- 云存储
- 非结构化数据存储(文档、图像、视频等)
- 大数据存储
- 备份和恢复
- 档案存储
- 大数据分析
(2)块存储用例
- 数据库
- 业务应用程序
- 虚拟机
- RAID
- 从网络存储启动
块存储和对象存储的区别
对象存储和块存储最大的区别之一是它们如何处理元数据。
如前所述,对象存储包括数据和元数据。可以自定义该元数据以包含支持搜索或高级存储管理和分析等功能的其他几个属性。事实上,对象存储可以具有非常丰富的元数据。
这也是企业日益转向基于对象的存储解决方案的另一个原因。组织可以将自己的自定义信息添加到对象存储元数据中,从而为基础数据提供更多业务场景和相关性。
这与文件存储形成对比,例如,文件存储通常包含有关文件基本属性的元数据,如文件名、文件类型和创建日期。对象的元数据可以描述他们绑定的应用程序以及许多其他特征。
与块存储相比,基于对象的存储实际上在元数据中移动。
在块存储中,服务器操作系统使用其唯一地址直接访问完成读取和写入操作所需的数据块。正在使用的操作系统或应用程序负责跟踪和管理没有本地元数据的这些数据块。
块存储使用光纤通道、FCoE或iSCSI协议访问各个数据块。对象数据通常使用由熟悉的超文本传输??协议(HTTP)请求组成的开发人员友好的API进行访问。
对象存储解决的问题
对象存储的固有数据保护功能是其另一个吸引力。在通常情况下,使用对象副本和删除编码来确保数据在磁盘节点故障时仍可访问,从而不需要RAID。
简单地说,擦除编码涉及将对象分割成块,用额外的冗余数据对它们进行编码,并将这些片段分布在几个磁盘或节点上。如果灾难袭击了包含这些碎片的系统或磁盘,其剩余的数据碎片可以包含足够的信息来重新组装对象。
块存储解决的问题
企业需要为其应用程序提供可靠,低延迟的存储?
块存储是运行关键业务应用程序,需要可预测性能的数据库和工作负载的企业的首选解决方案。特别是如果交易系统一直在等待数据或无法及时更新数据,它们的运行并不会很好。
块存储也因其可靠和高效的数据传输而受到重视。存储管理人员通常很重视将块存储卷设置为外部服务器的独立磁盘的能力,并且他们可以相对容易地管理访问权限和控制权限。
对象存储和块存储的权衡
与大多数技术一样,对象存储和块存储都有其优点和缺点。
在比较块存储和对象存储时,对象存储后者通常成本较低,因为它可以在商品硬件上运行。尽管存在软件定义的存储解决方案(SDS),可以在现成的硬件上启用SAN和NAS功能,但专用SAN存储阵列形式的块存储通常更昂贵。
在性能方面,SAN胜出。
更改对象库中的数据需要传输整个对象的新版本,而存储在SAN中的数据可以在文件内的数据块级别进行更改。需要随机访问可能存储在对象内的数据的应用程序(例如数据库和事务系统)通常不适用于对象存储。
对象存储还必须与封装了元数据的头文件进行抗衡。相对于块存储,还增加了开销,也降低了性能。读取延迟也是一个问题。
还有数据一致性模型的问题。考虑到SAN的架构和性能特征,存储在此环境中的数据副本可以被认为是非常一致的,这意味着最新版本的数据在修改后立即可用。对象存储通常被认为是最终一致的,这意味着存在最新版本的数据不一定是最新版本的风险。这是由于擦除编码和复制,以及数据在分布式对象存储环境中传播和传播的时间。
对象存储和块存储工作负载
如上所述,对象存储在需要处理大量非常规更新的非结构化数据的环境中发挥作用。这可以包括文档、照片和视频。
富含元数据的对象存储使大规模分析成为企业的有吸引力的命题。对象存储也使得提供和管理跨越地理位置的存储变得相对经济。
同时,块存储的属性使其成为高性能业务应用程序、事务数据库和虚拟机的理想选择,这些应用程序需要低延迟、细粒度的数据访问和一致的性能。
尽管有着根本性的不同,但现在企业正在采用这两种技术来满足他们的存储需求。日益普遍的是,SAN中使用的块存储系统满足关键业务应用程序的即时数据需求,而非结构化数据、媒体文件、日志和其他内容集中到内部部署或云端对象存储解决方案中,并为企业提供两全其美的解决方案。