CN109799951A - 使用分布式的和虚拟的命名空间管理的按需存储供应 - Google Patents
使用分布式的和虚拟的命名空间管理的按需存储供应 Download PDFInfo
- Publication number
- CN109799951A CN109799951A CN201811365064.6A CN201811365064A CN109799951A CN 109799951 A CN109799951 A CN 109799951A CN 201811365064 A CN201811365064 A CN 201811365064A CN 109799951 A CN109799951 A CN 109799951A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory node
- storage
- space
- node
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 18
- 238000009826 distribution Methods 0.000 claims description 16
- 239000013307 optical fiber Substances 0.000 claims description 7
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 24
- 238000013507 mapping Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 208000036829 Device dislocation Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-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和NS D寻址。
根据一个实施例,NS/盘管理器222可以使用本框架200将一个或多个存储设备260及可以与它们相关联的其命名空间虚拟地映射到不同的节点。虚拟映射的命名空间在本文中被称为虚拟命名空间VNS。为了支持NVMe SSDS的命名空间NS与虚拟命名空间VNS之间的关联,NS/盘管理器222可以建立、控制和管理可以与特定节点220的NVMe SSD 260相关联的虚拟命名空间,该特定节点220相对于节点220可以是本地的或远程的。相比之下,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物理地附接到节点220a的NVMe控制器223a,而命名空间NSC物理地附接到节点220b的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的虚拟命名空间表,
还可以使用控制器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)数据。
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 | 2018-03-07 | ||
US15/914,820 US10768820B2 (en) | 2017-11-16 | 2018-03-07 | On-demand storage provisioning using distributed and virtual namespace management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109799951A true CN109799951A (zh) | 2019-05-24 |
CN109799951B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111629031A (zh) * | 2020-04-27 | 2020-09-04 | 浙江大华技术股份有限公司 | 集群存储的方法、系统、计算机设备及存储介质 |
CN112333283A (zh) * | 2020-11-20 | 2021-02-05 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 自主高端存储阵列系统架构 |
CN114089926A (zh) * | 2022-01-20 | 2022-02-25 | 阿里云计算有限公司 | 分布式存储空间的管理方法、计算设备及存储介质 |
WO2023174146A1 (zh) * | 2022-03-18 | 2023-09-21 | 阿里巴巴(中国)有限公司 | 卸载卡命名空间管理、输入输出请求处理系统和方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11941279B2 (en) * | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US12056383B2 (en) | 2017-03-10 | 2024-08-06 | Pure Storage, Inc. | Edge management service |
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 |
EP3933602B1 (en) * | 2020-07-02 | 2023-12-13 | Samsung Electronics Co., Ltd. | Operation method of storage device |
KR20220003786A (ko) * | 2020-07-02 | 2022-01-11 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 |
US11079939B1 (en) * | 2020-07-30 | 2021-08-03 | Hewlett Packard Enterprise Development Lp | Distributing I/O Q-connections of subsytems among hosts |
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 | (주)글루시스 | 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법 |
US11829602B2 (en) * | 2022-03-16 | 2023-11-28 | Dell Products L.P. | Intelligent path selection in a distributed storage system |
CN115617264A (zh) * | 2022-09-21 | 2023-01-17 | 浙江大华技术股份有限公司 | 分布式存储方法及装置 |
CN116319967B (zh) * | 2023-05-18 | 2023-07-25 | 深圳锐爱电子有限公司 | 基于物联网的数据存储拓展方法、装置、设备及存储介质 |
Citations (9)
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 | 微软公司 | 集群中的虚拟共享存储 |
US20140330787A1 (en) * | 2013-05-01 | 2014-11-06 | Netapp, Inc. | Namespace mirroring in an expandable storage volume |
US20170102874A1 (en) * | 2014-06-20 | 2017-04-13 | Hitachi, Ltd. | Computer system |
US20170124138A1 (en) * | 2015-11-03 | 2017-05-04 | International Business Machines Corporation | Scalable virtual namespace and semantic policy management for object storage |
Family Cites Families (8)
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 | 株式会社日立製作所 | ファイルサーバ、及びファイルサーバにおけるファイル操作通知方法 |
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 |
JP6256931B2 (ja) | 2013-12-11 | 2018-01-10 | インテル・コーポレーション | 分散型記憶システムにおけるキャッシュおよび非キャッシュの使用 |
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 |
-
2018
- 2018-03-07 US US15/914,820 patent/US10768820B2/en active Active
- 2018-10-22 KR KR1020180126347A patent/KR102444832B1/ko active IP Right Grant
- 2018-11-16 CN CN201811365064.6A patent/CN109799951B/zh active Active
Patent Citations (9)
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 | 深圳市京华科讯科技有限公司 | 一种分布式集群文件系统 |
US20140330787A1 (en) * | 2013-05-01 | 2014-11-06 | Netapp, Inc. | Namespace mirroring in an expandable storage volume |
US20170102874A1 (en) * | 2014-06-20 | 2017-04-13 | Hitachi, Ltd. | Computer system |
US20170124138A1 (en) * | 2015-11-03 | 2017-05-04 | International Business Machines Corporation | Scalable virtual namespace and semantic policy management for object storage |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111629031A (zh) * | 2020-04-27 | 2020-09-04 | 浙江大华技术股份有限公司 | 集群存储的方法、系统、计算机设备及存储介质 |
CN111629031B (zh) * | 2020-04-27 | 2023-04-07 | 浙江大华技术股份有限公司 | 集群存储的方法、系统、计算机设备及存储介质 |
CN112333283A (zh) * | 2020-11-20 | 2021-02-05 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 自主高端存储阵列系统架构 |
CN114089926A (zh) * | 2022-01-20 | 2022-02-25 | 阿里云计算有限公司 | 分布式存储空间的管理方法、计算设备及存储介质 |
WO2023174146A1 (zh) * | 2022-03-18 | 2023-09-21 | 阿里巴巴(中国)有限公司 | 卸载卡命名空间管理、输入输出请求处理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US10768820B2 (en) | 2020-09-08 |
KR20190056295A (ko) | 2019-05-24 |
KR102444832B1 (ko) | 2022-09-21 |
US20190146675A1 (en) | 2019-05-16 |
CN109799951B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109799951A (zh) | 使用分布式的和虚拟的命名空间管理的按需存储供应 | |
US11663029B2 (en) | Virtual machine storage controller selection in hyperconverged infrastructure environment and storage system | |
CN104636080B (zh) | 存储系统及用于其的方法 | |
CN103797770B (zh) | 一种共享存储资源的方法和系统 | |
US10082972B2 (en) | Method and system for pooling, partitioning, and sharing network storage resources | |
US11372544B2 (en) | Write type based crediting for block level write throttling to control impact to read input/output operations | |
US8006056B2 (en) | Storage system including capability to move a virtual storage device group without moving data | |
US7305520B2 (en) | Storage system with capability to allocate virtual storage segments among a plurality of controllers | |
CN107046563B (zh) | 一种分布式高效云盘的实现方法、系统及云平台 | |
US10628043B1 (en) | Systems and methods for implementing a horizontally federated heterogeneous cluster | |
US8312242B2 (en) | Tracking memory space in a storage system | |
CN104317742B (zh) | 一种优化空间管理的自动精简配置方法 | |
US8856264B2 (en) | Computer system and management system therefor | |
US9176902B1 (en) | Data migration techniques | |
CN103577345A (zh) | 提高由多个系统共享的存储高速缓存灵活性的方法和结构 | |
US20120005672A1 (en) | Image management for virtual machine instances and associated virtual storage | |
US20120066680A1 (en) | Method and device for eliminating patch duplication | |
CN103176845A (zh) | 一种虚拟机部署方法、系统和装置 | |
US8954706B2 (en) | Storage apparatus, computer system, and control method for storage apparatus | |
CN102123176B (zh) | 一种网络存储系统空间分配管理方法及装置 | |
US20140380007A1 (en) | Block level storage | |
CN103095834A (zh) | 一种跨虚拟化数据中心的虚拟机在线迁移方法 | |
US9411819B1 (en) | Federated namespace management | |
US11609716B2 (en) | Implementing coherency and page cache support for a storage system spread across multiple data centers | |
CN107967165A (zh) | 基于lvm的虚拟机离线迁移方法 |
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 |