CN116483284A - 一种读写虚拟硬盘的方法、装置、介质及电子设备 - Google Patents
一种读写虚拟硬盘的方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN116483284A CN116483284A CN202310535732.XA CN202310535732A CN116483284A CN 116483284 A CN116483284 A CN 116483284A CN 202310535732 A CN202310535732 A CN 202310535732A CN 116483284 A CN116483284 A CN 116483284A
- Authority
- CN
- China
- Prior art keywords
- read
- write request
- log
- processed
- write
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000011084 recovery Methods 0.000 claims abstract description 15
- 230000004927 fusion Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种读写虚拟硬盘的方法、装置、介质及电子设备,所述方法包括:获取至少一条待处理IO读写请求,其中,所述至少一条待处理IO读写是虚拟机产生的请求,且所述待处理IO读写请求需要通过网络发送至分布式存储系统的虚拟磁盘执行读写操作;记录并更新与所述至少一条待处理IO读写请求对应的日志数据;在需要执行数据恢复操作时,根据所述日志数据恢复未被执行的待处理IO读写请求。采用本申请实施例使用本地高速存储设备存储待处理IO读写请求的情况下,将使用分布式存储的虚拟机的文件系统损坏概率提升为使用本地磁盘导致的文件系统损坏的概率相同,大幅度减少因网络的不可靠导致的虚拟机中文件系统损坏的情况。
Description
技术领域
本申请涉及超融合架构领域,具体而言本申请实施例涉及一种读写虚拟硬盘的方法、装置、介质及电子设备。
背景技术
相关技术的文件系统的断电保护方法是将文件系统在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;写日志,包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;把日志保存到日志区一,对应为日志一;在关键数据区一修改数据;把日志保存到日志区二,对应为日志二;在关键数据区二修改数据;以及,在断电重启后数据的恢复步骤包括:读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据。
相关技术是针对物理服务器本地硬盘的方案,不适用于虚拟机和分布式存储的场景,相关技术在文件系统中修改实现,由于Windows系统是闭源的,无法修改;对于Linux系统常用文件系统有许多种,如Ext4、XFS,并且每个Linux Kernel版本的文件系统代码可能变化,因此针对每一种使用的文件系统或版本均需要修改,带来巨大的工作量。
发明内容
本申请实施例的目的在于提供一种读写虚拟硬盘的方法、装置、介质及电子设备,采用本申请实施例使用本地高速存储设备存储待处理IO读写请求的情况下,将使用分布式存储的虚拟机的文件系统损坏概率提升为使用本地磁盘导致的文件系统损坏的概率相同,大幅度减少因网络的不可靠导致的虚拟机中文件系统损坏的情况,本申请的一些实施例提供一种同时支持本地和远程的方案,使得虚拟硬盘的可靠性可以超过单台服务器或单个存储设备。
第一方面,本申请实施例提供一种读写虚拟硬盘的方法,应用于构建超融合架构的服务器上,所述方法包括:获取至少一条待处理IO读写请求,其中,所述至少一条待处理IO读写是虚拟机产生的请求,且所述待处理IO读写请求需要通过网络发送至分布式存储系统的虚拟磁盘执行读写操作;记录并更新与所述至少一条待处理IO读写请求对应的日志数据;在需要执行数据恢复操作时,根据所述日志数据恢复未被执行的待处理IO读写请求。
本申请的一些实施例将需要借助网络向分布式存储系统分发的待处理IO读写请求在服务器上进行存储,以避免由于网络等故障导致待处理IO读写请求未被正常执行导致的数据传输异常等问题。
在一些实施例中,所述获取至少一条待处理IO读写请求包括:接收由本地应用程序或文件系统生成的IO读写请求;将所述IO读写请求作为所述待处理IO读写请求。
本申请一些实施例的待处理IO读写请求来自于本地虚拟机,支持本地方案,使得虚拟硬盘的可靠性通过单台服务器存储的待处理IO读写请求进行提升。
在一些实施例中,所述获取至少一条待处理IO读写请求包括:接收来自于用于构建所述超融合架构的另一服务器的IO读写请求,其中,所述IO读写请求需要通过网络发送至所述分布式存储系统的虚拟磁盘执行读写操作;将所述IO读写请求作为所述待处理IO读写请求。
本申请的一些实施例提供一种同时支持本地和远程的方案,使得虚拟硬盘的可靠性可以超过单台服务器或单个存储设备。
在一些实施例中,所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中;根据所述各条待处理IO读写请求在所述虚拟磁盘上的执行结果更新所述日志数据。
本申请的一些实施例将与各条待处理IO读写请求对应的数据分别作为一条日志数据进行存储,并在对应待处理IO读写请求被分布式存储系统执行后对应更新相关日志数据,例如,更新操作包括修改完成状态标志或者删除的对应日志数据等。
在一些实施例中,每条IO日志均包括序列号字段、偏移量字段、数据量大小字段以及标志位字段。
在一些实施例中,在所述将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中之前,所述方法还包括:确认所述日志文件为写入文件。
本申请的一些实施例将各条日志记录在写入文件中,保证这些待处理IO读写请求对应的日志数据被正常记录和保存,以防止这些数据未被分布式存储处理之前丢失的问题。
在一些实施例中,所述将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中,包括:将与第一待处理IO读写请求对应的序列号,保存在所述序列号字段,其中,所述第一待处理IO读写请求属于所述至少一条待处理IO读写请求中的任意一条读写请求;将与所述第一待处理IO读写请求对应的读写虚拟硬盘的位置保存在所述偏移量字段;将与所述第一待处理IO读写请求携带的数据大小保存在所述数据量大小字段;设置与所述第一待处理IO读写请求对应的标志位字段的值为第一数值,其中,所述第一数值表征所述第一待处理IO读写请求未被所述虚拟磁盘执行。
本申请的一些实施例在于各待处理IO读写请求对应的属性信息以及携带的写入数据作为对应日志中各字段的数值,完成与各待处理IO读写请求对应的日志建立,在后续即时恢复该待处理IO读写请求。
在一些实施例中,所述根据所述日志数据恢复未被执行的待处理IO读写请求,包括:在执行恢复操作时,若确认任一标志位字段的数值表征对应存储的第一待处理IO读写请求处于未被所述虚拟磁盘执行的状态,则获取所述第一待处理IO读写请求,以向所述分布式存储系统的虚拟磁盘提供所述第一待处理IO读写请求。
本申请的一些实施例在执行恢复操作时可根据记录的各条日志重新生成对应的待处理IO读写请求,以再次向所述分布式存储系统的虚拟磁盘提供该待处理IO读写请求。
在一些实施例中,所述根据所述各条待处理IO读写请求在所述虚拟磁盘上的执行结果更新所述日志数据,包括:若确认任一待处理IO读写请求被所述虚拟磁盘执行后,将与被执行待处理IO读写请求对应的标志位字段的值从所述第一数值修改为第二数值。
本申请的一些实施例提供一种根据各条待处理IO读写数据被虚拟磁盘执行的情况修改对应的标志位字段的值,方便即时了解各条待处理IO读写请求是否处于失效的状态,进而更新日志数据。
在一些实施例中,所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:定时或定量触发针对包括所述日志数据的日志文件的更新操作。
本申请的一些实施例为了减少对标志位字段的数值的更新频率采用定时或定量更新多条日志中的标志位字段的数值的方式。
在一些实施例中,所述至少一条待处理IO读写请求为并发的N条IO读写请求,所述N条IO读写请求在所述日志文件中对应存储为N条日志,N为大于1的正整数,其中,所述定时或定量触发针对包括所述日志数据的日志文件的更新操作,包括:依据所述N条IO读写请求的产生顺序,确认所述N条IO读写请求中第一条IO读写请求至第M条IO读写请求共连续M条读写请求均被所述虚拟磁盘执行;将所述N条日志中M条日志的所有标志字段的值从第一数值修改为第二数值;其中,所述第一数值表征对应的待处理IO读写请求未被所述虚拟磁盘执行,所述第二数值表征对应的待处理IO读写请求已被所述虚拟磁盘执行。
本申请的一些实施例对于同一个虚拟机并发的多个待处理IO读写请求采用同时更新被执行的多条IO读写请求的标志位,提升数据处理的速度。
在一些实施例中,所述至少一条待处理IO读写请求为并发的N条IO读写请求,所述N条IO读写请求在所述日志文件中对应存储为N条日志,N为大于1的正整数,其中,所述定时或定量触发针对包括所述日志数据的日志文件的更新操作,包括:依据所述N条IO读写请求的产生顺序,确认所述N条IO读写请求中第一条IO读写请求至第M条IO读写请求共连续M条读写请求均被所述虚拟磁盘执行;将与所述第M条IO读写请求对应的第M条日志的标志字段的值从第一数值修改为第二数值;其中,所述第一数值表征对应的待处理IO读写请求未被所述虚拟磁盘执行,所述第二数值表征对应的待处理IO读写请求已被所述虚拟磁盘执行。
本申请的一些实施例对于同一虚拟机并发的多条待处理IO读写请求若连续多条被分布式存储系统执行,则只需要修改最大序列号对应的日志的标志位字段对应的数值为完成状态,即可表征位于该条之前的各条待处理IO读写请求也已经被执行,减少修改标志位字段数值的工作量,提升数据处理速度。
在一些实施例中,所述日志数据被记录于第一日志文件中,在所述将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中之后,所述方法还包括:若确认所述第一日志文件上所存储的日志条数达到设置阈值,则拆分所述第一日志文件;若确认所述第一日志文件上所存储的日志条数未达到设置阈值,则继续在所述第一日志文件中存储下一条待处理IO读写请求。
本申请的一些实施例还限制了各日志文件的大小,避免单个日志文件过大导致的数据处理速度变慢。
在一些实施例中,所述第一日志文件属于为第一虚拟硬盘设置的一个日志文件,所述方法还包括:采用如下多个字段管理与所述第一虚拟硬盘对应的多个日志文件:虚拟机标志字段,用于唯一标识所述超融合架构的虚拟机;日志文件数量记录字段,用于记录与所述第一虚拟硬盘对应的所有日志文件的总数目;虚拟磁盘标识字段,用于唯一表征对应虚拟机的各虚拟磁盘;指针字段,用于指向所述多个日志文件;其中,所述指针字段至少包括:与各日志文件分别对应的日志文件状态字段。
本申请的一些实施例采用多个字段管理为一个虚拟硬盘设置的多个日志文件。
在一些实施例中,所述日志文件状态字段至少可存储第一状态值和第二状态值,所述第一状态值用于表征对应日志文件中存在未被所述分布式存储系统的虚拟磁盘执行的读写请求,所述第二状态值用于表征对应日志文件中的记录的各条待处理IO读写请求均已被所述分布式存储系统的虚拟磁盘执行,其中,所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:将与所述第二状态值对应的各条待处理IO读写请求的日志均进行删除。
本申请的一些实施例以整个日志文件为删除单位,删除各条日志均被执行的日志文件,提升数据更新的处理速度。
在一些实施例中,所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:若确认第i日志文件中存在至少一条失效日志,则将在生成所述第i日志文件之前生成的各日志文件均进行删除,其中,所述失效日志是被所述分布式存储系统的虚拟磁盘执行的读写请求对应的日志。
本申请的一些实施例按照各日志文件按照写入待处理IO读写请求的顺序生成,当后生成的日志文件中存在被执行的待处理IO读写请求时则在其前生成的日志文件中的各条日志已被全部执行,因此可以删除。
第二方面,本申请的一些实施例提供一种用于构建超融合架构的服务器,所述服务器包括:存储器,被配置为:存储多条日志,其中,各条日志分别与一条待处理IO读写请求对应;存储计算机程序;处理器,其中,所述处理器执行所述计算机程序时可实现如下操作:更新与所述多条日志对应的日志文件;在需要执行数据恢复操作时,根据所述日志文件恢复未被执行的待处理IO读写请求。
第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术的超融合架构的组成示意图;
图2为本申请实施例提供的超融合架构的组成示意图;
图3为本申请实施例提供的读写虚拟硬盘的方法的流程图;
图4为本申请实施例提供的高速存储设备存储IO日志的示意图;
图5为本申请实施例提供的虚拟硬盘IO日志记录文件管理结构示意图;
图6为本申请实施例提供的连续最大序列号的示意图;
图7为本申请实施例提供的电子设备组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
超融合架构将计算、存储、网络融合部署在多个通用服务器上,如图1,其灵活、简单的为用户提供IaaS服务,得到了广泛的使用。超融合架构中的计算,很重要的一种就是虚拟化,为用户提供虚拟机;存储是指将超融合集群的服务器上的硬盘,通过分布式存储软件,基于TCP/IP网络组成集群并为虚拟机提供虚拟磁盘。
请参看图1,图1为相关技术的超融合架构,在该架构中包括:多台服务器以及多台虚拟机,将多个服务器组成一个集群。在每台服务器中部署虚拟化监视器Hypervisor,实现虚拟机生命周期管理,以供用户使用。将集群中所有服务器的磁盘统一管理,并抽象为虚拟硬盘,给虚拟机提供存储能力。
在相关技术中,虚拟机内部安装操作系统,操作系统将虚拟硬盘格式化成文件系统。虚拟机中的程序可以将数据存储在文件系统中。对文件系统的读写,将转化成对虚拟硬盘的IO读写请求,通过TCP/IP网络将待处理的IO读写请求发送到分布式存储系统中,由此可知,虚拟机的待处理IO读写请求相对于物理机本机读写路径更长。当虚拟机或服务器出现异常时,在IO路径中的读写请求更容易丢失,导致文件系统出现异常,需要进行校验修复。在Linux系统中,如果系统盘(安装操作系统的虚拟硬盘)的文件系统出现异常,需要将系统盘挂载到其他Linux系统的虚拟机或宿主机上,进行手动修复,从排查到修复整个过程可能花费数十分钟。对于运行重要业务的虚拟机,故障恢复时间难以接收。
如图2所示,与图1不同的是在图2中各服务器上还设置有高速存储设备,该设备用于将需要发往分布式存储系统各虚拟单元上执行的待处理IO读写请求进行备份存储。
也就是说,为了改善图1架构存在的问题,本申请的一些实施例通过引入图2中各服务器上的高速存储设备,并将还在传输过程的待处理IO读写请求都记录在该高速存储设备上(称为IO日志),当出现异常需要恢复时,可以从高速存储设备中回放一部分待处理IO读写请求,提升文件系统中元数据和数据的完整性。
需要说明的是,图2的虚拟硬盘通过TCP/IP网络向分布式存储系统发送待处理IO读写请求,并等待IO响应的过程是整个IO路径中最耗时的部分,通常占用整个IO等待时长的70%以上。因此本申请的一些实施例通过引入图2的高速存储设备将还在传输过程的IO都记录下来,称为IO日志,当出现异常需要恢复时,可以从高速存储设备中回放一部分IO,使得文件系统中元数据和数据的完整性。高速存储设备中的高速是相对于分布式存储提供的虚拟硬盘的性能来说的,在本申请的一些实施例中,需要计算高速存储设备需要承载的虚拟磁盘的数量,要求高速存储的性能要高于它承载的虚拟磁盘的性能之和,确保高速存储设备不是IO路径上的性能瓶颈。
可以理解的是,在超融合架构下,如图2,将多个服务器组成一个集群。在每台服务器中部署虚拟化监视器Hypervisor,实现虚拟机生命周期管理,以供用户使用。将集群中所有服务器的磁盘统一管理,并抽象为虚拟硬盘,给虚拟机提供存储能力。
虚拟机中安装操作系统和部署用户的应用程序,无论是操作系统或应用程序都存储自己的数据到文件系统中,读写IO流程如图2,应用程序/系统产生数据读写请求,读写请求发送到文件系统,文件系统将IO请求转化,并传递给虚拟硬盘,虚拟硬盘接收请求后转化为分布式存储请求,最终由分布式存储系统从服务器磁盘中读取或写入。
下面结合图3示例性阐述由图2的各服务器执行的读写虚拟硬盘的方法。
如图3所示,本申请实施例提供一种读写虚拟硬盘的方法,应用于构建超融合架构的服务器上,该方法包括:S101,获取至少一条待处理IO读写请求,其中,所述至少一条待处理IO读写是虚拟机产生的请求,且所述待处理IO读写请求需要通过网络发送至分布式存储系统的虚拟磁盘执行读写操作;S102,记录并更新与所述至少一条待处理IO读写请求对应的日志数据;S103,在需要执行数据恢复操作时,根据所述日志数据恢复未被执行的待处理IO读写请求。
需要说明的是,图3的方法适用于在超融合架构中虚拟机和分布式存储环境下,文件系统的可靠性问题。图3方法中涉及的虚拟机可以安装各种类型的操作系统,操作系统中可以使用各种类型的文件系统,解决文件系统差异造成复杂度。
可以理解的是,本申请的一些实施例将需要借助网络向分布式存储系统分发的待处理IO读写请求在服务器上进行存储,以避免由于网络等故障导致待处理IO读写请求未被正常执行导致的数据传输异常等问题。
下面示例性阐述上述步骤的实现过程。
本申请的一些实施例支持本地方案,例如,在本申请的一些实施例中,S101示例性包括:接收由本地应用程序或文件系统生成的IO读写请求;将所述IO读写请求作为所述待处理IO读写请求。也就是说,本申请一些实施例的待处理IO读写请求来自于本地虚拟机,支持本地方案,使得虚拟硬盘的可靠性通过单台服务器存储的待处理IO读写请求进行提升。
本申请的一些实施例支持远程方案,例如,在本申请的一些实施例中,S101示例性包括:接收来自于用于构建所述超融合架构的另一服务器的IO读写请求,其中,所述IO读写请求需要通过网络发送至所述分布式存储系统的虚拟磁盘执行读写操作;将所述IO读写请求作为所述待处理IO读写请求。也就是说,本申请的一些实施例提供一种同时支持本地和远程的方案,使得虚拟硬盘的可靠性可以超过单台服务器或单个存储设备。
在本申请的一些实施例中,S102示例性包括:第一步,将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中;第二步,根据所述各条待处理IO读写请求在所述虚拟磁盘上的执行结果更新所述日志数据。可以理解的是,为了保证将待处理IO读写请求写入日志文件需要先找到写入文件,即在本申请的一些实施例中,在上述第一步之前,所述方法还包括:确认所述日志文件为写入文件。也就是说,本申请的一些实施例将与各条待处理IO读写请求对应的数据分别作为一条日志数据进行存储,并在对应待处理IO读写请求被分布式存储系统执行后对应更新相关日志数据,例如,更新操作包括修改完成状态标志或者删除的对应日志数据等。
需要说明的是,在本申请的一些实施例中,每条IO日志均包括序列号字段、偏移量字段、数据量大小字段、标志位字段。若待处理IO读写请求字段为待处理IO写请求时,每条IO日志除了包括上述四个字段之外还包括数据字段。下面结合图4和表1示例性阐述各字段。
如图4所示的高速存储设备或高速存储单元(图4未示出)用于存储将发往分布式存储系统的虚拟磁盘执行读写操作的待处理IO读写请求。也就是说,图4的高速存储设置用于存储虚拟磁盘的IO日志,并由一个虚拟机的多个虚拟磁盘共享。图4的每个虚拟磁盘对应一个高速存储设备中的一个文件目录,每个文件目标包括多个日志文件(即图4中的一个log表征一个日志文件),IO日志以文件的形式存储相应的文件目录中。对分布式存储系统的虚拟硬盘的待处理IO读写请求都会镜像分发一份到高速存储设备,并最终写入该设备的IO日志中。
图4的各日志文件分别包括多条日志,每条日志分别包括如下字段:
序列号字段seq:IO请求的唯一编号,通常用整数表示。
偏移量字段offset: IO请求中的虚拟硬盘的偏移量,即读写虚拟硬盘的位置。
数据量大小字段size: IO请求携带的数据大小。
标志位字段redo: 标志位,表示小于当前IO请求的seq的所有IO请求,无需参与恢复操作。写入IO日志时,均为1;为0表示该条记录无效。
数据字段data:待处理 IO读写请求携带的数据。
下面结合表1示例性阐述图4的各日志文件log中的每条IO日志的记录格式:
表1
下面以结合上述每条日志的格式示例性阐述写入每条IO日志的过程以及更新日志数据的过程。
以第一待处理IO读写请求为例示例性阐述写入各条IO日志的过程。例如,在本申请的一些实施例中,上述第一步示例性包括:将与第一待处理IO读写请求对应的序列号,保存在所述序列号字段,其中,所述第一待处理IO读写请求属于所述至少一条IO读写请求中的任意一条读写请求;将与所述第一待处理IO读写请求对应的读写虚拟硬盘的位置保存在所述偏移量字段;将与所述第一待处理IO读写请求携带的数据大小保存在所述数据量大小字段;设置与所述第一待处理IO读写请求对应的标志位字段的值为第一数值,其中,所述第一数值表征所述第一待处理IO读写请求未被所述虚拟磁盘执行。本申请的一些实施例在于各待处理IO读写请求对应的属性信息以及携带的写入数据作为对应日志中各字段的数值,完成与各待处理IO读写请求对应的日志建立,在后续即时恢复该待处理IO读写请求。
本申请的一些实施例将各条日志记录在写入文件中,保证这些待处理IO读写请求对应的日志数据被正常记录和保存,以防止这些数据未被分布式存储处理之前丢失的问题。
例如,在本申请的一些实施例中,IO写入流程(即记录与所述至少一条待处理IO读写请求对应的日志数据的流程)包括:虚拟硬盘接收到待处理IO读写请求后,将写请求发送到分布式存储系统的同时,通过IO镜像分发到高速存储设备中,这里包含分发到本地或其他服务器,只要接收了IO分发的数据并记录到高速存储设备的服务器,都可以执行虚拟机的恢复。在本申请的一些实施例中分发由虚拟硬盘的程序来完成,主要分为两个部分。第一部分:找到虚拟硬盘对应的文件目录和编号为0的日志文件(即写入文件),将待处理IO读写请求对应的信息根据格式写入文件中即完成。第二部分:当发送到写请求从分布式存储系统中返回时,表示待处理IO读写请求已写入成功,IO日志中对应的这个待处理IO读写请求对应的日志已无效可以删除,此时需要将IO日志中的这条记录标志为无效(redo字段设置为0)。
下面结合每条日志的相应字段示例性阐述更新日志数据的过程。
在本申请的一些实施例中,上述第二步示例性包括:若确认任一待处理IO读写请求被所述虚拟磁盘执行后,将与被执行待处理IO读写请求对应的标志位字段的值从所述第一数值修改为第二数值。也就是说,本申请的一些实施例提供一种根据各条待处理IO读写数据被虚拟磁盘执行的情况修改对应的标志位字段的值,方便即时了解各条待处理IO读写请求是否处于失效的状态,进而更新日志数据。
在本申请的一些实施例中,S102示例性包括:定时或定量触发针对包括所述日志数据的日志文件的更新操作。本申请的一些实施例为了减少对标志位字段的数值的更新频率采用定时或定量更新多条日志中的标志位字段的数值的方式。
例如,在本申请的一些实施例中,所述至少一条待处理IO读写请求为并发的N条IO读写请求,所述N条IO读写请求在所述日志文件中对应存储为N条日志,N为大于1的正整数,其中,所述定时或定量触发针对包括所述日志数据的日志文件的更新操作,包括:依据所述N条IO读写请求的产生顺序,确认所述N条IO读写请求中第一条IO读写请求至第M条IO读写请求共连续M条读写请求均被所述虚拟磁盘执行;将所述N条日志中M条日志的所有标志字段的值从第一数值修改为第二数值;其中,所述第一数值表征对应的待处理IO读写请求未被所述虚拟磁盘执行,所述第二数值表征对应的待处理IO读写请求已被所述虚拟磁盘执行。也就是说,本申请的一些实施例对于同一个虚拟机并发的多个待处理IO读写请求采用同时更新被执行的多条IO读写请求的标志位,提升数据处理的速度。
需要说明的是,本申请的发明人在研究中发现关于redo字段的设置是个复杂的过程,这个过程需要搜索该虚拟硬盘对应的多个IO日志文件,如果每个IO都需要查找并修改redo字段,将对高速存储设备的性能带来巨大影响。因此考虑到IO写入的幂等性以及性能,本申请的一些实施例可以将修改redo字段的操作,设置为定时和定量两种触发方式,如每3秒执行修改或每100个写IO请求修改一次,每次仅修改最大seq的redo字段,于是跟前文redo定义一致,小于当前IO请求的seq的所有IO请求均已确认写入成功,这些IO日志也都可以被删除。其中最大的seq并不是指虚拟硬盘程序从分布式存储系统收到的最大的seq,这是因为对于并发请求时,无法保证并发的一组seq按照顺序返回,因此这里的最大seq是指连续的最大。如图5,边框为实线表示已收到分布式存续系统的虚拟硬盘执行结束的待处理IO读写请求,虚线表示没有收到执行结束的待处理IO读写请求,本申请的一些实施例将选用连续最大seq即数字8对应的待处理IO读写请求对应日志作为需要修改日志(修改改日志标志位字段的数值),表示小于该seq的IO均已确认写入分布式存储系统。
例如,在本申请的一些实施例中,所述至少一条待处理IO读写请求为并发的N条IO读写请求,所述N条IO读写请求在所述日志文件中对应存储为N条日志,N为大于1的正整数,其中,所述定时或定量触发针对包括所述日志数据的日志文件的更新操作,包括:依据所述N条IO读写请求的产生顺序,确认所述N条IO读写请求中第一条IO读写请求至第M条IO读写请求共连续M条读写请求均被所述虚拟磁盘执行;将与所述第M条IO读写请求对应的第M条日志的标志字段的值从第一数值修改为第二数值;其中,所述第一数值表征对应的待处理IO读写请求未被所述虚拟磁盘执行,所述第二数值表征对应的待处理IO读写请求已被所述虚拟磁盘执行。也就是说,本申请的一些实施例对于同一虚拟机并发的多条待处理IO读写请求若连续多条被分布式存储系统执行,则只需要修改最大序列号对应的日志的标志位字段对应的数值为完成状态,即可表征位于该条之前的各条待处理IO读写请求也已经被执行,减少修改标志位字段数值的工作量,提升数据处理速度。
本申请的一些实施例更新日志数据是文件级别的删除,不会删除单独文件的内容。例如,在本申请的上述一些实施例中,IO写入过程的第二部分会修改redo字段,IO日志删除程序从文件层级编号为0的文件开始扫描,找到redo字段为0的seq号,如果找到删除编号为1以及更大的文件。如果没找到,从文件层级编号为1的文件重复上述过程。
也就是说,在本申请的一些实施例中,所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:若确认第i日志文件中存在至少一条失效日志,则将在生成所述第i日志文件之前生成的各日志文件均进行删除,其中,所述失效日志是被所述分布式存储系统的虚拟磁盘执行的读写请求对应的日志。
本申请的一些实施例按照各日志文件按照写入待处理IO读写请求的顺序生成,当后生成的日志文件中存在被执行的待处理IO读写请求时则在其前生成的日志文件中的各条日志已被全部执行,因此可以删除。
结合每条日志的格式示例性阐述S103的实现过程。
在本申请的一些实施例中,S103示例性包括:在执行恢复操作时,若确认任一标志位字段的数值表征对应存储的第一待处理IO读写请求处于未被所述虚拟磁盘执行的状态,则获取所述第一待处理IO读写请求,以向所述分布式存储系统的虚拟磁盘提供所述第一待处理IO读写请求。
例如,在本申请的一些实施例中,将日志文件中标志位字段redo为1的IO日志,按照seq由小到大的顺序构造分布式存储系统请求,确保所有数据写入分布式存储系统,并不是每次虚拟机启动都需要执行恢复,而是在虚拟机异常崩溃或宿主机异常崩溃后,第一次启动虚拟机时执行恢复。
本申请的一些实施例在执行恢复操作时可根据记录的各条日志重新生成对应的待处理IO读写请求,以再次向所述分布式存储系统的虚拟磁盘提供该待处理IO读写请求。
由于高速存储设备价格贵,为了降低方案的成本,本申请的一些实施例需要及时清理日志文件中的数据。如果只操作一个日志文件,同时记录待处理IO读写请求和删除待处理IO读写请求,会产生文件系统大量空洞,容易造成性能瓶颈。为此本申请的一些实施例,将使用分级IO日志结构,使用异步清理整个文件的方式,将写入和删除两个操作分别操作两个不同的文件。同时通过设置IO日志文件的最大阈值,达到阈值后,自动拆分文件,避免了单个IO日志文件过大的问题。
例如,在本申请的一些实施例中,所述日志数据被记录于第一日志文件中,在所述将各条待处理IO读写请求分别采用一条IO日志记录在日志文件中之后,所述方法还包括:若确认所述第一日志文件上所存储的日志条数达到设置阈值,则拆分所述第一日志文件;若确认所述第一日志文件上所存储的日志条数未达到设置阈值,则继续在所述第一日志文件中存储下一条待处理IO读写请求。也就是说,本申请的一些实施例还限制了各日志文件的大小,避免单个日志文件过大导致的数据处理速度变慢。
为了管理一个虚拟硬盘对应的多个日志文件,本申请的一些实施例需要将日志文件的分级切分的细节进行处理。如图6中的文件管理结构,每个虚拟磁盘中的所有日志文件都需要一个结构进行管理。图6左边部分的字段:
虚拟机标志字段ID:虚拟机的唯一标识,通常是使用UUID表示。
虚拟磁盘标识字段Disk ID: 虚拟磁盘的唯一标识,同一个虚拟机中包含多个虚拟磁盘需要多个结构表示。
日志文件数量记录字段File Count: IO日志文件的数量。
指针字段Files: 指向代表文件的结构。
代表文件结构有四个主要字段,如图6的右半部分:
层级编号(例如图6的编号0、1以及2):由小到大递增,编号为0的IO日志文件为写入文件。
文件描述字段fd:文件描述符,表示操作系统打开的具体文件。
日志文件状态字段status: 在本申请的一些实施例中,所述日志文件状态字段至少可存储第一状态值和第二状态值,所述第一状态值用于表征对应日志文件中存在未被所述分布式存储系统的虚拟磁盘执行的读写请求,所述第二状态值用于表征对应日志文件中的记录的各条待处理IO读写请求均已被所述分布式存储系统的虚拟磁盘执行,其中,所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:将与所述第二状态值对应的各条待处理IO读写请求的日志均进行删除。例如,在本申请的另一些实施例中,该IO日志文件的状态,有三种:活跃、有效、无效。活跃表示该文件允许写入;有效表示该文件记录的IO存在还没确定分布式存储系统写入了;无效表示确定该文件记录的IO均已写入分布式文件系统。
下一级文件指针字段next:指向下一级的文件。
也就是说,在一些实施例中,所述第一日志文件属于为第一虚拟硬盘设置的一个日志文件,所述方法还包括:采用如下多个字段管理与所述第一虚拟硬盘对应的多个日志文件:虚拟机标志字段,用于唯一标识所述超融合架构的虚拟机;日志文件数量记录字段,用于记录与所述第一虚拟硬盘对应的所有日志文件的总数目;虚拟磁盘标识字段,用于唯一表征对应虚拟机的各虚拟磁盘;指针字段,用于指向所述多个日志文件;其中,所述指针字段至少包括:与各日志文件分别对应的日志文件状态字段。本申请的一些实施例采用多个字段管理为一个虚拟硬盘设置的多个日志文件。
如图7所示,本申请的一些实施例提供一种用于构建超融合架构的服务器500,所述服务器包括:存储器510,被配置为:存储多条日志,其中,各条日志分别与一条待处理IO读写请求对应;存储计算机程序;处理器520,其中,所述处理器执行所述计算机程序时可实现如下操作:更新所述日志文件;在需要执行数据恢复操作时,根据所述日志文件恢复未被执行的待处理IO读写请求。可以理解的是,处理器520通过总线530从存储器510读取程序和日志等。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图4中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (18)
1.一种读写虚拟硬盘的方法,应用于构建超融合架构的服务器上,其特征在于,所述方法包括:
获取至少一条待处理IO读写请求,其中,所述至少一条待处理IO读写是虚拟机产生的请求,且所述待处理IO读写请求需要通过网络发送至分布式存储系统的虚拟磁盘执行读写操作;
记录并更新与所述至少一条待处理IO读写请求对应的日志数据;
在需要执行数据恢复操作时,根据所述日志数据恢复未被执行的待处理IO读写请求。
2.如权利要求1所述的方法,其特征在于,所述获取至少一条待处理IO读写请求包括:
接收由本地应用程序或文件系统生成的IO读写请求;
将所述IO读写请求作为所述待处理IO读写请求。
3.如权利要求2所述的方法,其特征在于,所述获取至少一条待处理IO读写请求包括:
接收来自于用于构建所述超融合架构的另一服务器的IO读写请求,其中,所述IO读写请求需要通过网络发送至所述分布式存储系统的虚拟磁盘执行读写操作;
将所述IO读写请求作为所述待处理IO读写请求。
4.如权利要求1所述的方法,其特征在于,
所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:
将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中;
根据所述各条待处理IO读写请求在所述虚拟磁盘上的执行结果更新所述日志数据。
5.如权利要求4所述的方法,其特征在于,每条IO日志均包括序列号字段、偏移量字段、数据量大小字段以及标志位字段。
6.如权利要求4所述的方法,其特征在于,在所述将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中之前,所述方法还包括:
确认所述日志文件为写入文件。
7.如权利要求5所述的方法,其特征在于,
所述将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中,包括:
将与第一待处理IO读写请求对应的序列号,保存在所述序列号字段,其中,所述第一待处理IO读写请求属于所述至少一条待处理IO读写请求中的任意一条读写请求;
将与所述第一待处理IO读写请求对应的读写虚拟硬盘的位置保存在所述偏移量字段;
将与所述第一待处理IO读写请求携带的数据大小保存在所述数据量大小字段;
设置与所述第一待处理IO读写请求对应的标志位字段的值为第一数值,其中,所述第一数值表征所述第一待处理IO读写请求未被所述虚拟磁盘执行。
8.如权利要求5所述的方法,其特征在于,所述根据所述日志数据恢复未被执行的待处理IO读写请求,包括:在执行恢复操作时,若确认任一标志位字段的数值表征对应存储的第一待处理IO读写请求处于未被所述虚拟磁盘执行的状态,则获取所述第一待处理IO读写请求,以向所述分布式存储系统的虚拟磁盘提供所述第一待处理IO读写请求。
9.如权利要求7所述的方法,其特征在于,所述根据所述各条待处理IO读写请求在所述虚拟磁盘上的执行结果更新所述日志数据,包括:若确认任一待处理IO读写请求被所述虚拟磁盘执行后,将与被执行待处理IO读写请求对应的标志位字段的值从所述第一数值修改为第二数值。
10.如权利要求1所述的方法,其特征在于,
所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:
定时或定量触发针对包括所述日志数据的日志文件的更新操作。
11.如权利要求10所述的方法,其特征在于,所述至少一条待处理IO读写请求为并发的N条IO读写请求,所述N条IO读写请求在所述日志文件中对应存储为N条日志,N为大于1的正整数,其中,
所述定时或定量触发针对包括所述日志数据的日志文件的更新操作,包括:
依据所述N条IO读写请求的产生顺序,确认所述N条IO读写请求中第一条IO读写请求至第M条IO读写请求共连续M条读写请求均被所述虚拟磁盘执行;
将所述N条日志中M条日志的所有标志字段的值从第一数值修改为第二数值;
其中,所述第一数值表征对应的待处理IO读写请求未被所述虚拟磁盘执行,所述第二数值表征对应的待处理IO读写请求已被所述虚拟磁盘执行。
12.如权利要求10所述的方法,其特征在于,所述至少一条待处理IO读写请求为并发的N条IO读写请求,所述N条IO读写请求在所述日志文件中对应存储为N条日志,N为大于1的正整数,其中,
所述定时或定量触发针对包括所述日志数据的日志文件的更新操作,包括:
依据所述N条IO读写请求的产生顺序,确认所述N条IO读写请求中第一条IO读写请求至第M条IO读写请求共连续M条读写请求均被所述虚拟磁盘执行;
将与所述第M条IO读写请求对应的第M条日志的标志字段的值从第一数值修改为第二数值;
其中,所述第一数值表征对应的待处理IO读写请求未被所述虚拟磁盘执行,所述第二数值表征对应的待处理IO读写请求已被所述虚拟磁盘执行。
13.如权利要求4所述的方法,其特征在于,所述日志数据被记录于第一日志文件中,
在所述将与各条待处理IO读写请求对应的数据分别采用一条IO日志记录在日志文件中之后,所述方法还包括:
若确认所述第一日志文件上所存储的日志条数达到设置阈值,则拆分所述第一日志文件;
若确认所述第一日志文件上所存储的日志条数未达到设置阈值,则继续在所述第一日志文件中存储下一条待处理IO读写请求。
14.如权利要求13所述的方法,其特征在于,所述第一日志文件属于为第一虚拟硬盘设置的一个日志文件,所述方法还包括:
采用如下多个字段管理与所述第一虚拟硬盘对应的多个日志文件:
虚拟机标志字段,用于唯一标识所述超融合架构的虚拟机;
日志文件数量记录字段,用于记录与所述第一虚拟硬盘对应的所有日志文件的总数目;
虚拟磁盘标识字段,用于唯一表征对应虚拟机的各虚拟磁盘;
指针字段,用于指向所述多个日志文件;
其中,所述指针字段至少包括:与各日志文件分别对应的日志文件状态字段。
15.如权利要求14所述的方法,其特征在于,所述日志文件状态字段至少可存储第一状态值和第二状态值,所述第一状态值用于表征对应日志文件中存在未被所述分布式存储系统的虚拟磁盘执行的读写请求,所述第二状态值用于表征对应日志文件中的记录的各条待处理IO读写请求均已被所述分布式存储系统的虚拟磁盘执行,其中,
所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:
将与所述第二状态值对应的各条待处理IO读写请求的日志均进行删除。
16.如权利要求14所述的方法,其特征在于,
所述记录并更新与所述至少一条待处理IO读写请求对应的日志数据,包括:
若确认第i日志文件中存在至少一条失效日志,则将在生成所述第i日志文件之前生成的各日志文件均进行删除,其中,所述失效日志是被所述分布式存储系统的虚拟磁盘执行的读写请求对应的日志。
17.一种用于构建超融合架构的服务器,其特征在于,所述服务器包括:
存储器,被配置为:
存储多条日志,其中,各条日志分别与一条待处理IO读写请求对应;
存储计算机程序;
处理器,其中,所述处理器执行所述计算机程序时可实现如下操作:
更新与所述多条日志对应的日志文件;
在需要执行数据恢复操作时,根据所述日志文件恢复未被执行的待处理IO读写请求。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1-16中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310535732.XA CN116483284B (zh) | 2023-05-12 | 2023-05-12 | 一种读写虚拟硬盘的方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310535732.XA CN116483284B (zh) | 2023-05-12 | 2023-05-12 | 一种读写虚拟硬盘的方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116483284A true CN116483284A (zh) | 2023-07-25 |
CN116483284B CN116483284B (zh) | 2024-05-28 |
Family
ID=87225119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310535732.XA Active CN116483284B (zh) | 2023-05-12 | 2023-05-12 | 一种读写虚拟硬盘的方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483284B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812095A (zh) * | 2023-12-29 | 2024-04-02 | 北京天融信网络安全技术有限公司 | 多数据副本数据一致性的检测方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102160030A (zh) * | 2008-09-19 | 2011-08-17 | 微软公司 | 对于数据存储的写通信的聚集 |
US20140040572A1 (en) * | 2012-08-01 | 2014-02-06 | Microsoft Corporation | Request ordering support when switching virtual disk replication logs |
CN103605630A (zh) * | 2013-11-28 | 2014-02-26 | 中标软件有限公司 | 一种虚拟服务器系统及其数据读写方法 |
CN108108476A (zh) * | 2018-01-03 | 2018-06-01 | 中科边缘智慧信息科技(苏州)有限公司 | 高可靠分布式日志系统的工作方法 |
US10339101B1 (en) * | 2015-09-11 | 2019-07-02 | Cohesity, Inc. | Distributed write journals that support fast snapshotting for a distributed file system |
CN112119380A (zh) * | 2018-05-18 | 2020-12-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
US20220019501A1 (en) * | 2020-07-14 | 2022-01-20 | Micron Technology, Inc. | Adjusting read throughput level for a data recovery operation |
CN115454570A (zh) * | 2022-09-01 | 2022-12-09 | 阿里巴巴(中国)有限公司 | 灾备方法、灾备恢复方法、虚拟机系统、设备及存储介质 |
-
2023
- 2023-05-12 CN CN202310535732.XA patent/CN116483284B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102160030A (zh) * | 2008-09-19 | 2011-08-17 | 微软公司 | 对于数据存储的写通信的聚集 |
US20140040572A1 (en) * | 2012-08-01 | 2014-02-06 | Microsoft Corporation | Request ordering support when switching virtual disk replication logs |
CN103605630A (zh) * | 2013-11-28 | 2014-02-26 | 中标软件有限公司 | 一种虚拟服务器系统及其数据读写方法 |
US10339101B1 (en) * | 2015-09-11 | 2019-07-02 | Cohesity, Inc. | Distributed write journals that support fast snapshotting for a distributed file system |
CN108108476A (zh) * | 2018-01-03 | 2018-06-01 | 中科边缘智慧信息科技(苏州)有限公司 | 高可靠分布式日志系统的工作方法 |
CN112119380A (zh) * | 2018-05-18 | 2020-12-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
US20220019501A1 (en) * | 2020-07-14 | 2022-01-20 | Micron Technology, Inc. | Adjusting read throughput level for a data recovery operation |
CN115454570A (zh) * | 2022-09-01 | 2022-12-09 | 阿里巴巴(中国)有限公司 | 灾备方法、灾备恢复方法、虚拟机系统、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
严文瑞 等: "一种面向大容量光盘库的新型文件系统", 计算机研究与发展, no. 2, 15 December 2015 (2015-12-15), pages 1 - 8 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812095A (zh) * | 2023-12-29 | 2024-04-02 | 北京天融信网络安全技术有限公司 | 多数据副本数据一致性的检测方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116483284B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8868858B2 (en) | Method and apparatus of continuous data backup and access using virtual machines | |
US10909004B1 (en) | Online system checkpoint recovery orchestration | |
US10409493B1 (en) | Online system checkpoint alert and handling | |
KR100983300B1 (ko) | 데이터 처리 시스템 내에서의 고장 복구 | |
US9183236B2 (en) | Low level object version tracking using non-volatile memory write generations | |
JP5124989B2 (ja) | ストレージシステム及びデータ保護方法とプログラム | |
JP3808007B2 (ja) | 記憶装置のキャッシング方法およびシステム | |
US8438135B1 (en) | Mirroring metadata in a continuous data protection environment | |
US8055861B2 (en) | Methods and apparatus for managing deletion of data | |
US7281084B1 (en) | Method and apparatus for modifying a retention period | |
US9690666B1 (en) | Incremental backup operations in a transactional file system | |
US20150213100A1 (en) | Data synchronization method and system | |
US10664358B1 (en) | Ensure volume consistency for online system checkpoint | |
EP2590078B1 (en) | Shadow paging based log segment directory | |
JP2008527571A5 (zh) | ||
US20210349793A1 (en) | System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout | |
CN116483284B (zh) | 一种读写虚拟硬盘的方法、装置、介质及电子设备 | |
US7428621B1 (en) | Methods and apparatus for storing a reflection on a storage system | |
US11003542B1 (en) | Online consistent system checkpoint | |
CN108271420B (zh) | 管理文件的方法、文件系统和服务器系统 | |
US11226875B2 (en) | System halt event recovery | |
JP2000076110A (ja) | 分散ファイルシステムにおける回復処理システム | |
CN114116312A (zh) | 基于分布式块存储的row快照设计方法及系统 | |
US11645333B1 (en) | Garbage collection integrated with physical file verification | |
US20230333946A1 (en) | Method and system for continuous data protection |
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 |