CN110019083A - 分布式文件***的存储方法、装置、电子设备及存储介质 - Google Patents
分布式文件***的存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110019083A CN110019083A CN201710849424.9A CN201710849424A CN110019083A CN 110019083 A CN110019083 A CN 110019083A CN 201710849424 A CN201710849424 A CN 201710849424A CN 110019083 A CN110019083 A CN 110019083A
- Authority
- CN
- China
- Prior art keywords
- disk
- size
- memory
- space
- reserved 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.)
- Granted
Links
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- 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
-
- 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
-
- 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
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分布式文件***的存储方法、装置、电子设备及存储介质;所述分布式文件***的存储方法包括:根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。本申请至少一个实施例能够动态调整分布式文件***中用户程序的存储空间。
Description
技术领域
本发明涉及分布式文件***,尤其涉及一种分布式文件***的存储方法、装置、电子设备及存储介质。
背景技术
分布式文件***中,包含由分布式文件***管理的用于存储实际用户数据的物理机器,一般被称为数据存储节点。在数据存储节点中,对于磁盘的使用通常是将磁盘分为***盘和数据盘;数据盘一般用于存储分布式文件***所管理的用户数据,***盘一般用于存储操作***、数据存储节点管理程序(用于管理数据存储节点上磁盘空间及用户数据的程序)等。其中,数据盘受分布式文件***统一管理,全部用于存储用户写入分布式文件***的用户数据(即分布式文件***所管理的用户数据)。
通常,数据存储节点中除了数据存储节点管理程序之外,还会有其它用户程序运行,这些用户程序同样有数据存储的需求。这些用户程序和分布式文件***可以看成是应用层上的不同应用,因此用户程序的数据存储并不受分布式文件***管理。为了满足数据存储节点上运行的用户程序的存储需求,目前有以下两种解决方案:
一种是使用不受分布式文件***管理的独立磁盘供用户程序使用;
一种是使用不受分布式文件***管理的独立的磁盘分区供用户程序使用。
上述解决方案存在如下问题:
使用独立磁盘分区,或者独立磁盘满足用户程序的存储需求时,独立磁盘分区或者独立磁盘的大小均是提前确定的,无法根据用户程序的实际存储需求进行动态调整;
在独立磁盘分区,或者独立磁盘在出现硬件故障的情况下,只能通过维修硬件来达到修复空间的目的。
发明内容
本申请提供一种分布式文件***的存储方法、装置、电子设备及存储介质,能够动态调整分布式文件***中用户程序的存储空间。
本申请采用如下技术方案。
一种分布式文件***的存储方法,包括:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
其中,所述根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间可以包括:
分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
其中,所述的存储方法还可以包括:
根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
其中,所述的存储方法还可以包括:
当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
其中,所述相应大小的用户数据可以是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
一种分布式文件***的存储装置,包括:
确定模块,用于根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
存储模块,用于根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
其中,所述确定模块根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间可以包括:
所述确定模块分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
其中,所述的存储装置还可以包括:
更新模块,用于根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
其中,所述的存储装置还可以包括:
数据迁移模块,用于当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
其中,所述相应大小的用户数据可以是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
一种用于在分布式文件***进行存储的电子设备,包括:存储器和处理器;
所述存储器用于保存用于在分布式文件***进行存储的程序;所述用于在分布式文件***进行存储管理的程序在被所述处理器读取执行时,执行以下操作:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
一种存储介质,所述存储介质存储有用于在分布式文件***进行存储的程序;所述用于在分布式文件***进行存储的程序被执行时进行如下操作:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
本申请包括以下优点:
本申请至少一个实施例由分布式文件***统一管理用户数据的存储空间和供用户程序使用的存储空间,可以根据配置信息保留部分磁盘空间供用户程序使用,这样可以根据需求调整供用户程序使用的存储空间,可以更加灵活地满足数据存储节点上用户程序的数据存储需求。
本申请实施例的一种实现方式中,通过更新配置信息的方式,可以动态修改预留空间的参数,满足用户程序存储需求的动态变化。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
图1是实施例一的分布式文件***的存储方法的流程图;
图2是实施例一的例子中磁盘的数据盘中存储空间的示意图;
图3是实施例一的例子中磁盘的数据盘中保存用户数据后,存储空间的示意图;
图4a是实施例一的例子中要增大预留空间时存储空间的示意图;
图4b是实施例一的例子中预留空间增大后存储空间的示意图;
图5是实施例二的分布式文件***的存储装置的示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实现方式中的不同特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种配置中,数据存储节点或分布式文件***中进行存储的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。内存可能包括一个或多个模块。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本文中,用户数据可以是指用户写入分布式文件***的、由分布式文件***管理的数据(一般是由数据存储节点管理程序管理),可以存储在分布式文件***的数据存储节点的磁盘中。
用户程序所需要存储的数据可以包括以下一种或多种:用户程序的输入数据、运行过程中产生的过程数据、运行环境数据、运行结果数据等。用户程序本身的代码或者可执行文件可以和上述用户数据一起存储,也可以存储在供用户程序使用的存储空间中,由用户自行选择。
实施例一、一种分布式文件***的存储方法,如图1所示,包括步骤S110~S120:
S110、根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
S120、根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
本实施例中,可以由分布式文件***统一安排用户数据的存储空间和供用户程序使用的存储空间(即上述预留空间),可以根据配置信息保留部分磁盘空间供用户程序使用,这样可以根据需求调整用户程序的存储空间,可以更加灵活地满足数据存储节点上用户程序的数据存储需求。
本实施例中,分布式文件***可以在原先用于存储用户数据的磁盘的数据盘中保留一部分存储空间作为预留空间,供用户程序使用,虽然预留空间中所存储的内容并不由分布式文件***管理,但预留空间本身可以由分布式文件***来统一管理。也就是说,虽然用户数据的存储空间和供用户程序使用的存储空间仍是相互隔离的,分布式文件***不能对预留空间进行读写,但用户数据的存储空间、和供用户程序使用的存储空间这两者可以由分布式文件***进行统一管理。
本实施例中,所述多个磁盘可以是分布式文件中的全部或部分磁盘。
本实施例中,可以在写入用户数据时确定多个磁盘上的可用存储空间,也可以在每次写入用户数据后,更新用户数据本次写入的磁盘上的可用存储空间,这样向分布式文件***写入用户数据时,磁盘上的可用存储空间是已确定的。
本实施例的方法可以但不限于由分布式文件***中的数据存储节点执行,比如通过对现有的数据存储节点管理程序进行升级,来实现本实施例的方法。
本实施例中,所述多个磁盘上的预留空间的参数可以相同也可以不同;当不同磁盘上的预留空间的参数不同时,配置信息中可以分别指定不同磁盘上的预留空间的参数。其中,预留空间的参数可以包括以下一项或多项:预留空间的大小、地址范围等。
本实施例中,当预留空间的参数包括大小时,可以在配置信息中直接指定不同磁盘上的预留空间的大小,也可以指定总的预留空间的大小,由数据存储节点自行指定不同磁盘上预留空间的大小。
本实施例中,磁盘上作为预留空间的存储空间可以不用预先指定好,也就是说可以只设置磁盘上预留空间的大小,但不规定具体哪些存储空间作为预留空间。当在一个磁盘中既要存储写入分布式文件***的用户数据,又要存储用户程序所需要存储的数据时,可以由底层操作***来保证两者之间不会产生冲突,即不会占用相同的存储空间。
本实施例中,磁盘上作为预留空间的存储空间也可以预先指定好,比如哪些地址的存储空间作为预留空间。
本实施例中,可以根据多个磁盘上的可用存储空间,分配分布式文件***的用户数据到相应磁盘存储,当一个磁盘上无可用存储空间(比如该磁盘上的可用存储空间的大小为0)后,可以就不再分配用户数据到该磁盘上,达到保留所述预留空间给用户程序使用的目的。
本实施例中,在分配分布式文件***的用户数据到相应磁盘存储时,可以根据预设策略进行该分配;该预设策略可以根据实际需求设置或修改。
本实施例中,所述配置信息可以由用户设置或修改,也可以由***管理员等进行设置或修改。可以通过调用远程调用接口的方式来设置或修改配置信息,也可以由分布式文件***分发设置或修改好的配置信息到数据存储节点或步骤S110的执行主体保存,这样执行步骤S110时就可以读取所保存的配置信息。
本实施例中,配置信息的形式不限,可以是配置文件、参数列表等。
一种实现方式中,所述方法还可以包括:
将磁盘上作为预留空间的存储空间虚拟化成一个或多个供用户程序使用的磁盘。
本实现方式中,可以先在磁盘上分配存储空间作为预留空间,记录磁盘上分配作为预留空间的存储空间的地址或地址范围,将所记录的地址或地址范围对应的存储空间虚拟化成一个或多个磁盘,提供给用户程序使用。
采用本实现方式后,对于用户而言,和采用独立磁盘或独立磁盘分区满足用户程序的存储需求时的情况一样,用户能了解到存在多少可以供用户程序使用的空间,而并不用了解供用户程序使用的存储空间具***于何处,是否和用户数据位于同一个磁盘上。
其它实现方式中,也可以不进行虚拟化,直接将分配作为预留空间的存储空间提供给用户程序使用。
一种实现方式中,所述根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间可以包括:
分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
其中,磁盘的数据盘存储空间的大小可以是指数据存储节点管理程序所管理的该磁盘的数据盘的总的存储空间的大小。
其中,用户数据已占用的存储空间可以是指该磁盘上已存储的用户数据所占用的存储空间。
本实现方式中,磁盘的数据盘存储空间中除了预留空间之外的存储空间,可以是该磁盘上用户数据占用的存储空间,即用于存储分布式文件***的用户数据的那部分存储空间;当分布式文件***的用户数据保存到一个磁盘时,就会占用该磁盘上用户数据的存储空间;用户数据的存储空间中,已被用户数据占用的那部分存储空间可以称为已用存储空间,其余部分是可用存储空间,即还能存储用户数据的存储空间。
比如磁盘数据盘的存储空间是1000M,预留空间是200M,则该磁盘上用户数据的存储空间为800M;如果已在该磁盘保存300M的用户数据,则该磁盘的可用存储空间是500M。
其它实现方式中,也可以记录磁盘的可用存储空间的大小S(如果磁盘中还未写入过用户数据,则S等于用户数据的存储空间的大小),在每次写入用户数据时,用所记录的S减去本次写入的数据量,用所得结果更新S,从而得到当前该磁盘上的可用存储空间的大小。
其它实现方式中,也可以根据磁盘中预留空间的地址范围,和用户数据已占用的存储空间的地址范围,确定可用存储空间的地址范围;还可以根据该地址范围确定可用存储空间的大小。
一种实现方式中,所述方法还可以包括:
根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
本实现方式中,用户可以修改预留空间的大小、地址范围等参数,配置信息中预留空间的参数将随之更新。
本实现方式中,当某个或某几个磁盘上预留空间的参数改变后,可以更新该磁盘或该些磁盘上的可用存储空间。
本实现方式中,初始时配置信息中预留空间的参数可以是预设值或默认值(比如初始时预留空间的大小可以为0),在用户需要运行用户程序时,可以调用远程调用接口修改配置信息中预留空间的参数。
本实现方式中,如果是对现有的分布式文件***进行更新以实现本实施例的存储方法,则可以将更新后分配预留空间的过程看成是将预留空间的大小从0更新成所设置的预留空间的大小的过程。
本实现方式中,用户可以指定修改某个或某几个磁盘上预留空间的参数,也可以是修改分布式文件***中预留空间的参数。在多个磁盘的预留空间的参数相同的情况下,用户所修改的预留空间的参数,将会应用于这多个磁盘。
本实现方式中,用户对预留空间的修改,可以是直接修改配置信息,也可以是在用户界面中调整预留空间,再根据用户的调整更新配置信息。其它实现方式中,也可以由数据存储节点分别设置多个磁盘上预留空间的参数;也可以只由用户设置数据存储节点上总的预留空间的参数,由数据存储节点根据预设的分配方案自行分配多个磁盘上的预留空间。
一种实现方式中,所述方法还可以包括:
当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
本实现方式中,当可用存储空间不足以增大预留空间时,可以释放用户数据已占用的存储空间作为预留空间。比如某个磁盘可用存储空间只有50M,而该磁盘上的预留空间需要增加200M,此时可以从用户数据已占用的存储空间中,迁移走150M的用户数据,这样空出150M存储空间,和原先50M的可用存储空间一起可以作为该磁盘上的预留空间的增加部分;更新该磁盘的可用存储空间的大小。
本实现方式中,相应大小的用户数据可以是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
本实现方式中,也可以将该磁盘中的用户数据复制到数据存储节点中的其它磁盘或者分布式文件***的其它数据存储节点,将已复制的用户数据所占用的存储空间视为可用存储空间,当在这部分可用存储空间中写入用户程序的数据时,可以直接覆盖已复制的用户数据。
本实现方式中,如果增加预留空间且该磁盘上的可用存储空间的大小达到或超过预留空间待增加的大小,或减小预留空间,则可以直接更新预留空间的大小,并采用更新后的预留空间的大小来确定磁盘上的可用存储空间。
本实现方式中,如果是对现有的分布式文件***进行更新以实现本实施例的存储方法,则可以将更新后分配预留空间的过程看成是增大预留空间的大小(从0增大成所设置的预留空间的大小)的过程。
其它实现方式中,也可以当可用存储空间不足以增大预留空间时,反馈增大失败的消息。
下面用一个例子说明本实施例。本例中,由数据存储节点管理程序执行本实施例的存储方法,预留空间的参数为预留空间的大小。
本例中,数据存储节点管理程序记录并持久化保存配置信息到本数据存储节点的磁盘上,以便数据存储节点重启时,能够正确设置预留空间的大小。
本例中,所述配置信息包括预留空间的大小;
本例中,配置信息中预留空间的大小可以但不限于由用户设置或修改。
本例中,数据存储节点管理程序可以向用户提供远程过程调用(remote processcalling,RPC)接口,允许用户通过调用数据存储节点管理程序的RPC,进行配置信息的修改。也可以采用其它方式将配置信息发送给数据存储节点管理程序。
本例中,不同的数据存储节点得到的配置信息可以相同或不同。
本例中,配置信息可能的格式可以包括如下两种:
(1)磁盘ID1:预留空间大小,…,磁盘IDn:预留空间大小。
(2)磁盘ID1|…|磁盘IDN,预留空间大小1|…|预留空间大小N。
实际应用中,配置信息的格式不限于上面列举的两种,可以是任意格式的,只要能被管理数据存储节点上存储空间的主体识别即可。
本例中,数据存储节点管理程序计算多个磁盘的可用存储空间的大小,根据多个磁盘的可用存储空间和预设策略,将用户数据保存到相应的磁盘。
本例中,数据存储节点管理程序在计算所在的数据存储节点中,某个磁盘的可用存储空间的大小时,查询自身保存的配置信息,如图2所示,先使用该磁盘的数据盘存储空间的大小减去配置信息中预留空间的大小,得到该磁盘上用户数据的存储空间的大小,即:
用户数据的存储空间的大小=磁盘的数据盘存储空间的大小-预留空间的大小 (式1)
本例中,磁盘的数据盘存储空间的大小即数据存储节点管理程序所管理的数据盘的总的存储空间的大小。
本例中,用户数据的存储空间即可用于存储分布式文件***所管理的用户数据(即用户写入分布式文件***的用户数据)的存储空间。
接着如图3所示,某个磁盘的可用存储空间根据用户数据的存储空间的大小(磁盘的数据盘存储空间的大小-预留空间的大小),以及该磁盘的已用存储空间(即分布式文件***在该磁盘上已存用户数据,或者分布式文件***该磁盘上的用户数据所占用的存储空间)的大小进行计算,即根据下式计算:
可用存储空间的大小=磁盘的数据盘存储空间的大小-预留空间的大小-已用存储空间的大小 (式2)
本例中,一个磁盘的可用存储空间(后文简称为可用存储空间)可以是指该磁盘上的可用于存储分布式文件***所管理的用户数据的剩余存储空间;一个磁盘的已用存储空间(后文简称为已用存储空间)可以是指该磁盘已存储的用户数据占用的存储空间。
本例中,已用存储空间的大小的获取方式有如下两种:
本例中,数据存储节点管理程序存储用户数据时可以在内存中记录统计值。
本例中,数据存储节点管理程序扫描相应磁盘上的所有用户数据的文件(即磁盘的数据盘中预留空间之外的所有文件)。
如果采用统计值的方式可以不需要访问磁盘,避免对磁盘的使用造成负担。
本例中,如果用户程序的存储空间的需求发生变化,则用户可以通过RPC接口发送修改配置信息的请求,数据存储节点管理程序接受RPC并更新配置信息,并进行相如下操作:
如果预留空间变小,则直接根据式(2)更新可用存储空间的大小的计算结果。
如果预留空间变大,则数据存储节点管理程序判断用户指定的磁盘上的可用存储空间的大小是否达到或超过预留空间待增加的大小,未达到的情况下进行数据复制,将一定大小(至少等于预留空间要求增加的大小减去可用存储空间的大小)的分布式文件***管理的用户数据,复制或移动到数据存储节点中的其它磁盘或者分布式文件***的其它数据存储节点,并对应修改数据存储节点管理程序记录的元数据,以达到释放存储空间给预留空间的目的,更新磁盘的可用存储空间的大小。如果可用存储空间的大小达到预留空间要求增加的大小,则可以直接根据式(2)更新该磁盘的可用存储空间的大小的计算结果。
假设一个磁盘中原先已无可用存储空间,即:已用存储空间的大小,等于用户数据的存储空间的大小,可用存储空间的大小为0,如图4a所示。此时需要增大该磁盘上的预留空间,图4a中斜线填充区域表示待增加的预留空间。
该情况下,要将图4a中斜线填充区域表示的存储空间中的用户数据,复制或移动到数据存储节点中的其它磁盘或者分布式文件***的其它数据存储节点中;复制或移动后的情况如图4b所示,预留空间变大,增大后的预留空间的大小等于原预留空间的大小加上增加的预留空间的大小,图4b中斜线填充区域表示增加的预留空间;已用存储空间的大小、以及用户数据的存储空间的大小都相应缩小。
需要说明的是,图2、3、4a、4b中是为了清楚示意预留空间和其它存储空间之间的关系,并不表示预留空间或任一存储空间必须是连续的。
实施例二、一种分布式文件***的存储装置,如图5所示,包括:
确定模块21,用于根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
存储模块22,用于根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
本实施例中,所述确定模块21是上述存储装置中负责确定可用存储空间的部分,可以是软件、硬件或两者的结合。
本实施例中,所述存储模块22是上述存储装置中负责将用户数据存储到磁盘的部分,可以是软件、硬件或两者的结合。
一种实现方式中,所述确定模块根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间可以包括:
所述确定模块分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
一种实现方式中,所述的存储装置还可以包括:
更新模块,用于根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
一种实现方式中,所述的存储装置还可以包括:
数据迁移模块,用于当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
本实现方式中,所述相应大小的用户数据可以是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
本实施例中,分布式文件***的存储装置的确定模块、存储模块的操作可以分别对应于实施例一中的步骤S110、S120,各模块操作的其它实现细节可参见实施例一。
实施例三、一种用于在分布式文件***进行存储的电子设备,包括:存储器和处理器;
所述存储器用于保存用于在分布式文件***进行存储的程序;所述用于在分布式文件***进行存储管理的程序在被所述处理器读取执行时,执行以下操作:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
一种实现方式中,所述根据多个磁盘上分别供用户程序使用的预留空间的大小,确定所述多个磁盘上的可用存储空间可以包括:
分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
一种实现方式中,所述用于在分布式文件***进行存储管理的程序在被所述处理器读取执行时,还可以执行以下操作:
根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
一种实现方式中,所述用于在分布式文件***进行存储管理的程序在被所述处理器读取执行时,还可以执行以下操作:
当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
本实现方式中,所述相应大小的用户数据可以是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
本实施例中,所述用于在分布式文件***进行存储管理的程序在被处理器读取执行时,所执行的操作对应于实施例一中的步骤S110~S120;该程序所执行的操作的其它细节可参见实施例一。
实施例四,一种存储介质,所述存储介质存储有用于在分布式文件***进行存储的程序;所述用于在分布式文件***进行存储的程序被执行时进行如下操作:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
本实施例中,所述用于在分布式文件***进行存储管理的程序在被执行时,所进行的操作对应于实施例一中的步骤S110~S120;该程序被执行时所进行的操作的其它细节可参见实施例一。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。
Claims (12)
1.一种分布式文件***的存储方法,包括:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
2.如权利要求1所述的存储方法,其特征在于,所述根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间包括:
分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
3.如权利要求1所述的存储方法,其特征在于,还包括:
根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
4.如权利要求1所述的存储方法,其特征在于,还包括:
当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
5.如权利要求4所述的存储方法,其特征在于:
所述相应大小的用户数据是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
6.一种分布式文件***的存储装置,其特征在于,包括:
确定模块,用于根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
存储模块,用于根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
7.如权利要求6所述的存储装置,其特征在于,所述确定模块根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间包括:
所述确定模块分别确定所述多个磁盘上的可用存储空间的大小;其中,任一个磁盘上的可用存储空间的大小为:该磁盘的数据盘的存储空间的大小,减去该磁盘上预留空间以及用户数据已占用的存储空间的大小。
8.如权利要求6所述的存储装置,其特征在于,还包括:
更新模块,用于根据用户调用远程调用接口对预留空间的修改,更新所述配置信息中预留空间的参数。
9.如权利要求6所述的存储装置,其特征在于,还包括:
数据迁移模块,用于当所述配置信息更新时,对于需要增大预留空间的磁盘,如果该磁盘上的可用存储空间的大小未达到预留空间待增加的大小,则将该磁盘中相应大小的用户数据移动到数据存储节点中的其它磁盘,或者移动到分布式文件***的其它数据存储节点,并对应修改元数据。
10.如权利要求9所述的存储装置,其特征在于:
所述相应大小的用户数据是指大小至少等于预留空间要求增加的大小减去可用存储空间的大小的用户数据。
11.一种用于在分布式文件***进行存储的电子设备,包括:存储器和处理器;其特征在于:
所述存储器用于保存用于在分布式文件***进行存储的程序;所述用于在分布式文件***进行存储管理的程序在被所述处理器读取执行时,执行以下操作:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间的大小根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
12.一种存储介质,其特征在于:
所述存储介质存储有用于在分布式文件***进行存储的程序;所述用于在分布式文件***进行存储的程序被执行时进行如下操作:
根据多个磁盘上分别供用户程序使用的预留空间,确定所述多个磁盘上的可用存储空间;所述预留空间根据配置信息确定;所述可用存储空间包括磁盘的数据盘中,除了所述预留空间之外的、还未被用户数据占用的存储空间;
根据所述多个磁盘上的可用存储空间,将分布式文件***的用户数据存储到相应磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710849424.9A CN110019083B (zh) | 2017-09-20 | 2017-09-20 | 分布式文件***的存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710849424.9A CN110019083B (zh) | 2017-09-20 | 2017-09-20 | 分布式文件***的存储方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019083A true CN110019083A (zh) | 2019-07-16 |
CN110019083B CN110019083B (zh) | 2023-01-24 |
Family
ID=67186298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710849424.9A Active CN110019083B (zh) | 2017-09-20 | 2017-09-20 | 分布式文件***的存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019083B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506547A (zh) * | 2020-12-16 | 2021-03-16 | 杭州和利时自动化有限公司 | 组态数据下装方法、装置、设备及可读存储介质 |
CN112558859A (zh) * | 2019-09-26 | 2021-03-26 | 杭州海康威视数字技术股份有限公司 | 硬盘、存储***及硬盘容量标记方法 |
CN113741816A (zh) * | 2021-08-31 | 2021-12-03 | 杭州海康威视数字技术股份有限公司 | 块设备的操作方法、装置、设备及机器可读存储介质 |
CN113778332A (zh) * | 2021-08-16 | 2021-12-10 | 联想凌拓科技有限公司 | 一种信息确定方法、第一存储服务器及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105009091A (zh) * | 2012-12-26 | 2015-10-28 | 西部数据技术公司 | 用于数据存储***的动态预留空间 |
CN105335441A (zh) * | 2014-08-12 | 2016-02-17 | 阳平 | 基于局域网的分布式文件*** |
-
2017
- 2017-09-20 CN CN201710849424.9A patent/CN110019083B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105009091A (zh) * | 2012-12-26 | 2015-10-28 | 西部数据技术公司 | 用于数据存储***的动态预留空间 |
CN105335441A (zh) * | 2014-08-12 | 2016-02-17 | 阳平 | 基于局域网的分布式文件*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558859A (zh) * | 2019-09-26 | 2021-03-26 | 杭州海康威视数字技术股份有限公司 | 硬盘、存储***及硬盘容量标记方法 |
CN112506547A (zh) * | 2020-12-16 | 2021-03-16 | 杭州和利时自动化有限公司 | 组态数据下装方法、装置、设备及可读存储介质 |
CN113778332A (zh) * | 2021-08-16 | 2021-12-10 | 联想凌拓科技有限公司 | 一种信息确定方法、第一存储服务器及存储介质 |
CN113741816A (zh) * | 2021-08-31 | 2021-12-03 | 杭州海康威视数字技术股份有限公司 | 块设备的操作方法、装置、设备及机器可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110019083B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9430388B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
CN110019083A (zh) | 分布式文件***的存储方法、装置、电子设备及存储介质 | |
US7673105B2 (en) | Managing memory pages | |
CN106227621B (zh) | 基于逻辑卷管理精简卷的数据备份方法及*** | |
CN104111897A (zh) | 一种数据处理方法、装置及计算机*** | |
CN103577483B (zh) | 数据存储方法和***以及数据访问的方法和*** | |
US10929293B2 (en) | Atomic operations for fabric shared memories | |
CN111880956A (zh) | 一种数据同步方法和装置 | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
CN110162396A (zh) | 内存回收方法、装置、***和存储介质 | |
CN113094183A (zh) | Ai训练平台的训练任务创建方法、装置、***及介质 | |
CN110427350A (zh) | 数据迁移中的数据处理方法及装置、存储设备及介质 | |
CN115982101B (zh) | 基于多机房副本放置策略的机房数据迁移方法与装置 | |
CN114610243B (zh) | 一种精简卷转换方法、***、存储介质及设备 | |
CN102203737A (zh) | 多线程访问多副本的方法和装置 | |
CN105868023B (zh) | 一种分布式***中的数据处理方法及计算节点 | |
CN114816272B (zh) | Kubernetes环境下的磁盘管理*** | |
CN112114958A (zh) | 资源隔离方法、分布式平台、计算机设备和存储介质 | |
WO2017142525A1 (en) | Allocating a zone of a shared memory region | |
CN113204520B (zh) | 一种基于分布式文件***的遥感数据快速并发读写方法 | |
CN108563507A (zh) | 一种内存管理方法、装置、设备及可读存储介质 | |
CN113568746A (zh) | 负载均衡方法、装置、电子设备及存储介质 | |
CN113411362A (zh) | 应用实例的控制方法、装置及设备 | |
CN115442388B (zh) | 用于分布式存储集群利用率100%的扩容方法、装置及*** | |
CN117666966A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010850 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |