CN114089926B - 分布式存储空间的管理方法、计算设备及存储介质 - Google Patents
分布式存储空间的管理方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN114089926B CN114089926B CN202210068450.9A CN202210068450A CN114089926B CN 114089926 B CN114089926 B CN 114089926B CN 202210068450 A CN202210068450 A CN 202210068450A CN 114089926 B CN114089926 B CN 114089926B
- Authority
- CN
- China
- Prior art keywords
- storage space
- local
- remote
- smart card
- hardware
- 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
Links
Images
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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种分布式存储空间的管理方法、计算设备及存储介质。本申请实施例应用于硬件智能卡,硬件智能卡作为本地硬件智能卡部署在本地主机上,为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用;接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。有效解决了本地存储设备无法横向扩展的问题,减少了虚拟设备存储空间的不足情况。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式存储空间的管理方法、计算设备及存储介质。
背景技术
本地盘是ECS(Elastic Compute Service,弹性计算服务)实例所在物理机上的本地硬盘设备。本地盘能够为ECS实例提供本地存储访问能力,具有低时延、高随机IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数)、高吞吐量和高性价比的优势。
但是本地盘由于存储空间受限于物理主机的本地盘设备资源,无法弹性扩容,而且存在空间利用率不高的问题。且当本地盘故障后,无法实现快速恢复。
发明内容
本申请的多个方面提供一种分布式存储空间的管理方法、计算设备及存储介质,使得有效解决了主机本地存储设备无法横向扩展的问题,减少了虚拟设备存储空间不足的情况,同时可以实现存储设备的快速恢复。
本申请实施例提供一种分布式存储空间的管理方法,应用于硬件智能卡,所述硬件智能卡作为本地硬件智能卡部署在本地主机上,所述本地主机部署有本地虚拟设备,所述方法包括:为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供所述本地虚拟设备使用;接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从所述预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于所述本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供所述远程虚拟设备使用。
本申请实施例还提供一种计算设备,包括:存储器、处理器;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供所述本地虚拟设备使用;接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从所述预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于所述本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供所述远程虚拟设备使用。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现权利要求上述方法中的步骤。
在本申请实施例中,本申请实施例应用于硬件智能卡,硬件智能卡作为本地硬件智能卡部署在本地主机上,本地主机部署有本地虚拟设备,为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用;接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。
其中,通过为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用,使得通过灵活划分存储空间,以及生成模拟存储设备来满足本地虚拟设备对存储设备的需求。
接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。由此,可以通过灵活划分存储空间,并通过远程硬件智能卡,以及生成模拟存储设备来满足远程虚拟设备对存储设备的需求。
从而实现了对本地和远程的存储空间进行管理,并实现了有效解决了本地存储设备无法横向扩展的问题,减少了虚拟设备存储空间的不足情况。同时提高了存储资源的利用率,降低存储空间的浪费。同时当预置存储设备,即本地存储设备一旦发生故障,可以根据本申请实施例快速切换到远程存储设备上,实现存储设备的快速恢复。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例的分布式存储空间的管理方法的流程示意图;
图2为本申请一示例性实施例的分布式存储空间的管理过程的示意图;
图3为本申请一示例性实施例的分布式存储空间的管理的结构示意图;
图4为本申请一示例性实施例提供的分布式存储空间的管理装置的结构示意图;
图5为本申请一示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
根据前文可知,本地盘的优势在于提供低时延、高随机IOPS、高吞吐量的性能,并且提供低成本、高性价比。本地盘的劣势在于存储空间受限于物理主机的本地盘设备资源,无法弹性扩容,而且存在空间利用率不高的问题。且当本地盘故障后,无法实现快速恢复。
针对上述问题,本申请实施例提供了一种分布式存储空间的管理方法、计算设备及存储介质,从而有效解决了本地存储设备无法横向扩展的问题,减少了虚拟设备存储空间的不足情况。同时可以实现存储设备的快速恢复。
下面结合方法实施例,针对分布式存储空间的管理过程进行详细说明。
图1为本申请一示例性实施例的一种分布式存储空间的管理方法的流程示意图。本申请实施例提供的该方法100由计算设备执行,如,硬件智能卡等。硬件智能卡作为本地硬件智能卡部署在本地主机上,本地主机部署有本地虚拟设备。该方法100包括以下步骤:
101:为本地虚拟设备从预置存储设备中划分对应存储空间。
102:将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用。
103:接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。
需要说明的是,对于硬件智能卡属于智能卡,具有对应的逻辑组件以及硬件组件。硬件智能卡除了可以作为本地硬件智能卡部署在本地主机(host,如服务器)上,也可以作为远程硬件智能卡部署在对应的远程主机上。远程主机和本地主机可以组成对应的主机集群。即该主机集群还可以对应硬件智能卡集群,具有本地硬件智能卡以及远程硬件智能卡。该硬件智能卡可以通过PCIe总线(Peripheral Component Interconnect Express):是计算机总线的一个重要分支,它沿用现有的PCI编程概念及信号标准,并且构建了更加高速的串行通信系统标准)的插槽部署到主机上。并通过PCIe总线进行与对应主机的通行。硬件智能卡可以为硬件卸载卡(Offload Card)、智能网卡,硬件加速卡,智能存储卡等。
其中,本地虚拟设备可以是虚拟机,其上部署有对应的应用程序APP。
其中,如图2所示,示出了管理过程200,其中,本地硬件智能卡,即硬件智能卡A204通过PCIe总线的插槽部署到本地“主机1”201上。“主机1”201上部署有“虚拟机1”2011以及“虚拟机2”2012。在“虚拟机1”2011上可以部署有“应用程序APP A”2013等。“虚拟机2”2012也可以部署同样的应用程序,或者不同的应用程序。
以下针对上述步骤进行详细地阐述:
101:为本地虚拟设备从预置存储设备中划分对应存储空间。
其中,预置存储设备是指固态硬盘SSD(Solid State Disk或Solid StateDrive),具体的可以是NVMe(NVMe协议,Non-Volatile Memory Express)SSD。
存储空间是指针对预置存储设备的基础存储单元划分的存储空间。其中,基础存储单元可以是预置的存储单元空间namespace,每个虚拟设备开始时可以被划分到一个namespace。如,一个预置存储设备具有10个namespace,可以为每个虚拟设备划分一个namespace。
例如,根据前文所述,本地硬件智能卡在启动后,可以为本地主机上的一个虚拟机从本地SSD中划分对应的存储空间,如一个namespace。
其中,如图2所示,本地硬件智能卡,即硬件智能卡A 204为“虚拟机1”2011划分一个namespace。
为了能够更好地通过硬件智能卡来实现对应的功能,可以通过部署逻辑组件来实现上述划分。
具体的,硬件智能卡部署有存储空间管理组件;该方法100还包括:为本地虚拟设备从预置存储设备中划分对应存储空间,包括:通过存储空间管理组件,为本地虚拟设备从预置存储设备中划分对应存储空间。
例如,根据前文所述,硬件智能卡部署有逻辑组件:存储空间管理组件(NamespaceManager),负责管理本地和远程的预置存储设备SSD的空间,以namespace为粒度申请或释放磁盘空间。
于是,通过该存储空间管理组件为本地虚拟机从本地预置SSD中划分出对应存储空间,如一个namespace。
其中,如图2所示,“主机1”201的本地硬件智能卡,即硬件智能卡A 204通过存储空间管理组件2042(Namespace Manager)从本地的SSD(即本地的存储设备2031)上划分出一个namespace空间,给“虚拟机1”2011。
102:将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用。
例如,根据前文所述,如图2所示,划分出一个namespace空间,给“虚拟机1”2011后,通过硬件模拟成模拟SSD设备,直通给“虚拟机1”2011使用,从而完成了“主机1”201为“虚拟机1”2011创建模拟SSD设备。
具体的,将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,包括:通过本地硬件智能卡,将划分的存储空间生成满足预置接口协议的模拟存储设备,并通过本地主机的总线向本地虚拟设备提供对应的模拟存储设备。
其中,预置接口协议是指与预置存储设备支持的接口协议或接口规范,如SSD支持的NVMe协议(Non-Volatile Memory Express):非易失性内存主机控制器接口规范),即为NVMe SSD。
需要说明的是,也可以是SATA(Serial Advanced Technology Attachment)协议,即Serial ATA(串行ATA),硬盘接口新规范。因为采用串行连接方式,所以使用 SATA 接口的硬盘又叫串口硬盘。对于SATA SSD而言,需要硬件智能卡的存储空间管理组件namespacemanager实现一个类似针对该SATA SSD的存储空间划分的空间管理能力。
例如,根据前文所述,硬件智能卡通过NVMe 驱动器接管了所有的本地NVMe SSD设备。硬件智能卡上部署的Hypervisor虚拟机监视器(virtual machine monitor,VMM)通过NVMe 驱动器在NVMe SSD上划分多个Namespace存储空间。Hypervisor虚拟机监视器将namespace存储空间模拟成NVMe设备,具体来说,包括vhost-nvme backend和nvmefrontend,即虚拟NVMeSSD设备的前后端组件;其中,namespace作为vhost-nvme backend,提供实际的物理存储空间和读写能力。同时,NVMe实现了nvme frontend,即VF(VirutalFunction虚拟化) PCIe设备直通呈现给虚拟机。这样就实现了从namespace到虚拟NVMe硬盘的转换。
其中,驱动器Driver是满足NVMe协议的驱动器,即利用该协议进行通信。如NVMeDriver驱动器,即NVMe驱动器。
由此,本地硬件智能卡可以为对应的虚拟机创建对应的模拟NVMe SSD设备,如图2所示,本地硬件智能卡,即硬件智能卡A 204可以根据上述方式为“虚拟机1”2011以及“虚拟机2”2012划分出对应的“存储空间1”2045和“存储空间2”2044。由此生成对应的模拟SSD。就不再赘述了。
在创建了模拟SSD后,本地虚拟设备可以进行数据读写。具体的方式如下:
具体的,硬件智能卡包括总线转换器;通过总线转换器将至少一个预置存储设备部署到本地硬件智能卡上,也就部署到了本地主机上;该方法100还包括:通过总线转换器,将封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
其中,总线转换器(PCIe Switch,PCIe总线转换器)是属于硬件智能卡的硬件组件。其可以负责为本地主机和本地硬件智能卡连接多个本地的SSD,如NVMe SSD设备。
例如,根据前文所述,通过该PCIe Switch可以为本地主机部署上多个NVMe SSD设备。并通过PCIe Switch支持的PCIe协议下发读写数据,来实现在模拟SSD中的对应namespace上进行数据读写。
具体的,可以是该方法100还包括:根据直接内存访问的方式,接收本地虚拟设备通过对应驱动器发送的读写数据,驱动器满足预置接口协议,并通过预置接口协议封装对应的读写数据进行发送;通过总线转换器,将根据预置接口协议封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
其中,驱动器Driver是满足NVMe协议的驱动器,即利用该协议进行通信。如NVMeDriver驱动器,即NVMe驱动器。
直接内存访问的方式是指DMA访问方式,是一种内存访问方式。它允许某些计算设备内部的硬件子系统(计算设备外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。在同等程度的处理器负担下,DMA是一种快速的数据传送方式。
例如,根据前文所述,如图2所示,“虚拟机1”2011内部部署的“应用程序APP A”2013通过NVMe驱动器2014下发读写IO,其携带有读写数据。NVMe驱动器2014将读写数据封装成满足NVMe协议的DMA请求,通过访问NVMe SSD的PCIe设备的bar寄存器空间,以使其通知本地模拟的NVMe SSD做DMA请求的数据搬迁。即通知本地硬件智能卡做数据搬迁。由此,本地硬件智能卡获取到NVMe协议的读写数据。然后再通过PCIe Switch,即PCIe总线转换器2048,下发到本地模拟SSD对应的本地NVMe SSD。如写入该SSD的Flash存储介质,完成写IO请求。
需要说明的是,在数据下发的过程中,如图2所示,利用VFIO虚拟IO2016(VirtualFunction Input Output,虚拟输入输出,即虚拟IO,是一个可以安全的把设备I/O、中断、DMA等暴露到用户空间(userspace),从而可以在用户空间完成设备驱动的框架。用户空间直接设备访问,虚拟机可以获得更高的IO性能),将本地模拟NVMe SSD直通到虚拟机内部,作为本地块设备使用。VFIO虚拟IO2016部署在Qemu虚拟化模拟器2015内部。
此外,在利用PCIe总线进行通信时,可以利用如图2所示的其RC模式2017(PCIExpress root complex,根复合体,就是PCIe根控制器)来进行通信。
需要说明的是,对于支持其它协议的SSD而言,如SATA SSD,其对应的驱动器也可以是支持SATA的驱动器,或者通过协议转换器,将如NVMe协议转换为SATA协议,然后再通过DMA的方式进行读写数据的下发。
由于通常每个实体NVMe SSD对应一个虚拟机,其不可被划分存储空间,所以是无法灵活被使用和划分的。但通过本申请实施例可以实现灵活划分实体NVMe SSD。
为了能够更好地管理本地的存储空间,可以继续对存储空间管理组件进行逻辑上的划分,来支持本地和远程的存储空间管理。
具体的,存储空间管理组件包括本地存储空间单元以及远程存储空间单元,本地存储空间单元用于记录本地硬件智能卡对应的预置存储设备的使用状态,远程存储空间单元用于记录远程硬件智能卡对应的预置存储设备的使用状态。
其中,如图2所示,本地存储空间单元2050(Local NS,即Local namespace),是基于本地NVMe SSD构建namespace存储池。远程存储空间单元2051(Remote NS,即Remotenamespace),是管理远程的namespace存储池。可以分别记录对应的存储空间namespace的使用状态,或者是划分状态。如一个对应的本地SSD划分了多少namespace给本地虚拟机,划分了多少namespace给远程虚拟机。以及还可以记录对应的虚拟机的信息,如ID等、远程硬件智能卡的信息等,以便后续可以为本地虚拟机或远程虚拟机提供对应的存储空间。
103:接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。
其中,远程硬件智能卡根据前文可知,可以是指该集群中的远程主机上部署的远程硬件智能卡。
例如,根据前文所述,如图2所示,“主机2”202作为远程主机,其本地硬件智能卡,即硬件智能卡B205作为远程硬件智能卡,为“主机2”202上部署的“虚拟机3”2021创建对应的NVMe SSD。根据前文所述的方式,其存储空间管理组件2042(Namespace Manager)可以通过上述硬件智能卡B205部署的本地存储空间单元2050中记录的信息,发现本地NVMe SSD空间不足,如在根据本地存储空间创建请求创建一个完整的namespace空间以供使用,但硬件智能卡B205的本地NVMe SSD由于空间不足,无法根据该请求创建出对应的一个namespace空间。则可以从上述硬件智能卡B205的远程存储空间单元2051,即远程Remote NS中查找其它远程硬件智能卡的可用存储空间,如作为硬件智能卡B205的远程硬件智能卡:“主机1”201的硬件智能卡A 204,且发现“主机1”201的硬件智能卡A 204存在存储空间富余,则可以向“主机1”201的硬件智能卡A 204发起申请空间请求。“主机1”201的硬件智能卡A 204收到该请求,则可以根据该请求中请求的存储空间,从其本地SSD中划分出了对应的namespace,如存储空间n2052,即将对应的namespace所属的Local NS存储空间转成Remote NS存储空间。然后可以返回给“主机2”202的硬件智能卡B205的存储空间管理组件2042划分结果,如划分了多少namespace等以及对应namespace的信息,如ID等信息,由此存储空间管理组件2042可以基于该划分结果创建出对应的Remote NS空间,并进行该空间信息的记录,并通过硬件智能卡B205模拟成NVMe SSD,直通给“虚拟机3”2021使用,就不再赘述了。具体的模拟过程前文已经阐述过了,就不再赘述了。此外,“主机2”202中还具有其它虚拟机,如“虚拟机4”2022。
对于本地硬件智能卡也是相似的,其可以在为本地主机部署的虚拟设备进行划分对应的存储空间,发现本地存储空间不足的情况下,向该集群中的其它远程硬件智能卡进行空间申请。
具体的,该方法100还包括:当本地硬件智能卡对应的预置存储设备中的存储空间小于阈值,则通过远程存储空间单元确定可满足当前存储空间需求的远程硬件智能卡,并向对应远程硬件智能卡发送存储空间申请请求,以为本地虚拟设备从远程硬件智能卡对应的预置存储设备中划分对应存储空间。
需要说明的是,具体的实施方式与上文相似,就不再赘述了。仅说明:当本地硬件智能卡对应的预置存储设备中的存储空间小于阈值,其中的阈值可以是指需要的存储空间量。如当前预置存储设备中的存储空间小于需要为虚拟机提供的存储空间量等。
对于远程硬件智能卡而言其也是相似的,该方法100还包括:当远程硬件智能卡对应的预置存储设备中的存储空间小于阈值,则通过远程存储空间单元确定可满足当前存储空间需求的其它远程硬件智能卡,并向对应其它远程硬件智能卡发送存储空间申请请求,以为对应远程虚拟设备从其它远程硬件智能卡对应的预置存储设备中划分对应存储空间。
此处就不再赘述了。
其中,根据前文可知,为远程虚拟设备从预置存储设备中划分对应存储空间,包括:通过存储空间管理组件,为远程虚拟设备从预置存储设备中划分对应存储空间。
通过该存储空间管理组件为远程虚拟机从本地预置SSD中划分出对应存储空间,如一个namespace。
由于在进行存储空间申请的时候,可能对于一个硬件智能卡而言,会接收到多个请求,需要进行协调,或者,为某个请求划分了对应的存储空间后,为了防止该存储空间再被其它虚拟设备使用,需要进行协调。
由此,可以将远程的NVMe SSD管理起来,形成全局统一的namespace资源池,如图2所示,可以管理该集群对应的存储设备2031组成的存储资源池203。为本地虚拟设备提供NVMe存储资源,有效解决了主机本地盘无法横向扩展问题,避免虚拟机存储空间不足。
具体地,硬件智能卡部署有一致性组件;其中,该方法100还包括:通过一致性组件,根据存储空间申请请求,为本地虚拟设备锁定对应存储空间,以使其它硬件智能卡无法占用对应存储空间。
其中,一致性组件(Coherence Manager)是负责维护namespace存储空间的全局一致性,为Namespace Manager提供namespace级别的互斥能力,如防止已划分的存储空间被其它硬件智能卡使用,或者对于并发请求进行调节。
例如,根据前文所述,当本地硬件智能卡或远程硬件智能卡在发送空间请求时,如图2所示,可以通过其部署的一致性组件2043Coherence Manager锁定划分到的存储空间的配额,如通过排它锁对其进行锁定,防止其它请求划分该配额。
此外,对于本地硬件智能卡或远程硬件智能卡在处理空间请求时,如接收到多个并发请求,则可以从中随机选择一个请求进行响应,或者根据优先级规则来选择。
除此以外,还可以对该集群中的各个硬件智能卡进行健康信息的监督和检测,以更好地以及更快地选择对应的硬件智能卡进行请求申请。
具体的,硬件智能卡部署集群管理组件,用于管理对应集群中的硬件智能卡;该方法100还包括:通过集群管理组件,获取对应集群中远程硬件智能卡的健康状态;当通过集群管理组件,获取到对应集群中存在健康状态为异常的远程硬件智能卡,则剔除异常的远程硬件智能卡;当通过集群管理组件,获取并记录对应集群中新增的远程硬件智能卡以及对应的健康状态;通过集群管理组件,获取远程硬件智能卡对应的预置存储设备的使用状态,以使远程存储空间单元进行记录。
其中,集群管理组件Cluster Manager,也可以称为集群管理装置,用于每个硬件智能卡维护一个该集群中的全局硬件智能卡状态信息,如健康信息,以使得向远程硬件智能卡申请空间。同时,负责检测各个硬件智能卡的健康状态,实时检测新加入的硬件智能卡成员和剔除故障硬件智能卡成员。
健康状态是指远程硬件智能卡的运行状态是否正常,可以通过发送心跳包来表示自身的健康状态,如发送表示健康的信息,或指令等。
例如,根据前文所述,如图2所示,本地硬件智能卡,硬件智能卡A 204的集群管理组件2041可以定时向该集群中的其它硬件智能卡的集群管理组件2041发送心跳包,以表示自身是正常状态,即健康状态。同时,硬件智能卡A 204还可以接收到该集群中其它硬件智能卡发送的心跳包,从而通过集群管理组件2041来记录集群中的各个硬件智能卡的健康状态,如果未接收到心跳包,则可以确定该集群中对应的硬件智能卡存在故障,则可以从记录信息中剔除掉该硬件智能卡,直至再接收到该心跳包。
此外,对于集群中新增加的硬件智能卡,其启动后,可以根据上述方式发送心跳包给其它硬件智能卡,使得本地硬件智能卡可以接收到新增的硬件智能卡的健康状态,并进行记录。另外,对于新增的硬件智能卡,其在启动后为了更加快捷地进行心跳包的发送以及信息的同步,可以先从其它在线的硬件智能卡上同步集群信息,如可以通过集群管理组件Cluster Manager从该集群中某个硬件智能卡部署的管理组件获取到该集群其它硬件智能卡的健康状态。
根据前文可知,在进行使用状态的记录的时候,可以通过集群管理组件,获取远程硬件智能卡对应的预置存储设备的使用状态,以使远程存储空间单元进行记录,如通过集群管理组件发送使用状态。就不再赘述了。
在给本地硬件智能卡或远程硬件智能卡划分了对应的远程存储空间后,其读写数据的下发可以通过下述方式来实现。
具体的,硬件智能卡包括网络协议芯片,该方法100还包括:通过本地硬件智能卡,接收远程硬件智能卡的网络协议芯片发送的读写数据,读写数据是基于网络协议芯片对应网络协议封装的;通过本地硬件智能卡的网络协议芯片,从封装的读取数据中获取读写数据,以使本地硬件智能卡基于读写数据,在对应的存储空间进行数据读写。
其中,网络协议芯片属于硬件智能卡的硬件组件,该芯片可以是支持NVMe OverFabric协议(它是NVM Express工作组在发布的规范,通过网络将主机(如服务器)连接到存储)。其可以负责提供远程访问NVMe SSD设备的能力,利用其将NVMe协议封装成该网络协议,和远程硬件智能卡进行数据通信。
例如,根据前文所述,如图2所示,“虚拟机3”2021中的“应用程序APP A”2013下发读写IO中携带的读写数据到其“主机2”202所部署的NVMe驱动器2014。并根据前文所述的方式,由NVMe驱动器2014通过PCIe设备实现DMA传输IO读写数据到硬件智能卡B205,硬件智能卡B205通过其网络协议芯片2047,如NVMe Over Fabric芯片,将读写数据封装成NVMe OverFabric网络协议发送到“主机1”201的硬件智能卡A 204。“主机1”201的硬件智能卡A 204通过其网络协议芯片2047,如NVMe Over Fabric芯片,将NVMe Over Fabric网络协议解析,以获取到读写数据,通过PCIe总线转换器2048,下发到本地模拟SSD对应的本地NVMe SSD。如写入该SSD的Flash存储介质,完成写IO请求。
需要说明是,由于NVMe Over Fabric网络协议与NVMe接口协议相对应,对于其它接口协议而言,也可以选择对应的网络协议,或者根据前文的方式对其它接口协议进行协议转换,转换成NVMe接口协议。
根据前文可知,读写数据在下发的过程中会先封装成对应的NVMe协议,即NVMe接口协议。所以NVMe Over Fabric网络协议在封装的时候,是针对NVMe协议进行封装的。
具体的,预置存储设备属于满足预置接口协议的存储设备,网络协议芯片对应的网络协议与预置接口协议对应,读写数据是基于网络协议以及预置接口协议封装的;该方法100还包括:通过本地硬件智能卡,接收远程硬件智能卡的网络协议芯片发送的基于预置接口协议以及网络协议封装的读写数据;通过本地硬件智能卡的网络协议芯片,从封装的读取数据中获取基于预置接口协议封装的读写数据,以使基于预置接口协议封装的读写数据,在预置存储设备对应的存储空间进行数据读写。
由于前文已经阐述了过程,此处就不再重复赘述。仅说明:根据前文所述,通过NVMe Over Fabric芯片,将包含读写数据的NVMe协议封装成NVMe Over Fabric网络协议发送到本地主机的本地硬件智能卡。本地主机的本地硬件智能卡通过NVMe Over Fabric芯片将NVMe Over Fabric网络协议解析成NVMe协议,然后发送至对应的存储空间,就不再赘述了。
此外,对于NVMe Over Fabric网络协议而言,硬件智能卡在接收到空间请求后,划分了对应的存储空间namespace后,该划分的划分出的存储空间就可以形成NVMe OverFabric Target目的端。而申请空间的硬件智能卡基于划分到的空间创建Remote NS空间,形成NVMe Over Fabric Initiator起始端。从而进行网络协议的通信。
根据前文所述的方式,如图2所示,“主机2”202可以为“虚拟机3”2021从本地NVMeSSD划分了对应的“存储空间3”2053,以及为“虚拟机4”2022从本地NVMe SSD划分了对应的“存储空间4”2054。具体的读写数据的方式前文已经阐述过了,就不再赘述了。此外,对于读取数据而言,读取到的数据可以根据前文所述的方式反向返回至对应的主机的虚拟机,就不再赘述了。
在申请空间后,还可以对申请到的存储空间进行释放,以进行资源的弹性扩展和收缩,提升弹性能力。
具体的,该方法100还包括:接收远程硬件智能卡的存储空间释放请求,根据存储空间释放请求,释放远程虚拟设备从所述预置存储设备中划分到的对应存储空间,以使通过远程硬件智能卡,销毁对应的模拟存储设备。
例如,根据前文所述,远程主机的虚拟机在被销毁的情况下,远程硬件智能卡可以对对应的存储空间进行释放请求,远程硬件智能卡可以发送释放请求,至本地硬件智能卡,本地硬件智能卡接收到该释放请求后,可以通过存储空间管理组件将对应的namespace删除,其所占用的对应存储空间会被本地NVMe SSD自动收回,由本地存储空间单元来继续管理该释放的存储空间。返回释放结果至对应的远程硬件智能卡,以使远程硬件智能卡的销毁创建的Remote NS,然后通过远程硬件智能卡销毁对应的模拟存储设备,即删除了对应的模拟存储设备。
对于本地硬件智能卡去发送释放请求也是相似的,就不再过度赘述了。
需要说明的是,硬件智能卡的硬件组件还可以具有中央处理器CPU以及Memory内存,如图2所示,中央处理器CPU2046以及内存memory2049,用于负责为卡的上层的逻辑组件提供计算资源。
由此,本申请实施例可以实现全局统一的namespace资源池,并将富余的NVMe SSD资源充分利用起来,大幅提升存储资源利用率,避免局部空间浪费问题。同时基于本地NVMeSSD设备,利用硬件智能卡构建全局统一的namespace资源池,为上层应用屏蔽底层复杂的分布式空间管理能力,并且,利用硬件智能卡的加速能力,提供接近本地盘性能的远程盘访问能力,对上层应用保持一致的性能体验。
图3为本申请一示例性实施例提供的一种分布式存储空间的管理系统的结构示意图。如图3所示,该系统300可以包括:第一设备301、第二设备302、第三设备303以及第四设备304。
其中,第一设备301是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据读写以及执行应用等的设备。在物理实现上,第一设备301可以是任何能够提供计算服务,响应服务请求,并进行数据读取的设备,例如可以是云服务器、云主机、常规服务器等等。第一设备301的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
第二设备302是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据读写以及执行应用等的设备。在物理实现上,第二设备302可以是任何能够提供计算服务,响应服务请求,并进行数据读取的设备,例如可以是云服务器、云主机、常规服务器等等。第二设备302的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
第三设备303是智能硬件设备,如硬件智能卡,其可以具有CPU以及memory内存等。用于划分部署的预置存储设备为存储空间,并作为存储设备提供给第一设备301部署的虚拟机。第三设备303部署在第一设备301上。
第四设备304是智能硬件设备,如硬件智能卡,其可以具有CPU以及memory内存等。用于划分部署的预置存储设备为存储空间,并作为存储设备提供给第二设备302部署的虚拟机。第四设备304部署在第二设备302上。
其中,第二设备302以及第四设备304的个数可以为多个,即第二设备302与第四设备304配对出现多个。
其中,第一设备301以及第二设备302属于同一集群。
具体的,第三设备303,为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用;接收第四设备304的存储空间申请请求,根据存储空间申请请求,为第四设备304的虚拟设备从预置存储设备中划分对应存储空间,以使通过第四设备304,基于第三设备303划分出的存储空间,将划分的存储空间模拟生成对应第四设备304的虚拟设备的模拟存储设备,以供第四设备304的虚拟设备使用。
具体的,第三设备303以及第四设备304部署有存储空间管理组件,第三设备303通过存储空间管理组件,为本地虚拟设备从预置存储设备中划分对应存储空间;通过存储空间管理组件,为第四设备304的虚拟设备从预置存储设备中划分对应存储空间。
具体的,第三设备303以及第四设备304包括网络协议芯片,第三设备303,接收远程硬件智能卡的网络协议芯片发送的读写数据,读写数据是基于网络协议芯片对应网络协议封装的;通过第三设备303的网络协议芯片,从封装的读取数据中获取读写数据,以使本地硬件智能卡基于读写数据,在对应的存储空间进行数据读写。
此外,预置存储设备属于满足预置接口协议的存储设备,网络协议芯片对应的网络协议与预置接口协议对应,读写数据是基于网络协议以及预置接口协议封装的;第三设备303,接收第四设备304的网络协议芯片发送的基于预置接口协议以及网络协议封装的读写数据;通过第三设备303的网络协议芯片,从封装的读取数据中获取基于预置接口协议封装的读写数据,以使基于预置接口协议封装的读写数据,在预置存储设备对应的存储空间进行数据读写。
具体的,第三设备303以及第四设备304包括总线转换器;通过总线转换器将至少一个预置存储设备部署到第三设备303;第三设备303,通过总线转换器,将封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
具体的,第三设备303,将划分的存储空间生成满足预置接口协议的模拟存储设备,并通过第一设备301的总线向本地虚拟设备提供对应的模拟存储设备。
此外,第三设备303,根据直接内存访问的方式,接收本地虚拟设备通过对应驱动器发送的读写数据,驱动器满足预置接口协议,并通过预置接口协议封装对应的读写数据进行发送;通过总线转换器,将根据预置接口协议封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
具体的,存储空间管理组件包括本地存储空间单元以及远程存储空间单元,本地存储空间单元用于记录第三设备303对应的预置存储设备的使用状态,远程存储空间单元用于记录第四设备304对应的预置存储设备的使用状态;第三设备303,当第三设备303对应的预置存储设备中的存储空间小于阈值,则通过远程存储空间单元确定可满足当前存储空间需求的第四设备304,并向对应第四设备304发送存储空间申请请求,以为本地虚拟设备从第四设备304对应的预置存储设备中划分对应存储空间。
具体的,第三设备303以及第四设备304部署有一致性组件;第三设备303,通过一致性组件,根据存储空间申请请求,为本地虚拟设备锁定对应存储空间,以使其它第四设备304或第三设备303无法占用对应存储空间。
具体的,第三设备303以及第四设备304部署集群管理组件,用于管理对应集群中的第三设备303以及第四设备304;第三设备303,通过集群管理组件,获取对应集群中第四设备304的健康状态,健康状态是指第四设备304的运行状态是否正常;当通过集群管理组件,获取到对应集群中存在健康状态为异常的第四设备304,则剔除异常的第四设备304;当通过集群管理组件,获取并记录对应集群中新增的第四设备304以及对应的健康状态;通过集群管理组件,获取第四设备304对应的预置存储设备的使用状态,以使远程存储空间单元进行记录。
此外,第三设备303,接收第四设备304的存储空间释放请求,根据存储空间释放请求,释放第四设备304的虚拟设备从预置存储设备中划分到的对应存储空间,以使通过第四设备304,销毁对应的模拟存储设备。
未能详尽的内容请参考前文所述,就不再赘述了。
在硬件智能卡上为本地主机部署的虚拟机划分存储空间并实现数据读取的场景中,在集群中第三设备303,如本地硬件智能卡,部署到第一设备301,如本地主机上。在集群中还有第四设备304,如远程硬件智能卡,部署到第二设备302,如远程主机上。本地硬件智能卡在启动后,通过存储空间管理组件可以为本地主机上的一个虚拟机从本地NVMe SSD中划分对应的存储空间,如一个namespace。通过本地硬件智能卡,将划分的存储空间生成满足NVMe协议的模拟存储设备,并通过本地主机的PCIe总线向本地虚拟机提供对应的模拟存储设备。
本地虚拟机内部部署的应用程序APP通过NVMe驱动器下发读写IO,其携带有读写数据。NVMe驱动器将读写数据封装成满足NVMe协议的DMA请求,通过访问NVMe SSD的PCIe设备的bar寄存器空间,以使其通知本地模拟的NVMe SSD做DMA请求的数据搬迁。即通知本地硬件智能卡做数据搬迁。由此,本地硬件智能卡获取到NVMe协议的读写数据。然后再通过PCIe Switch,即PCIe总线转换器,下发到本地模拟SSD对应的本地NVMe SSD。如写入该SSD的Flash存储介质,完成写IO请求。
远程主机,其本地硬件智能卡,即远程硬件智能卡,为远程主机上部署的虚拟机创建对应的NVMe SSD。根据前文所述的方式,其存储空间管理组件(Namespace Manager)可以通过本地存储空间单元中记录的信息,发现本地NVMe SSD空间不足,即远程Remote NS中查找其它远程硬件智能卡的可用存储空间,并发现本地主机的本地硬件智能卡存在存储空间富余,则可以向本地主机的本地硬件智能卡发起申请空间请求,即执行步骤311:发送存储空间申请请求。本地主机的本地硬件智能卡收到该请求,则可以根据该请求中请求的存储空间,从其本地SSD中划分出了对应的namespace,如存储空间n,即将对应的namespace所属的Local NS存储空间转成Remote NS存储空间。然后可以返回给远程主机的远程硬件智能卡的存储空间管理组件划分结果,如划分了多少namespace等以及对应namespace的信息,如ID等信息。即执行步骤312:返回申请结果。由此存储空间管理组件可以基于该划分结果创建出对应的Remote NS空间,并进行该空间信息的记录,并通过远程硬件智能卡模拟成NVMe SSD,直通给远程虚拟机使用。
远程虚拟机中的应用程序下发读写IO中携带的读写数据到其远程主机所部署的NVMe驱动器。并根据前文所述的方式,由NVMe驱动器通过PCIe设备实现DMA传输IO读写数据到远程硬件智能卡,远程硬件智能卡通过其NVMe Over Fabric芯片,将包含读写数据的NVMe协议封装成NVMe Over Fabric网络协议发送到本地主机的本地硬件智能卡。本地主机的本地硬件智能卡通过其NVMe Over Fabric芯片,将NVMe Over Fabric网络协议解析,以获取到NVMe协议,其中包括读写数据,通过PCIe总线转换器,下发到本地模拟SSD对应的本地NVMe SSD。如写入该SSD的Flash存储介质,完成写IO请求。
此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
在上述本实施例中,第三设备303、第四设备304进行网络连接。若第三设备303、第四设备304是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。
图4为本申请一示例性实施例提供的一种分布式存储空间的管理装置的结构框架示意图。该装置400可以应用于计算设备,如硬件智能卡。该装置400包括:划分模块401、模拟模块402;以下针对各个模块的功能进行详细的阐述:
划分模块401,用于为本地虚拟设备从预置存储设备中划分对应存储空间。
模拟模块402,用于将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用。
划分模块401,用于接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从所述预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。
具体的,硬件智能卡部署有存储空间管理组件,存储空间管理组件,用于为本地虚拟设备从预置存储设备中划分对应存储空间;存储空间管理组件,用于为远程虚拟设备从预置存储设备中划分对应存储空间。
具体地,硬件智能卡包括网络协议芯片,该装置400还包括:接收模块,用于接收远程硬件智能卡的网络协议芯片发送的读写数据,读写数据是基于网络协议芯片对应网络协议封装的;本地硬件智能卡的网络协议芯片,用于从封装的读取数据中获取读写数据,以使本地硬件智能卡基于读写数据,在对应的存储空间进行数据读写。
具体的,预置存储设备属于满足预置接口协议的存储设备,网络协议芯片对应的网络协议与预置接口协议对应,读写数据是基于网络协议以及预置接口协议封装的;接收模块,用于接收远程硬件智能卡的网络协议芯片发送的基于预置接口协议以及网络协议封装的读写数据;本地硬件智能卡的网络协议芯片,用于从封装的读取数据中获取基于预置接口协议封装的读写数据,以使基于预置接口协议封装的读写数据,在预置存储设备对应的存储空间进行数据读写。
具体的,硬件智能卡包括总线转换器;通过总线转换器将至少一个预置存储设备部署到本地硬件智能卡;总线转换器,用于将封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
具体的,模拟模块402,用于将划分的存储空间生成满足预置接口协议的模拟存储设备,并通过本地主机的总线向本地虚拟设备提供对应的模拟存储设备。
此外,接收模块,用于根据直接内存访问的方式,接收本地虚拟设备通过对应驱动器发送的读写数据,驱动器满足预置接口协议,并通过预置接口协议封装对应的读写数据进行发送;总线转换器,用于将根据预置接口协议封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
具体的,存储空间管理组件包括本地存储空间单元以及远程存储空间单元,本地存储空间单元用于记录本地硬件智能卡对应的预置存储设备的使用状态,远程存储空间单元用于记录远程硬件智能卡对应的预置存储设备的使用状态;当本地硬件智能卡对应的预置存储设备中的存储空间小于阈值,则远程存储空间单元,用于确定可满足当前存储空间需求的远程硬件智能卡,并向对应远程硬件智能卡发送存储空间申请请求,以为本地虚拟设备从远程硬件智能卡对应的预置存储设备中划分对应存储空间。
具体的,硬件智能卡部署有一致性组件;一致性组件,用于根据存储空间申请请求,为本地虚拟设备锁定对应存储空间,以使其它硬件智能卡无法占用对应存储空间。
具体的,硬件智能卡部署集群管理组件,用于管理对应集群中的硬件智能卡;集群管理组件,用于获取对应集群中远程硬件智能卡的健康状态,健康状态是指远程硬件智能卡的运行状态是否正常;集群管理组件,用于当获取到对应集群中存在健康状态为异常的远程硬件智能卡,则剔除异常的远程硬件智能卡;集群管理组件,用于当获取并记录对应集群中新增的远程硬件智能卡以及对应的健康状态;集群管理组件,用于获取远程硬件智能卡对应的预置存储设备的使用状态,以使远程存储空间单元进行记录。
此外,接收模块,用于接收远程硬件智能卡的存储空间释放请求,根据存储空间释放请求,释放远程虚拟设备从预置存储设备中划分到的对应存储空间,以使通过远程硬件智能卡,销毁对应的模拟存储设备。
本装置400中未能详尽的内容请参考前文所述,就不再赘述。
以上描述了图4所示的装置400的内部功能和结构,在一个可能的设计中,图4所示的装置400的结构可实现为计算设备,如,硬件智能卡。如图5所示,该设备500可以包括:存储器501、处理器502;
存储器501,用于存储计算机程序。
处理器502,用于执行计算机程序,以用于:为本地虚拟设备从预置存储设备中划分对应存储空间;将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供本地虚拟设备使用;接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供远程虚拟设备使用。
具体的,处理器502,具体用于为本地虚拟设备从预置存储设备中划分对应存储空间;为远程虚拟设备从预置存储设备中划分对应存储空间。
具体地,该设备500包括网络协议芯片,处理器502,还用于接收远程硬件智能卡的网络协议芯片发送的读写数据,读写数据是基于网络协议芯片对应网络协议封装的;网络协议芯片,用于从封装的读取数据中获取读写数据,以使该设备500基于读写数据,在对应的存储空间进行数据读写。
具体的,预置存储设备属于满足预置接口协议的存储设备,网络协议芯片对应的网络协议与预置接口协议对应,读写数据是基于网络协议以及预置接口协议封装的;处理器502,还用于接收远程硬件智能卡的网络协议芯片发送的基于预置接口协议以及网络协议封装的读写数据;网络协议芯片,用于从封装的读取数据中获取基于预置接口协议封装的读写数据,以使基于预置接口协议封装的读写数据,在预置存储设备对应的存储空间进行数据读写。
具体的,该设备500包括总线转换器;通过总线转换器将至少一个预置存储设备部署到本地硬件智能卡;总线转换器,用于将封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
具体的,处理器502,具体用于将划分的存储空间生成满足预置接口协议的模拟存储设备,并通过本地主机的总线向本地虚拟设备提供对应的模拟存储设备。
此外,处理器502,还用于根据直接内存访问的方式,接收本地虚拟设备通过对应驱动器发送的读写数据,驱动器满足预置接口协议,并通过预置接口协议封装对应的读写数据进行发送;总线转换器,用于将根据预置接口协议封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
具体的,处理器502,具体用于当该设备500对应的预置存储设备中的存储空间小于阈值,则确定可满足当前存储空间需求的远程硬件智能卡,并向对应远程硬件智能卡发送存储空间申请请求,以为本地虚拟设备从远程硬件智能卡对应的预置存储设备中划分对应存储空间。
具体的,处理器502,具体用于根据存储空间申请请求,为本地虚拟设备锁定对应存储空间,以使其它硬件智能卡无法占用对应存储空间。
具体的,处理器502,具体用于获取对应集群中远程硬件智能卡的健康状态,健康状态是指远程硬件智能卡的运行状态是否正常;当获取到对应集群中存在健康状态为异常的远程硬件智能卡,则剔除异常的远程硬件智能卡;当获取并记录对应集群中新增的远程硬件智能卡以及对应的健康状态;获取远程硬件智能卡对应的预置存储设备的使用状态,以使远程存储空间单元进行记录。
此外,处理器502,还用于接收远程硬件智能卡的存储空间释放请求,根据存储空间释放请求,释放远程虚拟设备从预置存储设备中划分到的对应存储空间,以使通过远程硬件智能卡,销毁对应的模拟存储设备。
本设备500中未能详尽的内容请参考前文所述,就不再赘述。
本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1-图2方法实施例中一种分布式存储空间的管理方法的步骤。就不再过多赘述了。
本发明实施例提供了一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现图1-图2方法实施例中一种分布式存储空间的管理方法的步骤。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种分布式存储空间的管理方法,应用于硬件智能卡,所述硬件智能卡作为本地硬件智能卡通过PCIe总线的插槽部署在本地主机上,所述本地主机部署有本地虚拟设备,所述本地硬件智能卡与部署在远程主机上的远程硬件智能卡形成硬件智能卡集群,所述方法包括:
为本地虚拟设备从预置存储设备中划分对应存储空间;
将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供所述本地虚拟设备使用;
接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从所述预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于所述本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供所述远程虚拟设备使用;以及
通过本地硬件智能卡上的集群管理组件,管理该集群中远程硬件智能卡及其健康状态,并获取远程硬件智能卡对应的预置存储设备的使用状态,以使远程存储空间单元进行记录。
2.根据权利要求1所述的方法,所述硬件智能卡部署有存储空间管理组件,所述方法还包括:
为本地虚拟设备从预置存储设备中划分对应存储空间,包括:通过所述存储空间管理组件,为本地虚拟设备从预置存储设备中划分对应存储空间;
为远程虚拟设备从所述预置存储设备中划分对应存储空间,包括:通过所述存储空间管理组件,为远程虚拟设备从所述预置存储设备中划分对应存储空间。
3.根据权利要求1或2所述的方法,所述硬件智能卡包括网络协议芯片,所述方法还包括:
通过所述本地硬件智能卡,接收远程硬件智能卡的网络协议芯片发送的读写数据,所述读写数据是基于所述网络协议芯片对应网络协议封装的;
通过所述本地硬件智能卡的网络协议芯片,从封装的读取数据中获取读写数据,以使所述本地硬件智能卡基于读写数据,在对应的存储空间进行数据读写。
4.根据权利要求3所述的方法,所述预置存储设备属于满足预置接口协议的存储设备,所述网络协议芯片对应的网络协议与预置接口协议对应,所述读写数据是基于网络协议以及预置接口协议封装的;所述方法还包括:
通过所述本地硬件智能卡,接收远程硬件智能卡的网络协议芯片发送的基于预置接口协议以及网络协议封装的读写数据;
通过所述本地硬件智能卡的网络协议芯片,从封装的读取数据中获取基于预置接口协议封装的读写数据,以使基于预置接口协议封装的读写数据,在预置存储设备对应的存储空间进行数据读写。
5.根据权利要求4所述的方法,所述硬件智能卡包括总线转换器;通过总线转换器将至少一个预置存储设备部署到本地硬件智能卡;
所述方法还包括:通过总线转换器,将封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
6.根据权利要求1所述的方法,所述将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,包括:
通过本地硬件智能卡,将划分的存储空间生成满足预置接口协议的模拟存储设备,并通过本地主机的总线向本地虚拟设备提供对应的模拟存储设备。
7.根据权利要求1或6所述的方法,所述方法还包括:
根据直接内存访问的方式,接收本地虚拟设备通过对应驱动器发送的读写数据,所述驱动器满足预置接口协议,并通过预置接口协议封装对应的读写数据进行发送;
通过总线转换器,将根据预置接口协议封装的读写数据下发至预置存储设备,以实现在对应的存储空间进行数据读写。
8.根据权利要求2所述的方法,所述存储空间管理组件包括本地存储空间单元以及远程存储空间单元,所述本地存储空间单元用于记录本地硬件智能卡对应的预置存储设备的使用状态,所述远程存储空间单元用于记录远程硬件智能卡对应的预置存储设备的使用状态;
所述方法还包括:
当本地硬件智能卡对应的预置存储设备中的存储空间小于阈值,则通过远程存储空间单元确定可满足当前存储空间需求的远程硬件智能卡,并向对应远程硬件智能卡发送存储空间申请请求,以为本地虚拟设备从远程硬件智能卡对应的预置存储设备中划分对应存储空间。
9.根据权利要求8所述的方法,所述硬件智能卡部署有一致性组件;所述方法还包括:通过所述一致性组件,根据存储空间申请请求,为本地虚拟设备锁定对应存储空间,以使其它硬件智能卡无法占用对应存储空间。
10.根据权利要求1所述的方法,通过本地硬件智能卡上的集群管理组件,管理该集群中远程硬件智能卡及其健康状态,包括以下至少一种:
通过所述集群管理组件,获取对应集群中远程硬件智能卡的健康状态,所述健康状态是指远程硬件智能卡的运行状态是否正常;
当通过所述集群管理组件,获取到对应集群中存在健康状态为异常的远程硬件智能卡,则剔除异常的远程硬件智能卡;
当通过所述集群管理组件,获取并记录对应集群中新增的远程硬件智能卡以及对应的健康状态。
11.根据权利要求1所述的方法,所述方法还包括:接收远程硬件智能卡的存储空间释放请求,根据存储空间释放请求,释放远程虚拟设备从所述预置存储设备中划分到的对应存储空间,以使通过远程硬件智能卡,销毁对应的模拟存储设备。
12.一种计算设备,可作为硬件智能卡实现,所述硬件智能卡作为本地硬件智能卡通过PCIe总线的插槽部署在本地主机上,所述本地主机部署有本地虚拟设备,所述本地硬件智能卡与部署在远程主机上的远程硬件智能卡形成硬件智能卡集群,所述设备包括:存储器、处理器;
所述存储器,用于存储计算机程序;
所述处理器,执行所述计算机程序,以用于:
为本地虚拟设备从预置存储设备中划分对应存储空间;
将划分的存储空间模拟生成对应本地虚拟设备的模拟存储设备,以供所述本地虚拟设备使用;
接收远程硬件智能卡的存储空间申请请求,根据存储空间申请请求,为远程虚拟设备从所述预置存储设备中划分对应存储空间,以使通过远程硬件智能卡,基于本地硬件智能卡划分出的存储空间,将划分的存储空间模拟生成对应远程虚拟设备的模拟存储设备,以供所述远程虚拟设备使用;以及
通过本地硬件智能卡上的集群管理组件,管理该集群中远程硬件智能卡及其健康状态,并获取远程硬件智能卡对应的预置存储设备的使用状态,以使远程存储空间单元进行记录。
13.一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求1-11任一项所述方法中的步骤。
14.一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现权利要求1-11任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068450.9A CN114089926B (zh) | 2022-01-20 | 2022-01-20 | 分布式存储空间的管理方法、计算设备及存储介质 |
PCT/CN2023/071809 WO2023138460A1 (zh) | 2022-01-20 | 2023-01-11 | 分布式存储空间的管理方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068450.9A CN114089926B (zh) | 2022-01-20 | 2022-01-20 | 分布式存储空间的管理方法、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114089926A CN114089926A (zh) | 2022-02-25 |
CN114089926B true CN114089926B (zh) | 2022-07-05 |
Family
ID=80309091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210068450.9A Active CN114089926B (zh) | 2022-01-20 | 2022-01-20 | 分布式存储空间的管理方法、计算设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114089926B (zh) |
WO (1) | WO2023138460A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089926B (zh) * | 2022-01-20 | 2022-07-05 | 阿里云计算有限公司 | 分布式存储空间的管理方法、计算设备及存储介质 |
CN117631958A (zh) * | 2022-08-19 | 2024-03-01 | 成都华为技术有限公司 | 一种dpu的存储空间扩展方法、装置及系统 |
CN115756962A (zh) * | 2022-11-21 | 2023-03-07 | 浪潮(北京)电子信息产业有限公司 | 内存备份加速方法、装置、设备及计算机可读存储介质 |
CN117851304A (zh) * | 2024-03-07 | 2024-04-09 | 济南浪潮数据技术有限公司 | 一种硬盘更换方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058946A (zh) * | 2019-04-26 | 2019-07-26 | 上海燧原科技有限公司 | 设备虚拟化方法、装置、设备及存储介质 |
CN113296884A (zh) * | 2021-02-26 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 虚拟化方法、装置、电子设备、介质及资源虚拟化系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170228173A9 (en) * | 2014-05-02 | 2017-08-10 | Cavium, Inc. | Systems and methods for enabling local caching for remote storage devices over a network via nvme controller |
US9294567B2 (en) * | 2014-05-02 | 2016-03-22 | Cavium, Inc. | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller |
US20150317176A1 (en) * | 2014-05-02 | 2015-11-05 | Cavium, Inc. | Systems and methods for enabling value added services for extensible storage devices over a network via nvme controller |
US20180032249A1 (en) * | 2016-07-26 | 2018-02-01 | Microsoft Technology Licensing, Llc | Hardware to make remote storage access appear as local in a virtualized environment |
US10768820B2 (en) * | 2017-11-16 | 2020-09-08 | Samsung Electronics Co., Ltd. | On-demand storage provisioning using distributed and virtual namespace management |
CN109582592B (zh) * | 2018-10-26 | 2021-06-15 | 华为技术有限公司 | 资源管理的方法和装置 |
CN111722786A (zh) * | 2019-03-21 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 基于NVMe设备的存储系统 |
CN113296926B (zh) * | 2020-05-29 | 2022-06-21 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、计算设备及存储介质 |
CN114089926B (zh) * | 2022-01-20 | 2022-07-05 | 阿里云计算有限公司 | 分布式存储空间的管理方法、计算设备及存储介质 |
-
2022
- 2022-01-20 CN CN202210068450.9A patent/CN114089926B/zh active Active
-
2023
- 2023-01-11 WO PCT/CN2023/071809 patent/WO2023138460A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058946A (zh) * | 2019-04-26 | 2019-07-26 | 上海燧原科技有限公司 | 设备虚拟化方法、装置、设备及存储介质 |
CN113296884A (zh) * | 2021-02-26 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 虚拟化方法、装置、电子设备、介质及资源虚拟化系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023138460A1 (zh) | 2023-07-27 |
CN114089926A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114089926B (zh) | 分布式存储空间的管理方法、计算设备及存储介质 | |
US11442625B2 (en) | Multiple read data paths in a storage system | |
JP6607901B2 (ja) | スケーラブル分散ストレージアーキテクチャ | |
US11281404B2 (en) | Storage volume migration scheduling based on storage volume priorities and specified constraints | |
CN106201659B (zh) | 一种虚拟机热迁移的方法及宿主机 | |
US9547605B2 (en) | Method for data backup, device and system | |
US10346191B2 (en) | System and method for managing size of clusters in a computing environment | |
CN107209681A (zh) | 一种存储设备访问方法、装置和系统 | |
US20150370489A1 (en) | Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers | |
US8813076B2 (en) | Virtual machine updates | |
CN106777394B (zh) | 一种集群文件系统 | |
US11321007B2 (en) | Deletion of volumes in data storage systems | |
CN106775946A (zh) | 一种虚拟机快速创建方法 | |
CN110058813A (zh) | 一种基于云平台块存储的本地存储管理方法 | |
CN104216771A (zh) | 软件程序的重启方法及装置 | |
US9128746B2 (en) | Asynchronous unmap of thinly provisioned storage for virtual machines | |
US10437754B1 (en) | Diagnostic fault management controller for distributed computing | |
CN109416620B (zh) | 存储集群 | |
CN110781133B (zh) | 一种row快照方法、系统、设备及计算机可读存储介质 | |
Maciel et al. | Performance evaluation of sheepdog distributed storage system | |
CN111435302A (zh) | 一种应用程序的处理方法及装置 | |
CN117311646B (zh) | 固态硬盘配置管理方法、装置、计算机设备及存储介质 | |
US11972284B2 (en) | Virtual machine memory snapshots in persistent memory | |
US11977785B2 (en) | Non-volatile memory device-assisted live migration of virtual machine data | |
CN116578413B (zh) | 一种基于云+端架构的信号级仿真模型云化方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070778 Country of ref document: HK |