[发明专利]一种基于二次分配管理磁盘扩展空间的方法在审
申请号: | 201410560713.3 | 申请日: | 2014-10-21 |
公开(公告)号: | CN104239235A | 公开(公告)日: | 2014-12-24 |
发明(设计)人: | 闫永刚 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 二次 分配 管理 磁盘 扩展 空间 方法 | ||
技术领域
本发明涉及计算机系统及存储领域,具体地说是一种基于二次分配管理磁盘扩展空间的方法。
背景技术
磁盘模块是存储系统的基础模块,磁盘模块的性能和健壮程度,严重影响存储产品的整体性能和可靠性。存储系统的部分核心功能需要磁盘驱动提供对应的扩展来达成,例如磁盘自修复和RAID快速同步需要保留持久的存储空间。同时,磁盘上的部分比其他数据更重要,例如自修复元数据丢失,导致读写映射无法判断和执行,磁盘上所有的数据不再有意义。
当前磁盘驱动扩展一般通过多层虚拟磁盘的方案实现,即每一个扩展功能对应一层虚拟块设备,按照扩展功能的特征决定虚拟块设备次序,请求一级级的传递直到后端硬盘。扩展功能对持久空间的需求则通过分区或者每一级扩展功能各自实现存储空间预留实现。
这种设计模式由于其局限性,容易带来性能、兼容性、健壮性和数据紊乱的问题。首先,由于多层虚拟磁盘上IO迭代和bio有效性的检查造成性能损失。其次,多层虚拟块设备相互不存强制的层次关系和请求写入限制,插入新的虚拟层或移除部分废弃的虚拟层,均会导致兼容性问题。再次,扩展功能各自维护存储空间预留,造成相同功能的代码多次重复,这导致系统健壮性和可维护性的降低。最后,该架构难以实现特定模块写入区段的限制,容易导致数据紊乱现象。
发明内容
本发明的目的是克服现有技术中存在的不足,提供 一种基于二次分配管理磁盘扩展空间的方法,并且支持扩展空间元数据的镜像写入。
本发明的技术方案是按以下方式实现的,该方法如下:
本方法实现为智能虚拟磁盘模块的接入插件,实现磁盘空间预留、元数据镜像功能,并提供预留区再分配、释放、查找和读写等接口,下文缩写记做rz-mangle;
磁盘初始化时,智能虚拟磁盘根据管理员配置划分存储空间,rz-mangle按照特定比例划分镜像区和常规区域,写入镜像超级块;镜像写入解决少量扇区错误导致磁盘失效的问题;
模块使用预留区前需要执行分配,rz-mangle提供分配接口;rz-mangle使用锁定机制实现分配串行化;接着检测标识字符串预留区是否已存在,以及空闲预留区是否能够满足;条件满足后插入新的条目到rz-mangle超级块维护标识字符串和空间位置、大小的映射表;根据参数设置,可分配不同大小的元数据区和常规数据区,如前所述,元数据区提供RAID1镜像,可以提高可靠性;
预留区分配成功后,模块调用rz-mangle查询接口获取预留区位置、大小以及相应的块设备描述结构;读写请求按照常规方式提交,智能虚拟磁盘框架调度请求到达rz-mangle模块;rz-mangle根据写入位置决定是元数据区镜像写或者常规写,重新生成适当的写入请求,提交到智能虚拟磁盘;智能虚拟磁盘依次调度更底层的写入mangle,以实现存储系统的其他功能;
预留区使用完毕后可以释放,rz-mangle提供释放接口;释放完毕后模块无法再对这部分空间执行写入,这通过下面描述的写入限制实现;
rz-mangle查询接口提供一个64位的访问标识符identifier;提交请求时,和该标识符不符的请求认为是一个权限不足的IO请求,会以-EPERM错误返回;标识符验证通过后执行写入位置和大小验证,不在分配范围内的请求以错误-EIO结束,表示越界;标识符identifier在智能虚拟磁盘接管磁盘时随机生成,在移除前保持不变;
rz-mangle的初始化由智能虚拟磁盘框架触发;在接入或移除磁盘时,udev事件触发智能虚拟磁盘的加载或移除接口,进而触发rz-mangle的加载或移除;在创建RAID卷组时,智能虚拟磁盘模块根据配置参数执行初始化,rz-mangle初始化后清空超级块,使用预留区的模块在创建RAID时需要再次调用rz-mangle的分配接口。
本发明的优点是:
本发明作为独立模块实现预留区二次分配,作为插件接入到虚拟磁盘框架。预留区分为元数据区和常规数据区。元数据区通过预留磁盘前端和后端的同等大小的存储空间实现RAID1镜像,提高关键数据可靠性。其他模块通过本模块定制的接口获取存储空间,实现定制功能。预留区模块通过模块字符串匹配来定位扩展空间的位置和大小,因为模块由系统内部维护,这是安全的。通过定制的扩展处理函数,减少IO迭代和bio检查次数,提高性能。基于二次分配和字符串标识,提高版本兼容性。元数据使用镜像写入方式,提高了系统健壮性。其他模块透过预留区模块接口访问扩展空间,实现了预留区访问的入口限制,解决了数据紊乱的问题。
实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410560713.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种直线电机
- 下一篇:一种应用于智能机器人中的永磁式直流电动机