【IT168 评论】海量数据的增长催动着对象存储的持续火热,对于这一技术,最有趣的一点就是其用途的多样性。虽然多数情况下,对象存储常被用于归档存储,或代替生产环境中的文件服务器,但实际上对象存储的应用场景还有很多。如今,越来越多的供应商开始提供性能得到优化的对象存储系统,为对象存储带来了一条新的发展路线。
打造高性能的对象存储,并不仅仅是把存储系统中的机械硬盘替换为全闪存就可以。使用闪存盘对与性能的提升当然是大有帮助的,但对象存储系统往往存有海量的元数据,会导致延迟的增加,无法有效利用闪存的性能。
除了元数据的问题外,打造高性能对象存储系统还有一个大的挑战,就是基础设施的横向扩展能力。对象存储系统在进行容量升级时,会将节点添加到存储集群中,每个节点的容量汇集到集群中,创建一个存储池。在大规模的横向扩展集群中,通常有几十上百个节点。聚集和管理这些节点的延迟可能很高。
AI和深度学习的对象存储挑战
在探讨高性能对象存储架构面临的挑战时,AI、深度学习这类拥有大规模、非结构化数据的工作负载是较好的例证。理论上,这些工作负载应该是理想的对象存储应用场景,通常有数百万、千万、甚至数亿的文件。存储这些数据需要大量的容量空间,因此需要许多节点。与此同时,这些进程都是由吞吐量驱动的。
基于这些因素来看,AI和深度学习负载显然非常适合采用典型的多节点对象存储集群。大多数AI和深度学习框架,比如TensorFlow都常常会采用对象存储架构。从理论上讲,对象存储基础设施应该能够满足AI和深度学习工作负载的需求。
但是利用对象存储系统支撑AI工作负载,并不是简单地搭建一个全闪存对象存储系统。系统必须能够解决一些现实问题,即可能会有几十上百个节点,还有元数据带来的问题,以及集群管理的挑战。
如何应对元数据挑战
元数据是关于数据的数据,它往往是对象存储实现高性能的一大挑战,原因有两个:首先,对象存储系统需要更多的时间来管理其丰富的元数据。由于大多数对象存储供应商会在集群中指定一定数量的节点来管理和存储元数据,因此管理更加复杂;在AI和深度学习工作负载中,专用的元数据控制器可能经常会被元数据压垮,成为性能瓶颈,因此导致闪存甚至机械硬盘都不能充分发挥它们的性能潜力。
元数据的第二个挑战是集群通信。大多数向外扩展的NAS或块存储系统具有相对较小的节点数。在NAS和块存储场景中,只有6个节点的存储集群都可以称作是大型集群了,但在许多对象存储部署中,6节点只是起步。节点间的通信成为一个大问题,特别是在十分考验性能的用例中。
创建高性能的、大规模的对象存储解决方案需要解决元数据性能和集群管理问题。下一代对象存储将元数据分布在集群中的每个节点上,而不仅仅是几个控制器上。元数据的分发,需要确保每个节点都拥有响应I/O请求所需的所有信息。
其他一些问题
对象存储系统还必须解决节点间的网络问题。在这种情况下,元数据的分布也很有帮助,因为它降低了东-西之间的通信量。供应商必须优化节点间的网络,这样才不会造成性能瓶颈。多数情况下,供应商会通过优化网络通信以最小化传输频率。
另一个需要优化的领域是协议仿真。例如,大多数对象存储系统支持NFS。NFS支持至关重要,因为许多物联网设备使用的是NFS。其中的挑战在于,许多对象存储系统都挂在一个独立的组件上,该组件在NFS和对象存储之间进行转换,而不是在它们的软件中本机运行NFS。转换的性能开销非常大,并且往往表现在高性能场景下。
NFS在对象存储代码中的本地集成,可以提高性能并同时访问相同的数据。并发访问意味着物联网设备可以通过NFS将数据发送到对象存储卷,同时,AI能或深度学习框架可以通过对象存储处理数据,而不需要复制或移动数据。
关于NAS
NAS系统在当前数据中心中仍然有其价值,但它现在处于两个极端之间。尽管高容量NAS仍然在备份存储市场有一定竞争力,但对象存储更像是长期存档和备份的理想选择。而且对象存储也适合作为文件服务器替代品,比如性能要求不高的用户主目录。
高性能对象存储非常适合需要几十个或几百个节点、数十PB容量的大规模工作负载。这些工作负载同时还依赖于吞吐量,并且在I/O访问方面高度并行。介于这两个极端之间的是高性能、非结构化的数据工作负载,这些工作负载本质上是随机I/O,并且节点数只有十几个。在这些用例中,NAS可能仍然是更好的选择。