CN112631951B - 存储空间的分配方法及装置 - Google Patents
存储空间的分配方法及装置 Download PDFInfo
- Publication number
- CN112631951B CN112631951B CN202011531011.4A CN202011531011A CN112631951B CN 112631951 B CN112631951 B CN 112631951B CN 202011531011 A CN202011531011 A CN 202011531011A CN 112631951 B CN112631951 B CN 112631951B
- Authority
- CN
- China
- Prior art keywords
- disk space
- attribute
- disk
- space capacity
- osd
- 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
- 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
-
- 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/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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请提供一种存储空间的分配方法及装置,所述方法包括:获取待申请的第一磁盘空间容量;当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD;向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种存储空间的分配方法及装置。
背景技术
分布式存储系统是一种数据存储技术,通过网络使用机房内各个服务器中的磁盘空间,并将分散的存储资源形成一个虚拟的存储设备。分布式存储系统中采用自动精简配置实现数据存储。自动精简配置无需提前分配用不到的磁盘容量,因此,存储利用率更高。
在云生态环境中,Ceph系统作为当前主流的开源分布式存储,已在大量的生产环境中得到了应用。随着应用的扩展,Ceph系统默认自动精简配置技术,即,按需分配。无论磁盘分配多大,实际占用磁盘空间的大小是现在使用的大小,先占先得。
尽管自动精简配置技术能够实现存储利用率的提高,但其无法保证为用户空间分配足够的磁盘空间。如此,导致在一些用户强制要求存储空间的场景下,出现存储空间不足的问题,例如,在数据库应用场景下,应保证存储空间必须足够,否则,会引起存储空间不足导致数据丢失的问题。
发明内容
有鉴于此,本申请提供了一种存储空间的分配方法及装置,用以解决现有自动精简配置技术中,无法保证为用户空间分配足够的磁盘空间的问题。
第一方面,本申请提供了一种存储空间的分配方法,所述方法包括:
获取待申请的第一磁盘空间容量;
当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
第二方面,本申请提供了一种存储空间的分配方法,所述方法包括:
接收OSDC模块发送的客户端请求,所述客户端请求包括厚配置属性、对象ID以及所述对象ID指示的对象所需的第二磁盘空间容量;
根据所述厚配置属性,生成对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量;
向存储引擎bluestore发送所述对象空间申请请求,以使得所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
第三方面,本申请提供了一种存储空间的分配装置,所述装置包括:
获取单元,用于获取待申请的第一磁盘空间容量;
确定单元,用于当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
发送单元,用于向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间
第四方面,本申请提供了一种存储空间的分配装置,所述装置包括:
接收单元,用于接收OSDC模块发送的客户端请求,所述客户端请求包括厚配置属性、对象ID以及所述对象ID指示的对象所需的第二磁盘空间容量;
生成单元,用于根据所述厚配置属性,生成对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量;
发送单元,用于向存储引擎bluestore发送所述对象空间申请请求,以使得所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
因此,通过应用本申请提供的存储空间的分配方法及装置,Librbd模块获取待申请的第一磁盘空间容量。当存在厚配置属性时,根据所述第一磁盘空间容量,Librbd模块计算对象数量,并确定每个对象的对象ID。Librbd模块向cls_rbd_client模块发送每个对象的对象ID以及厚配置属性,以使得cls_rbd_client模块生成空间申请请求。cls_rbd_client模块向OSDC模块发送空间申请请求,该空间申请请求包括每个对象的对象ID以及厚配置属性。OSDC模块确定每个对象映射的OSD。OSDC模块向每个对象映射的OSD发送客户端请求,该客户端请求包括厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量,以使得OSD根据厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,该对象空间申请请求包括对象ID以及第二磁盘空间容量,进而使bluestore为对象ID指示的对象在磁盘中申请与第二磁盘空间容量对等的磁盘空间。
如此,解决现有自动精简配置技术中,无法保证为用户空间分配足够的磁盘空间的问题。实现了在创建厚配置存储卷时,申请独占存储空间,保证为用户空间分配足够的磁盘空间。
附图说明
图1为本申请实施例提供的一种存储空间的分配方法的流程图;
图2为本申请实施例提供的存储空间的分配方法的IO流程示意图;
图3为本申请实施例提供的磁盘申请示意图;
图4为本申请实施例提供的另一种存储空间的分配方法的流程图;
图5为本申请实施例提供的一种存储空间的分配装置结构图;
图6为本申请实施例提供的另一种存储空间的分配装置结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面对本申请实施例提供的一种存储空间的分配方法进行详细地说明。参见图1,图1为本申请实施例提供的一种存储空间的分配方法的流程图。本申请实施例提供的存储空间的分配方法可包括如下所示步骤。
步骤110、获取待申请的第一磁盘空间容量。
具体地,Librbd模块获取待申请的第一磁盘(disk)空间容量。例如,待申请的第一磁盘空间容量为100G空间。
在本步骤执行之前,Ceph系统首先创建RADOS块设备(英文:RADOS Block Device,简称:RBD)。RBD是Ceph系统对外提供的块服务组件,也是Ceph系统当前最稳定、应用最广泛的存储接口。
可以理解的是,创建RBD的过程与现有技术相同,在此仅简单描述。RBD创建过程具体包括下述步骤:1)Ceph系统配置参数校验、2)创建rbd_id对象(设置rbd_id、创建rbd_id对象)、3)注册rbd块(将块名称、块id注册到池中的directory中)、4)创建rbd_header对象(创建rbd_header对象、设置条带化参数)、5)创建object_map对象(设置object_map、创建object_map对象)、6)获取rbd_mirror模式(配置mirror模式、默认DISABLED)、7)创建rbdjournal(根据journal配置创建rbd_journal、配置journal参数(池、条带、线程队列等))以及8)创建mirror块(根据主rbd的id配置rbd),至此,精简配置的RBD创建完成。
步骤120、当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD。
具体地,根据步骤110的描述,精简配置的RBD创建完成后,如图2所示,图2为本申请实施例提供的存储空间的分配方法的IO流程示意图。若Librbd模块识别出当前程序中存在厚配置(thick)属性时,Librbd模块根据步骤110中获取的第一磁盘空间容量,计算对象数量,并为每个对象构造对象ID。
进一步地,Librbd模块根据第一磁盘空间容量,计算对象数量,并为每个对象构造对象ID的具体过程为:首先,Librbd模块获取预设的每个对象的第二磁盘空间容量。例如,第二磁盘空间容量为4M空间,该第二磁盘空间容量可根据实际需求配置。Librbd模块将第一磁盘空间容量与第二磁盘空间容量的商,作为对象数量。在本申请实施例中,100G空间与4M空间的商为256,则对象数量为256个。
同时,Librbd模块为每个对象构造一对象ID。
然后,Librbd模块向cls_rbd_client(客户端)模块发送每个对象的对象ID以及厚配置属性。cls_rbd_client模块接收到每个对象的对象ID以及厚配置属性后,通过厚配置属性,确定所创建的RBD块为厚配置,且需为该RBD块申请磁盘空间。cls_rbd_client模块根据每个对象ID,生成一对应的空间申请请求。该空间申请请求包括每个对象的对象ID以及厚配置属性。
cls_rbd_client模块向OSDC模块发送多个空间申请请求。在本申请实施例中,根据前述的例子可知,对象数量为256个,则cls_rbd_client模块生成256个空间申请请求,并向OSDC模块发送256个空间申请请求。
OSDC模块接收到空间申请请求后,以OSDC模块接收到1个空间申请请求为例进行说明。OSDC模块确定每个对象映射的OSD。
更进一步地,空间申请请求还包括用于OSDC模块确定每个对象映射的OSD的计算参数。例如,服务器数、硬盘数、机架数、osd_map、pg_map等。
OSDC模块确定每个对象映射的OSD的具体过程为:OSDC模块根据对象ID,计算对象ID指示的对象所处的PG。OSDC模块通过crush算法,计算PG映射的一组OSD。
可以理解的是,本申请实施例中OSDC模块确定每个对象映射的OSD的过程与现有技术中OSDC模块确定每个对象映射的OSD的过程相同,在此不再复述。
OSDC模块确定出每个对象映射的OSD后,OSDC模块生成客户端请求(message)。该客户端请求包括厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量。
OSDC模块向每个对象映射的OSD发送客户端请求。
可以理解的是,客户端请求还包括操作码(OP),该OP用于指示该客户端请求为对象空间申请请求。
步骤130、向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
具体地,根据步骤120的描述,OSD中处于PG层的cls_rbd模块接收到客户端请求后,从中获取OP、厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量。根据OP以及厚配置属性,确定所创建的RBD块为厚配置,且需为该RBD块映射的对象申请磁盘空间。
cls_rbd模块生成对象空间申请请求。该对象空间申请请求包括对象ID以及每个对象所需的第二磁盘空间容量。
cls_rbd模块向存储引擎(bluestore)发送对象空间申请请求。bluestore接收到对象空间申请请求后,从中获取对象ID以及每个对象所需的第二磁盘空间容量。
bluestore调用对应的bluestore接口,根据对象ID以及第二磁盘空间容量,生成对象元数据。该对象元数据用于标记对象ID指示的对象在磁盘中所占用的空间,但空间内并未存储数据。可以理解的是,对象元数据类似对象的超级块或文件的文件头。
bluestore生成对象元数据后,根据对象元数据向磁盘申请固定大小的磁盘空间。
如图3所示,图3为本申请实施例提供的磁盘申请示意图。一个onode代表一个对象,即为一个对象申请磁盘空间时,需创建一个onode。lextent表示对象的逻辑范围。blob表示为onode分配的一组磁盘空间,其可被多个lextent共享。Pextent表示一段连续的物理磁盘空间,默认最小单位为4K字节。一个blob对应的磁盘空间由多段不连续的物理磁盘空间组成。
目前,bluestore中blob的最大分配空间“bluestore_max_blob_size_hdd”为“524288”,“bluestore_max_blob_size_ssd”为“65536”。即,HDD盘为512K;SSD盘为64K。因此,在申请一个对象时,HDD盘需申请8个blob;而pextent最小申请空间为“bluestore_min_alloc_size_hdd”为“65536”,“bluestore_min_alloc_size_ssd”为“16384”。即,HDD盘为64K,SSD盘为16K。因此,可根据HDD盘或SSD盘计算所需的pextent。
根据前述的例子,一个对象所需的第二磁盘空间容量为4M空间,则该对象仅需426字节的元数据。容量为1T的RBD所需的磁盘空间申请仅需元数据量152M。
因此,通过应用本申请提供的存储空间的分配方法,Librbd模块获取待申请的第一磁盘空间容量。当存在厚配置属性时,根据所述第一磁盘空间容量,Librbd模块计算对象数量,并确定每个对象的对象ID。Librbd模块向cls_rbd_client模块发送每个对象的对象ID以及厚配置属性,以使得cls_rbd_client模块生成空间申请请求。cls_rbd_client模块向OSDC模块发送空间申请请求,该空间申请请求包括每个对象的对象ID以及厚配置属性。OSDC模块确定每个对象映射的OSD。OSDC模块向每个对象映射的OSD发送客户端请求,该客户端请求包括厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量,以使得OSD根据厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,该对象空间申请请求包括对象ID以及第二磁盘空间容量,进而使bluestore为对象ID指示的对象在磁盘中申请与第二磁盘空间容量对等的磁盘空间。
如此,解决现有自动精简配置技术中,无法保证为用户空间分配足够的磁盘空间的问题。实现了在创建厚配置存储卷时,申请独占存储空间,保证为用户空间分配足够的磁盘空间。
可选地,在本申请实施例中,OSDC模块生成的客户端请求还包括冗余策略属性,该冗余策略属性包括副本模式子属性以及纠删码模式子属性。
OSD中处于PG层的cls_rbd模块接收到客户端请求后,从中获取冗余策略属性。cls_rbd模块识别冗余策略属性,若冗余策略属性包括的副本模式子属性置位,则cls_rbd模块根据对象ID以及每个对象所需的第二磁盘空间容量,生成多个副本请求。例如,若为三副本,则生成两个副本请求;若为两副本,则生成一个副本请求。
cls_rbd模块向该对象映射的其他多个OSD发送副本请求。
若冗余策略属性包括的纠删码模式子属性置位时,则cls_rbd模块不计算纠删码。
下面对本申请实施例提供的另一种存储空间的分配方法进行详细地说明。参见图4,图4为本申请实施例提供的另一种存储空间的分配方法的流程图。本申请实施例提供的存储空间的分配方法可包括如下所示步骤。
步骤410、接收OSDC模块发送的客户端请求,所述客户端请求包括厚配置属性、对象ID以及所述对象ID指示的对象所需的第二磁盘空间容量。
具体地,根据前述实施例的描述,精简配置的RBD创建完成后,Librbd模块获取待申请的第一磁盘空间容量。例如,待申请的第一磁盘空间容量为100G空间。
若Librbd模块识别出当前程序中存在厚配置(thick)属性时,Librbd模块根据步骤110中获取的第一磁盘空间容量,计算对象数量,并为每个对象构造对象ID。
进一步地,Librbd模块根据第一磁盘空间容量,计算对象数量,并为每个对象构造对象ID的具体过程为:首先,Librbd模块获取预设的每个对象的第二磁盘空间容量。例如,第二磁盘空间容量为4M空间,该第二磁盘空间容量可根据实际需求配置。Librbd模块将第一磁盘空间容量与第二磁盘空间容量的商,作为对象数量。在本申请实施例中,100G空间与4M空间的商为256,则对象数量为256个。
同时,Librbd模块为每个对象构造一对象ID。
然后,Librbd模块向cls_rbd_client模块发送每个对象的对象ID以及厚配置属性。cls_rbd_client模块接收到每个对象的对象ID以及厚配置属性后,通过厚配置属性,确定所创建的RBD块为厚配置,且需为该RBD块申请磁盘空间。cls_rbd_client模块根据每个对象ID,生成一对应的空间申请请求。该空间申请请求包括每个对象的对象ID以及厚配置属性。
cls_rbd_client模块向OSDC模块发送多个空间申请请求。在本申请实施例中,根据前述的例子可知,对象数量为256个,则cls_rbd_client模块生成256个空间申请请求,并向OSDC模块发送256个空间申请请求。
OSDC模块接收到空间申请请求后,以OSDC模块接收到1个空间申请请求为例进行说明。OSDC模块确定每个对象映射的OSD。
更进一步地,空间申请请求还包括用于OSDC模块确定每个对象映射的OSD的计算参数。例如,服务器数、硬盘数、机架数、osd_map、pg_map等。
OSDC模块确定每个对象映射的OSD的具体过程为:OSDC模块根据对象ID,计算对象ID指示的对象所处的PG。OSDC模块通过crush算法,计算PG映射的一组OSD。
可以理解的是,本申请实施例中OSDC模块确定每个对象映射的OSD的过程与现有技术中OSDC模块确定每个对象映射的OSD的过程相同,在此不再复述。
OSDC模块确定出每个对象映射的OSD后,OSDC模块生成客户端请求。该客户端请求包括厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量。
OSDC模块向每个对象映射的OSD发送客户端请求。
可以理解的是,客户端请求还包括操作码(OP),该OP用于指示该客户端请求为对象空间申请请求。
具体地,根据步骤120的描述,OSD中处于PG层的cls_rbd模块接收到客户端请求后,从中获取OP、厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量。
步骤420、根据所述厚配置属性,生成对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量。
具体地,根据步骤410的描述,cls_rbd模块获取到OP、厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量后,根据OP以及厚配置属性,cls_rbd模块确定所创建的RBD块为厚配置,且需为该RBD块映射的对象申请磁盘空间。
cls_rbd模块生成对象空间申请请求。该对象空间申请请求包括对象ID以及每个对象所需的第二磁盘空间容量。
步骤430、向存储引擎bluestore发送所述对象空间申请请求,以使得所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
具体地,cls_rbd模块向存储引擎(bluestore)发送对象空间申请请求。bluestore接收到对象空间申请请求后,从中获取对象ID以及每个对象所需的第二磁盘空间容量。
bluestore调用对应的bluestore接口,根据对象ID以及第二磁盘空间容量,生成对象元数据。该对象元数据用于标记对象ID指示的对象在磁盘中所占用的空间,但空间内并未存储数据。可以理解的是,对象元数据类似对象的超级块或文件的文件头。
bluestore生成对象元数据后,根据对象元数据向磁盘申请固定大小的磁盘空间。
因此,通过应用本申请提供的存储空间的分配方法,Librbd模块获取待申请的第一磁盘空间容量。当存在厚配置属性时,根据所述第一磁盘空间容量,Librbd模块计算对象数量,并确定每个对象的对象ID。Librbd模块向cls_rbd_client模块发送每个对象的对象ID以及厚配置属性,以使得cls_rbd_client模块生成空间申请请求。cls_rbd_client模块向OSDC模块发送空间申请请求,该空间申请请求包括每个对象的对象ID以及厚配置属性。OSDC模块确定每个对象映射的OSD。OSDC模块向每个对象映射的OSD发送客户端请求,该客户端请求包括厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量,以使得OSD根据厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,该对象空间申请请求包括对象ID以及第二磁盘空间容量,进而使bluestore为对象ID指示的对象在磁盘中申请与第二磁盘空间容量对等的磁盘空间。
如此,解决现有自动精简配置技术中,无法保证为用户空间分配足够的磁盘空间的问题。实现了在创建厚配置存储卷时,申请独占存储空间,保证为用户空间分配足够的磁盘空间。
可选地,在本申请实施例中,OSDC模块生成的客户端请求还包括冗余策略属性,该冗余策略属性包括副本模式子属性。
OSD中处于PG层的cls_rbd模块接收到客户端请求后,从中获取冗余策略属性。cls_rbd模块识别冗余策略属性,若冗余策略属性包括的副本模式子属性置位,则cls_rbd模块根据对象ID以及每个对象所需的第二磁盘空间容量,生成多个副本请求。例如,若为三副本,则生成两个副本请求;若为两副本,则生成一个副本请求。
cls_rbd模块向该对象映射的其他多个OSD发送副本请求。
基于同一发明构思,本申请实施例还提供了与存储空间的分配方法对应的存储空间的分配装置。参见图5,图5为本申请实施例提供的一种存储空间的分配装置结构图,所述装置包括:
获取单元510,用于获取待申请的第一磁盘空间容量;
确定单元520,用于当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
发送单元530,用于向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
可选地,所述确定单元520具体用于,获取预设的所述每个对象的第二磁盘空间容量;
将所述第一磁盘空间容量与所述第二磁盘空间容量的商,作为所述对象数量。
可选地,所述确定单元520具体用于,根据所述对象ID,计算所述对象ID指示的对象所处的PG;
通过crush算法,计算所述PG映射的一组OSD。
可选地,所述客户端请求还包括冗余策略属性,所述冗余策略属性包括副本模式子属性以及纠删码模式子属性;
所述发送单元530还用于,当所述冗余策略属性包括的副本模式子属性置位时,向所述每个对象映射的OSD发送副本请求,以使得所述OSD向用于作为副本的其他OSD发送所述副本请求;
所述确定单元520还用于,当所述冗余策略属性包括的纠删码模式子属性置位时,不计算纠删码。
基于同一发明构思,本申请实施例还提供了与存储空间的分配方法对应的存储空间的分配装置。参见图6,图6为本申请实施例提供的另一种存储空间的分配装置结构图,所述装置包括:
接收单元610,用于接收OSDC模块发送的客户端请求,所述客户端请求包括厚配置属性、对象ID以及所述对象ID指示的对象所需的第二磁盘空间容量;
生成单元620,用于根据所述厚配置属性,生成对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量;
发送单元630,用于向存储引擎bluestore发送所述对象空间申请请求,以使得所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间。
可选地,所述客户端请求还包括冗余策略属性;
所述接收单元610还用于,接收所述OSDC模块发送的副本请求,所述副本请求包括副本个数属性,所述副本请求为所述OSDC模块确定所述冗余策略属性包括的副本模式子属性置位后发送;
所述发送单元630还用于,根据所述副本个数属性,向用于作为副本的其他OSD发送所述副本请求。
因此,通过应用本申请提供的存储空间的分配装置,该装置获取待申请的第一磁盘空间容量。当存在厚配置属性时,根据所述第一磁盘空间容量,该装置计算对象数量,并确定每个对象的对象ID以及每个对象映射的OSD。该装置向每个对象映射的OSD发送客户端请求,该客户端请求包括厚配置属性、对象ID以及每个对象所需的第二磁盘空间容量,以使得OSD根据厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,该对象空间申请请求包括对象ID以及第二磁盘空间容量,进而使bluestore为对象ID指示的对象在磁盘中申请与第二磁盘空间容量对等的磁盘空间。
如此,解决现有自动精简配置技术中,无法保证为用户空间分配足够的磁盘空间的问题。实现了在创建厚配置存储卷时,申请独占存储空间,保证为用户空间分配足够的磁盘空间。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对于数据处理装置实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种存储空间的分配方法,其特征在于,所述方法包括:
获取待申请的第一磁盘空间容量;
当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间;
其中,所述根据所述第一磁盘空间容量,计算对象数量,具体包括:
获取预设的所述每个对象的第二磁盘空间容量;
将所述第一磁盘空间容量与所述第二磁盘空间容量的商,作为所述对象数量。
2.根据权利要求1所述的方法,其特征在于,所述确定所述每个对象映射的OSD,具体包括:
根据所述对象ID,计算所述对象ID指示的对象所处的PG;
通过crush算法,计算所述PG映射的一组OSD。
3.根据权利要求1所述的方法,其特征在于,所述客户端请求还包括冗余策略属性,所述冗余策略属性包括副本模式子属性以及纠删码模式子属性;所述方法还包括:
当所述冗余策略属性包括的副本模式子属性置位时,向所述每个对象映射的OSD发送副本请求,以使得所述OSD向用于作为副本的其他OSD发送所述副本请求;
当所述冗余策略属性包括的纠删码模式子属性置位时,不计算纠删码。
4.一种存储空间的分配方法,其特征在于,所述方法包括:
接收OSDC模块发送的客户端请求,所述客户端请求包括厚配置属性、对象ID以及所述对象ID指示的对象所需的第二磁盘空间容量;
根据所述厚配置属性,生成对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量;
向存储引擎bluestore发送所述对象空间申请请求,以使得所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间;
所述客户端请求通过下述过程生成后发送:
获取待申请的第一磁盘空间容量;
在存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
其中,所述根据所述第一磁盘空间容量,计算对象数量,具体包括:获取预设的所述每个对象的第二磁盘空间容量;将所述第一磁盘空间容量与所述第二磁盘空间容量的商,作为所述对象数量。
5.根据权利要求4所述的方法,其特征在于,所述客户端请求还包括冗余策略属性;所述方法还包括:
接收所述OSDC模块发送的副本请求,所述副本请求包括副本个数属性,所述副本请求为所述OSDC模块确定所述冗余策略属性包括的副本模式子属性置位后发送;
根据所述副本个数属性,向用于作为副本的其他OSD发送所述副本请求。
6.一种存储空间的分配装置,其特征在于,所述装置包括:
获取单元,用于获取待申请的第一磁盘空间容量;
确定单元,用于当存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量,并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
发送单元,用于向所述每个对象映射的OSD发送客户端请求,所述客户端请求包括所述厚配置属性、所述对象ID以及所述每个对象所需的第二磁盘空间容量,以使得所述OSD根据所述厚配置属性生成并向存储引擎bluestore发送对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量,进而使所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间;
所述确定单元具体用于,获取预设的所述每个对象的第二磁盘空间容量;
将所述第一磁盘空间容量与所述第二磁盘空间容量的商,作为所述对象数量。
7.根据权利要求6所述的装置,其特征在于,所述确定单元具体用于,根据所述对象ID,计算所述对象ID指示的对象所处的PG;
通过crush算法,计算所述PG映射的一组OSD。
8.根据权利要求6所述的装置,其特征在于,所述客户端请求还包括冗余策略属性,所述冗余策略属性包括副本模式子属性以及纠删码模式子属性;
所述发送单元还用于,当所述冗余策略属性包括的副本模式子属性置位时,向所述每个对象映射的OSD发送副本请求,以使得所述OSD向用于作为副本的其他OSD发送所述副本请求;
所述确定单元还用于,当所述冗余策略属性包括的纠删码模式子属性置位时,不计算纠删码。
9.一种存储空间的分配装置,其特征在于,所述装置包括:
接收单元,用于接收OSDC模块发送的客户端请求,所述客户端请求包括厚配置属性、对象ID以及所述对象ID指示的对象所需的第二磁盘空间容量;
生成单元,用于根据所述厚配置属性,生成对象空间申请请求,所述对象空间申请请求包括所述对象ID以及所述第二磁盘空间容量;
发送单元,用于向存储引擎bluestore发送所述对象空间申请请求,以使得所述bluestore为所述对象ID指示的对象在磁盘中申请与所述第二磁盘空间容量对等的磁盘空间;
所述客户端请求通过下述过程生成后发送:
获取待申请的第一磁盘空间容量;
在存在厚配置属性时,根据所述第一磁盘空间容量,计算对象数量并确定所述每个对象的对象ID以及所述每个对象映射的OSD;
其中,所述根据所述第一磁盘空间容量,计算对象数量,具体包括:获取预设的所述每个对象的第二磁盘空间容量;将所述第一磁盘空间容量与所述第二磁盘空间容量的商,作为所述对象数量。
10.根据权利要求9所述的装置,其特征在于,所述客户端请求还包括冗余策略属性;
所述接收单元还用于,接收所述OSDC模块发送的副本请求,所述副本请求包括副本个数属性,所述副本请求为所述OSDC模块确定所述冗余策略属性包括的副本模式子属性置位后发送;
所述发送单元还用于,根据所述副本个数属性,向用于作为副本的其他OSD发送所述副本请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531011.4A CN112631951B (zh) | 2020-12-22 | 2020-12-22 | 存储空间的分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531011.4A CN112631951B (zh) | 2020-12-22 | 2020-12-22 | 存储空间的分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631951A CN112631951A (zh) | 2021-04-09 |
CN112631951B true CN112631951B (zh) | 2023-06-16 |
Family
ID=75321034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531011.4A Active CN112631951B (zh) | 2020-12-22 | 2020-12-22 | 存储空间的分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631951B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202396A (zh) * | 2016-07-08 | 2016-12-07 | 乐视控股(北京)有限公司 | 对象存储方法和对象存储系统 |
US9846544B1 (en) * | 2015-12-30 | 2017-12-19 | EMC IP Holding Company LLC | Managing storage space in storage systems |
CN110134338A (zh) * | 2019-05-21 | 2019-08-16 | 深信服科技股份有限公司 | 一种分布式存储系统及其数据冗余保护方法和相关设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341118B2 (en) * | 2010-02-09 | 2012-12-25 | Google Inc. | Method and system for dynamically replicating data within a distributed storage system |
CN103533006B (zh) * | 2012-07-06 | 2019-09-24 | 中兴通讯股份有限公司 | 一种联合云盘客户端、服务器、系统和联合云盘服务方法 |
US9524233B2 (en) * | 2013-03-05 | 2016-12-20 | Vmware, Inc. | System and method for efficient swap space allocation in a virtualized environment |
US9053002B2 (en) * | 2013-11-12 | 2015-06-09 | International Business Machines Corporation | Thick and thin data volume management |
US10592469B1 (en) * | 2016-06-29 | 2020-03-17 | EMC IP Holding Company, LLC | Converting files between thinly and thickly provisioned states |
CN108052655B (zh) * | 2017-12-28 | 2020-11-10 | 新华三技术有限公司 | 数据写入及读取方法 |
CN107948334B (zh) * | 2018-01-09 | 2019-06-07 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的数据处理方法 |
CN110007858B (zh) * | 2019-03-13 | 2022-12-06 | 新华三技术有限公司成都分公司 | 存储空间分配方法及装置 |
CN110377226B (zh) * | 2019-06-10 | 2022-02-25 | 平安科技(深圳)有限公司 | 基于存储引擎bluestore的压缩方法、装置及存储介质 |
-
2020
- 2020-12-22 CN CN202011531011.4A patent/CN112631951B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9846544B1 (en) * | 2015-12-30 | 2017-12-19 | EMC IP Holding Company LLC | Managing storage space in storage systems |
CN106202396A (zh) * | 2016-07-08 | 2016-12-07 | 乐视控股(北京)有限公司 | 对象存储方法和对象存储系统 |
CN110134338A (zh) * | 2019-05-21 | 2019-08-16 | 深信服科技股份有限公司 | 一种分布式存储系统及其数据冗余保护方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112631951A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8590050B2 (en) | Security compliant data storage management | |
CN108287669B (zh) | 数据存储方法、装置及存储介质 | |
CN102255962B (zh) | 一种分布式存储方法、装置和系统 | |
US8972366B2 (en) | Cloud-based directory system based on hashed values of parent and child storage locations | |
US20130232179A1 (en) | Enhanced storage quota management for cloud computing systems | |
US9639459B2 (en) | I/O latency and IOPs performance in thin provisioned volumes | |
US9400792B1 (en) | File system inline fine grained tiering | |
US20120042162A1 (en) | Cloud Data Management | |
US20170315745A1 (en) | Dynamic spare storage allocation | |
US20180260154A1 (en) | Selectively storing data into allocations areas using streams | |
JP2018520402A (ja) | 複数の選択可能なデータ処理ポリシーを有するオブジェクトベースのストレージクラスタ | |
CN109144406B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
TW201423425A (zh) | 資料分塊儲存至分散式伺服器的系統及方法 | |
CN110837479B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
US20190034087A1 (en) | Reducing data amplification when replicating objects across different sites | |
US11372549B2 (en) | Reclaiming free space in a storage system | |
CN111488198A (zh) | 一种超融合环境下的虚拟机调度方法、系统及介质 | |
CN106331075B (zh) | 用于存储文件的方法、元数据服务器和管理器 | |
US20130275671A1 (en) | Creating encrypted storage volumes | |
CN108268344A (zh) | 一种数据处理方法和装置 | |
CN113037794A (zh) | 计算资源配置调度方法、装置及系统 | |
US11899533B2 (en) | Stripe reassembling method in storage system and stripe server | |
CN112346871A (zh) | 一种请求处理方法及微服务系统 | |
CN110007858A (zh) | 存储空间分配方法及装置 | |
CN105204782B (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 |