一种存储设备的数据读写方法及装置制造方法及图纸

技术编号:16128571 阅读:30 留言:0更新日期:2017-09-01 20:43
本发明专利技术提供一种存储设备的数据读写方法及装置,所述方法包括:LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,将待写入数据写入到备用空间;当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。因此本发明专利技术可以在RAID多磁盘故障后,避免后续写入的视频数据丢失。

Data read-write method and device for storage device

The present invention provides a storage device data read-write method and device, the method includes: receiving LUN data according to the write instruction, the data is written to be written to the data LBA address in the instruction, write redirection corresponding storage area to obtain the identity of the LBA address; when the write redirection ID 1, the writing data to be written to the spare space; when the write operation if the flag is 0, the writing data to be written to the LUN at RAID; when the LUN receives the RAID returns the hardware error message, LUN writes the data to be written to retry; when the retry fails, LUN will the data to be written to the address corresponding to the identifier set 1 redirect on write to make the writing data to be written to redirect the spare space. Therefore, the invention can avoid subsequent write of video data loss after the RAID multi disk fault.

【技术实现步骤摘要】
一种存储设备的数据读写方法及装置
本专利技术涉及网络存储
,尤其涉及一种存储设备的数据读写方法及装置。
技术介绍
视频监控数据量大,通常保存在专用存储设备中。对于存储设备而言,视频监控应用包含:数据要求实时写入、数据有保存期限、数据一次写多次读、数据量大、故障率相对较高等特点。为保证数据可靠性,存储设备通常使用RAID(RedundantArrayofIndependentDisks,独立磁盘冗余阵列)技术对硬盘中数据进行冗余保护。RAID是一种把多块独立的物理磁盘按不同的方式组合起来形成一个磁盘组,从而提供比单个磁盘更高的存储性能和数据可靠性的技术。当有数据写入时,根据RAID算法计算把数据拆分到多个成员磁盘中,RAID级别不同,其数据冗余性也不同。比如传统RAID5,可容忍1块磁盘故障或者离线,当检测到1块磁盘故障或者离线时,使用专用热备盘或者全局热备盘进行重建,恢复RAID阵列的数据冗余性;如果重建过程中又有1块磁盘故障或离线,该RAID故障,不能再被读写,IO会返错。RAID技术可以在一定程度上提高数据可靠性,但是如果RAID中多块磁盘接连故障或离线,还是会导致数据读写失败,对于视频监控类应用,最直接的影响就是视频数据丢失,无法回放,而且后续视频的数据也会无法写入,导致RAID故障后的视频数据丢失。
技术实现思路
有鉴于此,本专利技术提供一种存储设备的数据读写方法及装置来解决现有技术中RAID故障后,视频数据无法写入造成视频数据丢失的问题。具体地,本专利技术是通过如下技术方案实现的:本专利技术提供一种存储设备的数据读写方法,所述方法包括:LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,将待写入数据写入到备用空间;当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。进一步的,所述将待写入数据重定向写入到备用空间,具体包括:当备用空间写入成功时,LUN记录所述待写入数据的重定向信息,其中所述重定向信息包括:数据所属的LUN、数据的LBA地址、数据的长度、数据在备用空间的映射表、数据对应的差异位图;当备用空间写入失败时,LUN向上层应用反馈失败通知。进一步的,所述将待写入数据写入到该LUN所处的RAID,具体为:当待写入数据正常写入该LUN所处RAID时,则向上层应用返回数据写入成功通知;检查该待写入数据对应的差异位图,如果该差异位图为1,则清零该待写入数据对应的差异位图。进一步的,所述方法还包括:LUN接收数据读取指令,根据所述数据读取指令中的待读取数据的LBA地址,获取LBA地址对应的差异位图;若该差异位图为1,则从备用空间读取该待读取数据;若该差异位图为0,则从该LUN所处的RAID中读取该待读取数据返回上层;当从该LUN所处的RAID中读取该待读取数据时,若收到该RAID返回的介质错误消息,则向上层应用反馈该介质错误消息。进一步的,所述方法还包括:当获知该LUN所处RAID的重新上线事件时,LUN下发数据读取探测指令;若待读取数据返回成功,则将该RAID所对应的存储区域的重定向标识置位为0;根据已记录的差异位图,将该备用空间的数据重新写回到该LUN所对应的存储区域,将该差异位图清零,并将该备用空间回收。基于相同的构思,本专利技术还提供一种存储设备的数据读写装置,所述装置包括:指令接收单元,用于LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;第一写入单元,用于当所述写重定向标识为1时,将待写入数据写入到备用空间;第二写入单元,用于当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;写入重试单元,用于当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;标识修改单元,用于当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。进一步的,所述第一写入单元,具体用于当备用空间写入成功时,LUN记录所述待写入数据的重定向信息,其中所述重定向信息包括:数据所属的LUN、数据的LBA地址、数据的长度、数据在备用空间的映射表、数据对应的差异位图;当备用空间写入失败时,LUN向上层应用反馈失败通知。进一步的,所述第二写入单元,具体用于当待写入数据正常写入该LUN所处RAID时,向上层应用返回数据写入成功通知;检查该待写入数据对应的差异位图,如果该差异位图为1,则清零该待写入数据对应的差异位图。进一步的,所述装置还包括:数据读取单元,用于LUN接收数据读取指令,根据所述数据读取指令中的待读取数据的LBA地址,获取LBA地址对应的差异位图;若该差异位图为1,则从备用空间读取该待读取数据;若该差异位图为0,则从该LUN所处的RAID中读取该待读取数据返回上层;当从该LUN所处的RAID中读取该待读取数据时,若收到该RAID返回的介质错误消息时,则向上层应用反馈该介质错误消息。进一步的,所述装置还包括:数据回写单元,用于当获知该LUN所处RAID的重新上线事件时,LUN下发数据读取探测指令;若待读取数据返回成功,则将该RAID所对应的存储区域的重定向标识置位为0;根据已记录的差异位图,将该备用空间的数据重新写回到该LUN所对应的存储区域,将该差异位图清零,并将该备用空间回收。由此可见,本专利技术可以使LUN接收数据写入指令时,获取数据写入指令中的LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,说明磁盘故障,因此可以将待写入数据写入到备用空间;当所述写重定向标识为0时,说明磁盘正常,因此可以将待写入数据写入到该LUN所处的RAID,但是在将数据写入RAID时,当收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据,并当重试失败时,将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。由于本专利技术的LUN当其所在RAID故障时,对于前端下发的数据写入指令不返回错误,而是进行重定向写入到备用空间中,从而确保LUN的数据写入指令可以持续下发,确保写入数据有效,能够被正常读出。因此,本专利技术可以通过预留少数的备份空间,即可实现在存储异常时保证视频监控写业务的连续性,并可以大幅度节省成本。附图说明图1是本专利技术一种示例性实施方式中的一种存储设备的数据读写方法的处理流程图;图2是LBA、PBA、映射表以及差异位图的关系示意图;图3是本专利技术一种示例性实施方式中的数据写入处理流程图;图4是本专利技术一种示例性实施方式中的数据读取处理流程图;图5是本专利技术一种示例性实施方式中的数据回写处理流程图;图6本专利技术一种示例性实施方式中的存储设备的数据读写装置所在设备的硬件结构图;图7本专利技术一种示例性实施方式中的一种存储设备的数据读写装置的逻辑结构图。具体实施方式本专利技术中,RAID可用空间不直接提供给应用服务器访问,而是在上面创建LUN(LogicU本文档来自技高网...
一种存储设备的数据读写方法及装置

【技术保护点】
一种存储设备的数据读写方法,其特征在于,所述方法包括:LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,将待写入数据写入到备用空间;当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。

【技术特征摘要】
1.一种存储设备的数据读写方法,其特征在于,所述方法包括:LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,将待写入数据写入到备用空间;当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。2.根据权利要求1所述的方法,其特征在于,所述将待写入数据重定向写入到备用空间,具体包括:当备用空间写入成功时,LUN记录所述待写入数据的重定向信息,其中所述重定向信息包括:数据所属的LUN、数据的LBA地址、数据的长度、数据在备用空间的映射表、数据对应的差异位图;当备用空间写入失败时,LUN向上层应用反馈失败通知。3.根据权利要求2所述的方法,其特征在于,所述将待写入数据写入到该LUN所处的RAID,具体为:当待写入数据正常写入该LUN所处RAID时,则向上层应用返回数据写入成功通知;检查该待写入数据对应的差异位图,如果该差异位图为1,则清零该待写入数据对应的差异位图。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:LUN接收数据读取指令,根据所述数据读取指令中的待读取数据的LBA地址,获取LBA地址对应的差异位图;若该差异位图为1,则从备用空间读取该待读取数据;若该差异位图为0,则从该LUN所处的RAID中读取该待读取数据返回上层;当从该LUN所处的RAID中读取该待读取数据时,若收到该RAID返回的介质错误消息,则向上层应用反馈该介质错误消息。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:当获知该LUN所处RAID的重新上线事件时,LUN下发数据读取探测指令;若待读取数据返回成功,则将该RAID所对应的存储区域的重定向标识置位为0;根据已记录的差异位图,将该备用空间的数据重新写回到该LUN所对应的存储区域,将该差异位图清零,并将该备用空间回收。6.一种存储设备的数据读写装置,其特征...

【专利技术属性】
技术研发人员:蔡斌
申请(专利权)人:杭州宏杉科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1