[发明专利]一种按需分配增量卷的创建方法无效
申请号: | 201110007887.3 | 申请日: | 2011-01-14 |
公开(公告)号: | CN102073464A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 刘晓光;王刚;高岩;曹瑞;甄彩军;徐广治 | 申请(专利权)人: | 南开大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 天津佳盟知识产权代理有限公司 12002 | 代理人: | 侯力 |
地址: | 300071*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 按需分配 增量 创建 方法 | ||
1.一种按需分配增量卷的创建方法,其特征在于所述的按需分配增量卷采用两层卷的结构,即虚卷与实卷,虚卷大小与实卷大小相分离,实现了按需分配的机制,具体创建方法包括:
第1、按需分配增量卷创建的用户态接口:在逻辑卷管理器LVM用户态的命令lvcreate里增加新的参数N,用于表示建立的是按需分配增量卷;
第2、按需分配增量卷创建的过程:首先创建一个普通的逻辑卷LV,即为实卷,再在该普通逻辑卷上创建一个虚卷,形成两层卷的结构;上层的虚卷是Linux内核中的一个数据结构,并不占用实际磁盘空间;虚卷的大小即为用户指定的大小,实卷的初始大小小于虚卷;
第3、实卷的自动扩容:在用户使用的过程中,随着用户数据量的增多,物理空间的占用率逐渐提高,当物理空间占用率超过设定的阈值时,自动为实卷分配空间,满足用户更多的存储要求;
第4、虚卷的扩容:在用户使用的过程中,可能会出现原计划的虚卷空间大小不能满足实际需求的情况,此时,可以由用户任意指定时间及扩容的大小,完成虚卷的扩容;
第5、按需分配增量卷实卷的磁盘布局:包括元数据区及数据区,元数据区包括超级块、初始化位图、碎片位图和Chunkmap;
第6、按需分配增量卷数据写方法:采用追加写的方式完成。
2.根据权利要求1所述的方法,其特征在于第3步所述的实卷的自动扩容具体为:
第3.1、对每个实卷都设有一个守护进程对其磁盘空间使用率进行监控;
第3.2、磁盘空间使用率利用proc接口获得,具体做法:在/proc目录下创建一个子目录snapproc,然后在该子目录下创建文件full,记录空间使用率;
第3.3、在完成一次写操作后,当前数据区尾指针的位置即为空闲数据块首的位置,根据该位置与数据区空间的比值,就可以计算出空间使用率,因此,在每次写操作后计算出空间使用率并更新至文件full;
第3.4、当空间使用率达到预设的阈值时,守护进程会启动扩容进程,即利用LVM用户态命令lvextend。
3.根据权利要求1所述的方法,其特征在于第4步所述的虚卷的扩容具体为:
采用索引数组的方式,将原有虚卷与新增部分有效地组织在一起;每次虚卷空间扩容,只需将新增部分对应的元数据区首地址保存在该索引数组中即可,以此可以方便地管理分散的元数据区。
4.根据权利要求1所述的方法,其特征在于第5步中所述的实卷的磁盘布局中,超级块负责保存设备号、快照次数和每个快照的起始地址信息;初始化位图用于加速初始化进程;碎片位图用来进行碎片整理,回收垃圾碎片;Chunkmap保存用户地址到物理存储空间的映射表;数据区部分用于存储用户的数据。
5.根据权利要求1所述的方法,其特征在于第6步所述的采用追加写的方式完成数据写的具体方法为:
实时记录当前未被使用的扇区号,每次进行写操作时,基地址加上记录的扇区号,就是真正的偏移量,由此实现追加写。
6.根据权利要求1所述的方法,其特征在于还可以对按需分配增量卷进行垃圾回收,具体过程为:
利用一个变量充当“计数器”,该变量的值随无用数据块的增加而增加,当无用的数据块达到预设的数量时,自动启动垃圾回收,消除系统中的碎片。
7.根据权利要求6所述的方法,其特征在于垃圾回收的具体方法为:
对欲进行清理的区域设置两个指针,一个从头向后扫描,一个从尾向前扫描,头指针负责找到第一个无效的块,尾指针负责找到第一个有效的块,一旦找到,将尾指针指向的块拷贝到头指针指向的位置,如此重复操作,直到头尾指针相遇时,则表明垃圾清理完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南开大学,未经南开大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110007887.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于数据粒度的混洗开关矩阵压缩方法
- 下一篇:单层触摸屏的控制系统