买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】使用分布式的和虚拟的命名空间管理的按需存储供应_三星电子株式会社_201811365064.6 

申请/专利权人:三星电子株式会社

申请日:2018-11-16

公开(公告)日:2024-03-01

公开(公告)号:CN109799951B

主分类号:G06F3/06

分类号:G06F3/06

优先权:["20171116 US 62/587,330","20180307 US 15/914,820"]

专利状态码:有效-授权

法律状态:2024.03.01#授权;2020.12.08#实质审查的生效;2019.05.24#公开

摘要:存储节点集群中的存储节点,包括:一个或多个存储设备和存储节点控制器。存储节点控制器包括:主机接口,配置为连接到运行在主机计算机上的应用;存储管理器,配置为管理一个或多个虚拟命名空间;存储设备控制器,配置为管理与一个或多个存储设备关联的相应命名空间。存储管理器还配置为当存储节点具有足够的存储空间时,在主机计算机上运行的应用的请求下,在存储节点的一个或多个存储设备上按需扩展与虚拟命名空间关联的存储空间。存储管理器还配置为当存储节点具有不足的存储空间时,在主机计算机上运行的应用的请求下,通过网络与第二存储节点的对等存储管理器通信,且在第二存储节点的存储设备上按需扩展与虚拟命名空间关联的存储空间。

主权项:1.一种存储节点,包括:一个或多个本地存储设备;以及存储节点控制器,包括:主机接口,配置为连接到运行在主机计算机上的客户端应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为访问一个或多个本地存储设备并管理与所述一个或多个存储设备相关联的相应命名空间,其中,存储管理器还配置为提供一个或多个虚拟命名空间到与所述一个或多个存储设备相关联的相应命名空间的映射,其中,存储管理器还配置为响应于客户端应用的请求而确定与由客户端应用使用的虚拟命名空间相关联的当前存储空间不足以存储数据,并基于客户端应用对当前存储空间的消耗来在存储节点的一个或多个本地存储设备上扩展与虚拟命名空间相关联的存储空间,以及其中,存储管理器还配置为确定存储节点具有不足的存储空间,通过网络与第二存储节点的对等存储管理器通信,并且除了在该存储节点中分配的当前存储空间之外,在第二存储节点的本地存储设备上扩展与由客户端应用使用的虚拟命名空间相关联的存储空间。

全文数据:使用分布式的和虚拟的命名空间管理的按需存储供应技术领域本公开一般涉及数据存储系统,更具体地,涉及用于针对数据存储设备尤其是NVMe-SSD及其变体、使用分布式的和虚拟的命名空间管理来提供按需存储供应的系统和方法。背景技术在计算机系统中运行的应用可以访问存储在非易失性数据存储设备诸如固态驱动器SSD中的数据。具体地,基于快速非易失性存储器NVMe的SSD经由快速外围组件互连PCIe总线耦合到主机计算机系统。通常,应用无法从快速非易失性存储器NVMeSSD获得按需存储容量增加,因为NVMeSSD的存储容量被限制为NVMeSSD的可用物理闪存容量的容量。对物理NVMe-SSD设备的物理连接的数量的限制还限制了设备连接管理,并且妨碍对集群中的一堆这样的闪存设备的连接复用和处理的利用。将到一组设备其中,每个物理设备可以处理多于一个的连接的多个NVMe连接的复用可以帮助改善后端设备层的扩展和性能。此外,根据不能提前预测的应用运行时需求,复用可以帮助解决运行时的故障转移、故障恢复、更好的命名空间或容量供应的问题。NVMeSSD中存储容量的分配大部分是静态的,并且其物理存储容量无法在运行时按需动态增加。NVMeSSD的不可扩展存储容量妨碍在网络中的一个节点运行的应用利用同一网络中其他对等NVMeSSD中未使用的存储容量。这可能导致在本地节点或物理主机上过度供应数据,并且随着时间的推移会导致数据中心内跨数据存储层级别的数据存储容量的严重过度供应,从而增加运营数据中心的总体拥有成本TCO。发明内容根据一个实施例,一种存储节点集群中的存储节点,包括:一个或多个存储设备;以及存储节点控制器。存储节点控制器包括:主机接口,配置为连接到运行在主机计算机上的应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为管理与一个或多个存储设备相关联的相应命名空间。当存储节点具有足够的存储空间时,存储管理器还配置为在运行在主机计算机上的应用的请求下,在存储节点的一个或多个存储设备上按需扩展与虚拟命名空间相关联的存储空间。当存储节点具有不足的存储空间时,存储管理器还配置为在运行在主机计算机上的应用的请求下,通过网络与第二存储节点的对等存储管理器通信,并且在第二存储节点的存储设备上按需扩展与虚拟命名空间相关联的存储空间。根据另一实施例,一种存储系统,包括:多个主机计算机;以及通过网络连接到多个主机计算机的多个存储节点。多个存储节点包括包含一个或多个存储设备和存储节点控制器的存储节点。存储节点控制器包括:主机接口,配置为连接到运行在主机计算机上的应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为管理与一个或多个存储设备相关联的相应命名空间。当存储节点具有足够的存储空间时,存储管理器还配置为在运行在主机计算机上的应用的请求下,在存储节点的一个或多个存储设备上按需扩展与虚拟命名空间相关联的存储节点的存储空间。当存储节点具有不足的存储空间时,存储管理器还配置为在主机计算机上运行的应用的请求下,通过网络与第二存储节点的对等存储管理器通信,并且在第二存储节点的存储设备上按需扩展与虚拟命名空间相关联的存储空间。到对等存储管理器的通信基于共享集群或分布式信息例如,从每个节点的存储管理器进程共享的元数据表,其指示其NVMe命名空间的状态、可用存储容量、用尽空间等。存储管理器进程之间的对等通信还处理使这些元数据信息保持最新和同步。根据又一实施例,一种存储方法,包括:使用虚拟命名空间在第一存储节点的第一存储设备中分配存储空间;从运行在主机计算机上的应用接收将数据存储在存储空间上的写入请求;确定分配的存储空间是否具有不足的存储空间来存储与写入请求相关联的数据;当第一存储节点具有足够的存储空间来存储数据时,通过包括在第一存储节点中额外的存储空间来扩展存储空间;将数据写入到第一存储节点中的额外存储空间;当第一存储节点具有不足的存储空间来存储数据时,识别具有额外的存储空间的第二存储节点;与第二存储节点协商以分配额外的存储空间;通过包括在第二存储节点中的额外地分配的存储空间来扩展存储空间;经由网络、通过第一存储节点和第二存储节点之间的对等通信,将数据写入到第二存储节点中的额外地分配的存储空间;以及更新全局映射表以更新虚拟命名空间的映射信息。现在将参考附图更具体地描述上述和其他优选特征,包括各种新颖的实施细节和事件组合。应当理解,本文描述的特定系统和方法仅以说明的方式示出而不是作为限制。如本领域技术人员将理解地,在不脱离本公开的范围的情况下,可以在各种和多个实施例中采用本文描述的原理和特征。附图说明作为本说明书的一部分包括的附图示出了当前优选实施例,并且与上面给出的一般描述和下面给出的优选实施例的详细描述一起用于解释和教导本文所述的原理。图1示出了根据一个实施例的可以提供按需存储供应的示例框架的示意图;图2示出了根据一个实施例的示例框架的框图;图3示出了根据一个实施例的示例存储系统的框图;以及图4是根据一个实施例的用于在存储节点集群中动态地分配存储空间的流程图。附图不一定按比例绘制,并且在贯穿附图中,为了说明的目的,具有类似结构或功能的元件通常由相同的附图标记表示。附图仅旨在便于对本文所描述的各种实施例进行说明。附图未描述本文公开的教导的每个方面,并且不限制权利要求的范围。具体实施方式本文公开的特征和教导中的每个可以单独使用或与其他特征和教导结合使用,以提供能够进行按需存储供应和虚拟命名空间管理的框架。参考附图进一步详细描述了单独和组合利用这些额外特征和教导中的许多的代表性示例。该详细描述仅旨在向本领域技术人员教导用于实践本教导的各方面的进一步细节,并且不旨在限制权利要求的范围。因此,在详细描述中以上公开的特征的组合对于在最广泛意义上实践本教导可能不是必需的,而是仅仅教导以描述本教导的特定代表性示例。在以下描述中,仅出于解释的目的,阐述了具体的术语以提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,这些具体细节不是实践本公开的教导所必需的。本文的详细描述的一些部分是关于对计算机存储器内的数据位的操作的算法和符号表示来呈现的。数据处理领域的技术人员使用这些算法描述和表示来有效地将他们工作的实质传达给本领域其他技术人员。这里的算法通常被认为是导致期望结果的自洽的步骤序列。这些步骤是需要物理操纵物理量的步骤。通常,尽管不是必须的,这些量采用能够被存储、传输、组合、比较和以其他方式操纵的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。然而,应该记住,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从以下讨论中明确指出,否则应当理解,贯穿说明书中,利用诸如“处理”、“用机器计算”、“计算”、“确定”、“显示”等术语进行的讨论是指计算机系统或类似电子计算设备的动作和处理,其将在计算机系统的寄存器和存储器内表示为物理电子量的数据操纵和转换成类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。此外,代表性示例的各种特征可以以非具体和非明确列举的方式组合,以便提供本教导的另外有用的实施例。还明确指出,为了原始公开的目的,以及为了限制所要求保护的主题,实体组的所有值范围或指示都公开了每个可能的中间值或中间实体。还明确指出,图中所示的组件的尺寸和形状被设计成有助于理解如何实施本教导,但不旨在限制示例中所示的尺寸和形状。在主机计算机上运行的应用可能需要在运行时对于基于NVMe的SSD的设备管理和数据存储供应。对主机计算机与基于NVMe的SSD之间的物理连接的要求所施加的按需设备管理和供应的限制可以通过虚拟化NVMe-SSD设备命名空间的管理来解决。本公开描述了一种框架,其可以从应用所消耗的虚拟盘实体也称为命名空间中抽象出物理数据存储设备例如,NVMe-SSD设备。具体地,在形成SSD即服务SaaS的基础的分布式存储集群中,可以使用虚拟盘和虚拟命名空间来关于对象或键值KV存储对设备管理和数据供应进行优化。现有框架可以按需创建和扩展应用使用的存储NVMe命名空间,并且提供存储空间的动态和连续供应。现有框架可以按弹性、按需供应的方式处理对象KV在分布式存储集群中的存储,并且通过管理虚拟盘和虚拟命名空间来优化盘使用。可以在云环境或数据中心中将现有框架导出为SSD即服务模型。本框架跨网络例如,诸如以太网、光纤通道和无限带宽Infiniband的结fabric构网络上的存储节点集群聚合NVMeSSD,并且按需对应用用提供拟盘服务。可以通过虚拟命名空间映射将这些虚拟盘映射到物理盘。因此,虚拟盘可以映射到虚拟命名空间,其可以映射到物理盘或命名空间本身。映射可以是1:1:1或1:M:N。本框架通过智能地管理和虚拟化跨多个存储节点的分布式盘及其命名空间来动态地或弹性地和自动地扩展虚拟盘容量。在一个实施例中,本框架以不同于存储和检索对象KV数据的应用的方式管理应用中的分布式NVMe-SSD设备及其命名空间。可以扩展本框架以处理或包括其他服务,诸如高可用性HA、复制和其他存储服务,因为它可以处理数据和管理平面两者。因此,本框架可用于在云和数据中心中导出SSD即服务。当前可用的NVMe盘仅允许对每个命名空间的一个NVMe-oF经由结构网络的NVMeNVMeoverFabrics连接。本框架通过虚拟化或抽象物理NVMe盘和命名空间来消除此限制。跨多个NVMe-oF设备的多个连接对于数据中心应用提供分布式存储功能或服务诸如高可用性HA、故障转移和灾难恢复等可以是有用的。根据一个实施例,本框架在每个存储节点或被指定接受和或拦截到后端NVMeSSD的连接的节点上提供存储节点控制器。存储节点或多个后端NVMeSSD的指定节点的存储节点控制器可以与同一存储节点集群或存储池中的不同节点上的另一对等存储节点控制器通信。存储节点控制器可以实现为设备节点级、轻量级、薄的软件栈或模块,其可以促进与请求应用和下层NVMeSSD以及同一集群中的其他存储节点控制器的连接。存储节点控制器之间的对等通信可以通过诸如以太网、光纤通道和无限带宽的结构网络进行。根据一个实施例,本框架拦截由运行在主机计算机上的应用发布到后端中的一个或多个目标NVMeSSD或命名空间的NVMeNVMe-oF请求,并且用其自己的虚拟命名空间封装回复应用。这里,NVMe-oF请求是由应用发布到目标NVMeSSD或命名空间的任何数据路径请求的示例,并且可以包含经由物理连接即,PCIe连接的NVMe命令。数据路径请求可以包括IO命令和管理命令两者。由于本框架消除了应用建立和管理到NVMeSSD的连接的开销,因此本框架不仅可以支持物理连接,还可以支持经由虚拟命名空间封装的逻辑连接。此外,本框架可以支持到后端NVMeSSD的任意数量的连接虚拟连接,而不限于可用的物理连接数。在NVMe请求的情况下,经由PCIe总线只能与每个NVMeSSD建立一个物理连接。本框架可以根据需要有效地建立和管理与一个或多个后端NVMeSSD的连接。本框架提供跨存储节点的集群的对等存储节点控制器之间的通信协议,并且可以建立到可能分散在集群中的任何后端NVMeSSD的连接。此外,本框架可以经由单独的、轻量级、快速和并发的线程或任务异步处理输入输出IO路径,这些线程或任务可以在应用的用户空间中进行调度,并且对为每个后端NVMeSSD分别指定输入和输出的IO队列进行操作。实际的IO数据路径依赖于实际的实现和操作环境可能涉及其他优化。例如,可以优化本框架的IO数据路径,以用于在不涉及内核或内核模式驱动程序和用户模式盘IO调度的情况下从用户空间直接访问设备。图1示出了根据一个实施例的可以提供按需存储供应的示例框架的示意图。多个客户端应用110a-110d在一个或多个主机计算机未示出上运行。在一个实施例中,每个客户端应用110基于其物理连接连接到节点130。例如,客户端110a连接到节点130a,以及客户端110b和110d连接到节点130b。在另一实施例中,客户端110和节点130之间的连接可以通过诸如以太网、光纤通道和无限带宽的结构网络150。每个节点130具有存储控制器120,其可以建立和管理到本地存储设备160的连接。本地存储设备160可以经由PCIe总线连接到节点130。此外,存储控制器120还可以经由网络连接建立和管理与一个或多个后端存储设备140的连接。节点130和后端存储设备140之间的连接可以经由与将客户端110连接到节点130的结构网络150相同的结构网络。节点130的存储控制器120可以经由可以在结构网络150上建立的节点间通信路径彼此通信,或者可以是保证最小网络延迟的独立反向通道back-channel。图2示出了根据一个实施例的示例框架的框图。框架200包括包含主机210a和主机210b的多个主机210,以及包括节点230a和节点230b的多个存储节点230。主机中的每个可以经由PCIe总线本地连接或者经由网络250远程地连接到至少一个存储节点230。当主机210和存储节点230经由PCIe总线连接时,主机210和耦合的存储节点230可以驻留在数据中心中的同一个机架中。存储节点230包括存储节点控制器220和一个或多个本地存储设备260。在存储节点集群中的多个节点230中,每个存储节点230可以具有存储节点控制器220。在一些实施例中,存储节点230可以被指定为提供管理连接的物理盘260例如,后端NVMeSSD及其相关联的命名空间的服务。每个存储节点控制器220包括主机连接管理器221、命名空间NS盘管理器222和NVMe控制器223。主机连接管理器221管理在主机210上运行的应用与本地地或在网络250上的节点230之间的连接。主机连接管理器221对从客户端应用接收的请求进行处理并且提供给NS盘管理器222。这里,NS盘管理器222可以被称为存储设备管理器或虚拟命名空间管理器,因为它可以使用虚拟命名空间管理与远程节点上的网络连接的存储设备的连接。例如,主机连接管理器221拦截来自客户端应用的NVMe-oF请求,并且将这些NVMe-oF请求提供给NS盘管理器222以用于进一步处理。NS盘管理器222管理到一个或多个后端NVMeSSD260的连接的建立和到后端NVMeSSD260的一个或多个虚拟命名空间的映射,所述后端NVMeSSD260可以是本地的或同一集群中的结构网络上的远程的。到远程后端SSD260的虚拟命名空间的映射可以经由两个NS盘管理器222之间的对等连接来完成。NVMe控制器223可以建立、控制和管理到所连接的后端NVMeSSD260的连接和IO数据路径,并且分配命名空间标识符nsid。在建立连接之后,NVMe控制器223可以使用命名空间标识符路由去往和来自命名空间的IO数据。这里,命名空间NS指的是可寻址到相应NVMeSSD260的逻辑块地址LBA的列表。在本示例中,节点230a包括可使用其唯一标识符nsid1和nsid2通过其命名空间NSA和NSB寻址的一个或多个NVMeSSD260a和260b。类似地,节点230b包括一个或多个NVMeSSD260c和260d,它们可以使用它们的标识符nsid3和nsid4通过它们的命名空间NSC和NSD寻址。根据一个实施例,NS盘管理器222可以使用本框架200将一个或多个存储设备260及可以与它们相关联的其命名空间虚拟地映射到不同的节点。虚拟映射的命名空间在本文中被称为虚拟命名空间VNS。为了支持NVMeSSDS的命名空间NS与虚拟命名空间VNS之间的关联,NS盘管理器222可以建立、控制和管理可以与特定节点220的NVMeSSD260相关联的虚拟命名空间,该特定节点220相对于节点220可以是本地的或远程的。相比之下,NVMe控制器223可以建立、控制和管理与物理连接的本地NVMeSSD260相关联的命名空间。NS盘管理器222独立于由NVMe控制器223管理的命名空间NS来管理虚拟命名空间,尽管虚拟命名空间可以映射到可以跨集群分布的一个或多个命名空间。依赖于主机210的操作系统的配置和虚拟化方案,NS盘管理器222可以将NVMeSSD260的命名空间NS与一个或多个虚拟命名空间相关联。使用NS盘管理器222的虚拟命名空间映射能力,本框架200可以根据来自应用的请求按需弹性地扩展或缩小存储空间。在本示例中,NS盘管理器222a将虚拟命名空间vnsid2002映射到两个分布式命名空间NSB和NSC。命名空间NSB物理地附接到节点220a的NVMe控制器223a,而命名空间NSC物理地附接到节点220b的NVMe控制器223b。存储节点控制器220a可以通过使用结构网络250上的分布式元数据在内部管理映射包括虚拟映射。因为虚拟映射以及分布式存储建立和连接是经由对等NS盘管理器222执行的,所以通过本框架200进行的到虚拟命名空间的映射对于主机210或在主机210上运行的客户端应用或后端NVMeSSD260是不可见的。分布式元数据可以存储在NS盘管理器222可访问的元数据表中。全局元数据表对于主机的所有盘命名空间存储每主机级别的使用空闲可用空间的信息。元数据表可以作为集群级别的全局或共享信息保存。对元数据表的更新可能不会太频繁,因为空间请求不是那么频繁。在本示例中,NS盘管理器222a查找元数据表以确定跨集群的必要盘空间的可用性,并且向NS盘管理器222b发送请求以映射命名空间NSC。本框架200将跨越分布式网络250的一组NVMeSSD260统一为单个存储池,依赖于所请求的存储容量弹性地扩展或缩小虚拟命名空间,并且将虚拟盘或虚拟命名空间呈现给客户端应用。本框架200可以根据需要建立到远程存储设备及其虚拟命名空间的多个连接,并且使用NS盘管理器222的网络在内部管理连接。每个NS盘管理器222可以是部署到管理与所附接的NVMeSSD260的物理连接的节点的设备节点级、轻量级、薄软件栈或模块。尽管本示例示出了两个主机210和两个节点230,但是应当理解,在存储节点的集群中可以存在任何数量的主机和节点。另外,本示例示出了每个节点230包括NVMeSSD260,并且每个NVMeSSD260可通过其唯一的命名空间标识符来寻址,应当理解,每个节点230中可以存在任何数量和类型的存储设备。例如,存储设备260可以是NVMeSSD或NVMe-oFSSD。图3示出了根据一个实施例的示例存储系统的框图。存储系统300采用本框架以便于在主机计算机未示出上运行的客户端应用301与多个存储节点330或存储设备370之间供应存储空间。存储节点330包括可以控制存储节点330的一个或多个存储设备370的存储节点控制器例如,图2的存储节点控制器220a和220b。每个存储节点控制器可以通过结构网络350连接到其他存储节点控制器也可以称为反向通道或内部通信网络或管理通道。每个存储节点控制器可以导出客户端应用301的安装点以在分布式存储设备370上安装和启动常规块读取写入和对象KV存储。通过将虚拟命名空间映射到实际物理命名空间来识别导出的安装点,该实际物理命名空间附接到后端的物理存储设备,或者直接附接到存储节点控制器本身,或者经由结构网络350附接到另一个对等存储节点330中。每个虚拟命名空间具有唯一的虚拟命名空间标识符vnsid。虚拟命名空间标识符的分配可以通过与存储系统300中的对等存储控制器一致来完成。虚拟命名空间标识符的分配和分布可以在连接请求到达时动态处理或者可以先验地计算。一致性算法可以是本领域已知的任何通用分布式一致性算法,或者可以是简单标识符,其位于虚拟命名空间表中并且可以由所有存储控制器经由共享存储器访问,或者一旦由作为存储系统300的一部分的任何单个存储节点控制器原子级地atomically更新就简单地分发或复制到每个存储节点。例如,安装点mntnvme0n1具有包括一组vnsids的虚拟命名空间表,还可以使用控制器ID-NSID创建vnsids并且将其与IP地址相关联以帮助进行控制器迁移。在又一个实施例中,可以利用包括NVMe控制器及其命名空间的子系统ID来创建vnsids。也可以通过推断来创建vnsids。随着新的NVMe-oFSSD被添加或移除到安装点可以按需扩展映射表,以容易地创建更大的存储空间而不影响客户端应用。客户端应用可以请求初始容量的命名空间,并且存储节点控制器可以随着客户端应用消耗最初分配的容量而按需增加或减小初始存储容量。接口应用编程接口API选项可以在连接建立时和或进一步作为扩展NVMe命令集的一部分传递给框架。本框架可能会使尝试写入超出最初协商容量的客户端应用失败,或者通过在运行时扩展命名空间来处理写入请求无视请求应用。根据一个实施例,本框架可以协调对等存储控制器之间的通信,以确保所分配的虚拟命名空间标识符是唯一的。此外,框架可以解决在将数据存储空间或对象或键值分配或写入特定命名空间时可能出现的复杂性,并且通过全局元数据和映射表机制,可以通过虚拟添加一个或多个物理命名空间跨不同的物理存储节点扩展数据存储空间。根据一个实施例,本框架可以跨虚拟命名空间处理对象请求读取写入。例如,应用连接到存储节点1SN1,并且存储节点SN1的存储节点控制器将由vnsid100表示的虚拟命名空间分配给应用。在分配虚拟命名空间vnsid100期间,存储节点控制器可以创建大对象VLOB_100,其可以跨越填充最初分配的存储空间的虚拟命名空间vnsid100。虚拟命名空间的分配可以由应用通过调用API命令例如“PUTkey-vlob100”来完成。对象VLOB_100可以完全驻留在本地直连存储器DAS上的存储节点SN1上,或者部分地驻留在远程存储节点的另一物理存储设备上。存储节点控制器处理虚拟命名空间的创建和管理以及根据需要将对象VLOB_100分配给一个或多个组成驱动命名空间。在分配对象VLOB_100之后,存储节点控制器与应用通信,用于通知对象VLOB_100已被成功分配,并且应用在应用侧更新对象VLOB_100以及开始使用分配的存储空间。在使用最初分配的空间时,应用可以完全消耗最初分配的存储空间。在这种情况下,转换为底层存储设备上的写时复制COW命令的应用的对象放置命令可能返回错误例如,ENOSPACE。存储节点控制器可以通过分配额外的存储空间来拦截和处理错误。存储节点控制器可以通过分配另一命名空间并且将其附接到当前命名空间被写入来扩展命名空间。例如,先前的vnsid=IPaddr1,nsid-nvme0可以通过在具有IP地址IPaddr2的存储节点SN2中分配额外的存储空间来更新为vnsid100={IPaddr1,nsid-nvme0,IPaddr2,nsid-nvme9}。在与存储节点SN2协商之后,可以跨属于存储节点SN2的物理存储设备扩展对象VLOB_100,并且可以将VLOB_100的溢出内容写入存储节点SN2中可用的物理存储设备。物理命名空间nsid-nvme9映射到由本地存储节点SN2的nvme9表示的物理存储设备。诸如对象或KV数据的READ或GET的其他命令可遵循基本类似的过程。全局映射表存储更新的虚拟命名空间标识符。全局映射表中的vnsid查找指示特定对象的映射信息。可以执行并行读取以跨存储节点或构成虚拟命名空间的其命名空间读取对象的所有块。通过当前的框架可以以分布式方式保存全局元数据。在相同应用或不同应用请求与对象VLOB_100相关联的数据的情况下,本框架具有将VLOB_100的最新副本返回到来自跨集群的请求应用的智能。框架可以通过使用版本标记和时间戳对每个对象进行版本控制来实现。例如,将IPaddr1,nsid-nvme0上的VLOB_100的第一个副本现在陈旧标记为删除,存储节点SN1尝试删除垃圾收集中VLOB_100的本地副本除非应用经由显式DELETE对象请求发送TRIM命令。一旦存储节点SN1完成垃圾收集GC,存储节点SN1完全擦除VLOB_100的第一副本,并且框架将VLOB_100的集群内部位置更新为IPaddr2,nsid-nvme9。图4是根据一个实施例的用于在存储节点集群中动态分配存储空间的流程图。客户端应用向第一存储节点请求初始存储容量的命名空间。作为响应,第一存储节点的存储管理器在第一存储节点的第一存储设备中分配存储空间,并且将虚拟命名空间分配给所分配的存储空间401。存储管理器从客户端应用接收写入请求以将数据存储在存储空间上402。第一存储设备中的初始分配的存储空间可能不足以存储数据。在这种情况下,存储管理器检查当前分配的存储空间是否具有足够的存储空间来存储与写入请求相关联的数据403。如果分配的存储空间足够,则存储管理器将数据写入分配的存储空间413并且相应地更新全局映射表409,否则,存储管理器进一步检查相关联的存储节点第一存储节点是否具有用于写入数据的本地盘空间404。如果有可用的额外本地盘空间,则存储管理器扩展本地盘空间中的存储空间414,将数据写入本地盘空间中的额外地分配的存储空间408,并且相应地更新全局映射表409。如果没有可用的本地盘空间,则存储管理器通过查找全局映射表来识别具有额外的存储空间的第二存储节点405。由于存储系统的存储管理器可以经由已建立的网络相互通信,因此任何存储管理器都可以具有有关同一集群中其他存储节点中额外的存储空间可用性的信息。第一存储节点的存储管理器与第二存储节点的存储管理器协商以分配额外的存储空间406。如果协商成功407,则第一存储节点的存储管理器扩展最初分配的存储空间以在第二节点的第二存储设备中包括额外地分配的存储空间417。如果协商失败,则第一存储节点的存储管理器与其他存储节点通信以扩展存储空间。第一存储节点的存储管理器经由网络通过第一存储节点和第二存储节点之间的对等通信将数据写入到第二存储节点中的额外地分配的存储空间408,并且更新全局映射表以更新虚拟命名空间的映射信息409。本框架假设每个对象散列到一个范围,该范围确保仅由集群中的一个存储节点SN处理这样的对象。这种一致的散列算法对于集群中的所有存储节点都是已知的,因此在上面的示例中对VLOB_100的任何请求都被定向到SN1,从而确保对象数据读取的严格一致性。本框架可以通过结构网络跨集群中的多个存储节点扩展并复制对象,并且进一步高速缓存副本对象,并使指定副本上的对象无效,以改进性能和可用性。根据一个实施例,存储节点集群中的存储节点包括:一个或多个存储设备;以及存储节点控制器。存储节点控制器包括:主机接口,配置为连接到在主机计算机上运行的应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为管理与一个或多个存储设备相关联的相应命名空间。当存储节点具有足够的存储空间时,存储管理器还配置为在主机计算机上运行的应用的请求时,在存储节点的一个或多个存储设备上按需扩展与虚拟命名空间相关联的存储空间。当存储节点具有不足的存储空间时,存储管理器还配置为在主机计算机上运行的应用的请求时,通过网络与第二存储节点的对等存储管理器通信,并且在第二存储节点的存储设备上按需扩展与虚拟命名空间相关联的存储空间。一个或多个存储设备可以经由PCIe总线连接到存储节点控制器。一个或多个存储设备可以是快速非易失性存储器NVMe设备。网络可以是结构网络。结构网络可以是以太网、光纤通道和无限带宽之一。在存储空间扩展到第二存储节点之后,存储管理器可以更新全局映射表以更新虚拟命名空间。虚拟命名空间可以完全地或部分地映射到第二存储节点的至少一个存储设备,并且访问存储在第二存储节点的至少一个存储设备上的数据的请求可以由存储节点的存储管理器与第二节点的对等存储空间管理之间的对等通信处理。存储在存储空间中的数据可以是对象或键值KV数据。根据另一实施例,一种存储系统包括:多个主机计算机;以及通过网络连接到多个主机计算机的多个存储节点。多个存储节点包括存储节点,该存储节点包括一个或多个存储设备和存储节点控制器。存储节点控制器包括:主机接口,配置为连接到在主机计算机上运行的应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为管理与一个或多个存储设备相关联的相应命名空间。当存储节点具有足够的存储空间时,存储管理器还配置为在主机计算机上运行的应用的请求时在存储节点的一个或多个存储设备上按需扩展与虚拟命名空间相关联的存储节点的存储空间。当存储节点具有不足的存储空间时,存储管理器还配置为在主机计算机上运行的应用的请求时,通过网络与第二存储节点的对等存储管理器通信,并且在第二存储节点的存储设备上按需扩展与虚拟命名空间相关联的存储空间。存储系统还可以包括全局映射表,以在存储空间扩展到第二存储节点之后更新虚拟命名空间。第二存储节点的存储设备可以经由PCIe总线连接到第二存储节点控制器。第二存储节点的存储设备可以是快速非易失性存储器NVMe设备。网络可以是结构网络。结构网络可以是以太网、光纤通道和无限带宽之一。存储在存储空间中的数据可以是对象或键值KV数据。根据又一实施例,一种方法包括:使用虚拟命名空间在第一存储节点的第一存储设备中分配存储空间;从主机计算机上运行的应用接收将数据存储在存储空间上的写入请求;确定分配的存储空间没有足够的存储空间来存储与写入请求相关联的数据;当第一存储节点具有足够的存储空间来存储数据时,通过在第一存储节点中包括额外的存储空间来扩展存储空间;将数据写入第一存储节点中的额外存储空间;当第一存储节点具有不足以存储数据的存储空间时,识别具有额外存储空间的第二存储节点;与第二存储节点协商以分配额外的存储空间;通过在第二存储节点中包括额外分配的存储空间来扩展存储空间;经由网络,通过第一存储节点和第二存储节点之间的对等通信,将数据写入第二存储节点中的额外分配的存储空间;并更新全局映射表以更新虚拟命名空间的映射信息。该方法还可以包括:拦截来自第一存储节点的存储设备控制器的错误;并识别第二存储节点具有额外的存储空间。该方法还可以包括:并行访问第一存储节点的第一存储设备和第二存储节点的第二存储设备。该方法还可以包括:使存储在第一存储设备中的数据无效;删除存储在第一存储设备中的数据的副本;并更新虚拟命名空间以映射到第二存储节点的第二存储设备。存储在存储空间中的数据可以是对象或键值KV数据。上面已经描述了以上示例实施例以说明实现用于使用分布式和虚拟命名空间管理来提供按需存储供应、以及由框架结合虚拟命名空间管理和以分布式方式跨物理存储节点的扩展来处理对象读取和写入操作的系统和方法的各种实施例。本领域普通技术人员将想到对所公开的示例实施例的各种修改和偏离。在所附权利要求中阐述了旨在落入本发明范围内的主题。

权利要求:1.一种存储节点,包括:一个或多个存储设备;以及存储节点控制器,包括:主机接口,配置为连接到运行在主机计算机上的应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为管理与所述一个或多个存储设备相关联的相应命名空间,其中,存储管理器还配置为当存储节点具有足够的存储空间时,在运行在主机计算机上的应用的请求下,在存储节点的所述一个或多个存储设备上按需扩展与虚拟命名空间相关联的存储空间,以及其中,存储管理器还配置为当存储节点具有不足的存储空间时,在运行在主机计算机上的应用的请求下,通过网络与第二存储节点的对等存储管理器通信,并且在第二存储节点的存储设备上按需扩展与虚拟命名空间相关联的存储空间。2.如权利要求1所述的存储节点,其中,所述一个或多个存储设备经由PCIe总线连接到所述存储节点控制器。3.如权利要求2所述的存储节点,其中,所述一个或多个存储设备是快速非易失性存储器NVMe设备。4.如权利要求3所述的存储节点,其中,所述网络是结构网络。5.如权利要求4所述的存储节点,其中,所述结构网络是以太网、光纤通道和无限带宽之一。6.如权利要求1所述的存储节点,其中,在将存储空间扩展到第二存储节点之后,存储管理器更新全局映射表以更新虚拟命名空间。7.如权利要求1所述的存储节点,其中,所述虚拟命名空间完全地或部分地映射到所述第二存储节点的至少一个存储设备,并且其中,访问存储在第二存储节点的所述至少一个存储设备上的数据的请求通过所述存储节点的存储管理器和第二存储节点的对等存储管理器之间的对等通信来处理。8.如权利要求1所述的存储节点,其中,存储在存储空间中的数据是对象或键值KV数据。9.一种存储系统,包括:多个主机计算机;以及通过网络连接到多个主机计算机的多个存储节点,其中,所述多个存储节点包括包含一个或多个存储设备和存储节点控制器的存储节点,其中,所述存储节点控制器包括:主机接口,配置为连接到运行在主机计算机上的应用;存储管理器,配置为管理一个或多个虚拟命名空间;以及存储设备控制器,配置为管理与所述一个或多个存储设备相关联的相应命名空间,其中,存储管理器还配置为当存储节点具有足够的存储空间时,在运行在主机计算机上的应用的请求下,在存储节点的所述一个或多个存储设备上按需扩展与虚拟命名空间相关联的存储节点的存储空间,以及其中,存储管理器还配置为当存储节点具有不足的存储空间时,在运行在主机计算机上的应用的请求下,通过网络与第二存储节点的对等存储管理器通信,并且在第二存储节点的存储设备上按需扩展与虚拟命名空间相关联的存储空间。10.如权利要求9所述的存储系统,还包括全局映射表,用于在将存储空间扩展到第二存储节点之后更新虚拟命名空间。11.如权利要求9所述的存储系统,其中,第二存储节点的存储设备经由PCIe总线连接到第二存储节点控制器。12.如权利要求11所述的存储系统,其中,第二存储节点的存储设备是快速非易失性存储器NVMe设备。13.如权利要求12所述的存储系统,其中,所述网络是结构网络。14.如权利要求13所述的存储系统,其中,所述结构网络是以太网、光纤通道和无限带宽之一。15.如权利要求9所述的存储系统,其中,存储在存储空间中的数据是对象或键值KV数据。16.一种存储方法,包括:使用虚拟命名空间在第一存储节点的第一存储设备中分配存储空间;从运行在主机计算机上的应用接收将数据存储在存储空间上的写入请求;确定分配的存储空间是否具有足够的存储空间来存储与写入请求相关联的数据;当第一存储节点具有足够的存储空间来存储数据时,通过在第一存储节点中包括额外的存储空间来扩展存储空间;将数据写入到第一存储节点中的额外存储空间;当第一存储节点具有不足的存储空间来存储数据时,识别具有额外的存储空间的第二存储节点;与第二存储节点协商以分配额外的存储空间;通过包括在第二存储节点中额外地分配的存储空间来扩展存储空间;经由网络、通过第一存储节点和第二存储节点之间的对等通信,将数据写入到第二存储节点中的额外地分配的存储空间;以及更新全局映射表以更新虚拟命名空间的映射信息。17.如权利要求16所述的方法,还包括:从第一存储节点的存储设备控制器拦截错误;以及识别第二存储节点具有额外的存储空间。18.如权利要求16所述的方法,还包括:并行地访问第一存储节点的第一存储设备和第二存储节点的第二存储设备。19.如权利要求16所述的方法,还包括:使存储在第一存储设备中的数据无效;删除存储在第一存储设备中的数据的副本;以及更新虚拟命名空间以映射到第二存储节点的第二存储设备。20.如权利要求16所述的方法,其中,存储在存储空间中的数据是对象或键值KV数据。

百度查询: 三星电子株式会社 使用分布式的和虚拟的命名空间管理的按需存储供应

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。