CN109799951B - 使用分布式的和虚拟的命名空间管理的按需存储供应 - Google Patents

使用分布式的和虚拟的命名空间管理的按需存储供应 Download PDF

Info

Publication number
CN109799951B
CN109799951B CN201811365064.6A CN201811365064A CN109799951B CN 109799951 B CN109799951 B CN 109799951B CN 201811365064 A CN201811365064 A CN 201811365064A CN 109799951 B CN109799951 B CN 109799951B
Authority
CN
China
Prior art keywords
storage
node
storage node
space
storage space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811365064.6A
Other languages
English (en)
Other versions
CN109799951A (zh
Inventor
A.苏布拉马尼安
C.巴拉普拉姆
O.P.平托
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109799951A publication Critical patent/CN109799951A/zh
Application granted granted Critical
Publication of CN109799951B publication Critical patent/CN109799951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

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

Claims (20)

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)数据。
CN201811365064.6A 2017-11-16 2018-11-16 使用分布式的和虚拟的命名空间管理的按需存储供应 Active CN109799951B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762587330P 2017-11-16 2017-11-16
US62/587,330 2017-11-16
US15/914,820 US10768820B2 (en) 2017-11-16 2018-03-07 On-demand storage provisioning using distributed and virtual namespace management
US15/914,820 2018-03-07

Publications (2)

Publication Number Publication Date
CN109799951A CN109799951A (zh) 2019-05-24
CN109799951B true CN109799951B (zh) 2024-03-01

Family

ID=66433311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811365064.6A Active CN109799951B (zh) 2017-11-16 2018-11-16 使用分布式的和虚拟的命名空间管理的按需存储供应

Country Status (3)

Country Link
US (1) US10768820B2 (zh)
KR (1) KR102444832B1 (zh)
CN (1) CN109799951B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12056383B2 (en) 2017-03-10 2024-08-06 Pure Storage, Inc. Edge management service
US11941279B2 (en) * 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US11442669B1 (en) * 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US11288180B2 (en) * 2018-01-19 2022-03-29 Micron Technology, Inc. Management of storage resources allocated from non-volatile memory devices to users
US12066900B2 (en) 2018-03-15 2024-08-20 Pure Storage, Inc. Managing disaster recovery to cloud computing environment
US10871922B2 (en) * 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US10671286B2 (en) * 2018-09-04 2020-06-02 Toshiba Memory Corporation System and method for managing GUI of virtual NVMe entities in NVMe over fabric appliance
US11113001B2 (en) * 2019-08-30 2021-09-07 Hewlett Packard Enterprise Development Lp Fabric driven non-volatile memory express subsystem zoning
US11256448B2 (en) * 2019-12-16 2022-02-22 Samsung Electronics Co., Ltd. Network storage gateway
US11941458B2 (en) * 2020-03-10 2024-03-26 Sk Hynix Nand Product Solutions Corp. Maintaining storage namespace identifiers for live virtualized execution environment migration
US11704284B2 (en) * 2020-04-13 2023-07-18 Vmware, Inc. Supporting storage using a multi-writer log-structured file system
CN111629031B (zh) * 2020-04-27 2023-04-07 浙江大华技术股份有限公司 集群存储的方法、系统、计算机设备及存储介质
KR20220003786A (ko) * 2020-07-02 2022-01-11 삼성전자주식회사 스토리지 장치의 동작 방법
EP3933602B1 (en) * 2020-07-02 2023-12-13 Samsung Electronics Co., Ltd. Operation method of storage device
US11079939B1 (en) * 2020-07-30 2021-08-03 Hewlett Packard Enterprise Development Lp Distributing I/O Q-connections of subsytems among hosts
CN112333283B (zh) * 2020-11-20 2022-12-13 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 自主高端存储阵列系统架构
US11467994B2 (en) * 2020-12-11 2022-10-11 Hewlett Packard Enterprise Development Lp Identifiers for connections between hosts and storage devices
US12088470B2 (en) * 2020-12-18 2024-09-10 Western Digital Technologies, Inc. Management of non-volatile memory express nodes
US20230110067A1 (en) * 2021-10-07 2023-04-13 Samsung Electronics Co., Ltd. Systems, methods, and devices for near storage elasticity
KR102471966B1 (ko) * 2021-11-25 2022-11-30 (주)글루시스 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법
CN114089926B (zh) * 2022-01-20 2022-07-05 阿里云计算有限公司 分布式存储空间的管理方法、计算设备及存储介质
US11829602B2 (en) * 2022-03-16 2023-11-28 Dell Products L.P. Intelligent path selection in a distributed storage system
CN114691037A (zh) * 2022-03-18 2022-07-01 阿里巴巴(中国)有限公司 卸载卡命名空间管理、输入输出请求处理系统和方法
CN115617264A (zh) * 2022-09-21 2023-01-17 浙江大华技术股份有限公司 分布式存储方法及装置
CN116319967B (zh) * 2023-05-18 2023-07-25 深圳锐爱电子有限公司 基于物联网的数据存储拓展方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100062442A (ko) * 2008-12-02 2010-06-10 엔에이치엔비즈니스플랫폼 주식회사 파일 스토리지 액세스 시스템 및 방법
CN102405460A (zh) * 2009-02-11 2012-04-04 艾梵尼达有限公司 虚拟存储系统及其运行方法
CN102460381A (zh) * 2009-06-12 2012-05-16 微软公司 软件扩展分析
CN103077245A (zh) * 2013-01-18 2013-05-01 浪潮电子信息产业股份有限公司 一种利用集群计算节点空闲硬盘空间扩展并行文件系统的方法
CN103209219A (zh) * 2013-04-23 2013-07-17 深圳市京华科讯科技有限公司 一种分布式集群文件系统
CN103546529A (zh) * 2012-06-21 2014-01-29 微软公司 集群中的虚拟共享存储

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007014296A2 (en) 2005-07-25 2007-02-01 Parascale, Inc. Scalable distributed file storage access and management
US20080155214A1 (en) 2006-12-21 2008-06-26 Hidehisa Shitomi Method and apparatus for file system virtualization
JP5360978B2 (ja) 2009-05-22 2013-12-04 株式会社日立製作所 ファイルサーバ、及びファイルサーバにおけるファイル操作通知方法
US9684571B2 (en) * 2013-05-01 2017-06-20 Netapp, Inc. Namespace mirroring in an expandable storage volume
US9430412B2 (en) * 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
US10180948B2 (en) 2013-11-07 2019-01-15 Datrium, Inc. Data storage with a distributed virtual array
EP3080717B1 (en) 2013-12-11 2020-03-04 Intel Corporation Cache and non-cache usage in a distributed storage system
US10635316B2 (en) * 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
US9495478B2 (en) 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace management in distributed storage systems
US20170102874A1 (en) * 2014-06-20 2017-04-13 Hitachi, Ltd. Computer system
US10127266B2 (en) * 2015-11-03 2018-11-13 International Business Machines Corporation Scalable virtual namespace and semantic policy management for object storage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100062442A (ko) * 2008-12-02 2010-06-10 엔에이치엔비즈니스플랫폼 주식회사 파일 스토리지 액세스 시스템 및 방법
CN102405460A (zh) * 2009-02-11 2012-04-04 艾梵尼达有限公司 虚拟存储系统及其运行方法
CN102460381A (zh) * 2009-06-12 2012-05-16 微软公司 软件扩展分析
CN103546529A (zh) * 2012-06-21 2014-01-29 微软公司 集群中的虚拟共享存储
CN103077245A (zh) * 2013-01-18 2013-05-01 浪潮电子信息产业股份有限公司 一种利用集群计算节点空闲硬盘空间扩展并行文件系统的方法
CN103209219A (zh) * 2013-04-23 2013-07-17 深圳市京华科讯科技有限公司 一种分布式集群文件系统

Also Published As

Publication number Publication date
US10768820B2 (en) 2020-09-08
KR20190056295A (ko) 2019-05-24
CN109799951A (zh) 2019-05-24
KR102444832B1 (ko) 2022-09-21
US20190146675A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
CN109799951B (zh) 使用分布式的和虚拟的命名空间管理的按需存储供应
KR102457611B1 (ko) 터넌트-어웨어 스토리지 쉐어링 플랫폼을 위한 방법 및 장치
CN110795206B (zh) 用于促进集群级缓存和内存空间的系统和方法
US11847098B2 (en) Metadata control in a load-balanced distributed storage system
EP3502877B1 (en) Data loading method and apparatus for virtual machines
US11593186B2 (en) Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory
WO2012035575A1 (en) Method and device for eliminating patch duplication
US11409454B1 (en) Container ownership protocol for independent node flushing
US11798124B2 (en) Resiliency schemes for distributed storage systems
US12038871B2 (en) Data migration in a distributive file system
US20230221897A1 (en) Implementing coherency and page cache support for a storage system spread across multiple data centers
US20200042184A1 (en) Cost-Effective Deployments of a PMEM-Based DMO System
CN107832097B (zh) 数据加载方法及装置
CN107577733B (zh) 一种数据复制的加速方法及系统
CN117348808A (zh) 分布式块存储的i/o本地化方法、装置和设备
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US20220318042A1 (en) Distributed memory block device storage
WO2020024591A1 (en) Cost-effective deployments of a pmem-based dmo system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant