自动调整快照设备的写入同步复制磁盘空间大小的方法

文档序号:6564463阅读:155来源:国知局

专利名称::自动调整快照设备的写入同步复制磁盘空间大小的方法
技术领域
:本发明涉及一种存储系统管理方法,尤其涉及一种存储系统的快照设备管理方法。
背景技术
:基于Linux系统的逻辑巻管理(LogicalVolumeManagement,LVM)通过在输入/输出(I/o)子系统中增加一个额外层来实现,这个加在文件系统和实体磁盘驱动之间的层称为逻辑巻设备驱动层(LogicalVolumeDeviceDriver,LVDD。通过逻辑巻设备驱动层,上层的文件系统或其它应用获得了一个对磁盘或分区虚拟视图。请参考图1,逻辑巻管理在多个同一类型存储设备(如,硬盘、RAID设备)上开启由多个实体区块(PhysicalExtent,PE)140组成的实体巻(PhysicalVolume,PV)120,并将这些实体巻120通过串联或者分条(Stripe)的方式组合成巻组(VolumeGroup,VG)100。将巻组100划分为-个或多个逻辑巻(LogicalVolume,LV)后,就可以如使用/盘符/分区(/disk/partition)—样使用/设备/巻组名/逻辑巻名(/device/vg-name/lv-name)来访问逻辑巻。逻辑巻管理可以动态地修改存储空间的大小,其上的数据亦不会丢失,且不需要重新启动计算机。为了保证数据的安全性,逻辑巻管理采用了快照(Snapshot)机制。快照技术为一种针对包括硬盘、逻辑磁盘等区块设备的备份方式,开启快照的设备称作原区块设备,开启出的快照是与原区块设备相关联的区块设备,称作快照设备。原区块设备和快照设备的描述结构都保存在系统随机存取存储器(Random-accessmemory,简称RAM)中,快照设备本身也需要使用一定的实体存储空间。一般开启快照时需要指定原区块设备、快照实际容量大小以及快照设备本身使用的存储设备,快照设备的逻辑存储容量为原区块设备的大小。在快照设备上存储数据并划分空间的最小单位为数据区块(chunk),一般大小为64k。快照并不是对原区块设备存储的数据的完全备份,而是以数据区块为单位对原区块设备进行划分,直到原区块设备的数据需要被修改时,才将需要修改的数据区块的数据复制到快照设备,这种技术被称为"写入同步复制(copy漏on-write,COW)"技术。快照被开启时会被划分为多个实体区块(通常以M为单位),每个实体区块被划分为多个数据区块。每个实体区块的第一个数据区块用以记录旧数据区土央(oldchunk)和新数据区块(newchunk)的对应关系(即,exceptiontable),其余数据区块则用以存放写入同步复制数据。请参考图2,计算机启动时,系统内核读取硬盘上的exceptiontable以在存储器上开启一个杂凑(hash)表。当在步骤200接收到用户发送的写入请求,需要进行写入同步复制(COW)操作时,首先在步骤202判断是否存在与写入请求数据区块相应的快照。当不存在快照时,在步骤210继续发送写入请求。否则,在步骤204遍历存储器中的杂凑表,在步骤206判断是否在杂凑表中査找到对应项。当在杂凑表中査找到对应项时,说明此写入请求的数据区块已完成写入同步复制操作,因此在步骤210继续发送写入请求;否则,在步骤208进行写入同步复制操作,然后在步骤210继续发送写入请求。因此公知技术的主要缺点如下每修改一次数据区块,就需要进行一次写入同步复制操作,而写入同步复制操作采用了同步输入/输出(i/o)操作,即需要等此写入操作完成,系统才会进行后面的操作。因此,当有大量写入请求发生时,写入同步复制机制会导致大量输入/输出(I/0)操作,极大地降低了系统性能。快照开启后,数据区块的大小不可以改变。如果数据区块设置过小,在处理大容量写入请求时会导致大量输入/输出操作,极大降低系统性能;反之,在处理小容量写入请求时会导致磁盘空间的浪费,并降低系统处理速度。
发明内容为了解决上述公知技术中的问题与缺陷,本发明的目的在于提供一种自动调整快照设备的写入同步复制磁盘空间大小的方法。本发明所提供的一种自动调整快照设备的写入同步复制磁盘空间大小的方法,包含以下步骤a初始化一个快照设备的一个第一磁盘空间,对第一磁盘空间的数据区块进行写入同步复制操作;b判断一个写入请求的数据区块序号是否位于第一磁盘空间;c当写入请求的数据区块序号位于第一磁盘空间时,继续维护第一磁盘空间;以及d当写入请求的数据区块序号不位于第一磁盘空间时,初始化一个第二磁盘空间,此第二磁盘空间的数据区块数目与第一磁盘空间中最大连续数据区块数目相同,并对第二磁盘空间的数据区块进行写入同步复制操作。其中该写入请求的数据区块数量不大于该快照设备的操作系统定义的磁盘输入输出的最大值。其中第一磁盘空间的数据结构包含起始序号数据变量、当前起始序号数据变量、当前最后序号数据变量、当前最大数数据变量以及最大数数据变量。其中第一磁盘空间的起始序号的初始值为0,当前起始序号的初始值为0,当前最后序号的初始值为0,当前最大数的初始值为l,最大数的初始值为1。其中步骤b进一步包含计算出第一磁盘空间的起始序号的值与最大数的值相加的结果;判断写入请求的数据区块序号是否大于此结果。其中步骤C进一步包含判断写入请求的数据区块序号是否等于第一磁盘空间的当前最后序号的值加1;当写入请求的数据区块序号等于第一磁盘空间的当前最后序号的值加1时,将第一磁盘空间的当前最后序号的值加1;以及否则,计算出第一磁盘空间的当前最后序号的值减去当前起始序号的值的结果,将此结果与第一磁盘空间的当前最大数的值中较大值赋值给第一磁盘空间的当前最大数,并将写入请求的数据区块序号赋值该第一磁盘空间的当前起始序号和当前最后序号。其中第二磁盘空间的数据结构与第一磁盘空间的数据结构相同。其中步骤d进一步包含判断写入请求的数据区块序号是否等于第一磁盘空间的当前最后序号的值加1;当写入请求的数据区块序号等于第一磁盘空间的当前最后序号的值加1时,将第一磁盘空间的当前最后序号的值加1,并对第一磁盘空间的当前最后序号的值对应的数据区块进行写入同步复制操作;否则,将写入请求的数据区块序号赋值给第二磁盘空间的起始序号、当前起始序号以及当前最后序号,计算出第一磁盘空间的当前最后序号的值减去当前起始序号的值的结果,将此结果与第一磁盘空间的当前最大数的值中较大值赋值给第二磁盘空间的最大数;以及从第二磁盘空间的起始序号的值对应的数据区块开始,对与第二磁盘空间的最大数的值相同数量的数据区块进行写入同步复制操作。综上所述,本发明可以自动调整写入同步复制磁盘空间的大小,同时将较多连续的写入同步复制操作集中于一次完成,通过这种连续、集中、突发式请求,极大提高了系统性能。图1为公知技术的巻组组成结构的方块图2为公知技术的写入请求的快照处理流程图3和图4为本发明的自动调整快照设备的写入同步复制磁盘空间大小的方法流程图;以及图5为第一磁盘空间在不同时刻的状态方块图。其中,附图标记说明如下-100巻组120实体巻140实体区块500第一磁盘空间502第一连续数据区块区域504第二连续数据区块区域步骤200接收用户发送的写入请求步骤202是否有快照步骤204遍历存储器中的杂凑表步骤206是否找到对应项步骤208进行写入同步复制操作步骤210继续发送写入请求步骤300初始化一个快照设备的第一磁盘空间,对第一磁盘空间的数据区块进行写入同步复制操作步骤302写入请求的数据区块序号是否大于第一磁盘空间的起始序号的值加上最大数的值步骤304写入请求的数据区块序号是否等于第一磁盘空间的当前最后序号的值加1步骤306将第一磁盘空间的当前最后序号的值加1步骤308计算出第一磁盘空间的当前最后序号的值减去当前起始序号的值的结果步骤310将此结果与第一磁盘空间的当前最大数的值中较大值赋值给第一磁盘空间的当前最大数步骤312将写入请求的数据区块序号赋值给第一磁盘空间的当前起始序号和当前最后序号步骤400写入请求的数据区块序号是否等于第一磁盘空间的当前最后序号的值加1步骤402将第一磁盘空间的当前最后序号的值加1步骤404对第一磁盘空间的当前最后序号的值对应的数据区块进行写入同步复制操作步骤406将写入请求的数据区块序号赋值给第二磁盘空间的起始序号、当前起始序号以及当前最后序号步骤408计算出第一磁盘空间的当前最后序号的值减去当前起始序号的值的结果步骤410将此结果与第一磁盘空间的当前最大数的值中较大值赋值给第二磁盘空间的最大数步骤412对第二磁盘空间的数据区块进行写入同步复制操作具体实施例方式以下,将结合附图部分对本发明的优选实施方式作详细说明。图3和图4所示为本发明的自动调整快照设备的写入同步复制磁盘空间大小的方法。其中,字母A表示写入请求的数据区块序号大于第一磁盘空间的起始序号的值加上最大数的值时的处理流程。如图2所示的公知技术的写入请求处理的快照处理流程,当杂凑表中不存在与写入请求的数据区块对应的信息,需要在步骤208进行写入同步复制操作时,即可用本发明以替代公知的处理方法。首先,在步骤300初始化一个快照设备的第一磁盘空间,对第一磁盘空间进行写入同步复制(COW)操作。初始化后的第一磁盘空间的数据结构包含起始序号数据变量、当前起始序号数据变量、当前最后序号数据变量、当前最大数数据变量以及最大数数据变量。例如,采用以下描述的结构<formula>complexformulaseeoriginaldocumentpage9</formula>其中,起始序号数据变量(org一window一chunk)用以表示第一磁盘空间的第一个数据区块序号,初始值为0;当前起始序号数据变量(tmp_Wind0w_0rg_ChUnk)ffl以表示第一磁盘空间中正在维护的连续数据区块的第一个数据区块的序号,初始值为0;当前最后序号数据变量Ctmp_window—last一chunk)用以表示正在维护的连续数据区块的最后一个数据区块的序号,即上一次写入请求的数据区块序号,初始值为0;当前最大数数据变量(tmp—max—windows)用以表示第一磁盘空间中当前最大连续数据区块数,初始值为1;最大数数据变量(last—windows—chunks)用以表示上一磁盘空间中最大连续数据区块数,初始值为1,其与起始序号的值相加即为第--磁盘空间所维护的最大数据区块序号。当接收到用户发送的写入请求,需要进行写入同步复制操作时,判断写入请求的数据区块序号是否位于第一磁盘空间,即计算出第一磁盘空间的起始序号的值与最大数的值相加的结果,并在步骤302判断写入请求的数据区块序号是否大于此结果。当写入请求的数据区块序号小于或等于此两者相加的结果时,即表明写入请求的数据区块序号位于第一磁盘空间。此时,在步骤304继续判断写入请求的数据区块序号是否等于第一磁盘空间的当前最后序号的值加1,即判断写入请求的数据区块序号是否与当前正在维护的连续数据区块相连续。当写入请求的数据区块序号等于第一磁盘空间的当前最后序号的值加1时,表明写入请求的数据区块序号与第一磁盘空间中正在维护的连续数据区块相连续。因为第一磁盘空间在初始化时已完成写入同步复制操作,所以仅需要在步骤306将第一磁盘空间的当前最后序号的值加1。当写入请求的数据区块序号不等于第一磁盘空间的当前最后序号的值加1时,表明写入请求的数据区块序号与第一磁盘空间中正在维护的连续数据区块不相连续。因此,在步骤308先计算出第一磁盘空间的当前最后序号的值减去当前起始序号的值的结果,在步骤310将此结果与第一磁盘空间的当前最大数的值中较大值赋值给第一磁盘空间的当前最大数,从而更新第一磁盘空间的当前最大数中存储的当前最大连续数据区块数。接着在步骤312将写入请求的数据区块序号赋值给第一磁盘空间的当前起始序号和当前最后序号,以在第一磁盘空间开启另一个连续数据区块区域。当写入请求的数据区块序号大于第一磁盘空间的起始序号的值与最大数的值相加的结果时,即表明写入请求的数据区块序号不位于第一磁盘空间。此时,在步骤400继续判断写入请求的数据区块序号是否等于第一磁盘空间的当前最后序号的值加1,即判断写入请求的数据区块序号是否与当前正在维护的连续数据区块相连续。当写入请求的数据区块序号等于第一磁盘空间的当前最后序号的值加1时,表明写入请求的数据区块序号与第一磁盘空间中正在维护的连续数据区块相连续。但写入请求的数据区块序号不位于第一磁盘空间,即写入请求的数据区块未进行写入同步复制操作,所以在步骤402先将第一磁盘空间的当前最后序号的值加1,接着在步骤404对第一磁盘空间的当前最后序号的值对应的数据区块进行写入同步复制操作,从而扩展了第一磁盘空间的大小。当写入请求的数据区块序号不等于第一磁盘空间的当前最后序号的值加1时,表明写入请求的数据区块序号与第一磁盘空间中正在维护的连续数据区块不相连续,因而需要初始化一个第二磁盘空间。第二磁盘空间加数据结构与第一磁盘空间相同,其初始化时数据区块数目为第一磁盘空间的最大连续数据区块数目。在第二磁盘空间初始化过程时,在步骤406先将写入请求的数据区块序号赋值给第二磁盘空间的起始序号、当前起始序号以及当前最后序号。接着在步骤408计算出第一磁盘空间的当前最后序号的值减去当前起始序号的值的结果,在步骤410将此结果与第一磁盘空间的当前最大数的值中较大值赋值给第二磁盘空间的最大数。最后,从第二磁盘空间的起始序号的值对应的数据区块开始,在步骤412对与第二磁盘空间的最大数的值相同数目的数据区块进行写入同步复制操作。由以上描述可知,当写入请求的数据区块序号不位于第一磁盘空间,但与第一磁盘空间的最后序号的值加1相等时,即可实现第一磁盘空间的大小的自动调整。而将第一磁盘空间、第二磁盘空间的全部数据区块的写入同步复制操作集中于一次完成,则可以通过这种连续、集中、突发式请求,极大提高系统性能。请参考图5,其为第一磁盘空间500在不同时刻的状态方块图。初始化后的第一磁盘空间500,其起始序号、当前起始序号和当前最后序号均为同一值,即为第一磁盘空间500的第一个数据区块的序号。而当前最大数的值为起始值1,最大数的值也为初始值1,即第一磁盘空间500仅包含一个数据区块。时刻1的第一磁盘空间500,包含一个第一连续数据区块区域502。此时,第一磁盘空间500的起始序号的值没有变化,而当前起始序号的值为第一连续数据区块区域502的第一个数据区块的序号,当前最后序号的值为第一连续数据区块区域502的最后一个数据区块的序号,即为上一次写入请求的数据区块序号。当前最大数的值仍为初始值l。时刻2的第一磁盘空间500包含两个连续数据区块区域,第一连续数据区块区域502和第二连续数据区块区域504。第一磁盘空间500的起始序号的值仍没有变化,为第一磁盘空间500的第一个数据区块的序号。当前起始序号的值则变为第二连续数据区块区域504的第一个数据区块的序号,当前最后序号的值变为第二连续数据区块区域504的最后一个数据区块的序号,当前最大数的值为第一连续数据区块区域502的数据区块数目。虽然本发明以前述的优选实施方式公开如上,然而其并非用以限制本发明。所属领域的技术人员应当意识到在不脱离本发明所附的权利要求所公开的本发明的范围和精神的情况下,所作的变更与修饰,均属本发明的专利保护范围。关于本发明所界定的保护范围请参考所附的权利要求书。权利要求1.一种自动调整快照设备的写入同步复制磁盘空间大小的方法,该方法包含以下步骤a初始化一快照设备的一第一磁盘空间,对该第一磁盘空间的数据区块进行写入同步复制操作;b判断一写入请求的数据区块序号是否位于该第一磁盘空间;c当该写入请求的数据区块序号位于该第一磁盘空间时,继续维护该第一磁盘空间;以及d当该写入请求的数据区块序号不位于该第一磁盘空间时,初始化一第二磁盘空间,该第二磁盘空间的数据区块数目与该第一磁盘空间中最大连续数据区块数目相同,并对该第二磁盘空间的数据区块进行写入同步复制操作。2.如权利要求1所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中该写入请求的数据区块数量不大于该快照设备的操作系统定义的磁盘输入输出的最大值。3.如权利要求1所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中该第一磁盘空间的数据结构包含一起始序号数据变量、一当前起始序号数据变量、一当前最后序号数据变量、一当前最大数数据变量以及一最大数数据变量。4.如权利要求3所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中该第一磁盘空间的起始序号数据变量的初始值为0,该当前起始序号数据变量的初始值为0,该当前最后序号数据变量的初始值为0,该当前最大数数据变量的初始值为1,该最大数数据变量的初始值为1。5.如权利要求3所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中步骤b进一步包含计算出该第一磁盘空间的起始序号数据变量的值与该最大数数据变量的值相加的一结果;以及判断该写入请求的数据区块序号是否大于该结果。6.如权利要求3所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中步骤c进一步包含-判断该写入请求的数据区块序号是否等于该第一磁盘空间的当前最后序号数据变量的值加l;当该写入请求的数据区块序号等于该第一磁盘空间的当前最后序号数据变量的值加1时,将该第一磁盘空间的当前最后序号数据变量的值加h以及否则,计算出该第一磁盘空间的当前最后序号数据变量的值减去该当前起始序号数据变量的值的一结果,将该结果与该第一磁盘空间的当前最大数数据变量的值中较大值赋值给该第一磁盘空间的当前最大数数据变量,并将该写入请求的数据区块序号赋值给该第一磁盘空间的当前起始序号数据变量和该当前最后序号数据变量。7.如权利要求3所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中该第二磁盘空间的数据结构与该第一磁盘空间的数据结构相同。8.如权利要求7所述的自动调整快照设备的写入同步复制磁盘空间大小的方法,其中步骤d进一步包含判断该写入请求的数据区块序号是否等于该第一磁盘空间的当前最后序号数据变量的值加1;当该写入请求的数据区块序号等于该第一磁盘空间的当前最后序号数据变量的值加1时,将该第一磁盘空间的当前最后序号数据变量的值加1,并对该第一磁盘空间的当前最后序号数据变量的值对应的数据区块进行写入同步复制操作;否则,将该写入请求的数据区块序号赋值给该第二磁盘空间的一起始序号数据变量、一当前起始序号数据变量以及一当前最后序号数据变量,计算出该第一磁盘空间的当前最后序号数据变量的值减去该当前起始序号数据变量的值的一结果,将该结果与该第一磁盘空间的当前最大数数据变量的值中较大值赋值给该第二磁盘空间的一最大数数据变量;以及从该第二磁盘空间的起始序号数据变量的值对应的数据区块开始,对与该第二磁盘空间的最大数数据变量的值相同数量的数据区块进行写入同步复制操作。全文摘要一种自动调整快照设备的写入同步复制磁盘空间大小的方法,初始化快照设备的第一磁盘空间,对第一磁盘空间的数据区块进行写入同步复制操作;判断写入请求的数据区块序号是否位于第一磁盘空间;当写入请求的数据区块序号位于第一磁盘空间时,维护第一磁盘空间;当写入请求的数据区块序号不位于第一磁盘空间时,初始化第二磁盘空间,第二磁盘空间的数据区块数目与第一磁盘空间中最大连续数据区块数目相同,并对第二磁盘空间的数据区块进行写入同步复制操作。本发明可以自动调整写入同步复制磁盘空间的大小,同时将较多连续的写入同步复制操作集中于一次完成,通过这种连续、集中、突发式请求,极大提高了系统性能。文档编号G06F12/02GK101201796SQ20061016880公开日2008年6月18日申请日期2006年12月14日优先权日2006年12月14日发明者刘文涵,义李,郭建发,陈玄同申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1