磁盘映像生成方法、装置、设备及存储介质与流程

文档序号:32290838发布日期:2022-11-23 01:35阅读:41来源:国知局
磁盘映像生成方法、装置、设备及存储介质与流程

1.本发明涉及灾备技术领域,尤其涉及一种磁盘映像生成方法、装置、设备及存储介质。


背景技术:

2.目前,在对目标磁盘的磁盘数据进行备份时,一般选用特定的磁盘映像格式将磁盘数据映射至存储设备,例如通过虚拟磁盘映像格式(virtual hard disk format,vhd)和raw格式(raw image format)等,通过上述磁盘映像格式生成的磁盘映像,后续若在磁盘映像中读取或写入数据以及对磁盘映像维护时,都会增加存储设备的io次数,导致存储设备的负载能力降低,因此如何提升存储设备的负载能力成为亟待解决的技术问题。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提供了一种磁盘映像生成方法、装置、设备及存储介质,旨在解决现有技术存储设备的负载能力低的技术问题。
5.为实现上述目的,本发明提供了一种磁盘映像生成方法,所述方法包括以下步骤:
6.在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定所述目标磁盘中对应的磁盘单片;
7.确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式;
8.根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。
9.可选地,所述磁盘映像格式包括少写磁盘映像格式和多写磁盘映像格式;
10.所述确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式,包括:
11.根据所述磁盘单片的历史读写记录确定所述磁盘单片在预设历史时长内的数据读取次数与数据写入次数;
12.在所述数据读取次数大于所述数据写入次数时,判定所述磁盘单片的读写特征为少写特征,所述少写特征对应的磁盘映像格式为少写磁盘映像格式;
13.在所述数据读取次数小于所述数据写入次数时,判定所述磁盘单片的读写特征为多写特征,所述多写特征对应的磁盘映像格式为多写磁盘映像格式。
14.可选地,所述磁盘映像格式包括少写磁盘映像格式和多写磁盘映像格式;所述确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式,包括:
15.获取业务系统的系统参数,并根据所述系统参数确定所述磁盘单片的读写特征;
16.在所述读写特征为少写特征时,判定所述磁盘单片对应的磁盘映像格式为少写磁
盘映像格式;
17.在所述读写特征为多写特征时,判定所述磁盘单片对应的磁盘映像格式为多写磁盘映像格式。
18.可选地,所述磁盘映像包括少写区域主读写文件和少写区域快照文件;
19.所述根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像,包括:
20.在磁盘单片的读写特征为少写特征时,获取存储设备中与所述少写磁盘映像格式对应的少写区域主读写文件和少写区域快照文件;
21.将所述磁盘单片中的磁盘变更数据映射至所述少写区域主读写文件;
22.在接收到数据写入请求时,将所述少写区域主读写文件中的映射数据读取并写入所述少写区域快照文件。
23.可选地,所述少写区域主读写文件包括头部信息、映射表和读写数据区;
24.所述将所述磁盘单片中的磁盘变更数据映射至所述少写区域主读写文件,包括:
25.将所述磁盘单片中磁盘变更数据的数据信息转换为所述少写区域主读写文件的头部信息,并获取所述磁盘变更数据对应的块地址;
26.判断所述少写区域主读写文件的映射表中是否存在所述块地址;
27.在所述映射表中不存在所述块地址时,在所述少写区域主读写文件的读写数据区中为与所述块地址对应的磁盘变更数据分配存储空间并将所述块地址和分配的存储空间的地址写入所述映射表;
28.在所述映射表中存在所述块地址时,将与所述块地址对应的磁盘变更数据读取并写入所述少写区域主读写文件的读写数据区中对应的存储空间中。
29.可选地,所述少写区域主读写文件还包括拷贝标记位;
30.所述在接收到数据写入请求时,将所述少写区域主读写文件中的磁盘变更数据读取并写入所述少写区域快照文件,包括:
31.在接收到数据写入请求时,判断所述少写区域主读写文件中的磁盘映射数据对应的拷贝标记位是否为有效标记位;
32.在所述拷贝标记位为有效标记位时,将所述磁盘映射数据拷贝至所述少写区域快照文件中对应的快照中,以生成所述目标磁盘的磁盘映像;
33.在所述拷贝标记位为无效标记位时,在所述少写区域主读写文件中为所述磁盘映射数据分配存储空间,以生成所述目标磁盘的磁盘映像。
34.可选地,所述磁盘映像包括多写区域最新文件和多写区域快照文件;
35.所述根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像,包括:
36.在磁盘单片的读写特征为多写特征时,根据所述多写磁盘映像格式在存储设备中创建多写区域最新文件;
37.将所述磁盘单片中的磁盘变更数据映射至所述多写区域最新文件中;
38.在接收快照创建请求时,将所述多写区域最新文件关闭并重新命名获得多写区域快照文件,并在所述存储设备中重新创建多写区域最新文件。
39.可选地,所述多写区域最新文件包括最新文件头信息、最新文件写入头信息、最新
文件读写数据区和最新文件映射信息;
40.所述将所述磁盘单片中的磁盘变更数据映射至所述多写区域最新文件中,包括:
41.获取所述磁盘单片中的磁盘变更数据的数据信息和块地址,根据所述数据信息生成最新文件头信息,并根据所述块地址确定最新文件写入头信息;
42.根据所述最新文件写入头信息生成所述多写区域最新文件的最新文件映射信息;
43.根据所述最新文件映射信息将所述磁盘变更数据写入所述多写区域最新文件的最新文件读写数据区。
44.此外,为实现上述目的,本发明还提出一种磁盘映像生成装置,所述装置包括:
45.监测模块,用于在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定所述目标磁盘中对应的磁盘单片;
46.确定模块,用于确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式;
47.映射模块,用于根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。
48.此外,为实现上述目的,本发明还提出一种磁盘映像生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的磁盘映像生成程序,所述磁盘映像生成程序配置为实现如上文所述的磁盘映像生成方法的步骤。
49.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有磁盘映像生成程序,所述磁盘映像生成程序被处理器执行时实现如上文所述的磁盘映像生成方法的步骤。
50.本发明在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定所述目标磁盘中对应的磁盘单片;确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式;根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。由于本发明是在目标磁盘中的磁盘数据发生变更时,根据与磁盘变更数据对应磁盘单片的读写特征确定磁盘映像格式,根据该磁盘映像格式将磁盘变更数据映射至存储设备中对应的磁盘映像,可保证磁盘映像中的数据存储在连续的扇区中,在后续对存储设备中的磁盘映像执行读写时,降低了存储设备的移道,并且后续对磁盘映像的快照进行维护时,不会增加io次数,提高了存储设备的负载能力。
附图说明
51.图1是本发明实施例方案涉及的硬件运行环境的磁盘映像生成设备的结构示意图;
52.图2为本发明磁盘映像生成方法第一实施例的流程示意图;
53.图3为本发明磁盘映像生成方法第二实施例的流程示意图;
54.图4为本发明磁盘映像生成方法第二实施例的少写磁盘映像格式的示意图;
55.图5为本发明磁盘映像生成方法第三实施例的流程示意图;
56.图6为本发明磁盘映像生成方法第三实施例的多写磁盘映像格式的示意图;
57.图7为本发明磁盘映像生成装置第一实施例的结构框图。
58.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
59.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
60.参照图1,图1为本发明实施例方案涉及的硬件运行环境的磁盘映像生成设备结构示意图。
61.如图1所示,该磁盘映像生成设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram),也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
62.本领域技术人员可以理解,图1中示出的结构并不构成对磁盘映像生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
63.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及磁盘映像生成程序。
64.在图1所示的磁盘映像生成设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明磁盘映像生成设备中的处理器1001、存储器1005可以设置在磁盘映像生成设备中,所述磁盘映像生成设备通过处理器1001调用存储器1005中存储的磁盘映像生成程序,并执行本发明实施例提供的磁盘映像生成方法。
65.本发明实施例提供了一种磁盘映像生成方法,参照图2,图2为本发明磁盘映像生成方法第一实施例的流程示意图。
66.本实施例中,所述磁盘映像生成方法包括以下步骤:
67.步骤s1:在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定所述目标磁盘中对应的磁盘单片。
68.需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如平板电脑、个人电脑、手机等,或者是一种能够实现上述功能的电子设备、磁盘映像生成设备等。以下以磁盘映像生成设备为例,对本实施例及下述各实施例进行说明。
69.可以理解的是,目标磁盘可以是需要生成磁盘映像的磁盘;磁盘是用于储存信息的设备,通常是将信息数字化后,利用电、磁或光学等方式的媒体加以存储,本实施例的磁盘主要是指硬盘、磁盘阵列(redundant arrays of independent disks,raid)、san存储(storage area network,san)、网络附属存储(network attached storage,nas)等存储设备。
70.应该理解的是,扇区为数据存储设备接受读或写功能的最小单位,每一个扇区都有地址编号(logical block addressing,lba),由于非连续写入的数据会产生磁盘碎片,磁盘碎片会加长硬盘的寻道时间,影响系统效能,为了提高系统效能,可预先根据目标磁盘的lba对目标磁盘进行分割,获得若干磁盘单片。
71.可以理解的是,磁盘单片可以是一次系统读写调用能完成的扇区的大小范围,磁盘单片中的扇区是连续的,一次系统读写能调用能完成扇区的大小范围由系统的性能决定;对目标磁盘进行分割,获得若干磁盘单片还可以是根据目标磁盘的lba和系统读写性能对目标磁盘进行分割,获得若干磁盘单片。
72.可以理解的是,数据发生变更可以是目标磁盘中的数据被修改;数据地址可以是磁盘变更数据在目标磁盘中的地址;磁盘变更数据可以是目标磁盘中被修改的数据,例如在目标磁盘中写入数据,则写入的数据即为磁盘变更数据。
73.在具体实现中,本实施例的磁盘映像生成方法可应用于虚拟机磁盘映像的生成,在虚拟机启动时,对虚拟机中的目标磁盘进行实时监测,在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据确定目标磁盘中对应的存储磁盘变更数据的磁盘单片。
74.步骤s2:确定所述磁盘单片的读写特征,并根据所述读写特征确定各磁盘单片对应的磁盘映像格式。
75.应该理解的是,读写特征可以是读取特征或写入特征;由于磁盘或数据存储设备上并不是所有区域都有数据,所以在生成磁盘或数据存储设备的磁盘映像时,需要通过磁盘映像格式来存储磁盘或数据存储设备的数据。
76.步骤s3:根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。
77.可以理解的是,存储设备可以是存储目标磁盘的磁盘映像的设备;磁盘映像可以是计算机领域中一个对象,常见为一个文件或一个块设备,其包含一个磁盘或数据存储设备的内容和结构,包括但不限于硬盘、软盘、磁带、光盘、闪存盘等,通常是按照目标磁盘的扇区级复制,从而完全复制目标磁盘文件系统的结构和内容,本实施例的磁盘映像是指大容量硬盘影像。
78.在具体实现中,磁盘映像生成设备根据目标磁盘的lba和系统性能对目标磁盘进行分割,获得若干磁盘单片,在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定目标磁盘中对应的存储该磁盘变更数据的磁盘单片,确定该磁盘单片的读写特征,根据读写特征确定对应的磁盘映像格式,通过该磁盘映像格式将磁盘单片中的磁盘变更数据映射至存储设备中对应的磁盘映像。
79.进一步地,由于不同磁盘单片中的数据读写不同,不同磁盘单片对数据读取性能和数据写入性能的要求也不同,为了对具有不同读写特征的磁盘单片确定不同的磁盘映像格式,以在后续读取数据或写入数据时降低io次数,所述磁盘映像格式包括少写磁盘映像格式和多写磁盘映像格式;所述步骤s2包括:
80.步骤s21:根据所述磁盘单片的历史读写记录确定所述磁盘单片在预设历史时长内的数据读取次数与数据写入次数。
81.可以理解的是,历史读写记录可以是预设历史时长内读取磁盘单片中的磁盘数据或向磁盘单片中写入数据的记录;预设历史时长可以是预先设定的统计数据读取次数和数据写入次数的时长,可根据具体场景设定;数据读取次数可以是从磁盘单片中读取数据的次数;数据写入次数可以是向磁盘单片中写入数据的次数。
82.应该理解的是,还可以根据数据读取次数和预设历史时长确定数据读取频率;可以根据数据写入次数和预设历史时长确定数据写入频率。
83.步骤s22:在所述数据读取次数大于所述数据写入次数时,判定所述磁盘单片的读写特征为少写特征,所述少写特征对应的磁盘映像格式为少写磁盘映像格式。
84.应该理解的是,少写特征可以是该磁盘单片数据读取次数大于数据写入次数的特征;少写特征对应的磁盘单片存储的文件一般为程序文件、库文件、配置文件或数据库表区域等不常修改的文件。
85.步骤s23:在所述数据读取次数小于所述数据写入次数时,判定所述磁盘单片的读写特征为多写特征,所述多写特征对应的磁盘映像格式为多写磁盘映像格式。
86.应该理解的是,多写特征可以是该磁盘单片数据读取次数小于数据写入次数的特征;多写特征对应的磁盘单片存储的文件一般为数据库系统的日志文件。
87.可以理解的是,还可以根据预设历史时长内磁盘单片的数据读取次数和数据写入次数的占比确定该磁盘单片的读写特征,若预设历史时长内数据读取的占比高于第一预设值,则为少写特征,若预设历史时长内数据读取的占比低于第二预设值,则为多写特征;例如第一预设值为80%,若预设历史时长内数据读取占比为88%,则该磁盘单片的读写特征为少写特征。
88.进一步地,为了对具有不同读写特征的磁盘单片确定不同的磁盘映像格式,以在后续读取数据或写入数据时降低io次数,所述磁盘映像格式包括少写磁盘映像格式和多写磁盘映像格式,所述步骤s2还包括:获取业务系统的系统参数,并根据所述系统参数确定所述磁盘单片的读写特征;在所述读写特征为少写特征时,判定所述磁盘单片对应的磁盘映像格式为少写磁盘映像格式;在所述读写特征为多写特征时,判定所述磁盘单片对应的磁盘映像格式为多写磁盘映像格式。
89.可以理解的是,系统参数包括业务系统的配置参数和业务系统的特征参数;其中业务系统的配置参数可以是人工设置的参数,例如若人工设置业务系统的目标磁盘中一磁盘单片的配置参数为多写特征参数,则可确定该磁盘单片为多写特征,若人工设置业务系统的目标磁盘中一磁盘单片的配置参数为少写特征参数,则可确定该磁盘单片为少写特征;业务系统的特征参数可以是与业务系统类型对应的参数,例如业务系统的特征参数对应的业务系统类型为日志业务系统,则可确定磁盘单片的读写特征为多写特征,若业务系统的特征参数对应的业务系统类型为配置文件系统,则可确定磁盘单片的读写特征为少写特征。
90.本实施例在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定所述目标磁盘中对应的磁盘单片;确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式;根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。由于本实施例是在目标磁盘中的磁盘数据发生变更时,根据与磁盘变更数据对应磁盘单片的读写特征确定磁盘映像格式,根据该磁盘映像格式将磁盘变更数据映射至存储设备中对应的磁盘映像,可保证磁盘映像中的数据存储在连续的扇区中,在后续对存储设备中的磁盘映像执行读写时,降低了存储设备的移道,并且后续对磁盘映像的快照进行维护时,不会增加io次数,提高了存储设备的负载能力。
91.参考图3,图3为本发明磁盘映像生成方法第二实施例的流程示意图。
92.基于上述第一实施例,在本实施例中,所述步骤s3包括:
93.步骤s31:在磁盘单片的读写特征为少写特征时,获取存储设备中与所述少写磁盘
映像格式对应的少写区域主读写文件和少写区域快照文件。
94.可以理解的是,在磁盘单片的读写特征为少写特征时,存储设备中对应的磁盘映像包括少写区域主读写文件和少写区域快照文件。
95.应该理解的是,少写磁盘映像格式可参照图4,少写磁盘映像格式主要分为两个区域,少写区域主读写文件和少写区域快照文件,少写区域主读写文件包含头信息(head)、拷贝标记位(bitmap)、映射表(map)和读写数据区;少写区域快照文件包含快照头部信息(snapshot1 head)、快照有效数据映射表(snapshot1 map_s)和快照实体数据(snapshot1 data)。
96.可以理解的是,少写区域主读写文件可以是承载少写特征的磁盘单片的数据读写功能的文件,由于该文件被整理为连续空间,在将少写特征磁盘单片中的磁盘数据写入少写区域主读写文件时,由于写入的数据被存储至连续空间,不会产生随机io,可提高数据写入的效率;少写区域快照文件可以是承载所有快照数据的存储的文件,快照数据可以是指磁盘映像中,某一时刻的数据集合。
97.步骤s32:将所述磁盘单片中的磁盘变更数据映射至所述少写区域主读写文件。
98.可以理解的是,在接收到数据写入请求时,若在映射表中未查找到该块地址,则表示对应的数据未映射过,此时在少写区域主读写文件的尾部为其分配存储空间;若该块地址映射过,则将少写区域主读写文件中对应块拷贝到少写区域快照文件中的对应快照中,再将磁盘变更数据映射至少写区域主读写文件,以实现修改数据前将少写区域主读写文件中的历史数据拷贝到快照点中。
99.步骤s33:在接收到数据写入请求时,将所述少写区域主读写文件中的映射数据读取并写入所述少写区域快照文件。
100.在具体实现中,在接收到数据写入请求时,将少写区域主读写文件中的映射数据读取并写入少写区域快照文件对应的快照点中。
101.进一步地,为了使少写区域主读写文件中数据存储在连续空间,以在后续读取数据时,降低io次数,所述少写区域主读写文件包括头部信息、映射表和读写数据区;所述步骤s32包括:
102.步骤s321:将所述磁盘单片中磁盘变更数据的数据信息转换为所述少写区域主读写文件的头部信息,并获取所述磁盘变更数据对应的块地址。
103.可以理解的是,数据信息包括数据对应文件的文件识别标记、分块大小、文件大小和读写记录统计信息,将数据信息转换为少写区域主读写文件的头部信息;多个扇区组合成一块来统一分配、读写或管理时,该块的编号即块地址。
104.步骤s322:判断所述少写区域主读写文件的映射表中是否存在所述块地址。
105.可以理解的是,映射表包括三个元素:映射源地址、映射文件内偏移和映射长度,映射源地址记录磁盘数据的起始块号,映射文件内偏移记录在少写区域主读写文件内的文件偏移,映射长度是记录本次映射包含变长的块数;判断少写区域主读写文件的映射表中是否存在块地址可以是判断映射表中的映射源地址是否包含该块地址,若是,则判定映射表中存在该块地址,若否,则判定映射表中不存在该块地址。
106.步骤s323:在所述映射表中不存在所述块地址时,在所述少写区域主读写文件的读写数据区中为与所述块地址对应的磁盘变更数据分配存储空间并将所述块地址和分配
的存储空间的地址写入所述映射表。
107.可以理解的是,在映射表中不存在块地址时,表明该块地址对应的磁盘数据未映射过;读写数据区可以是读写并存储数据的区域。
108.在具体实现中,在映射表中不存在该块地址时,表示该块地址对应的磁盘数据未在少写区域主读写文件中映射过,在少写区域主读写文件的读写数据区末尾为与块地址对应的磁盘变更数据分配存储空间并将块地址和分配的存储空间的地址写入映射表中。
109.步骤s324:在所述映射表中存在所述块地址时,将与所述块地址对应的磁盘变更数据读取并写入所述少写区域主读写文件的读写数据区中对应的存储空间中。
110.应该理解的是,在映射表中存在该块地址时,表明该块地址对应的磁盘数据已在少写区域主读写文件映射过。
111.在具体实现中,在映射表中存在该块地址时,表明该块地址对应的磁盘数据已在少写区域主读写文件中映射过,此时根据映射表中记录的映射文件内偏移和映射长度将少写区域主读写文件中该块地址对应的映射数据拷贝至少写区域快照文件对应的快照中,并将新的磁盘变更数据映射至读写数据区中对应的存储空间。
112.进一步地,为了在数据修改前将历史数据拷贝到快照点中,以保证快照数据的完整,所述少写区域主读写文件还包括拷贝标记位;所述在接收到数据写入请求时,将所述少写区域主读写文件中的映射数据读取并写入所述少写区域快照文件,以生成目标磁盘的磁盘映像,包括:在接收到数据写入请求时,判断所述少写区域主读写文件中的磁盘映射数据对应的拷贝标记位是否为有效标记位;在所述拷贝标记位为有效标记位时,将所述磁盘映射数据拷贝至所述少写区域快照文件中对应的快照中,以生成所述目标磁盘的磁盘映像;在所述拷贝标记位为无效标记位时,在所述少写区域主读写文件中为所述磁盘映射数据分配存储空间,以生成所述目标磁盘的磁盘映像。
113.可以理解的是,少写区域快照文件包含:快照头部信息(snapshot1 head)、快照有效数据映射表(snapshot1 map)、快照实体数据(snapshot1 data),其中快照头部信息(snapshot1 head)包含快照名、快照大小、有效数据量等信息;快照映射表(snapshot1 map)主要也是包含映射源地址,映射文件内偏移,映射长度;快照实体数据(snapshot1 data)就是写入少写区域快照文件中的实际映射数据。
114.应该理解的是,拷贝标记位为有效标记位时,可用“1”表示;拷贝标记位为无效标记位时,可用“0”表示;未在少写区域快照文件中创建磁盘数据的快照或已经删除所有快照,则拷贝标记位初始化为“0”;若在少写区域快照文件中有历史快照,则拷贝标记位初始化为“1”。
115.在具体实现中,在接收到将少写区域主读写文件内的磁盘映射数据写入少写区域快照文件时,若该磁盘映射数据对应的拷贝标记位为“1”,则将少写区域主读写文件磁盘映射数据对应的块拷贝至少写区域快照文件中对应的快照中以实现修改数据前将历史数据拷贝到快照点中;若该磁盘映射数据对应的拷贝标记位为“0”,则少写区域主读写文件中为其分配存储空间。
116.可以理解的是,当收到数据写入请求时,因为需要读取的数据全部在少写区域主读写文件中,而这个文件通常会被整理为连续的空间,所以读取通常是一次完成,不会发生多余的io,因此没有多余的磁盘移道发生,这样的性能几乎等同于直接用磁盘或数据存储
设备的性能,几乎无额外的性能损耗,因为少写区域主读写文件主要承载的是数据读取,在这种情况下,降低了磁盘或数据存储设备的移道,就相当于提高了整个磁盘或数据存储设备的承载能力。
117.应该理解的是,由于少写区域主读写文件中存储的是对应磁盘单片的最新数据,在后续删除快照时不需要做文件间的合并,直接删除即可,不会增加io次数;在后续从存储设备中读取数据时,由于需要读取的数据全部写在少写区域主读写文件中,而少写区域主读写文件被整理为连续空间,所以读取数据通常一次完成,不会发生多余的io。
118.本实施例在磁盘单片的读写特征为少写特征时,根据所述少写磁盘映像格式在存储设备中创建少写区域主读写文件和少写区域快照文件;将所述磁盘单片中的磁盘数据映射至所述少写区域主读写文件;在接收到数据写入请求时,将所述少写区域主读写文件中的映射数据读取并写入所述少写区域快照文件,在读取数据时,由于需要读取的数据全部在少写区域主读写文件中,而少写区域主读写文件为连续空间,在读取数据时不会增加io次数,在删除快照时,不需要进行文件间的合并也不会增加io次数,提高了磁盘的承载能力。
119.参考图5,图5为本发明磁盘映像生成方法第三实施例的流程示意图。
120.基于上述各实施例,在本实施例中,所述步骤s3包括:
121.步骤s34:在磁盘单片的读写特征为多写特征时,根据所述多写磁盘映像格式在存储设备中创建多写区域最新文件。
122.应该理解的是,在磁盘单片的读写特征为多写特征时,存储设备中对应的磁盘映像包括多写区域快照文件和多写区域最新文件。
123.可以理解的是,多写磁盘映像格式可参照图6,多写磁盘映像格式包括多写区域最新文件和多写区域快照文件;多写区域最新文件包含:最新文件头信息(head)、最新文件写入头信息(io_head)、最新文件读写数据区、最新文件映射信息(map);最新文件头信息主要包含标记信息等;最新文件写入头信息(io_head)包含单笔数据写入时的信息,包含单笔数据写入扇区数、单笔数据写入源lba地址,单笔数据写入数据映射的文件内偏移;通过枚举所有最新文件写入头信息(io_head),可以构造出完成的映射表,当重复写入的时候,根据之前的映射关系,覆盖写入到之前分配的区域中;当写入次数足够多并且产生了写入碎片的时候,异步启动碎片整理模块,当磁盘或数据存储设备在io不繁忙时对本分片执行一次碎片整理,因为分片尺寸不大,所以几乎瞬间完成。
124.步骤s35:将所述磁盘单片中的磁盘变更数据映射至所述多写区域最新文件中。
125.在具体实现中,在生成多写特征的磁盘单片的磁盘映像时,先将磁盘单片中的磁盘数据映射至多写区域最新文件中。
126.步骤s36:在接收快照创建请求时,将所述多写区域最新文件关闭并重新命名获得多写区域快照文件,并在所述存储设备中重新创建多写区域最新文件。
127.在具体实现中,在磁盘映像生成设备在接收到快照创建请求时,将当前多写区域最新文件关闭,并将当前多写区域最新文件重命名为创建的快照点,并重新创建多写区域最新文件来存储最新的文件。
128.进一步地,为了在生成磁盘映像时,减少存储设备中的磁盘碎片,所述多写区域最新文件包括最新文件头信息、最新文件写入头信息、最新文件读写数据区和最新文件映射
信息;所述将所述磁盘单片中的磁盘变更数据映射至所述多写区域最新文件中,包括:获取所述磁盘单片中的磁盘变更数据的数据信息和块地址,根据所述数据信息生成最新文件头信息,并根据所述块地址确定最新文件写入头信息;根据所述最新文件写入头信息生成所述多写区域最新文件的最新文件映射信息;根据所述最新文件映射信息将所述磁盘变更数据写入所述多写区域最新文件的最新文件读写数据区。
129.可以理解的是,在将多写特征磁盘单片的磁盘数据映射多写区域主读写文件时,若该磁盘数据从未映射过,则在文件尾部为其分配一块新的存储空间,最后一次性完成写入头信息和磁盘数据的写入,不会增加io写入的次数。
130.在具体实现中,根据磁盘单片中磁盘变更数据的数据信息生成最新文件头信息,根据磁盘数据的块地址生成多写区域最新文件的最新文件写入头信息,通过枚举所有最新文件写入头信息构造完整的最新文件映射表,根据映射表的映射关将磁盘单片的磁盘变更数据写入最新文件读写数据区。
131.可以理解的是,在本实施例中,生成多写特征的磁盘单片的磁盘映像时,当收到数据写入后,如果该数据从未映射过,最在多写区域最新文件尾部分配一块新的空间,然后一次io完成最新文件写入头信息(io_head)和实际数据的写入,并未增加io写入的次数,减少了磁盘或数据存储设备的移道次数,几乎等同于直接使用磁盘或数据存储设备,极大的提高了io写入性能。即使是重复写入的时候,因为原始数据特征相似,通常不会跨越多个映射单元的写,所以也是一次io写入。几乎不会产生磁盘或数据存储设备的移道,而即使要读取数据,也可以简单的通过多写区域最新文件映射信息(map)表来快速定位到数据在哪个快照的哪个文件偏移中;并且由于每个多写区域快照文件是将多写区域最新文件关闭并重新命名获得的,后续对磁映像进行维护,删除一个或多个多写区域快照文件时,不需要进行快照文件间的合并,不会发生多余的io。
132.本实施例在磁盘单片的读写特征为多写特征时,根据所述多写磁盘映像格式在存储设备中创建多写区域最新文件;将所述磁盘单片中的磁盘变更数据映射至所述多写区域最新文件中;在接收快照创建请求时,将所述多写区域最新文件关闭并重新命名获得多写区域快照文件,并在所述存储设备中重新创建多写区域最新文件。能够在磁盘单片为多写特征时,将磁盘单片中的磁盘变更数据映射至多写区域最新文件,并在接收到快照创建请求时,关闭多写区域最新文件并将其重新命名为创建的快照点获得多写区域快照文件,多写区域最新文件为连续空间,在将磁盘单片的磁盘变更数据映射至多写区域最新文件时,不会产生随机io,而且每个多写区域快照文件是将多写区域最新文件关闭并重新命名获得的,后续删除多写区域快照文件时,不需要进行文件间的合并,不会产生多余的io,提高了存储设备的负载能力。
133.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有磁盘映像生成程序,所述磁盘映像生成程序被处理器执行时实现如上文所述的磁盘映像生成方法的步骤。
134.参照图7,图7为本发明磁盘映像生成装置第一实施例的结构框图。
135.如图7所示,本发明实施例提出的磁盘映像生成装置包括:分割模块10、确定模块20和生成模块30。
136.所述监测模块10,用于在监测到目标磁盘中的数据发生变更时,根据磁盘变更数
据的数据地址确定所述目标磁盘中对应的磁盘单片;
137.所述确定模块20,用于确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式;
138.所述映射模块30,用于根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。
139.本发明在监测到目标磁盘中的数据发生变更时,根据磁盘变更数据的数据地址确定所述目标磁盘中对应的磁盘单片;确定所述磁盘单片的读写特征,并根据所述读写特征确定所述磁盘单片对应的磁盘映像格式;根据所述磁盘映像格式将所述磁盘变更数据映射至存储设备中对应的磁盘映像。由于本发明是在目标磁盘中的磁盘数据发生变更时,根据与磁盘变更数据对应磁盘单片的读写特征确定磁盘映像格式,根据该磁盘映像格式将磁盘变更数据映射至存储设备中对应的磁盘映像,可保证磁盘映像中的数据存储在连续的扇区中,在后续对存储设备中的磁盘映像执行读写时,降低了存储设备的移道,并且后续对磁盘映像的快照进行维护时,不会增加io次数,提高了存储设备的负载能力。
140.所述确定模块20,还用于根据所述磁盘单片的历史读写记录确定所述磁盘单片在预设历史时长内的数据读取次数与数据写入次数;在所述数据读取次数大于所述数据写入次数时,判定所述磁盘单片的读写特征为少写特征,所述少写特征对应的磁盘映像格式为少写磁盘映像格式;在所述数据读取次数小于所述数据写入次数时,判定所述磁盘单片的读写特征为多写特征,所述多写特征对应的磁盘映像格式为多写磁盘映像格式;所述磁盘映像格式包括少写磁盘映像格式和多写磁盘映像格式。
141.所述确定模块20,还用于获取业务系统的系统参数,并根据所述系统参数确定所述磁盘单片的读写特征;在所述读写特征为少写特征时,判定所述磁盘单片对应的磁盘映像格式为少写磁盘映像格式;在所述读写特征为多写特征时,判定所述磁盘单片对应的磁盘映像格式为多写磁盘映像格式;所述磁盘映像格式包括少写磁盘映像格式和多写磁盘映像格式。
142.所述映射模块30,还用于在磁盘单片的读写特征为少写特征时,获取存储设备中与所述少写磁盘映像格式对应的少写区域主读写文件和少写区域快照文件;将所述磁盘单片中的磁盘变更数据映射至所述少写区域主读写文;在接收到数据写入请求时,将所述少写区域主读写文件中的映射数据读取并写入所述少写区域快照文件;所述磁盘映像包括少写区域主读写文件和少写区域快照文件。
143.所述映射模块30,还用于将所述磁盘单片中磁盘变更数据的数据信息转换为所述少写区域主读写文件的头部信息,并获取所述磁盘变更数据对应的块地址;判断所述少写区域主读写文件的映射表中是否存在所述块地址;在所述映射表中不存在所述块地址时,在所述少写区域主读写文件的读写数据区中为与所述块地址对应的磁盘变更数据分配存储空间并将所述块地址和分配的存储空间的地址写入所述映射表;在所述映射表中存在所述块地址时,将与所述块地址对应的磁盘变更数据读取并写入所述少写区域主读写文件的读写数据区中对应的存储空间中;所述少写区域主读写文件包括头部信息、映射表和读写数据区。
144.所述映射模块30,还用于在接收到数据写入请求时,判断所述少写区域主读写文件中的磁盘映射数据对应的拷贝标记位是否为有效标记位;在所述拷贝标记位为有效标记
位时,将所述磁盘映射数据拷贝至所述少写区域快照文件中对应的快照中,以生成所述目标磁盘的磁盘映像;在所述拷贝标记位为无效标记位时,在所述少写区域主读写文件中为所述磁盘映射数据分配存储空间,以生成所述目标磁盘的磁盘映像;所述少写区域主读写文件还包括拷贝标记位。
145.所述映射模块30,还用于在磁盘单片的读写特征为多写特征时,根据所述多写磁盘映像格式在存储设备中创建多写区域最新文件;将所述磁盘单片中的磁盘变更数据映射至所述多写区域最新文件中;在接收快照创建请求时,将所述多写区域最新文件关闭并重新命名获得多写区域快照文件,并在所述存储设备中重新创建多写区域最新文件;所述磁盘映像包括多写区域最新文件和多写区域快照文件。
146.所述映射模块30,还用于获取所述磁盘单片中的磁盘变更数据的数据信息和块地址,根据所述数据信息生成最新文件头信息,并根据所述块地址确定最新文件写入头信息;根据所述最新文件写入头信息生成所述多写区域最新文件的最新文件映射信息;根据所述最新文件映射信息将所述磁盘变更数据写入所述多写区域最新文件的最新文件读写数据区;所述多写区域最新文件包括最新文件头信息、最新文件写入头信息、最新文件读写数据区和最新文件映射信息。
147.本发明磁盘映像生成装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
148.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
149.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
150.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
151.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1