[发明专利]一种存储数据的备份方法和装置在审
申请号: | 201410401367.4 | 申请日: | 2014-08-14 |
公开(公告)号: | CN104166601A | 公开(公告)日: | 2014-11-26 |
发明(设计)人: | 余丽;许勇 | 申请(专利权)人: | 浙江宇视科技有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F12/08 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 310051 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储 数据 备份 方法 装置 | ||
技术领域
本发明涉及存储领域,尤其涉及一种存储数据的备份方法和装置。
背景技术
当RAID阵列失效时,该阵列上的所有逻辑资源都不能读写,将导致业务中断。例如,在RAID5阵列中有2块盘不能读写,或者在RAID0阵列中有1块盘不能读写,就会导致RAID阵列失效。然而,在大多数情况下,不能读写的硬盘,很可能只是硬盘转接板出现问题,或者DEU框SAS连线松动,而磁盘本身并没有问题。维护人员通过更换转接板、或者固定SAS连线对RAID阵列进行恢复时,通常会造成RAID阵列暂时失效,在RAID阵列暂时失效的情况下,失效期间的业务无法提供、数据无法保存,从而会造成严重的数据丢失。比如在监控应用中,RAID阵列失效期间的所有监控录像都会丢失。
为解决上述问题,当前一般使用镜像技术来应对RAID阵列的失效。具体地,可首先对RAID阵列创建镜像RAID阵列,也可以对逻辑资源创建镜像逻辑资源。在向RAID阵列写入数据时,将数据同时写入两份独立的RAID阵列(或者逻辑资源)上。若主RAID阵列失效,则将业务流转到镜像RAID阵列上。
然而上述方案中,由于必须使用相同大小的RAID阵列或逻辑资源创建镜像,硬盘空间成本翻倍;在业务写数据时,需要同时写两份,在系统业务繁忙的情况下,会影响业务写性能,而且会造成CPU等系统资源负载翻倍,从而影响其他读写业务的性能。
发明内容
有鉴于此,本发明提出一种存储数据的备份方法,应用于RAID阵列,所述方法包括:
为目标RAID阵列创建写缓存;其中,所述写缓存在所述目标RAID阵列失效时启用;
当所述目标RAID阵列失效时,在执行写IO命令时将写入所述目标RAID阵列的数据写入所述写缓存,在执行读IO命令时从所述写缓存中读取数据;
当所述目标RAID阵列恢复正常时,自动触发所述写缓存将已写入数据回写至所述目标RAID阵列,并在回写完成时禁用所述写缓存。
优选地,所述方法还包括:
在所述回写过程中,如果需要执行写IO命令,则将该写IO命令对应的数据写入所述目标RAID阵列;
在所述回写过程中,如果需要执行读IO命令,则根据待读取的数据信息从所述写缓存中或者从所述目标RAID阵列中读取数据。
优选地,所述写缓存的存储空间被划分为全局头、RAID头、Block头以及Block数据区;
所述全局头,记录写缓存存储空间的大小以及各RAID头是否已被分配的第一bitmap位图;
所述RAID头,根据使用写缓存进行失效备份的目标RAID阵列个数被划分为若干子区域,每个子区域分别对应一个目标RAID阵列,并记录该目标RAID阵列信息;所述目标RAID阵列信息包括所述目标RAID阵列的阵列编号、Block大小以及可用Block个数;
所述Block头,每个Block头分别对应一个Block数据块,并分别记录所述Block数据块所属RAID头编号、该Block数据块在目标RAID阵列中的lba地址以及记录该Block数据块是否已写入数据的第二bitmap位图;
所述Block数据区,包括若干个Block数据块,所述Block数据块的大小为所述RAID头中记录的所述Block大小。
优选地,所述为目标RAID阵列创建写缓存包括:
根据所述第一bitmap位图,为所述目标RAID阵列分配一个未使用的RAID头;
将所述目标RAID阵列信息以及为所述目标RAID阵列分配的可用Block个数记录到对应的RAID头中。
优选地,所述将写入所述目标RAID阵列的存储数据写入所述写缓存包括:
根据收到的写IO请求中的目标RAID阵列编号查找对应的RAID头;
根据所述写IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;
如果查找到了对应的Block头,将数据写入该Block头对应的Block数据块中;
如果未查找到对应的Block头,则获取一个空Block数据块,将数据写入该空Block数据块中,同时在该空Block数据块对应的Block头中记录所属RAID头的编号,在所述第二bitmap位图中记录该Block头对应的Block数据块已写入数据,并将该数据在目标RAID阵列中的lba地址记录到该Block头中;
其中当获取到一个空数据块时,更新对应的RAID头中记录的所述可用Block个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江宇视科技有限公司,未经浙江宇视科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410401367.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:气动升降机
- 下一篇:一种蓄热式火化机的拼装结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置