CN104317730A - 一种基于二次分配管理磁盘扩展空间方法及系统 - Google Patents
一种基于二次分配管理磁盘扩展空间方法及系统 Download PDFInfo
- Publication number
- CN104317730A CN104317730A CN201410584739.1A CN201410584739A CN104317730A CN 104317730 A CN104317730 A CN 104317730A CN 201410584739 A CN201410584739 A CN 201410584739A CN 104317730 A CN104317730 A CN 104317730A
- Authority
- CN
- China
- Prior art keywords
- trough
- mirror image
- data
- module
- 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
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于二次分配管理磁盘扩展空间方法及系统,属于磁盘管理领域,包括以下步骤:将预留区划分为镜像数据区、常规数据区;接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区;若位于所述镜像数据区,则进行镜像读写,否则进行常规读写。本发明基于二次分配和字符串标识,提高版本兼容性;元数据使用镜像写入方式,提高了系统健壮性;其他模块透过预留区模块接口访问扩展空间,实现了预留区访问的入口限制,解决了数据紊乱的问题。
Description
技术领域
本发明属于磁盘管理领域,尤其涉及一种基于二次分配管理磁盘扩展空间方法及系统。
背景技术
磁盘模块是存储系统的基础模块,磁盘模块的性能和健壮程度,严重影响存储产品的整体性能和可靠性;存储系统的部分核心功能需要磁盘驱动提供对应的扩展来达成,例如磁盘自修复和磁盘阵列RAID快速同步需要保留持久的存储空间;同时,磁盘上的数据比其他数据更重要,例如自修复元数据丢失,导致读写映射无法判断和执行,磁盘上所有的数据不再有意义。
当前磁盘驱动扩展一般通过多层虚拟磁盘的方案实现,即每一个扩展功能对应一层虚拟块设备,按照扩展功能的特征决定虚拟块设备次序,请求一级级的传递直到后端硬盘;扩展功能对持久空间的需求则通过分区或者每一级扩展功能各自实现存储空间预留实现。
这种设计模式由于其局限性,容易带来性能、兼容性、健壮性和数据紊乱的问题;首先,由于多层虚拟磁盘上IO迭代和bio有效性的检查造成性能损失;其次,多层虚拟块设备相互不存强制的层次关系和请求写入限制,插入新的虚拟层或移除部分废弃的虚拟层,均会导致兼容性问题;再次,扩展功能各自维护存储空间预留,造成相同功能的代码多次重复,这导致系统健壮性和可维护性的降低;最后,该架构难以实现特定模块写入区段的限制,容易导致数据紊乱现象。
发明内容
本发明提供一种基于二次分配管理磁盘扩展空间方法及系统,以解决上述问题。
本发明提供一种基于二次分配管理磁盘扩展空间方法。上述方法包括以下步骤:
将预留区划分为镜像数据区、常规数据区;
接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区;
若位于所述镜像数据区,则进行镜像读写,否则进行常规读写。
本发明还提供一种基于二次分配管理磁盘扩展空间系统,包括划分模块、权限判断模块、读写模块;其中,所述划分模块通过所述权限判断模块与所述读写模块相连;
所述划分模块,用于将预留区划分为镜像数据区、常规数据区并将划分结果通知所述权限判断模块;
所述权限判断模块,用于接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区并将权限判断结果通知所述读写模块;
所述读写模块,用于根据所述权限判断模块的通知结果,进行镜像读写或常规读写。
相较于先前技术,根据本发明提供的一种基于二次分配管理磁盘扩展空间方法及系统,实现预留区二次分配;作为插件接入到虚拟磁盘框架,预留区分为镜像数据区(元数据区)和常规数据区,元数据区通过预留磁盘前端和后端的同等大小的存储空间实现RAID1镜像,提高关键数据可靠性,其他模块通过本模块定制的接口获取存储空间,实现定制功能;预留区模块通过模块字符串匹配来定位扩展空间的位置和大小,因为模块由系统内部维护,这是安全的;通过定制的扩展处理函数,减少IO迭代和bio检查次数,提高性能;基于二次分配和字符串标识,提高版本兼容性;元数据使用镜像写入方式,提高了系统健壮性;其他模块透过预留区模块接口访问扩展空间,实现了预留区访问的入口限制,解决了数据紊乱的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明实施例1的磁盘整体布局示意图;
图2所示为本发明实施例2的磁盘预留区内部示意图;
图3所示为本发明实施例3的数据请求流程图;
图4所示为本发明实施例4的基于二次分配管理磁盘扩展空间方法流程图;
图5所示为本发明实施例5的基于二次分配管理磁盘扩展空间系统结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实现为智能虚拟磁盘模块的接入插件,实现磁盘空间预留、元数据镜像功能,并提供预留区再分配、释放、查找和读写等接口,下文缩写记做rz-mangle;磁盘初始化时,智能虚拟磁盘根据管理员配置划分存储空间、rz-mangle按照特定比例划分为镜像数据区和常规数据区,写入镜像块、超级块,镜像写入解决少量扇区错误导致磁盘失效的问题。
使用预留区前需要执行分配,rz-mangle提供分配接口,rz-mangle使用锁定机制实现分配串行化,接着检测标识字符串预留区是否已存在,以及空闲预留区是否能够满足,条件满足后插入新的条目到rz-mangle超级块维护标识字符串和空间位置、大小的映射表。根据参数设置,可分配不同大小的镜像数据区(元数据区)和常规数据区。
如图1所示,预留区0和预留区1是默认的预留区;数据区域是虚拟磁盘空间,用于存储用户数据。自修复0和自修复1用作坏扇区映射。
如图2所示,每个预留区分为预留区超级块、预留区镜像块、预留区数据块三部分,例如:预留区0分为预留区超级块、预留区镜像块、预留区数据块0;预留区1分为预留区超级块、预留区镜像块、预留区数据块1。预留区超级块维护内部数据,外部不可见,镜像方式读写;预留区镜像块提供镜像区域,提供高可靠的数据存储;预留区数据块是正常数据的保存区域。
预留区分配成功后,调用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的分配接口。
对于从其他模块发起的数据请求,在rz-mangle模块内部判断是否有权限读写,无权限读写则以指定错误码结束;读写权限判断通过后,检测请求是否位于镜像数据区,根据检测结果执行对应的读写请求:若不位于镜像数据区,则进行非镜像读写即常规读写,否则进行镜像读写,通过虚拟磁盘框架写入后端磁盘。
如图3所示,展现了数据流动处理方向,包括以下步骤:
步骤301:预留区使用者向预留区发起数据请求;
步骤302:判断是否有权限读写,若无权限读写则以指定错误码结束;若有权限读写,则检测请求是否位于镜像数据区;
步骤303:若检测请求不是否位于镜像数据区,则进行非镜像读写(常规读写);若检测请求位于镜像数据区,则进行镜像读写。
图4所示为本发明实施例4的基于二次分配管理磁盘扩展空间方法流程图,包括以下步骤:
步骤401:将预留区划分为镜像数据区、常规数据区;
步骤402:接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区;
步骤403:若位于所述镜像数据区,则进行镜像读写,否则进行常规读写。
图5所示为本发明实施例5的基于二次分配管理磁盘扩展空间系统结构图,包括划分模块、权限判断模块、读写模块;其中,所述划分模块通过所述权限判断模块与所述读写模块相连;
所述划分模块,用于将预留区划分为镜像数据区、常规数据区并将划分结果通知所述权限判断模块;
所述权限判断模块,用于接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区并将权限判断结果通知所述读写模块;
所述读写模块,用于根据所述权限判断模块的通知结果,进行镜像读写或常规读写。
相较于先前技术,根据本发明提供的一种基于二次分配管理磁盘扩展空间方法及系统,实现预留区二次分配;作为插件接入到虚拟磁盘框架,预留区分为镜像数据区(元数据区)和常规数据区,元数据区通过预留磁盘前端和后端的同等大小的存储空间实现RAID1镜像,提高关键数据可靠性,其他模块通过本模块定制的接口获取存储空间,实现定制功能;预留区模块通过模块字符串匹配来定位扩展空间的位置和大小,因为模块由系统内部维护,这是安全的;通过定制的扩展处理函数,减少IO迭代和bio检查次数,提高性能;基于二次分配和字符串标识,提高版本兼容性;元数据使用镜像写入方式,提高了系统健壮性;其他模块透过预留区模块接口访问扩展空间,实现了预留区访问的入口限制,解决了数据紊乱的问题。
本发明提供了一种磁盘扩展空间一致性分配的方法,并支持扩展空间元数据的镜像写入,解决了多模块重复实现存储空间预留带来的各种问题;尤其值得一提的是,通过提供元数据镜像写入方式,消除了元数据丢失导致磁盘所有数据无效的问题。
对于已经在使用的存储系统,升级磁盘驱动后,不会造成不兼容,因为此时预留区模块不启动。
对于全新的存储系统,默认配置即可提供合理的预留区大小和镜像、正常读写的大小和范围;管理员通过干预,可以实现特定行业不同需求对磁盘的定制,或者管理员实现几个不同行业的配置供选择使用。
对于块设备驱动本身而言,功能扩展的调度是简单的:根据预建的DAG数据结构,执行某条路径上的所有扩展处理函数,数据结构保证了任意两点之间路径的唯一性,这保证数据读写的正确性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于二次分配管理磁盘扩展空间方法,其特征在于,包括以下步骤:
将预留区划分为镜像数据区、常规数据区;
接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区;
若位于所述镜像数据区,则进行镜像读写,否则进行常规读写。
2.根据权利要求1所述的方法,其特征在于:将预留区划分为镜像数据区、常规数据区的过程为:
rz-mangle检测标识字符串预留区是否已存在及预留区是否能够满足,条件满足后插入新的条目到rz-mangle超级块维护标识字符串和空间位置、大小的映射表并且根据参数设置,分配不同大小的镜像数据区和常规数据区;其中,所述rz-mangle是指智能虚拟磁盘模块的接入插件。
3.根据权利要求1或2所述的方法,将所述预留区划分为预留区超级块、预留区镜像块、预留区数据块。
4.根据权利要求3所述的方法,其特征在于:所述预留区超级块采用镜像方式读写,以外部不可见方式维护内部数据;所述预留区镜像块提供镜像区域和数据存储;所述预留区数据块是正常数据的保存区域。
5.根据权利要求4所述的方法,其特征在于:接收到向所述预留区发起的数据请求后,若判断无权限读写,则以指定错误码结束。
6.根据权利要求5所述的方法,其特征在于:接收到向所述预留区发起的数据请求后,通过预设的访问标识符,进行分析,若无权限读写则以-EPERM错误返回。
7.根据权利要求6所述的方法,其特征在于:rz-mangle查询接口预先提供一个64位的访问标识符identifier。
8.根据权利要求7所述的方法,其特征在于:通过调用所述rz-mangle查询接口获取所述预留区位置、大小及相应的块设备描述结构。
9.一种基于二次分配管理磁盘扩展空间系统,其特征在于,包括划分模块、权限判断模块、读写模块;其中,所述划分模块通过所述权限判断模块与所述读写模块相连;
所述划分模块,用于将预留区划分为镜像数据区、常规数据区并将划分结果通知所述权限判断模块;
所述权限判断模块,用于接收到向所述预留区发起的数据请求,若判断有权限读写,则进一步判断所述数据请求是否位于所述镜像数据区并将权限判断结果通知所述读写模块;
所述读写模块,用于根据所述权限判断模块的通知结果,进行镜像读写或常规读写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410584739.1A CN104317730B (zh) | 2014-10-27 | 2014-10-27 | 一种基于二次分配管理磁盘扩展空间方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410584739.1A CN104317730B (zh) | 2014-10-27 | 2014-10-27 | 一种基于二次分配管理磁盘扩展空间方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104317730A true CN104317730A (zh) | 2015-01-28 |
CN104317730B CN104317730B (zh) | 2018-02-06 |
Family
ID=52372965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410584739.1A Active CN104317730B (zh) | 2014-10-27 | 2014-10-27 | 一种基于二次分配管理磁盘扩展空间方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317730B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106954098A (zh) * | 2017-03-22 | 2017-07-14 | 深圳市九洲电器有限公司 | 一种机顶盒升级数据选择方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020059539A1 (en) * | 1997-10-08 | 2002-05-16 | David B. Anderson | Hybrid data storage and reconstruction system and method for a data storage device |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN102968361A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种raid数据自修复的方法 |
-
2014
- 2014-10-27 CN CN201410584739.1A patent/CN104317730B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020059539A1 (en) * | 1997-10-08 | 2002-05-16 | David B. Anderson | Hybrid data storage and reconstruction system and method for a data storage device |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN102968361A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种raid数据自修复的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106954098A (zh) * | 2017-03-22 | 2017-07-14 | 深圳市九洲电器有限公司 | 一种机顶盒升级数据选择方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104317730B (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817415B2 (en) | Data storage device and method including device or controller-based space allocation and host-based mapping table searching | |
US9021178B2 (en) | High performance path for command processing | |
US7539817B2 (en) | Storage system and capacity allocation method therefor | |
EP3511814B1 (en) | Storage device storing data in order based on barrier command | |
CN103412822A (zh) | 操作非易失性内存和数据操作的方法和相关装置 | |
US20070226447A1 (en) | Storage system, storage extent release method and storage apparatus | |
US20100306451A1 (en) | Architecture for nand flash constraint enforcement | |
US20110161563A1 (en) | Block management method of a non-volatile memory | |
WO2015051711A1 (zh) | 一种基于多通道slc nand与dram缓存的新usb协议计算机加速设备 | |
US20140115016A1 (en) | Systems and methods for enabling parallel processing of write transactions | |
US20130246722A1 (en) | Storage system having nonvolatile semiconductor storage device with nonvolatile semiconductor memory | |
US20170031631A1 (en) | Storage device and method of operating the same | |
CN103106150B (zh) | 一种实现存储系统自动精简配置和精简分配的方法 | |
EP3062209A1 (en) | Method and apparatus for improving disk array performance | |
CN109074318A (zh) | 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 | |
US20200225862A1 (en) | Scalable architecture enabling large memory system for in-memory computations | |
US20190179706A1 (en) | Techniques for optimizing metadata resiliency and performance | |
US9081503B2 (en) | Methods and systems for maintaining a storage volume with holes and filling holes | |
CN102073600A (zh) | 数据备份方法、闪存控制器及闪存储存系统 | |
CN113778338A (zh) | 分布式存储数据读取效率优化方法、系统、设备和介质 | |
TW201234177A (en) | Data access method, and memory controller and memory storage apparatus using the same | |
CN103425436B (zh) | 终端设备以及虚拟存储单元管理方法 | |
US11079954B2 (en) | Embedded reference counter and special data pattern auto-detect | |
CN104239235A (zh) | 一种基于二次分配管理磁盘扩展空间的方法 | |
US20170075615A1 (en) | Storage system and storage control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |