CN116225711A - 云计算环境中使得虚拟磁盘的分配空间一致的方法及应用 - Google Patents
云计算环境中使得虚拟磁盘的分配空间一致的方法及应用 Download PDFInfo
- Publication number
- CN116225711A CN116225711A CN202310236580.3A CN202310236580A CN116225711A CN 116225711 A CN116225711 A CN 116225711A CN 202310236580 A CN202310236580 A CN 202310236580A CN 116225711 A CN116225711 A CN 116225711A
- Authority
- CN
- China
- Prior art keywords
- allocation unit
- space allocation
- space
- cluster
- new
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种云计算环境中使得虚拟磁盘的分配空间一致的方法及应用,该方法包括以下步骤:虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到本地,并将所述IO放入重发队列;本地收到所述信号后创建新的空间分配单元,并为空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群;集群收到所述副本路径并记录到集群数据库中;集群从重发队列中取出所述IO,将所述IO下发到本地,所述IO到达本地后被记录到journal中;若本地检查并发现所述空间分配单元存在new_created标记,则在内存中删除所述new_created标记。该方法能够保证虚拟磁盘对应的物理空间能够被正确分配,避免空间浪费。
Description
技术领域
本发明是关于电子通信领域,特别是关于一种云计算环境中使得虚拟磁盘的分配空间一致的方法及应用。
背景技术
在云计算环境中,用户一般不直接使用物理磁盘来存储内容。原因在于物理磁盘一旦损坏将会造成数据丢失,使得业务无法连续运行。为了避免单点故障,云计算环境中使用虚拟磁盘来规避因物理磁盘损坏而造成的业务中断。虚拟磁盘通过使用将数据拆分保存在多个磁盘的方法来避免单点故障。
现有技术中,一个虚拟磁盘主要由两部分组成,一是集群部分,二是本地部分。集群部分主要用于保存虚拟磁盘的元数据,其中本发明涉及相关的元数据主要是副本路径,副本路径指可以通过这个值找到数据所在的物理位置。本地部分主要用于提供实际的数据存储空间,并把数据存储的本地位置返回给集群。
假设将一个虚拟磁盘的地址空间按1GB大小进行分割,每一个1G空间称为extentgroup,extent group即指集群层面的空间最小分配单位,每个extent group由多个副本组成,每个副本有自己的副本路径。因为副本路径的一部分由本地提供,也可能在不同的物理计算机上,所以可能存在本地分配完空间后出现意外掉电的情况,造成本地空间已经分配完成但是集群还没有记录的情况,造成了空间的浪费。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种云计算环境中使得虚拟磁盘的分配空间一致的方法及应用,其能够保证虚拟磁盘对应的物理空间能够被正确分配,避免空间浪费。
为实现上述目的,本发明的实施例提供了一种云计算环境中使得虚拟磁盘的分配空间一致的方法。
在本发明的一个或多个实施方式中,磁盘空间分配的方法包括:S1:虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到虚拟磁盘的本地,并将所述IO放入重发队列;S2:本地收到所述创建空间分配单元的信号后,创建新的空间分配单元,并为所述空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群,其中所述new_created标记表示所述空间分配单元为新创建的空间分配单元,所述create_at标记表示所述空间分配单元的创建时间点;S3:集群收到所述副本路径并将所述副本路径记录到所述集群数据库中;S4:集群从所述重发队列中取出所述IO,并根据所述副本路径将所述IO下发到本地,所述IO到达本地后被记录到journal中;S5:若本地检查并发现所述空间分配单元存在new_created标记,则IO完成后在内存中删除所述new_created标记。
在本发明的一个或多个实施方式中,若在S2步骤完成后发生掉电情况,所述方法包括:供电恢复后,遍历本地的空间分配单元,查找存在new_created标记的空间分配单元;比较查找到该空间分配单元的当前时间点和该空间分配单元的create_at标记对应的时间点,获得时间差值;若所述时间差值大于最大IO延时,则删除该空间分配单元,并返回S1步骤。
在本发明的一个或多个实施方式中,若在S3步骤完成后到S5步骤完成前发生掉电情况,所述方法还包括:供电恢复后,比较本地的空间分配单元和最大IO延时;若空间分配单元的IO在最大IO延时之内,则进行S4步骤;若空间分配单元的IO超出最大IO延时,则删除集群数据库中该空间分配单元的副本路径,并返回S1步骤。
在本发明的一个或多个实施方式中,若在S2步骤完成前发生掉电情况,则在供电恢复后正常进行S1到S5步骤。
在本发明的一个或多个实施方式中,所述方法还包括:在journal做检查点时,所述内存中的数据被更新到所述虚拟磁盘中。
在本发明的一个或多个实施方式中,若在S5步骤完成后且在journal完成检查点前发生掉电情况,其特征在于,所述方法还包括:供电恢复后,所述new_created标记被重新加载到内存中且内存从journal中重新加载所述IO;以及执行所述IO时,在内存中删除所述IO对应的空间分配单元的new_created标记。
在本发明的另一个方面当中,提供了一种云计算环境中使得虚拟磁盘的分配空间一致的装置,其包括检测模块、创建模块、记录模块、下发模块和第一删除模块。
检测模块,用于虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到虚拟磁盘的本地,并将所述IO放入重发队列。
创建模块,用于本地收到所述创建空间分配单元的信号后,创建新的空间分配单元,并为所述空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群,其中所述new_created标记表示所述空间分配单元为新创建的空间分配单元,所述create_at标记表示所述空间分配单元的创建时间点。
记录模块,用于集群收到所述副本路径并将所述副本路径记录到所述集群数据库中。
下发模块,用于集群从所述重发队列中取出所述IO,并根据所述副本路径将所述IO下发到本地,所述IO到达本地后被记录到journal中。
第一删除模块,用于若本地检查并发现所述空间分配单元存在new_created标记,则IO完成后在内存中删除所述new_created标记。
在本发明的一个或多个实施方式中,所述装置还包括:查找模块,用于遍历本地的空间分配单元,查找存在new_created标记的空间分配单元。
对比模块,用于比较查找到该空间分配单元的当前时间点和该空间分配单元的create_at标记对应的时间点,获得时间差值。
第二删除模块,用于若所述时间差值大于最大IO延时,删除该空间分配单元。
在本发明的一个或多个实施方式中,所述装置还包括:第三删除模块,用于若空间分配单元的IO超出最大IO延时,删除集群数据库中该空间分配单元的副本路径。
在本发明的一个或多个实施方式中,所述下发模块还用于:在journal做检查点时,所述内存中的数据被更新到所述虚拟磁盘中。
在本发明的一个或多个实施方式中,所述第一删除模块还用于:供电恢复后,所述new_created标记被重新加载到内存中且内存从journal中重新加载所述IO;以及执行所述IO时,在内存中删除所述IO对应的空间分配单元的new_created标记。
在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的云计算环境中使得虚拟磁盘的分配空间一致的方法。
在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的云计算环境中使得虚拟磁盘的分配空间一致的步骤。
与现有技术相比,根据本发明实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法及应用,其能够解决出现意外掉电情况导致本地空间分配完成然而集群尚未记录的问题,在不增加额外IO的情况下,通过不同掉电情况下对空间分配单元或副本路径的删除,使得虚拟磁盘在出现意外掉电的情况时没有多余的空间被分配,避免了造成空间浪费,节约了虚拟磁盘对应的物理空间资源。
附图说明
图1是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法的流程图;
图2是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法的结构图;
图3是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法的具体流程图;
图4是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法的具体流程图;
图5是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的装置的结构图;
图6是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的装置的结构图;
图7是根据本发明一实施方式的云计算环境中使得虚拟磁盘的分配空间一致的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1和图2所示,介绍本发明的一个实施例中云计算环境中使得虚拟磁盘的分配空间一致的磁盘空间分配的方法。
在步骤S101中,虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到虚拟磁盘的本地,并将所述IO放入重发队列。
IO,也就是I/O(Input/Output,输入/输出)指的是输入输出操作,比如在磁盘中可以为读/写磁盘的某个区域。
在本实施例中,处理的是IO对应的空间分配单元不存在的情况,当IO对应的空间分配单元存在时,根据副本路径下发IO到本地即可。本实施例中的空间分配单元即extentgroup,指的是集群层面的空间最小分配单位。
在步骤S102中,本地收到所述创建空间分配单元的信号后,创建新的空间分配单元,并为所述空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群,其中所述new_created标记表示所述空间分配单元为新创建的空间分配单元,所述create_at标记表示所述空间分配单元的创建时间点。
具体的,本地创建的新的extent group为带有new_created和create_at标记的extent group,所述new_created标记表示创建的extent group为新创建的extent group,所述create_at标记表示创建的extent group的创建时间点。
进一步地,若在S102步骤完成前发生掉电情况,则正常进行S101到S105步骤。也就是说,在extent group创建前发生的意外掉电情况都是安全的,原因在于到此时的所有操作全部发生在内存中,集群数据库和本地都没有数据存储,因此这时候掉电不会导致虚拟磁盘的分配空间不一致。
在步骤S103中,集群收到所述副本路径并将所述副本路径记录到所述集群数据库中。
具体的,每个extent group由多个副本组成,通常为两到三个副本,且每个副本有自己的副本路径,且副本路径的一部分由本地提供。集群负责将extent group的副本路径记录到集群数据库中。
在步骤S104中,集群从所述重发队列中取出所述IO,并根据所述副本路径将所述IO下发到本地,所述IO到达本地后被记录到journal中。
具体的,本地接收到集群下发的IO后,为数据提供了实际的存储空间。
在本实施例中,在journal做检查点时,所述内存中的数据被更新到所述虚拟磁盘中。
其中,在进行内存中的数据被更新到磁盘的过程中,将进行标记删除的操作的持久化。
具体的,journal指为了保证数据一致性而将所有没有提交的IO按顺序记录到持久化介质中的系统,检查点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件。
进一步地,IO到达本地后会首先持久化到journal中,每个IO都将被记录至journal。此时的IO用于意外掉电时使用的,不能用于读数据。journal做检查点的时候会把所有内存中的数据更新到虚拟磁盘中去,因为检查点是journal机制的一部分,所以没有引入新的IO。
journal做检查点发生在整个IO执行过程中,按照需求和实际情况定时定点进行。当journal检查点完成后,所述journal中的IO将被删除。
在步骤S105中,若本地检查并发现所述空间分配单元存在new_created标记,则IO完成后在内存中删除所述new_created标记。
在本实施例中,所述云计算环境中使得虚拟磁盘的分配空间一致,也就是使得虚拟磁盘的本地分配的空间与集群数据库中记录的路径一致。
在本实施例中,在内存中删除所述new_created标记完成之后发生意外掉电情况,此时集群数据库中记录的内容和本地分配的空间已经达成一致,所以发生意外掉电情况也不影响磁盘的空间分配。
进一步地,若在S105步骤完成后且在journal完成检查点前发生掉电情况,则供电恢复后,所述new_created标记被重新加载到内存中且内存从journal中重新加载所述IO;以及执行所述IO时,在内存中删除所述IO对应的空间分配单元的new_created标记。
为了不增加额外的IO,S105步骤仅仅是在内存中删除了new_created标记。当遇到断电且恢复后,内存从journal中将IO重新加载出来,此时IO重新执行,new_created标记还是会被重新加载到内存中。在new_created标记被重新加载到内存后,IO重新执行,未使用的extent group能够被正常释放。删除标记操作的持久化操作是在journal做检查点的时候完成的。
当在journal检查点完成前发生了意外掉电情况,journal将执行检查点前的所有IO,因此删除new_created标记的操作也将被重新执行,即在内存中删除所述IO对应的extent group的new_created标记。
实施例2
如图3所示,介绍本发明的一个实施例中云计算环境中使得虚拟磁盘的分配空间一致的方法。
在本实施例中,具体介绍在步骤S102完成后发生掉电情况下,使得虚拟磁盘的分配空间一致的方法。本实施例的步骤S301至步骤S304,全部在步骤S102已经完成且步骤S103尚未完成的情况下发生掉电并供电恢复后进行。
在步骤S301中,供电恢复后,遍历本地的空间分配单元,查找存在new_created标记的空间分配单元。
具体的,在供电恢复后,因为意外掉电发生在记录副本路径之前,此时集群数据库中尚未存在这个新建的空间分配单元extent group的记录,所以对应区域的IO会创建新的extent group,从而出现空间泄漏,空间将被重复分配。然而,在意外掉电前,新创建的extent group的new_created标记尚未被删除,因此能够通过遍历本地所有的extentgroup查找到带有new_created标记的extent group来进行处理。
在步骤S302中,比较查找到该空间分配单元的当前时间点和该空间分配单元的create_at标记对应的时间点,获得时间差值。
在本实施例中,查找到的带有new_created标记的extent group同时带有create_at标记,将当前时间点和携带的create_at标记对应的时间点进行对比,能够获得二者之间的时间差值。
在步骤S303中,若所述时间差值大于最大IO延时,则删除该空间分配单元,并返回S101步骤。
在本实施例中,若当前时间点和携带的create_at标记对应的时间点的差值大于最大IO延时,代表这个extent group因为意外掉电而发生泄漏了,则删除这个extentgroup。此时泄漏的空间被顺利回收了,并可以正常进行整个步骤流程。完成本步骤后,返回S101步骤并继续进行S101至S105步骤。
具体的,若当前时间点和携带的create_at标记对应的时间点的差值不大于最大IO延时,则放置该extent group,直到时间差值大于最大IO延时时,删除该extent group。
进一步地,删除extent group的操作是由对应的其他系统进行操作,比如这个extent group是个文件类型,则调用文件系统的unlink系统来进行删除extent group操作。
实施例3
如图4所示,介绍本发明的一个实施例中云计算环境中使得虚拟磁盘的分配空间一致的方法。
在本实施例中,具体介绍在S103步骤完成后到S105步骤完成前发生掉电情况下,使得虚拟磁盘的分配空间一致的方法。本实施例的步骤S401至步骤S403,全部在步骤S103已经完成且步骤S105尚未完成的情况下发生掉电并供电恢复后进行。
在步骤S401中,供电恢复后,比较本地的空间分配单元和最大IO延时。
在本实施例中,对于从集群记录完成副本路径后到本地删除空间分配单元extentgroup的new_created标记前发生断电情况,则在供电恢复后,对本地的extent group的IO和最大IO延时进行比较。
在步骤S402中,若空间分配单元的IO在最大IO延时之内,则进行S104步骤。
具体的,当extent group的IO出现在最大IO延时之内,则说明意外掉电前新建的extent group尚且存在,则IO可以顺利下发,正常继续后续操作,正常进行S104和S105步骤。
在步骤S403中,若空间分配单元的IO超出最大IO延时,则删除集群数据库中该空间分配单元的副本路径,并返回S101步骤。
具体的,当extent group的IO超过了最大IO延时,则说明意外掉电前新建的extent group已经不存在了。然而集群只能查询集群的数据库,并无法查询本地数据库,因此这时候集群不知道本地的extent group已经不存在,集群将继续下发这个IO,当IO到达本地后,本地会返回extent group不存在的错误。因而集群直接删除集群数据库中的该extent group对应的副本路径,并重复步骤S101并继续进行S101至S105步骤。
实际上,集群能够通过调用本地api来查询本地的extent group是否存在,但是该操作会要求每个IO都进行查询,将大大降低系统的性能,本实施例暂且不对这种情况进行过多阐述。
进一步地,在集群将extent group对应的副本路径记录到集群数据库中完成后,也可能出现集群数据库不可用的情况。此时IO将被直接当作IO错误来处理,而本地的extent group最终因为携带了new_created而被删除,集群数据库同样没有这条副本路径的记录,所以最终集群数据库中记录的内容和本地分配的空间仍然是一致的。
根据本发明实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法,其能够解决出现意外掉电情况导致本地空间分配完成然而集群尚未记录的问题,在不增加额外IO的情况下,通过不同掉电情况下对空间分配单元或副本路径的删除,使得虚拟磁盘在出现意外掉电的情况时没有多余的空间被分配,避免了造成空间浪费,节约了虚拟磁盘对应的物理空间资源。
在上述所有实施例中,所述掉电情况包括系统掉电情况或者单个主机掉电情况,本发明目的在于解决任何一种掉电情况下数据不一致的问题。
需要说明的是,本发明中限定的步骤S101、S102等,仅仅是为了便于描述,而并非用于限定步骤的执行顺序,在不影响本发明的实质的情况下,部分步骤的顺序改变也同样可以实现本发明。
如图5和图6所示,介绍根据本发明具体实施方式的云计算环境中使得虚拟磁盘的分配空间一致的装置。
在本发明的实施方式中,云计算环境中使得虚拟磁盘的分配空间一致的装置包括检测模块501、创建模块502、记录模块503、下发模块504和第一删除模块505。
检测模块501,用于虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到虚拟磁盘的本地,并将所述IO放入重发队列。
创建模块502,用于本地收到所述创建空间分配单元的信号后,创建新的空间分配单元,并为所述空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群,其中所述new_created标记表示所述空间分配单元为新创建的空间分配单元,所述create_at标记表示所述空间分配单元的创建时间点。
记录模块503,用于集群收到所述副本路径并将所述副本路径记录到所述集群数据库中。
下发模块504,用于集群从所述重发队列中取出所述IO,并根据所述副本路径将所述IO下发到本地,所述IO到达本地后被记录到journal中。
第一删除模块505,用于若本地检查并发现所述空间分配单元存在new_created标记,IO完成后在内存中删除所述new_created标记。
下发模块504还用于:在journal做检查点时,所述内存中的数据被更新到所述虚拟磁盘中。
第一删除模块505还用于:供电恢复后,所述new_created标记被重新加载到内存中且内存从journal中重新加载所述IO;以及执行所述IO时,在内存中删除所述IO对应的空间分配单元的new_created标记。
在本发明的实施方式中,云计算环境中使得虚拟磁盘的分配空间一致的装置还包括查找模块601、对比模块602、第二删除模块603和第三删除模块604。
查找模块601,用于遍历本地的空间分配单元,查找存在new_created标记的空间分配单元。
对比模块602,用于比较查找到该空间分配单元的当前时间点和该空间分配单元的create_at标记对应的时间点,获得时间差值。
第二删除模块603,用于若所述时间差值大于最大IO延时,删除该空间分配单元。
第三删除模块604,用于若空间分配单元的IO超出最大IO延时,删除集群数据库中该空间分配单元的副本路径。
图7示出了根据本说明书的实施例的用于云计算环境中使得虚拟磁盘的分配空间一致的计算设备70的硬件结构图。如图7所示,计算设备70可以包括至少一个处理器701、存储器702(例如非易失性存储器)、内存703和通信接口704,并且至少一个处理器701、存储器702、内存703和通信接口704经由总线705连接在一起。至少一个处理器701执行在存储器702中存储或编码的至少一个计算机可读指令。
应该理解,在存储器702中存储的计算机可执行指令当执行时使得至少一个处理器701进行本说明书的各个实施例中以上结合图1-7描述的各种操作和功能。
在本说明书的实施例中,计算设备70可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-7描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的云计算环境中使得虚拟磁盘的分配空间一致的方法,其能够解决出现意外掉电情况导致本地空间分配完成然而集群尚未记录的问题,在不增加额外IO的情况下,通过不同掉电情况下对空间分配单元或副本路径的删除,使得虚拟磁盘在出现意外掉电的情况时没有多余的空间被分配,避免了造成空间浪费,节约了虚拟磁盘对应的物理空间资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (11)
1.一种云计算环境中使得虚拟磁盘的分配空间一致的方法,其特征在于,所述方法包括:
S1:虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到虚拟磁盘的本地,并将所述IO放入重发队列;
S2:本地收到所述创建空间分配单元的信号后,创建新的空间分配单元,并为所述空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群,其中所述new_created标记表示所述空间分配单元为新创建的空间分配单元,所述create_at标记表示所述空间分配单元的创建时间点;
S3:集群收到所述副本路径并将所述副本路径记录到所述集群数据库中;
S4:集群从所述重发队列中取出所述IO,并根据所述副本路径将所述IO下发到本地,所述IO到达本地后被记录到journal中;
S5:若本地检查并发现所述空间分配单元存在new_created标记,则IO完成后在内存中删除所述new_created标记。
2.如权利要求1所述的云计算环境中使得虚拟磁盘的分配空间一致的方法,若在S2步骤完成后发生掉电情况,其特征在于,所述方法还包括:
供电恢复后,遍历本地的空间分配单元,查找存在new_created标记的空间分配单元;
比较查找到该空间分配单元的当前时间点和该空间分配单元的create_at标记对应的时间点,获得时间差值;
若所述时间差值大于最大IO延时,则删除该空间分配单元,并返回S1步骤。
3.如权利要求1所述的云计算环境中使得虚拟磁盘的分配空间一致的方法,若在S3步骤完成后到S5步骤完成前发生掉电情况,其特征在于,所述方法还包括:
供电恢复后,比较本地的空间分配单元和最大IO延时;
若空间分配单元的IO在最大IO延时之内,则进行S4步骤;
若空间分配单元的IO超出最大IO延时,则删除所述集群数据库中该空间分配单元的副本路径,并返回S1步骤。
4.如权利要求1所述的云计算环境中使得虚拟磁盘的分配空间一致的方法,其特征在于,若在S2步骤完成前发生掉电情况,则在供电恢复后正常进行S1到S5步骤。
5.如权利要求1所述的云计算环境中使得虚拟磁盘的分配空间一致的方法,其特征在于,所述方法还包括:
在journal做检查点时,所述内存中的数据被更新到所述虚拟磁盘中。
6.如权利要求5所述的云计算环境中使得虚拟磁盘的分配空间一致的方法,其特征在于,若在S5步骤完成后且在journal完成检查点前发生掉电情况,其特征在于,所述方法还包括:
供电恢复后,所述new_created标记被重新加载到内存中且内存从journal中重新加载所述IO;以及
执行所述IO时,在内存中删除所述IO对应的空间分配单元的new_created标记。
7.一种云计算环境中使得虚拟磁盘的分配空间一致的装置,其特征在于,所述装置包括:
检测模块,用于虚拟磁盘的集群接收IO,若未在集群数据库中查询到所述IO对应的空间分配单元,则发送创建空间分配单元的信号到虚拟磁盘的本地,并将所述IO放入重发队列;
创建模块,用于本地收到所述创建空间分配单元的信号后,创建新的空间分配单元,并为所述空间分配单元增加new_created和create_at标记,创建完成后将所述空间分配单元的副本路径返回到集群,其中所述new_created标记表示所述空间分配单元为新创建的空间分配单元,所述create_at标记表示所述空间分配单元的创建时间点;
记录模块,用于集群收到所述副本路径并将所述副本路径记录到所述集群数据库中;
下发模块,用于集群从所述重发队列中取出所述IO,并根据所述副本路径将所述IO下发到本地,所述IO到达本地后被记录到journal中;
第一删除模块,用于若本地检查并发现所述空间分配单元存在new_created标记,则IO完成后在内存中删除所述new_created标记。
8.如权利要求7所述的云计算环境中使得虚拟磁盘的分配空间一致的装置,其特征在于,所述装置还包括:
查找模块,用于遍历本地的空间分配单元,查找存在new_created标记的空间分配单元;
对比模块,用于比较查找到该空间分配单元的当前时间点和该空间分配单元的create_at标记对应的时间点,获得时间差值;
第二删除模块,用于若所述时间差值大于最大IO延时,删除该空间分配单元。
9.如权利要求7所述的云计算环境中使得虚拟磁盘的分配空间一致的装置,其特征在于,所述装置还包括:
第三删除模块,用于若空间分配单元的IO超出最大IO延时,删除所述集群数据库中该空间分配单元的副本路径。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至6中任一项所述的云计算环境中使得虚拟磁盘的分配空间一致的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的云计算环境中使得虚拟磁盘的分配空间一致的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310236580.3A CN116225711A (zh) | 2023-03-13 | 2023-03-13 | 云计算环境中使得虚拟磁盘的分配空间一致的方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310236580.3A CN116225711A (zh) | 2023-03-13 | 2023-03-13 | 云计算环境中使得虚拟磁盘的分配空间一致的方法及应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225711A true CN116225711A (zh) | 2023-06-06 |
Family
ID=86582248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310236580.3A Pending CN116225711A (zh) | 2023-03-13 | 2023-03-13 | 云计算环境中使得虚拟磁盘的分配空间一致的方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225711A (zh) |
-
2023
- 2023-03-13 CN CN202310236580.3A patent/CN116225711A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550675B2 (en) | Remote data replication method and system | |
US9910620B1 (en) | Method and system for leveraging secondary storage for primary storage snapshots | |
US10191812B2 (en) | Recovery mechanism for low latency metadata log | |
CN105843551B (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
US8965850B2 (en) | Method of and system for merging, storing and retrieving incremental backup data | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
EP1706822B1 (en) | Maintaining consistency for remote copy using virtualization | |
CN104077380B (zh) | 一种重复数据删除方法、装置及系统 | |
CN109542682B (zh) | 一种数据备份方法、装置、设备和存储介质 | |
CN109144416B (zh) | 查询数据的方法和装置 | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
CN104360914A (zh) | 增量快照方法和装置 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN113076220A (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN110187834B (zh) | 重删副本的数据处理方法、装置、电子设备 | |
CN104182182A (zh) | 智能终端及智能终端的数据备份方法 | |
CN111158858A (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
US10852997B1 (en) | Relocation target selection | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
US8595271B1 (en) | Systems and methods for performing file system checks | |
CN111338850A (zh) | 一种基于cow模式多快照下提高备份效率的方法及系统 | |
CN114924911B (zh) | Windows操作系统有效数据备份方法、装置、设备和存储介质 | |
US9235349B2 (en) | Data duplication system, data duplication method, and program thereof |
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 |