自30年前发布以来,POSIX一直是基于Unix的系统(包括Linux)的标准文件系统接口。它在处理用户地址空间或内存中的数据方面的有用性已赋予POSIX兼容文件系统并在需要大量数据处理的应用(如深度学习)中存储了命令。例如,与POSIX兼容的Luster文件系统为大多数超级计算机提供了动力,而POSIX的主导地位也继续在市场中下滑。
尽管POSIX有其局限性,但随着I / O请求数量的增加和数据规模的扩大,状态性,规定性元数据和强一致性等功能成为性能瓶颈,从而限制了POSIX兼容系统的可伸缩性。如今,这在深度学习,人工智能和其他数据密集型用途中通常是一个问题,但是随着数据和对其进行指数分析的需求呈指数增长,随着时间的流逝,该问题逐渐向市场转移。
输入对象存储。与文件系统不同,对象存储不需要分层数据结构。它是一个统一的数据池,每个数据都由其元数据定义。它没有可伸缩性限制,非常适合高端存储和应用程序,但是它具有POSIX没有的一个性能限制:数据请求必须通过POSIX文件系统堆栈。POSIX通过mmap()函数解决了这个问题,该函数使用户空间成为操作系统和存储之间的中介。
最近,包括长期企业存储论坛贡献者亨利·纽曼(Henry Newman)在内的一些工程师通过创建mmap_obj()来利用POSIX的这一优势,该函数使对象存储系统能够处理内存中的数据。有了对象存储的可伸缩性(和较低的成本),这一突破可能意味着POSIX在计算密集型环境中的主导地位将终结。
POSIX,满足对象存储
尽管POSIX是在不同操作系统之间传输应用程序的有用方法,但是它没有可扩展性来满足最苛刻的应用程序,并且其速度随着需求的增加而下降。
然后,访问文件系统存储中的数据成为一个挑战,特别是对于具有大量数据和性能需求的组织。对象存储是一种较新的数据存储形式,可以保存任何形状的数据(称为对象)。希捷于1999年开始开发,部分是基于RAID发明者Garth Gibson等人的先前工作。
对象存储是三种存储方式(文件和块的存储方式)中最具扩展性的,因为它允许以任何形式存储和访问大量数据。数据存储在统一池中,并且可以通过每个数据对象的元数据进行管理。但是请求存储的对象数据需要额外的处理时间,因为请求必须通过内核或操作系统。
对象存储是非常大的数据存储的理想选择,并且已广泛用于云计算中,但是到目前为止,POSIX具有一个优点:mmap()协议允许在用户地址空间中处理数据,而无需通过内核,这仍然是一个瓶颈,多年来性能几乎没有改善。
使用mmap_obj()不再具有优势,现在对象存储也可以处理用户空间中的数据。这对于NVMeOF框架尤其重要-拥有可以无限扩展的平面存储池,并且具有处理高性能内存中数据的能力,对象存储现在有可能使POSIX文件系统过时。
随着存储系统中的文件超过数十亿个,POSIX可伸缩性和性能限制可能意味着对象存储成为首选,因为它具有处理用户空间中数据的能力。在那个级别上,POSIX的I / O和可伸缩性限制将成为瓶颈。
NVMeOF和mmap改变了游戏
尽管中介程序(例如S3文件系统接口)很有用,但它们仍需要在存放在对象存储系统中之前或之后由POSIX应用程序处理数据。
但是,如果有一种更快,更可扩展的方法来访问对象存储中的数据呢?
面料上的非易失性内存Express(NVMeOF)是一种相对较新的技术,其中面料术语“网络结构”是指网络结构,连接到计算机网络的设备允许将数据传输到该设备中,例如SSD。使用内存映射将对象数据复制到设备中意味着所有数据都在设备上而不是在POSIX中临时存储和处理。SSD或其他外部设备具有更多可用的计算空间。外部设备(该计算机的辅助存储的一种形式)直接连接到计算机系统,并且CPU拥有一条通往设备中数据的路径:连接后几乎可用作主存储器。内存在计算过程中停留在SSD中,主动访问数据(尤其是元数据)的速度变得更快。在对象存储和数据处理方面一直寻求低延迟。借助NVMeOF,它将变得随时可用。
NVMe(原始版本)使用闪存连接(例如驱动器)使数据可用于SSD。但是NVMeOF使该数据可用于整个网络。NVMeOF不仅可以处理连接到计算机的设备中的数据,还可以使用户通过网络访问内存。数据中心和数据湖中的对象存储和NVMeOF意味着比以前已知的更高的计算能力。数据湖是原始的,非结构化数据的存储库。将对象存储(而不是文件存储)用于数据湖将使数据分析师更轻松地管理和分析数据。使用内存映射和NVMeOF快速访问它可以提供更高水平的高性能计算。
NVMeOF还可以为数据中心提供更高的计算能力。Google,IBM和Amazon Web Services已经在使用基于云的对象存储。当前,访问数据中心中的对象存储的数据需要应用程序接口(API)以及输入和输出命令。通过将NVMeOF与内存映射一起使用,数据中心可以绕过使用服务器的操作系统(通过内核)来处理数据。也不需要中间接口。数据中心可以将对象存储的数据直接带入内存进行处理。
通过为应用程序使用REST接口,可以与对象存储一起完全忽略对POSIX接口的需要。
NVMeOF和内存映射技术与对象存储配合使用,将改变数据中心,数据湖和个人处理数据的方式。网络计算能力和速度将飞速增长。尽管这可能有其局限性(例如将文件和块存储中的数据传输到对象存储中),但这将意味着数据密集型计算的新发展。在数据中心和云基础架构必须快速扩展以满足数据存储和处理需求的时代,通过内存映射访问对象存储可能是加速数据中心性能的无与伦比的方式。
mmap_obj()开发人员注意到,仍需要完成一项工作:类似于POSIX函数,需要有一个munmap_obj()函数从用户空间释放数据。
本文翻译自:enterprisestorage