CN111552677B - 配额管理方法、装置、管理节点及存储介质 - Google Patents
配额管理方法、装置、管理节点及存储介质 Download PDFInfo
- Publication number
- CN111552677B CN111552677B CN202010403953.8A CN202010403953A CN111552677B CN 111552677 B CN111552677 B CN 111552677B CN 202010403953 A CN202010403953 A CN 202010403953A CN 111552677 B CN111552677 B CN 111552677B
- Authority
- CN
- China
- Prior art keywords
- storage
- quota
- node
- storage node
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式存储技术领域,提供了一种配额管理方法、装置、管理节点及存储介质,所述方法包括:接收客户端发送的用于创建存储空间的创建命令;依据每一存储节点的服务状态、每一存储节点的容量及待创建存储空间的大小,从多个存储节点中确定待创建存储空间分布的第一存储节点及第一存储节点的分配配额;将第一存储节点的分配配额保存在管理节点的第一存储区域;将第一存储节点的分配配额发送至第一存储节点,以使第一存储节点按照分配配额为待创建存储空间预留存储容量并将分配配额存储至第一存储节点的第二存储区域。本发明实施例提高了分配额度并发存储,保证了分配额度的高效保存。
Description
技术领域
本发明涉及分布式存储技术领域,具体而言,涉及一种配额管理方法、装置、管理节点及存储介质。
背景技术
分布式文件系统DFS(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地存储节点上,而是通过计算机网络与存储节点相连,DFS的存储空间实际上是分布于各存储节点上,由分布式存储系统中的管理节点确定存储空间在各存储节点上的分配额度,以使各存储节点上存储资源的利用率尽量均衡。
现有技术中,由管理节点保存所有存储节点的分配额度,以便对分配额度进行统一管理,但是这种方式在分配额度的数据量相当大的情况下,管理节点容易成为保存分配额度数据的瓶颈。
发明内容
本发明的目的在于提供一种配额管理方法、装置、管理节点及存储介质,其通过将每个存储节点的分配配额保存至自身存储节点中的非易失性存储区域中,将所有存储节点的分配配额保存至管理节点中的易失性存储区域中,并且易失性存储区域的读写性能高于非易失性存储区域,由此,既保证了管理节点访问分配额度的高效性,又能使每个存储节点只需要保存自己的分配额度,提高了分配额度保存时的并发性,保证了分配额度的高效保存。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本发明提供了一种配额管理方法,应用于分布式存储系统中的管理节点,管理节点与客户端及多个存储节点均通信连接,所述方法包括:接收客户端发送的用于创建存储空间的创建命令,其中,创建命令包括待创建存储空间的大小;依据每一存储节点的服务状态、每一存储节点的容量及待创建存储空间的大小,从多个存储节点中确定待创建存储空间分布的第一存储节点及第一存储节点的分配配额;将第一存储节点的分配配额保存在管理节点的第一存储区域,其中,第一存储区域为易失性存储介质;将第一存储节点的分配配额发送至第一存储节点,以使第一存储节点按照分配配额为待创建存储空间预留存储容量并将分配配额存储至第一存储节点的第二存储区域,其中,第二存储区域属于非易失性存储介质、且第二存储区域的读写性能低于第一存储区域。
第二方面,本发明提供了一种配额管理装置,应用于分布式存储系统中的管理节点,管理节点与客户端及多个存储节点均通信连接,所述装置包括创建模块,创建模块用于:接收客户端发送的用于创建存储空间的创建命令,其中,创建命令包括待创建存储空间的大小;依据每一存储节点的服务状态、每一存储节点的容量及待创建存储空间的大小,从多个存储节点中确定待创建存储空间分布的第一存储节点及第一存储节点的分配配额;将第一存储节点的分配配额保存在管理节点的第一存储区域,其中,第一存储区域为易失性存储介质;将第一存储节点的分配配额发送至第一存储节点,以使第一存储节点按照分配配额为待创建存储空间预留存储容量并将分配配额存储至第一存储节点的第二存储区域,其中,第二存储区域属于非易失性存储介质、且第二存储区域的读写性能低于第一存储区域。
第三方面,本发明提供了一种管理节点,所述管理节点包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的配额管理方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的配额管理方法。
相对于现有技术,本发明通过将每个存储节点的分配配额保存至自身存储节点中的非易失性存储区域中,将所有存储节点的分配配额保存至管理节点中的易失性存储区域中,并且易失性存储区域的读写性能高于非易失性存储区域,由此,既保证了管理节点访问分配额度的高效性,又能使每个存储节点只需要保存自己的分配额度,提高了分配额度保存时的并发性,保证了分配额度的高效保存。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景示意图。
图2示出了本发明实施例提供的管理节点的方框示意图。
图3示出了本发明实施例提供的一种配额管理方法的流程图。
图4示出了本发明实施例提供的另一种配额管理方法的流程图。
图5示出了本发明实施例提供的另一种配额管理方法的流程图。
图6示出了本发明实施例提供的另一种配额管理方法的流程图。
图7示出了本发明实施例提供的缩容时配额更新的示例过程图。
图8示出了本发明实施例提供的另一种配额管理方法的流程图。
图9示出了本发明实施例提供的另一种配额管理方法的流程图。
图10示出了本发明实施例提供的另一种配额管理方法的流程图。
图11示出了本发明实施例提供的配额调整时配额更新的示例过程图。
图12示出了本发明实施例提供的另一种配额管理方法的流程图。
图13示出了本发明实施例提供的配额管理装置的方框示意图。
图标:10-管理节点;11-存储器;12-处理器;13-总线;14-通信接口;20-存储节点;30-客户端;100-配额管理装置;110-创建模块;120-扩容模块;130-删除模块;140-缩容模块;150-节点增加模块;160-节点减少模块;170-配额调整模块;180-重建模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1示出了本发明实施例提供的应用场景示意图,图1中,分布式存储系统包括管理节点10、存储节点20及客户端30,管理节点10与存储节点20及客户端30均通信连接,客户端30与存储节点20通信连接,客户端将创建存储空间的创建命令发送至管理节点10,管理节点10根据存储节点20的服务状态、存储节点20的容量及待创建存储空间的大小,从多个存储节点20中确定待创建存储空间分布的存储节点20及对应的分配配额,并将该存储节点20的分配配额存储至管理节点10的第一存储区域,同时将该存储节点20的分配配额存储至存储节点20的第二存储区域,其中,第一存储区域为易失性存储介质,第二存储区域属于非易失性存储介质、且第二存储区域的读写性能低于第一存储区域,例如,第一存储区域为内存,第二存储区域为硬盘,或者第一存储区域为固态硬盘,第二存储区域为SAS、SATA等类型的磁盘。由于待创建存储空间可以分布在多个存储节点20上,每一个存储节点20只需要保存自己的分配配额,因而可以实现分配配额的并发保存,提高了分配配额的保存效率,同时,所有存储节点20的分配配额只需要保存至管理节点10的访问性能高的第一存储区域,一方面满足了分配配额的访问性能要求,另一方面,管理节点10无需考虑分配配额掉电丢失的问题,减少了管理节点10的分配配额的处理复杂度。
在图1的基础上,本发明实施例还提供了图1中管理节点10的方框示意图,请参照图2,图2示出了本发明实施例提供的管理节点10的方框示意图,管理节点10可以是一个主机或服务器等实体的计算机,也可以是多个主机组成的主机组,或者是多个服务器组成的服务器组,还可以是能够实现与实体的计算机具有相同功能的虚拟主机或者虚拟服务器、或者虚拟主机组或者虚拟服务器组。管理节点10包括存储器11、处理器12、总线13、通信接口14。存储器11、处理器12通过总线13连接,处理器12通过通信接口14与存储节点20及客户端30通信连接。
存储器11用于存储程序,例如上述的配额管理装置,该配额管理装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中的软件功能模块,处理器12在接收到执行指令后,执行所述程序以实现上述实施例揭示的配额管理方法。
存储器11可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器11可以是内置于处理器12中的存储装置,也可以是独立于处理器12的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图2仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器12可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器12中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过至少一个通信接口14(可以是有线或者无线)实现管理节点10与至少一个存储节点20、以及客户端30之间的通信连接。
在图1和图2的基础上,本发明实施例提供一种配额管理方法,配额管理方法可以用于图1和图2中的管理节点10,请参照图3,图3示出了本发明实施例提供的一种配额管理方法的流程图,该方法包括以下步骤:
步骤S101,接收客户端发送的用于创建存储空间的创建命令,其中,创建命令包括待创建存储空间的大小。
在本实施例中,用户通过客户端30创建存储空间,待创建存储空间对于用户而言是逻辑上连续的、用于保存用户数据的存储区域,该待创建存储空间实际上可以分布于多个存储节点20,待创建存储空间的表现形式可以是根目录或者是一个逻辑单元号LUN(Logical Unit Number,LUN),一个LUN对应一个逻辑存储设备。
步骤S102,依据每一存储节点的服务状态、每一存储节点的容量及待创建存储空间的大小,从多个存储节点中确定待创建存储空间分布的第一存储节点及第一存储节点的分配配额。
在本实施例中,服务状态包括在线和离线,当存储节点20可以正常对外提供数据存储功能时,该存储节点20处于在线状态,当存储节点20不能正常对外提供数据存储功能时,该存储节点20处于离线状态。
在本实施例中,第一存储节点为待创建存储空间分布的存储节点20,第一存储节点至少满足两个条件:(1)第一存储节点的服务状态为在线;(2)第一存储节点的可用空间不为0。
在本实施例中,第一存储节点的分配配额为待创建存储空间在本存储节点上的分布空间的大小,当第一存储节点为多个时,每个第一存储节点的分配配额可能相同,也可能不同,需要根据每一存储节点的容量确定,作为一种具体的确定分配配额的实施方式,可以采用如下方法:
首先,将多个存储节点中服务状态为在线的存储节点作为第一存储节点。
其次,计算每一第一存储节点的容量占所有第一存储节点的容量之和的比例,作为该第一存储节点的配额比例。
在本实施例中,可以根据第一存储节点的总存储容量计算第一存储节点的配额比例,也可以根据第一存储节点的可用容量计算第一存储节点的配额比例,例如,以总存储容量为例,第一存储节点包括:节点1~节点3,其总存储容量分别为:100GB、200GB、200GB,则节点1的配额比例为:100/(100+200+200)=0.2。
最后,依据待创建存储空间的大小及每一第一存储节点的配额比例,计算该第一存储节点的待创建存储空间的分配配额。
在本实施例中,根据第一存储节点的配额比例可以得到该存储节点的待创建存储空间的分配配额,例如,节点1的配额比例为0.2,待创建存储空间为根目录a,其的大小为100GB,则节点1的根目录a的分配配额为:100GB*0.2=20GB。
需要说明的是,上述只是一种具体的实施方式,实际上,在确定第一存储节点是,也可以根据存储节点20的服务状态及存储节点20的可用容量进行确定,例如,将存储节点20的服务状态为在线、且可用容量大于预设容量阈值的作为第一存储节点,用户可以根据实际场景需求确定适合该场景的确定第一存储节点的规则。在确定第一存储节点的配额比例时,也可以根据第一存储节点的可用容量进行确定。
步骤S103,将第一存储节点的分配配额保存在管理节点的第一存储区域,其中,第一存储区域为易失性存储介质。
在本实施例中,易失性存储介质中的数据在下电后不会保存,通常访问速度比较快,为了简化管理节点10的处理复杂度,将第一存储节点的分配配额保存在易失性的第一存储区域,避免了管理节点10在下电时要对第一存储节点的分配配额做专门的保存处理。
步骤S104,将第一存储节点的分配配额发送至第一存储节点,以使第一存储节点按照分配配额为待创建存储空间预留存储容量并将分配配额存储至第一存储节点的第二存储区域,其中,第二存储区域属于非易失性存储介质、且第二存储区域的读写性能低于第一存储区域。
在本实施例中,由于管理节点10中的第一存储节点的分配配额掉电后就会丢失,当管理节点10下电再上电后,为了可以将第一存储节点的分配配额恢复至第一存储区域,需要将第一存储节点的分配配额保存至本地的第二存储区域,第二存储区域属于掉电后数据不会丢失的非易失性存储介质。
本发明实施例提供的上述配额管理方法,通过将每个存储节点20的分配配额保存至自身存储节点20中的非易失性存储区域中,将所有存储节点20的分配配额保存至管理节点10中的易失性存储区域中,并且易失性存储区域的读写性能高于非易失性存储区域,由此,既保证了管理节点10访问分配额度的高效性,又能使每个存储节点20只需要保存自己的分配额度,提高了分配额度保存时的并发性,保证了分配额度的高效保存,同时,根据第一存储节点的容量确定配额比例,可以使待创建存储空间更均衡地分布于第一存储节点,实现较好地访问负载均衡。
在本实施例中,对于已经创建的存储空间,当该存储空间容量不够时,可以对该存储空间进行扩容,以增大该存储空间的容量,因此,本发明实施例还提供了一种扩容场景下配额管理方法,请参照图4,图4示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S201,接收客户端发送的用于扩容存储空间的扩容命令,其中,扩容命令包括待扩容存储空间的标识及待扩容空间的大小。
在本实施例中,待扩容存储空间为已创建的存储空间,待扩容存储空间的标识用于唯一表征待扩容存储空间,若待扩容存储空间为根目录,则待扩容存储空间的标识可以是根目录的名称,待扩容存储空间扩容后的空间大小=待扩容存储空间扩容前的空间大小+待扩容空间的大小,例如,待扩容存储空间为根目录a,其当前大小为100GB,待扩容空间的大小为50GB,则该待扩容存储空间扩容后的大小为:100GB+50GB=150GB。
步骤S202,依据每一存储节点的服务状态、每一存储节点的容量及待扩容空间的大小,确定待扩容空间分布的第二存储节点及在第二存储节点的分配配额。
在本实施例中,第二存储节点为待扩容空间分布的存储节点20,确定第二存储节点的分配配额与确定第一存储节点的分配配额类似,此处不再赘述。
步骤S203,依据待扩容存储空间的标识及预先存储的存储空间分布信息,从多个存储节点中确定待扩容存储空间分布的第三存储节点,其中,存储空间分布信息包括存储空间标识、存储空间标识表征的存储空间分布的存储节点及对应的分配配额。
在本实施例中,存储空间分布信息存储于管理节点10的第一存储区域,包括分布式存储系统中当前所有已经创建的存储空间标识,及每一存储空间分布的存储节点20及对应的分配配额,例如,分布式存储系统中共创建了3个根目录:根目录a、根目录b和根目录c,则存储空间分布信息可以如下表1示例:
表1
需要说明的是,表1中只示出了分配配额中的总配额,事实上分配配额还可以包括已用配额,存储空间分布信息还可以包括每一个存储节点20服务状态等信息。
步骤S204,将待扩容空间分布的第二存储节点及第二存储节点的分配配额与待扩容存储空间分布的第三存储节点及第三存储节点的分配配额合并,得到扩容后的待扩容存储空间分布的第四存储节点及在第四存储节点的分配配额。
在本实施例中,第二存储节点和第三存储节点包括的存储节点20可以相同,也可以不同,当二者相同时,合并后的第四存储节点也与二者相同,例如,第三存储节点包括节点1~节点3,第二存储节点也包括节点1~节点3,合并后的第四存储节点也包括节点1~节点3,表2为第二存储节点的分配配额示例,表3为第三存储节点的分配配额示例,表4为合并后的第四存储节点的分配配额示例:
表2
节点1 | 节点2 | 节点3 |
30 | 40 | 30 |
表3
节点1 | 节点2 | 节点3 |
60 | 80 | 60 |
表4
节点1 | 节点2 | 节点3 |
90 | 120 | 90 |
当二者不同时,合并后的第四存储节点包括第二存储节点中的存储节点20和第三存储节点的存储节点20,例如:第三存储节点包括节点1~节点3,第二存储节点也包括节点2~节点4,合并后的第四存储节点也包括节点1~节点4。表5为第二存储节点的分配配额示例,表6为第三存储节点的分配配额示例,表7为合并后的第四存储节点的分配配额示例:
表5
节点1 | 节点2 | 节点3 |
30 | 40 | 30 |
表6
节点2 | 节点3 | 节点4 |
80 | 60 | 60 |
表7
节点1 | 节点2 | 节点3 | 节点4 |
30 | 120 | 90 | 60 |
本发明实施例提供的上述配额管理方法,在对已创建的存储空间进行扩容时进行配额管理,使得待扩容空间均衡地分布于存储节点20上,并且对已创建的存储空间的分配配额和待扩容空间的分配配额进行合并,保证扩容前后只保存一份分配配额,简化了配额管理。
在本实施例中,当用户不再需要已创建的存储空间时,为了使该已创建的存储空间的分配配额及时得以更新,并将其在存储节点20中的空间及时释放,本发明实施例还提供另一种配额管理方法,请参照图5,图5示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S301,接收客户端发送的用于删除存储空间的删除命令,其中,删除命令包括待删除存储空间的标识。
步骤S302,依据待删除存储空间的标识及存储空间分布信息,从多个存储节点中确定待删除存储空间分布的第五存储节点。
在本实施例中,第五存储节点为待删除存储空间分布的存储节点20。
步骤S303,将第一存储区域中第五存储节点的分配配额清零,并向第五存储节点发送数据删除命令,以使第五存储节点按照本地的分配配额释放待删除存储空间。
在本实施例中,第五存储节点收到数据删除命令后,除了按照第五存储节点的分配配额释放本地的待删除存储空间,在将本地的待删除存储空间释放后,还需要将保存在本地第二存储区域的分配配额清零。例如,第五存储节点为节点1~节点3,其上的待删除存储空间的分配配额分别为:100GB、200GB、300GB,管理节点10将数据删除命令分别发向节点1~节点3,数据删除命令包括待删除存储空间的标识,节点1收到该数据删除命令后,找到节点1与待删除存储空间的标识对应的100GB的存储空间,并将该100GB的存储空间释放,然后将节点1的第二存储区域保存的待删除存储空间的分配配额清0,节点2和节点3的处理过程与节点1类似,此处不再赘述。
本发明实施例提供的上述配额管理方法,当用户不再需要已创建的存储空间时,能够使该已创建的存储空间的分配配额及时得以更新,并将其在存储节点20中的空间及时释放。
在本实施例中,当已创建的存储空间的大小大于用户实际需要的大小时,为了使存储节点20的存储空间得以充分利用,避免存储空间的浪费,本发明实施例还提供另一种配额管理方法,请参照图6,图6示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S401,接收客户端发送的用于缩容存储空间的缩容命令,其中,缩容命令中包括待缩容存储空间的标识及待缩容容量。
步骤S402,依据待缩容存储空间的标识及存储空间分布信息,从多个存储节点中确定待缩容存储空间分布的第六存储节点。
在本实施例中,第六存储节点为待缩容存储空间分布的存储节点20。
步骤S403,依据第六存储节点的总配额和已用配额,得到第六存储节点的剩余配额。
在本实施例中,管理节点10的第一存储区域保存有各存储空间的分配配额包括总配额和已用配额,其中,总配额是存储空间创建时确定的,当用户对该存储空间进行删除、扩容、缩容或者配额调整时,该存储空间的总配额会随之更新,已用配额是管理节点10从该存储空间读取的实际使用的容量。例如,待缩容存储空间为根目录a,其大小为100GB,a分布的第六存储节点为节点1~节点3,其根目录a的总配额分别为:20GB、30GB、50GB,节点1的根目录a的已用配额为1GB,则节点1的根目录a的剩余配额为:20GB-1GB=19GB,当第六存储节点为多个时,每一第六存储节点均对应自己的总配额和已用配额,根据每一第六存储节点的总配额和已用配额,可以得到该第六存储节点的剩余配额。
步骤S404,按照待缩容容量减少第六存储节点的剩余配额。
在本实施例中,根据待缩容容量减少第六存储节点的一个或者多个节点的剩余配额,作为一种具体实施方式,减少剩余配额的方法可以是:
首先,按照每一第六存储节点的剩余配额从大到小排序。
其次,依次减少排序后的第六存储节点的剩余配额,直至第六存储节点的剩余配额的减少量的总和等于待缩容容量。
在本实施例中,对于排序后的第六存储节点中的任一第一当前节点,减少第一当前节点的剩余配额的具体实施方式可以为:
第一,若第一当前节点的剩余配额大于或者等于当前待缩容配额,则将当前待缩容配额作为本次缩容量,其中,当第一当前节点为第六存储节点中的第一个节点时,当前待缩容配额为待缩容容量。
第二,若第一当前节点的剩余配额小于当前待缩容配额,则将第一当前节点的剩余配额作为本次缩容量。
第三,将第一当前节点的剩余配额减少本次缩容量。
第四,将当前待缩容配额与本次缩容量的差值作为减少第一当前节点的下一个节点的剩余配额时的新的当前待缩容配额。
请参照图7,图7示出了本发明实施例提供的缩容时配额更新的示例过程图,图7(a)中,第六存储节点包括节点1~节点3,其剩余配额分别为:20GB、15GB和50GB;图7(b)是按照节点1~节点3的剩余配额从大到小的排序结果;图7(c)是减少节点3的剩余配额后各节点的剩余配额示例图;图7(d)是减少节点2的剩余配额后各节点的剩余配额示例图。由于节点3的剩余配额的减少量(50GB)和节点2的剩余配额的减少量(10GB)之和等于待缩容容量60GB,则缩容结束。
作为另一种实施方式,还可以减少第六存储节点剩余配额最大的预设个数的存储节点中的剩余配额,例如,第六存储节点为:节点1~节点5,按照剩余配额从大到小排序为:节点1、节点3、节点2、节点5、节点4,待缩容容量为50GB,可以将节点1的剩余配额减少25GB,将节点2的剩余配额减少15GB,将节点3的剩余配额减少10GB的方式进行缩容,还可以将节点1~节点5的剩余配额都减少的方式进行缩容等。
本发明实施例提供的上述配额管理方法,当已创建的存储空间的大小大于用户实际需要的大小时,通过对该存储空间的缩容,可以使存储节点20的存储空间得以充分利用,避免了存储空间的浪费。
在本实施例中,为了当有新的存储节点20加入分布式存储系统时,新加入的存储节点20可以快速地对外提供存储服务,本发明实施例还提供另一种配额管理方法,请参照图8,图8示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S501,接收客户端发送的用于添加存储节点的添加命令,其中,添加命令包括待添加存储节点的标识。
在本实施例中,存储节点20的标识用于唯一表征该存储节点20,可以用字母、数字或者字母、数字及其他字符组成的字符串。
步骤S502,将待添加存储节点的标识表征的待添加存储节点的服务状态设置为在线。
在本实施例中,当存储节点20的服务状态为在线时,意味着该存储节点20已经完成了对外提供存储服务的准备工作,即可以正常对外提供存储服务。
步骤S503,将待添加存储节点的标识及待添加存储节点的服务状态存储至第一存储区域。
在本实施例中,对于存储节点20新加入分布式存储系统时,其分配配额为0,即总配额和已用配额均为0。
本发明实施例提供的上述配额管理方法,当有新的存储节点20加入至分布式存储系统中时,由于只涉及到管理节点10的第一存储区域中服务状态和分配配额的更新,使该流程的处理过程简单、高效,由此使新加入的存储节点20可以快速地对外提供存储服务。
在本实施例中,对于已经加入分布式存储系统中的任一存储节点20,当其出现异常时,或者不再需要时,为了避免影响分布式存储系统的正常运行,需要及时将该存储节点20从分布式存储系统中删除,本发明实施例还提供另一种配额管理方法,请参照图9,图9示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S601,接收客户端发送的用于删除存储节点的节点删除命令,其中,节点删除命令包括待删除存储节点的标识。
步骤S602,将第一存储区域中存储的待删除存储节点的服务状态更新为离线。
在本实施例中,存储节点20的服务状态为离线意味着该存储节点20不能正常对外提供存储服务。
在本实施例中,当存储节点20出现异常时,此时该存储节点20上存储的所有数据均不再需要,此时,只需要将该存储节点20的服务状态更新为离线,其分配配额更新为0即可。
需要说明的是,还存在另一种将存储节点20从分布式存储系统中删除的情况,当一个存储节点20未出现异常,由于实际场景的需要,需要将其从分布式存储系统中删除时,此时需要先将该存储节点20上的数据迁移到其他服务状态为在线的存储节点20,然后再删除该存储节点20。
本发明实施例提供的上述配额管理方法,当存储节点20出现异常时,由于只涉及到管理节点10的第一存储区域中服务状态和分配配额的更新,可以及时将该存储节点20从分布式存储系统中删除,使该流程的处理过程简单、高效。
在本实施例中,当任一存储节点20基于接收到的写请求写数据时,发现本地分配配额不能满足本次写请求的要求时,为了保证该写请求得以正常处理,本发明实施例还提供另一种配额管理方法,请参照图10,图10示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S701,接收第一目标存储节点发送的配额调整请求,其中,第一目标存储节点为多个存储节点中接收到写请求的存储节点,写请求为客户端发送的、向第一目标存储节点的目标存储空间写数据的请求,配额调整请求是第一目标存储节点在向目标存储空间写数据时检测到本地的分配配额不足时向管理节点发出的,配额调整请求中包括目标存储空间的标识及调整量。
在本实施例中,目标存储空间为待写入数据的存储空间,目标存储空间可以分布于多个存储节点20,客户端在收到用户发送的写数据请求后,从多个存储节点20中选出一个存储节点20作为第一目标存储节点进行写数据,例如,目标存储空间为根目录a,a分布于节点1~节点3,用户通过客户端发起向根目录a写数据的写请求时,客户端可以首先根据预先设置数据均衡原则,从节点1~节点3中选出第一目标存储节点,再向第一目标存储节点发送数据写入请求。
在本实施例中,第一目标存储节点根据收到的写请求所需写入数据的大小及目标存储空间在本地的分配配额,判断本地的剩余配额是否能够满足本次写请求的要求,其中,分配配额可以包括总配额和已用配额,根据总配额和已用配额可以的得到剩余配额,分配配额还可以只包括总配额,此时,第一目标存储节点首先获取目标存储空间在本地的已用配额,然后再根据总配额和本地的已用配额得到剩余配额,若无法满足,则第一目标存储节点向管理节点10发送配额调整请求。
在本实施例中,调整量为第一目标存储节点根据收到的写请求所需写入数据的大小及目标存储空间在本地的剩余配额计算得到,例如,写请求所需写入数据的大小为20GB,本地的剩余配额为15GB,则调整量为:20GB-15GB=5GB。
步骤S702,依据目标存储空间的标识及存储空间分布信息,从多个存储节点中确定第二目标存储节点,其中,第二目标存储节点为目标存储空间的标识表征的目标存储空间分布的除第一目标存储节点之外的存储节点。
在本实施例中,依据目标存储空间的标识及存储空间分布信息,可以首先确定目标存储空间分布的存储节点20,然后将目标存储空间分布的存储节点20中除第一目标存储节点之外的其余的存储节点20作为第二目标存储节点,例如,根目录a分布于节点1~节点3,第一目标存储节点为节点1,则第二目标存储节点为节点2和节点3。
步骤S703,当第一目标存储节点的目标存储空间的总配额与第二目标存储节点的目标存储空间的总配额之和小于预设值,则判定目标存储空间存在预留配额。
在本实施例中,预设值可以是目标存储空间的大小,目标存储空间存在预留配额的情况可能是第二目标存储节点中至少存在一个存储节点的目标存储空间的分配配额为0。例如,根目录a在创建时分布于节点1~节点4,对应的分配配额分别为:20GB,30GB,40GB,50GB,即a的大小为140GB,a创建后,节点1的服务状态变为离线,则此时节点1的分配配额为0,此时,节点1~节点4的目标存储空间的总配额=30GB+40GB+50GB=120GB,小于a的大小140GB,则此时判定目标存储空间a存在预留配额。
步骤S704,若目标存储空间存在预留配额、且预留配额大于或者等于调整量,将第一目标存储节点的目标存储空间的总配额增加调整量。
在本实施例中,当预留配额可以满足调整量的需求时,则直接将第一目标存储节点的目标存储空间的总配额增加对应的调整量即可,例如,预留配额为20GB,调整量为10GB,则直接将第一目标存储节点的目标存储空间的总配额增加10GB。
步骤S705,若目标存储空间不存在预留配额,或者预留配额小于调整量,则按照预留配额及调整量调整第二目标存储节点的目标存储空间的总配额及第一目标存储节点的目标存储空间的总配额。
在本实施例中,如果不存在预留配额,或者预留配额不满足配额调整中的调整量的要求,则需要增加第一目标存储节点的目标存储空间的总配额,同时减少第二目标存储节点的目标存储空间的总配额,即保持第一目标存储节点的目标存储空间的总配额和第二目标存储节点的目标存储空间的总配额在调整前后均不会大于目标存储空间的大小。
作为一种具体实现方式,调整第一目标存储节点的目标存储空间的总配额和第二目标存储节点的目标存储空间的总配额的方法可以是:
首先,将调整量与预留配额的差值作为调整配额。
在本实施例中,预留配额不存在时,即预留配额为0,此时,调整量等于调整配额。
其次,依据每一第二目标存储节点的目标存储空间的总配额和已用配额,得到每一第二目标存储节点的目标存储空间的剩余配额。
第三,将第二目标存储节点按照剩余配额从大到小进行排序。
第四,按照预设规则依次减少排序后的每一第二目标存储节点的剩余配额,直至第二目标存储节点的剩余配额的减少量的总和大于或者等于调整配额。
在本实施例中,作为一种具体实施方式,依次减少排序后的每一第二目标存储节点的剩余配额,可以是对于排序后的第二目标存储节点中的任一节点,均按照同一预设规则减少该节点的剩余配额,预设规则可以是依次按照每一第二目标存储节点的最大允许减少量减少其剩余配额,直至满足调整配额的需求,例如,排序后的第二目标存储节点为:节点3,节点1,节点5,首先减少节点3的剩余配额,若节点3的剩余配额的减少量小于调整配额,再减少节点2的剩余配额,若节点3和节点2的剩余配额的减少量之和大于或者等于调整配额,此时结束配额调整。
需要说明的是,预设规则也可以是预先为剩余配额设置对应的减少比例,依次按照每一第二目标存储节点的减少比例减少其剩余配额,直至满足调整配额的需求。
为了便于说明,下面给出对第二目标存储节点中的任一节点的处理方法:
(1)若第二当前节点的剩余配额大于当前待调整配额的预设倍数,则将当前待调整配额的预设倍数作为当前调整量,其中,当第二当前节点为排序后的第二目标存储节点的第一个节点时,当前待调整配额为调整配额。
在本实施例中,将排序后的第二目标存储节点中当前正在处理的节点作为第二当前节点,例如,排序后的第二目标存储节点为:节点3,节点1,节点5,当减少节点3的剩余配额,此时节点3为第二当前节点,若节点3的剩余配额的减少量小于调整配额,再减少节点2的剩余配额,此时节点2为第二当前节点。
在本实施例中,当前待调整配额为第二当前节点之前的各节点调整后还需要调整的配额。当第二当前节点为排序后的第二目标存储节点的第一个节点时,当前待调整配额为调整配额。
在本实施例中,若第二当前节点的剩余配额比当前待调整配额大得足够多时,为了减少配额调整的次数,此时可以将第二当前节点的剩余配额的减少量设置为当前待调整配额的预设倍数,在本实施例中,预设倍数可以是2。
(2)若第二当前节点的剩余配额大于当前待调整配额、且小于或者等于当前待调整配额的预设倍数,则将当前待调整配额作为当前调整量。
在本实施例中,若第二当前节点的剩余配额比当前待调整配额大、但还未达到大得足够多时,此时,为了在满足当前调整配额的同时,还要为第二当前节点预留一定量的剩余配额,此时,按照当前待调整配额设置当前调整量。
(3)若第二当前节点的剩余配额小于当前待调整配额,则将第二当前节点的剩余配额作为当前调整量。
在本实施例中,第二当前节点的剩余配额小于调整配额,为了尽可能地保证当前写请求可以得以成功处理,此时将第二当前节点的剩余配额设置为当前调整量。
(4)将第一目标存储节点的总配额增加当前调整量,同时将第二当前节点的剩余配额减少当前调整量。
(5)根据当前调整量更新当前待调整配额,并将更新后的当前待调整配额作为对第二当前节点的下一个节点的剩余配额进行调整时新的当前待调整配额。
为了便于说明配额调整的过程,请参照图11,图11示出了本发明实施例提供的配额调整时配额更新的示例过程图,以预设倍数等于2为例。图11(a)中,第一目标存储节点为节点4,节点4的剩余配额为1GB,配额调整请求的调整量为9GB,第二目标存储节点为节点1~节点3,其剩余配额分别为:5GB、3GB、2GB,预设倍数为2。图11(b)是节点1调整后的各节点的剩余配额的示例图,图11(c)是节点2调整后的各节点的剩余配额的示例图,图11(d)是节点3调整后的各节点的剩余配额的示例图。
本发明实施例提供的上述配额管理方法,在第一目标存储节点的剩余配额不能满足写请求的需求时,可以动态地从第二目标存储节点上获取足够的配额,以便尽可能地保证本次写请求的成功执行,只要存在一个存储节点可以正常提供存储服务就能保证读写业务不中断,提高了分布式存储系统的可靠性和稳定性。
为了在存储节点20的服务状态从离线变为在线后能够尽快对外提供存储服务,本发明实施例还提供另一种配额管理方法,请参照图12,图12示出了本发明实施例提供的另一种配额管理方法的流程图,该方法包括以下步骤:
步骤S801,当检测到多个存储节点中任一第三目标存储节点的服务状态从离线变为在线时,从第三目标存储节点的第二存储区域读出第三目标存储节点中已创建存储空间的总配额。
在本实施例中,管理节点10可以按照预设周期循环检测分布式存储系统中的多个存储节点20。
在本实施例中,为了减少对第三目标存储节点的第二存储区域的空间的占用,第三目标存储节点的第二存储区域可以只保存已创建存储空间的总配额。
步骤S802,获取已创建存储空间在第三目标存储节点的已用容量。
在本实施例中,作为一种具体实现方式,已创建存储空间在第三目标存储节点的已用容量可以通过扫描第三目标存储节点中已创建存储空间中存储的文件的总大小得到。
步骤S803,将第三目标存储节点的已创建存储空间的总配额及第三目标存储节点的已创建存储空间的已用容量作为第三目标存储节点的分配配额存储至第一存储区域。
本发明实施例提供的上述配额管理方法,在存储节点20从离线变为上线时,及时将该存储节点20的分配配额信息更新至管理节点10的第一存储区域,使上线后的存储节点20尽快对外提供存储服务。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种配额管理装置的方框示意图的实现方式,请参看图13,图13示出了本发明实施例提供的配额管理装置100的方框示意图。需要说明的是,本实施例所提供的配额管理装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出,可参考上述实施例中的相应内容。
配额管理装置100包括创建模块110、扩容模块120、删除模块130、缩容模块140、节点增加模块150、节点减少模块160、配额调整模块170及重建模块180。
创建模块110,用于:接收客户端发送的用于创建存储空间的创建命令,其中,创建命令包括待创建存储空间的大小;依据每一存储节点的服务状态、每一存储节点的容量及待创建存储空间的大小,从多个存储节点中确定待创建存储空间分布的第一存储节点及第一存储节点的分配配额;将第一存储节点的分配配额保存在管理节点的第一存储区域,其中,第一存储区域为易失性存储介质;将第一存储节点的分配配额发送至第一存储节点,以使第一存储节点按照分配配额为待创建存储空间预留存储容量并将分配配额存储至第一存储节点的第二存储区域,其中,第二存储区域属于非易失性存储介质、且第二存储区域的读写性能低于第一存储区域。
具体地,服务状态包括在线和离线,创建模块110具体用于:将多个存储节点中服务状态为在线的存储节点作为第一存储节点;计算每一第一存储节点的容量占所有第一存储节点的容量之和的比例,作为该第一存储节点的配额比例;依据待创建存储空间的大小及每一第一存储节点的配额比例,计算该第一存储节点的待创建存储空间的分配配额。
扩容模块120,用于:接收客户端发送的用于扩容存储空间的扩容命令,其中,扩容命令包括待扩容存储空间的标识及待扩容空间的大小;依据每一存储节点的服务状态、每一存储节点的容量及待扩容空间的大小,确定待扩容空间分布的第二存储节点及在第二存储节点的分配配额;依据待扩容存储空间的标识及预先存储的存储空间分布信息,从多个存储节点中确定待扩容存储空间分布的第三存储节点,其中,存储空间分布信息包括存储空间标识、存储空间标识表征的存储空间分布的存储节点及对应的分配配额;将待扩容空间分布的第二存储节点及第二存储节点的分配配额与待扩容存储空间分布的第三存储节点及第三存储节点的分配配额合并,得到扩容后的待扩容存储空间分布的第四存储节点及在第四存储节点的分配配额。
删除模块130,用于:接收客户端发送的用于删除存储空间的删除命令,其中,删除命令包括待删除存储空间的标识;依据待删除存储空间的标识及存储空间分布信息,从多个存储节点中确定待删除存储空间分布的第五存储节点;将第一存储区域中第五存储节点的分配配额清零,并向第五存储节点发送数据删除命令,以使第五存储节点按照本地的分配配额释放待删除存储空间。
缩容模块140,用于在分配配额包括总配额和已用配额时,接收客户端发送的用于缩容存储空间的缩容命令,其中,缩容命令中包括待缩容存储空间的标识及待缩容容量;依据待缩容存储空间的标识及存储空间分布信息,从多个存储节点中确定待缩容存储空间分布的第六存储节点;依据第六存储节点的总配额和已用配额,得到第六存储节点的剩余配额;按照待缩容容量减少第六存储节点的剩余配额。
具体地,第六存储节点为多个,缩容模块140具体用于:按照每一第六存储节点的剩余配额从大到小排序;依次减少排序后的第六存储节点的剩余配额,直至第六存储节点的剩余配额的减少量的总和等于待缩容容量。
具体地,缩容模块140在执行依次减少排序后的第六存储节点的剩余配额,直至第六存储节点的剩余配额的减少量的总和等于待缩容容量的步骤时,具体用于对于排序后的第六存储节点中的任一第一当前节点,减少第一当前节点的剩余配额时,用于执行:若第一当前节点的剩余配额大于或者等于当前待缩容配额,则将当前待缩容配额作为本次缩容量,其中,当第一当前节点为第六存储节点中的第一个节点时,当前待缩容配额为待缩容容量;若第一当前节点的剩余配额小于当前待缩容配额,则将第一当前节点的剩余配额作为本次缩容量;将第一当前节点的剩余配额减少本次缩容量;将当前待缩容配额与本次缩容量的差值作为减少第一当前节点的下一个节点的剩余配额时的新的当前待缩容配额。
节点增加模块150,在第一存储区域还存储有每一所述存储节点的标识及对应的存储节点的服务状态,所述服务状态包括在线时,用于:接收客户端发送的用于添加存储节点的添加命令,其中,添加命令包括待添加存储节点的标识;将待添加存储节点的标识表征的待添加存储节点的服务状态设置为在线;将待添加存储节点的标识及待添加存储节点的服务状态存储至第一存储区域。
节点减少模块160,在第一存储区域还存储有每一所述存储节点的标识及对应的存储节点的服务状态,服务状态还包括离线时,用于:接收客户端发送的用于删除存储节点的节点删除命令,其中,节点删除命令包括待删除存储节点的标识;将第一存储区域中存储的待删除存储节点的服务状态更新为离线。
配额调整模块170,在分配配额包括总配额和已用配额时,用于:接收第一目标存储节点发送的配额调整请求,其中,第一目标存储节点为多个存储节点中接收到写请求的存储节点,写请求为客户端发送的、向第一目标存储节点的目标存储空间写数据的请求,配额调整请求是第一目标存储节点在向目标存储空间写数据时检测到本地的分配配额不足时向管理节点发出的,配额调整请求中包括目标存储空间的标识及调整量;依据目标存储空间的标识及存储空间分布信息,从多个存储节点中确定第二目标存储节点,其中,第二目标存储节点为目标存储空间的标识表征的目标存储空间分布的除第一目标存储节点之外的存储节点;当第一目标存储节点的目标存储空间的总配额与第二目标存储节点的目标存储空间的总配额之和小于预设值,则判定目标存储空间存在预留配额;若目标存储空间存在预留配额、且预留配额大于或者等于调整量,将第一目标存储节点的目标存储空间的总配额增加调整量;若目标存储空间不存在预留配额,或者预留配额小于调整量,则按照预留配额及调整量调整第二目标存储节点的目标存储空间的总配额及第一目标存储节点的目标存储空间的总配额。
具体地,第二目标存储节点为多个,配额调整模块170具体用于:将调整量与预留配额的差值作为调整配额;依据每一第二目标存储节点的目标存储空间的总配额和已用配额,得到每一第二目标存储节点的目标存储空间的剩余配额;将第二目标存储节点按照剩余配额从大到小进行排序;按照预设规则依次减少排序后的每一第二目标存储节点的剩余配额,直至第二目标存储节点的剩余配额的减少量的总和大于或者等于调整配额。
具体地,配额调整模块170在执行按照预设规则依次减少排序后的每一所述第二目标存储节点的剩余配额的步骤时具体用于:若第二当前节点的剩余配额大于当前待调整配额的预设倍数,则将当前待调整配额的预设倍数作为当前调整量,其中,当第二当前节点为排序后的第二目标存储节点的第一个节点时,当前待调整配额为调整配额;若第二当前节点的剩余配额大于当前待调整配额、且小于当前待调整配额的预设倍数,则将当前待调整配额作为当前调整量;若第二当前节点的剩余配额小于当前待调整配额,则将第二当前节点的剩余配额作为当前调整量;将第一目标存储节点的总配额增加当前调整量,同时将第二当前节点的剩余配额减少当前调整量;根据当前调整量更新当前待调整配额,并将更新后的当前待调整配额作为对第二当前节点的下一个节点的剩余配额进行调整时新的当前待调整配额。
重建模块180,当分配配额包括总配额及已用配额时,用于:当检测到多个存储节点中任一第三目标存储节点的服务状态从离线变为在线时,从第三目标存储节点的第二存储区域读出第三目标存储节点中已创建存储空间的总配额;获取已创建存储空间在第三目标存储节点的已用容量;将第三目标存储节点的已创建存储空间的总配额及第三目标存储节点的已创建存储空间的已用容量作为第三目标存储节点的分配配额存储至第一存储区域。
综上所述,本发明实施例提供了一种配额管理方法、装置、管理节点及存储介质,应用于分布式存储系统中的管理节点,管理节点与客户端及多个存储节点均通信连接,所述方法包括:接收客户端发送的用于创建存储空间的创建命令,其中,创建命令包括待创建存储空间的大小;依据每一存储节点的服务状态、每一存储节点的容量及待创建存储空间的大小,从多个存储节点中确定待创建存储空间分布的第一存储节点及第一存储节点的分配配额;将第一存储节点的分配配额保存在管理节点的第一存储区域,其中,第一存储区域为易失性存储介质;将第一存储节点的分配配额发送至第一存储节点,以使第一存储节点按照分配配额为待创建存储空间预留存储容量并将分配配额存储至第一存储节点的第二存储区域,其中,第二存储区域属于非易失性存储介质、且第二存储区域的读写性能低于第一存储区域。与现有技术相比,本发明实施例通过将每个存储节点的分配配额保存至自身存储节点中的非易失性存储区域中,将所有存储节点的分配配额保存至管理节点中的易失性存储区域中,并且易失性存储区域的读写性能高于非易失性存储区域,由此,既保证了管理节点访问分配额度的高效性,又能使每个存储节点只需要保存自己的分配额度,提高了分配额度保存时的并发性,保证了分配额度的高效保存。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种配额管理方法,其特征在于,应用于分布式存储系统中的管理节点,所述管理节点与客户端及多个存储节点均通信连接,所述方法包括:
接收所述客户端发送的用于创建存储空间的创建命令,其中,所述创建命令包括待创建存储空间的大小;
依据每一所述存储节点的服务状态、每一所述存储节点的容量及所述待创建存储空间的大小,从所述多个存储节点中确定所述待创建存储空间分布的第一存储节点及所述第一存储节点的分配配额;
将所述第一存储节点的分配配额保存在所述管理节点的第一存储区域,其中,所述第一存储区域为易失性存储介质;
将所述第一存储节点的分配配额发送至所述第一存储节点,以使所述第一存储节点按照所述分配配额为所述待创建存储空间预留存储容量并将所述分配配额存储至所述第一存储节点的第二存储区域,其中,所述第二存储区域属于非易失性存储介质、且所述第二存储区域的读写性能低于所述第一存储区域;
根据上述步骤获取所述创建存储空间命令确定的每个存储节点及分配配额,将每个存储节点的分配配额保存至自身存储节点中的非易失性存储区域,并将所有存储节点的分配配额保存至管理节点中的易失性存储区域,并且所述易失性存储区域的读写性能高于所述非易失性存储区域。
2.如权利要求1所述的配额管理方法,其特征在于,所述服务状态包括在线和离线,所述依据每一所述存储节点的服务状态、每一所述存储节点的容量及所述待创建存储空间的大小,从所述多个存储节点中确定所述待创建存储空间分布的第一存储节点及所述第一存储节点的分配配额的步骤包括:
将所述多个存储节点中服务状态为在线的存储节点作为所述第一存储节点;
计算每一所述第一存储节点的容量占所有所述第一存储节点的容量之和的比例,作为该第一存储节点的配额比例;
依据所述待创建存储空间的大小及每一所述第一存储节点的配额比例,计算该第一存储节点的所述待创建存储空间的分配配额。
3.如权利要求1所述的配额管理方法,其特征在于,所述方法还包括:
接收所述客户端发送的用于扩容存储空间的扩容命令,其中,所述扩容命令包括待扩容存储空间的标识及待扩容空间的大小;
依据每一所述存储节点的服务状态、每一所述存储节点的容量及所述待扩容空间的大小,确定所述待扩容空间分布的第二存储节点及在所述第二存储节点的分配配额;
依据所述待扩容存储空间的标识及预先存储的存储空间分布信息,从所述多个存储节点中确定所述待扩容存储空间分布的第三存储节点,其中,所述存储空间分布信息包括存储空间标识、所述存储空间标识表征的存储空间分布的存储节点及对应的分配配额;
将所述待扩容空间分布的第二存储节点及所述第二存储节点的分配配额与所述待扩容存储空间分布的第三存储节点及所述第三存储节点的分配配额合并,得到扩容后的所述待扩容存储空间分布的第四存储节点及在所述第四存储节点的分配配额。
4.如权利要求3所述的配额管理方法,其特征在于,所述方法还包括:
接收所述客户端发送的用于删除存储空间的删除命令,其中,所述删除命令包括待删除存储空间的标识;
依据所述待删除存储空间的标识及所述存储空间分布信息,从所述多个存储节点中确定所述待删除存储空间分布的第五存储节点;
将所述第一存储区域中第五存储节点的分配配额清零,并向所述第五存储节点发送数据删除命令,以使所述第五存储节点按照本地的分配配额释放所述待删除存储空间。
5.如权利要求3所述的配额管理方法,其特征在于,所述分配配额包括总配额和已用配额,所述方法还包括:
接收所述客户端发送的用于缩容存储空间的缩容命令,其中,所述缩容命令中包括待缩容存储空间的标识及待缩容容量;
依据所述待缩容存储空间的标识及所述存储空间分布信息,从所述多个存储节点中确定所述待缩容存储空间分布的第六存储节点;
依据所述第六存储节点的总配额和已用配额,得到所述第六存储节点的剩余配额;
按照所述待缩容容量减少所述第六存储节点的剩余配额。
6.如权利要求5所述的配额管理方法,其特征在于,所述第六存储节点为多个,所述按照所述待缩容容量减少所述第六存储节点的剩余配额的步骤包括:
按照每一所述第六存储节点的剩余配额从大到小排序;
依次减少排序后的所述第六存储节点的剩余配额,直至所述第六存储节点的剩余配额的减少量的总和等于所述待缩容容量。
7.如权利要求6所述的配额管理方法,其特征在于,所述依次减少排序后的所述第六存储节点的剩余配额,直至所述第六存储节点的剩余配额的减少量的总和等于所述待缩容容量的步骤包括:
对于排序后的第六存储节点中的任一第一当前节点,减少所述第一当前节点的剩余配额的步骤为:
若所述第一当前节点的剩余配额大于或者等于当前待缩容配额,则将所述当前待缩容配额作为本次缩容量,其中,当所述第一当前节点为所述第六存储节点中的第一个节点时,所述当前待缩容配额为所述待缩容容量;
若所述第一当前节点的剩余配额小于所述当前待缩容配额,则将所述第一当前节点的剩余配额作为本次缩容量;
将所述第一当前节点的剩余配额减少所述本次缩容量;
将当前待缩容配额与所述本次缩容量的差值作为减少所述第一当前节点的下一个节点的剩余配额时的新的当前待缩容配额。
8.如权利要求1所述的配额管理方法,其特征在于,所述第一存储区域还存储有每一所述存储节点的标识及对应的存储节点的服务状态,所述服务状态包括在线,所述方法还包括:
接收所述客户端发送的用于添加存储节点的添加命令,其中,所述添加命令包括待添加存储节点的标识;
将所述待添加存储节点的标识表征的待添加存储节点的服务状态设置为在线;
将所述待添加存储节点的标识及所述待添加存储节点的服务状态存储至所述第一存储区域。
9.如权利要求8所述的配额管理方法,其特征在于,所述服务状态还包括离线,所述方法还包括:
接收所述客户端发送的用于删除存储节点的节点删除命令,其中,所述节点删除命令包括待删除存储节点的标识;
将所述第一存储区域中存储的所述待删除存储节点的服务状态更新为离线。
10.如权利要求3所述的配额管理方法,其特征在于,所述分配配额包括总配额和已用配额,所述方法还包括:
接收第一目标存储节点发送的配额调整请求,其中,所述第一目标存储节点为所述多个存储节点中接收到写请求的存储节点,所述写请求为所述客户端发送的、向所述第一目标存储节点的目标存储空间写数据的请求,所述配额调整请求是所述第一目标存储节点在向所述目标存储空间写数据时检测到本地的分配配额不足时向所述管理节点发出的,所述配额调整请求中包括所述目标存储空间的标识及调整量;
依据所述目标存储空间的标识及所述存储空间分布信息,从所述多个存储节点中确定第二目标存储节点,其中,所述第二目标存储节点为所述目标存储空间的标识表征的所述目标存储空间分布的除所述第一目标存储节点之外的存储节点;
当所述第一目标存储节点的所述目标存储空间的总配额与所述第二目标存储节点的所述目标存储空间的总配额之和小于预设值,则判定所述目标存储空间存在预留配额;
若所述目标存储空间存在预留配额、且所述预留配额大于或者等于所述调整量,将所述第一目标存储节点的所述目标存储空间的总配额增加所述调整量;
若所述目标存储空间不存在预留配额,或者所述预留配额小于所述调整量,则按照所述预留配额及所述调整量调整所述第二目标存储节点的所述目标存储空间的总配额及所述第一目标存储节点的所述目标存储空间的总配额。
11.如权利要求10所述的配额管理方法,其特征在于,所述第二目标存储节点为多个,所述按照所述预留配额及所述调整量调整所述第二目标存储节点的所述目标存储空间的总配额及所述第一目标存储节点的所述目标存储空间的总配额的步骤包括:
将所述调整量与所述预留配额的差值作为调整配额;
依据每一所述第二目标存储节点的所述目标存储空间的总配额和已用配额,得到每一所述第二目标存储节点的所述目标存储空间的剩余配额;
将所述第二目标存储节点按照所述剩余配额从大到小进行排序;
按照预设规则依次减少排序后的每一所述第二目标存储节点的剩余配额,直至所述第二目标存储节点的剩余配额的减少量的总和大于或者等于所述调整配额。
12.如权利要求11所述的配额管理方法,其特征在于,所述按照预设规则依次减少排序后的每一所述第二目标存储节点的剩余配额的步骤包括:
对于排序后的第二目标存储节点中的任一第二当前节点,按照预设规则减少所述第二当前节点的剩余配额的步骤为:
若所述第二当前节点的剩余配额大于当前待调整配额的预设倍数,则将所述当前待调整配额的预设倍数作为当前调整量,其中,当所述第二当前节点为排序后的第二目标存储节点的第一个节点时,所述当前待调整配额为所述调整配额;
若所述第二当前节点的剩余配额大于所述当前待调整配额、且小于所述当前待调整配额的所述预设倍数,则将所述当前待调整配额作为当前调整量;
若所述第二当前节点的剩余配额小于所述当前待调整配额,则将所述第二当前节点的剩余配额作为当前调整量;
将所述第一目标存储节点的总配额增加所述当前调整量,同时将所述第二当前节点的剩余配额减少所述当前调整量;
根据所述当前调整量更新所述当前待调整配额,并将更新后的当前待调整配额作为对所述第二当前节点的下一个节点的剩余配额进行调整时新的当前待调整配额。
13.如权利要求1所述的配额管理方法,其特征在于,所述分配配额包括总配额及已用配额,所述方法还包括:
当检测到所述多个存储节点中任一第三目标存储节点的服务状态从离线变为在线时,从所述第三目标存储节点的第二存储区域读出所述第三目标存储节点中已创建存储空间的总配额;
获取所述已创建存储空间在所述第三目标存储节点的已用容量;
将所述第三目标存储节点的所述已创建存储空间的总配额及所述第三目标存储节点的所述已创建存储空间的已用容量作为所述第三目标存储节点的分配配额存储至所述第一存储区域。
14.一种配额管理装置,其特征在于,应用于分布式存储系统中的管理节点,所述管理节点与客户端及多个存储节点均通信连接,所述装置包括创建模块,所述创建模块用于:
接收所述客户端发送的用于创建存储空间的创建命令,其中,所述创建命令包括待创建存储空间的大小;
依据每一所述存储节点的服务状态、每一所述存储节点的容量及所述待创建存储空间的大小,从所述多个存储节点中确定所述待创建存储空间分布的第一存储节点及所述第一存储节点的分配配额;
将所述第一存储节点的分配配额保存在所述管理节点的第一存储区域,其中,所述第一存储区域为易失性存储介质;
将所述第一存储节点的分配配额发送至所述第一存储节点,以使所述第一存储节点按照所述分配配额为所述待创建存储空间预留存储容量并将所述分配配额存储至所述第一存储节点的第二存储区域,其中,所述第二存储区域属于非易失性存储介质、且所述第二存储区域的读写性能低于所述第一存储区域;
根据上述步骤获取所述创建存储空间命令确定的每个存储节点及分配配额,将每个存储节点的分配配额保存至自身存储节点中的非易失性存储区域,并将所有存储节点的分配配额保存至管理节点中的易失性存储区域,并且所述易失性存储区域的读写性能高于所述非易失性存储区域。
15.一种管理节点,其特征在于,应用于分布式存储系统,所述管理节点与客户端及多个存储节点均通信连接,所述管理节点包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-13中任一项所述的配额管理方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-13中任一项所述的配额管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403953.8A CN111552677B (zh) | 2020-05-13 | 2020-05-13 | 配额管理方法、装置、管理节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403953.8A CN111552677B (zh) | 2020-05-13 | 2020-05-13 | 配额管理方法、装置、管理节点及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552677A CN111552677A (zh) | 2020-08-18 |
CN111552677B true CN111552677B (zh) | 2021-01-26 |
Family
ID=72002707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010403953.8A Active CN111552677B (zh) | 2020-05-13 | 2020-05-13 | 配额管理方法、装置、管理节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552677B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760940B (zh) * | 2020-09-24 | 2024-10-18 | 北京沃东天骏信息技术有限公司 | 应用于分布式系统的配额管理方法、装置、设备及介质 |
CN112256204B (zh) * | 2020-10-28 | 2022-06-03 | 重庆紫光华山智安科技有限公司 | 存储资源分配方法、装置、存储节点及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10353965B2 (en) * | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
CN107589915B (zh) * | 2017-09-25 | 2020-05-29 | 郑州云海信息技术有限公司 | 一种分布式存储系统的容量信息监控方法、装置及设备 |
CN108829352B (zh) * | 2018-06-06 | 2021-03-30 | 郑州云海信息技术有限公司 | 一种分布式存储系统的用户配额方法及系统 |
-
2020
- 2020-05-13 CN CN202010403953.8A patent/CN111552677B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111552677A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656763B2 (en) | File management method, distributed storage system, and management node | |
CN107807794B (zh) | 一种数据存储方法和装置 | |
CN104657316B (zh) | 服务器 | |
US8918609B2 (en) | Storage apparatus and data management method to determine whether to migrate data from a first storage device to a second storage device based on an access frequency of a particular logical area | |
US10409508B2 (en) | Updating of pinned storage in flash based on changes to flash-to-disk capacity ratio | |
US8521685B1 (en) | Background movement of data between nodes in a storage cluster | |
US7778960B1 (en) | Background movement of data between nodes in a storage cluster | |
US10852966B1 (en) | System and method for creating mapped RAID group during expansion of extent pool | |
US20210004166A1 (en) | Data writing method, client server, and system | |
CN109299190B (zh) | 分布式存储系统中处理对象的元数据的方法及装置 | |
US20180203637A1 (en) | Storage control apparatus and storage control program medium | |
EP3739440A1 (en) | Distributed storage system, data processing method and storage node | |
JP7467593B2 (ja) | リソース割振り方法、記憶デバイス、および記憶システム | |
CN107463342B (zh) | 一种cdn边缘节点文件的存储方法及装置 | |
CN109445687B (zh) | 一种数据存储方法以及协议服务器 | |
US20180004447A1 (en) | Storage system | |
CN111552677B (zh) | 配额管理方法、装置、管理节点及存储介质 | |
US20150293719A1 (en) | Storage Space Processing Method and Apparatus, and Non-Volatile Computer Readable Storage Medium | |
US7849264B2 (en) | Storage area management method for a storage system | |
US11899533B2 (en) | Stripe reassembling method in storage system and stripe server | |
US20170262220A1 (en) | Storage control device, method of controlling data migration and non-transitory computer-readable storage medium | |
US10013425B1 (en) | Space-efficient persistent block reservation optimized for compression | |
EP3859506A1 (en) | Node expansion method in storage system and storage system | |
US20160291899A1 (en) | Storage control device and storage system | |
WO2020083106A1 (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 |