CN107122261A - 一种存储设备的数据读写方法及装置 - Google Patents

一种存储设备的数据读写方法及装置 Download PDF

Info

Publication number
CN107122261A
CN107122261A CN201710253759.4A CN201710253759A CN107122261A CN 107122261 A CN107122261 A CN 107122261A CN 201710253759 A CN201710253759 A CN 201710253759A CN 107122261 A CN107122261 A CN 107122261A
Authority
CN
China
Prior art keywords
data
lun
written
write
raid
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
Application number
CN201710253759.4A
Other languages
English (en)
Other versions
CN107122261B (zh
Inventor
蔡斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Sequoia Polytron Technologies Inc
Original Assignee
Hangzhou Sequoia Polytron Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Sequoia Polytron Technologies Inc filed Critical Hangzhou Sequoia Polytron Technologies Inc
Priority to CN201710253759.4A priority Critical patent/CN107122261B/zh
Publication of CN107122261A publication Critical patent/CN107122261A/zh
Application granted granted Critical
Publication of CN107122261B publication Critical patent/CN107122261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种存储设备的数据读写方法及装置
技术领域
本发明涉及网络存储技术领域,尤其涉及一种存储设备的数据读写方法及装置。
背景技术
视频监控数据量大,通常保存在专用存储设备中。对于存储设备而言,视频监控应用包含:数据要求实时写入、数据有保存期限、数据一次写多次读、数据量大、故障率相对较高等特点。
为保证数据可靠性,存储设备通常使用RAID(Redundant Array ofIndependentDisks,独立磁盘冗余阵列)技术对硬盘中数据进行冗余保护。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(Logic Unit Number,逻辑单元号),再把LUN分配给应用服务器存储数据。对于视频监控类应用,为提高数据可靠性,避免LUN的单点故障,通常会利用存储设备的本地镜像特性,为LUN在另外一个RAID上保存数据副本,在任一个RAID故障时,LUN的数据流可以继续访问另外一个LUN,这样可以保证视频数据写入成功。但是通过本地镜像进行数据保存时,由于数据需要保存2份,即需要使用双倍磁盘,因此这种方式相对之前直接存入RAID的方法功耗高、成本高、空间利用率低,由于视频监控业务通常对于成本控制比较严格,因此这种方案不适用于视频监控应用。
为了解决上述问题,本发明提供一种存储设备的数据读写方法及装置,可以使LUN接收数据写入指令时,获取数据写入指令中的LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,说明磁盘故障,因此可以将待写入数据写入到备用空间;当所述写重定向标识为0时,说明磁盘正常,因此可以将待写入数据写入到该LUN所处的RAID,但是在将数据写入RAID时,当收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据,并当重试失败时,将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。由于本发明的LUN当其所在RAID故障时,对于前端下发的数据写入指令不返回错误,而是进行重定向写入到备用空间中,从而确保LUN的数据写入指令可以持续下发,确保写入数据有效,能够被正常读出。因此,本发明可以通过预留少数的备份空间,即可实现在存储异常时保证视频监控写业务的连续性,并可以大幅度节省成本。
请参考图1,是本发明一种示例性实施方式中的一种存储设备的数据读写方法的处理流程图,所述方法包括:
步骤101、LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;
存储设备中包括多个LUN(Logical Unit Number,逻辑单元号),用于为应用服务器提供可访问的逻辑存储资源,LUN中有分为多个逻辑块,其对应的地址LBA(LogicalBlock Address,逻辑块地址)是应用服务器访问LUN时使用的地址,而实际存储数据的RAID上的地址为PBA(physical Block Address,物理块地址);记录数据的LBA地址与其对应的PBA的对应关系的表项可以称为映射表。所述LBA、PBA、映射表以及的关系如图2所示。
在本实施例中,LUN可以收到上层的应用服务器发送的数据写入指令,该数据写入指令通常包括待写入数据、待写入数据的长度、写入的的LBA地址等信息。LUN收到数据写入指令时,可以根据所述数据写入指令中的待写入数据的LBA地址,根据上述对应关系,查找所述LBA地址所处的存储区域。在本实施例中,可以在RAID中的存储区域中添加写重定向标识来表示RAID是否正常工作,所述写重定向标识可以用“0”和“1”分别表示“正常”和“不正常”。因此当LUN要向该存储区域写入数据时,可以先获取该存储区域对应的写重定向标识,判断该存储区域是否能够正常工作。
步骤102、当所述写重定向标识为1时,将待写入数据写入到备用空间;
当LUN确定所述写重定向标识为1时,可以认为该存储区域无法正常工作,因此可以将待写入数据写入到该RAID中预设的备用空间。在可选的实施例中,可以存储设备上保留一部分备用空间,设置备用空间的方法有两种,一是,手动保留备用空间,比如在系统盘上划分备用空间,或者存储设备配置少量可靠性更高磁盘,创建RAID,作为备用空间;一是,自动保留备用空间,比如每个RAID上按指定比率预留备用空间,提供给其他RAID上LUN使用。保留的备用空间不能用于创建LUN,比如RAID总容量是20TB,保留5%,则该RAID中19TB的空间可用于创建LUN,剩下1TB预留。由于本发明在磁盘中预设的备用空间远低于本地镜像所需的空间大小,并且采用按需分配的精简配置技术,可以有效地节省空间,因此可以降低空间成本。
在本发明可选的实施例中,将待写入数据重定向写入到备用空间,具体来讲,当待写入数据在备用空间写入成功时,LUN记录所述待写入数据的重定向信息,其中所述重定向信息包括:数据所属的LUN、数据的LBA地址、数据的长度、数据在备用空间的映射表、数据对应的差异位图,所述差异位图用于表示数据写入到备用空间之后与原LUN中的数据不一致,举例来讲,可以将数据划分为等长的数据块,差异位图中的一小格代表一个数据块(如图2所示),该数据块中的数据更新后与原LUN中的数据不一致时,可以将该数据块对应的表格中标为“1”,用于表示数据更新了,如果数据没有更新,则标为“0”。LUN记录重定向信息可以保证LUN可以在RAID恢复正常后,根据重定向信息将该数据回写到该RAID中。
当备用空间写入失败时,LUN可以向上层应用反馈失败通知。
步骤103、当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;
当所述写重定向标识为0时,说明该RAID中的存储区域工作正常,因此可以将待写入数据写入到该LUN所处的RAID。在本实施例中,当待写入数据正常写入到该LUN所处RAID时,LUN可以向上层应用返回数据写入成功通知;然后LUN还可以检查该待写入数据对应的差异位图,如果该差异位图为1,说明此时写入的数据为最新的数据,因此可以将该待写入数据对应的差异位图清零。
步骤104、当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;
在将待写入数据写入RAID时,如果RAID出现硬件错误,则LUN会收到该RAID返回的硬件错误消息,由于不确定该硬件错误消息是RAID的瞬时状态,还是持续状态,为了不影响数据写入,LUN可以进行多次重试写入该待写入数据。
步骤105、当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。
当多次重试均失败时,可以认为该RAID确实出现故障,因此LUN将该待写入数据的地址对应的写重定向标识置位为1以使LUN将该待写入数据重定向写入到备用空间。
在本发明可选的实施例中,LUN接收数据读取指令时,该数据读取指令中包括待读取数据的LBA地址和数据长度,LUN可以根据所述数据读取指令中的待读取数据的LBA地址,获取LBA地址对应的差异位图;若该差异位图为1,则说明该最新的数据存在备用空间中,因此可以从备用空间读取该待读取数据返回上层;若该差异位图为0,则说明该最新的数据存在RAID中,因此可以从该LUN所处的RAID中读取该待读取数据返回上层;当从该LUN所处的RAID中读取该待读取数据时,若收到该RAID返回的介质错误消息,则向上层应用反馈该介质错误消息,以使上层应用针对该介质错误消息进行处理。
在本发明可选的实施例中,如果RAID故障恢复时,可以重新上线。当获知该LUN所处RAID的重新上线事件时,LUN可以下发数据读取探测指令,所述数据读取探测指令包括数据的LBA地址和数据长度;若待读取数据返回成功,则说明RAID的确已经恢复正常,因此可以将该RAID所对应的存储区域的重定向标识置位为0,以使后续写入的数据可以写入到该RAID中,并且获取已记录的差异位图,确定最新的数据,例如差异位图为“1”说明最新的数据在备用空间,差异位图为“0”表示最新的数据在RAID中,如果此时该差异位图对应的LBA地址中正在写入新的数据,则将该新的数据直接写入到RAID中。在确定哪些最新的数据在备用空间后,可以将备用空间的最新数据重新写回到该LUN所对应的存储区域,然后再将该差异位图清零,并将该备用空间回收。回收备用空间可以通过更改备用空间的标识来表示备用空间是否可用。例如备用空间标识为“1”时,可以表示该备用空间已经被使用,而备用空间标识为“0”时,可以表示该备用空间空闲,可以申请使用。回收备用空间有两种方案,第一,每拷贝一部分数据就回收一部分空间;第二,所有数据都拷贝完成之后,再统一回收空间;两种方案都不影响本方案的执行效果。
为使本发明的目的、技术方案及优点更加清楚明白,下面结合图3、图4、图5对本发明的方案作进一步地详细说明。
请参考图3,是本发明实施例中的一种数据写入处理流程图,其中包括:
步骤301、LUN接收到视频服务器下发的数据写入指令;
步骤302、判断数据写入指令中数据所处存储区域的写重定向标识是否为1;如果是,则转步骤303;如果否,则转步骤307;
步骤303、判断备用空间是否有余量,如果是,则转步骤304;如果否,则转步骤305;
步骤304、写入数据,将差异位图修改为1,返回写入成功消息,记录重定向信息,并结束;
写入数据时,记录数据的重定向信息,其中包括,数据所属的LUN、数据的LBA地址、数据长度、数据在备用空间的映射表、数据的差异位图等。
步骤305、向视频服务器反馈写入失败消息,并结束;
步骤306、将数据写入指令下发到LUN所处的RAID,转步骤307;
步骤307、判断数据是否正常写入,如果是,则转步骤308;如果否,则转步骤311;
步骤308、差异位图是否为1,如果是,则转步骤309;如果否,则转步骤310;
步骤309、清零该数据对应的差异位图,转步骤309;
这样表示备用空间中的数据不需要再拷贝到原LUN所处RAID;
步骤310、返回写入成功消息,并结束;
步骤311、重试写入是否成功,如果是,则转步骤310,如果否,则转步骤312;
当该RAID的多块组成磁盘出现异常,数据无法写入时,RAID对LUN模块返回hardware error即硬件错误消息,LUN接收到该hardware error之后,会进行重试N次的数据写入操作;
步骤312、将存储区域的写重定向标识置位为1,转步骤302;
重试失败后,就会把该数据对应存储区域的写重定向标识置位为1,然后把这个数据重定向写入到备用空间,如果备用空间中还有可用的空间,则返回写入成功消息;如果备用空间已经用完,则给上层应用返回写入失败消息。
因此,本发明对于前端下发的数据写入指令,不管LUN所处RAID的状态如何,本技术确保这些写入的数据可以被完整存放下来,从而提高数据存储的完整性。
请参考图4,是本发明的实施例中的一种数据读取处理流程图,其中包括:
步骤401、LUN接收数据读取指令;
步骤402、判断数据读取指令中的LBA对应的差异位图是否为1;若是,则转步骤403;若否,则转步骤404;
步骤403、从备用空间读取数据,并结束;
如果对应的差异位图为1,则说明备用空间的数据有效,则根据LBA地址以及映射表从备用空间读取数据返回上层应用;
步骤404、原LUN所处RAID是否正常;若是,则转步骤405;若否,则转步骤406;
步骤405、从LUN所处RAID中读取数据,并结束;
如果对应的差异位图为0,则说明原LUN所处RAID正常,因此可以从LUN所处RAID读出数据返回上层应用;
步骤406、向上层返回medium error消息,并结束;
如果原LUN所处RAID异常,则会给上层返回medium error的错误消息,以使上层应用根据相应的错误码进行处理。
因此,本发明可以当前端下发的数据读取指令时,尽量读取备用空间或者RAID中的数据。
请参考图5,是本发明的实施例中的一种数据回写处理流程图,其中包括:
步骤501、LUN接收RAID重新上线事件;
当原LUN所处RAID中的磁盘修复之后,RAID重新上线;
步骤502、下发数据读取探测指令;
步骤503、是否反馈读取成功消息;如果是,则转步骤504;如果否,则转步骤507;
如果反馈读取成功,则说明该RAID可以正常读取数据;
步骤504、修改该RAID所属存储区域的写重定向标识;
步骤505、差异位图是否全为0,如果是,则转步骤506;如果否,则转步骤507;
步骤506、回收LUN占用的备用空间,并结束;
差异位图全变成0之后,表示备用空间的数据全部同步到了原LUN所处RAID,之后可以回收备用空间,以便被其他LUN使用。
步骤507、将备用空间的数据写回到原LUN,将差异位置为0,转步骤505;
步骤508、将RAID标为离线状态,并结束。
因此,本发明可以当LUN所处RAID能修复时,将备用空间回写到原LUN所处RAID上;当RAID的磁盘无法修复时,当LUN在备用空间(处于其他RAID的情况)中占用的空间等于原LUN大小时,LUN就会整体重定位到备用空间中,此时也不会影响数据的读写。更换新的磁盘创建新的RAID之后,这些存储空间又可以变成备用空间;这样就不会导致空间的浪费;同时又可以有效地保证前端视频监控业务的连续性。
基于相同的构思,本发明还提供一种存储设备的数据读写装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的存储设备的数据读写装置作为一个逻辑意义上的装置,是通过其所在存储设备的CPU将存储器中对应的计算机程序指令读取后运行而成。
请参考图6是本发明一种示例性实施方式中的一种存储设备的数据读写装置700,该装置基本运行环境包括CPU,存储器以及其他硬件,从逻辑层面上来看,该存储设备的数据读写装置的组成如图7所示,其中该装置700包括:
指令接收单元701,用于LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;
第一写入单元702,用于当所述写重定向标识为1时,将待写入数据写入到备用空间;
第二写入单元703,用于当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;
写入重试单元704,用于当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;
标识修改单元705,用于当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。
可选的,所述第一写入单元702,具体用于当备用空间写入成功时,LUN记录所述待写入数据的重定向信息,其中所述重定向信息包括:数据所属的LUN、数据的LBA地址、数据的长度、数据在备用空间的映射表、数据对应的差异位图;当备用空间写入失败时,LUN向上层应用反馈失败通知。
可选的,所述第二写入单元703,具体用于当待写入数据正常写入该LUN所处RAID时,向上层应用返回数据写入成功通知;检查该待写入数据对应的差异位图,如果该差异位图为1,则清零该待写入数据对应的差异位图。
可选的,所述装置还包括:
数据读取单元706,用于LUN接收数据读取指令,根据所述数据读取指令中的待读取数据的LBA地址,获取LBA地址对应的差异位图;若该差异位图为1,则从备用空间读取该待读取数据;若该差异位图为0,则从该LUN所处的RAID中读取该待读取数据返回上层;当从该LUN所处的RAID中读取该待读取数据时,若收到该RAID返回的介质错误消息时,则向上层应用反馈该介质错误消息。
可选的,所述装置还包括:
数据回写单元707,用于当获知该LUN所处RAID的重新上线事件时,LUN下发数据读取探测指令;若待读取数据返回成功,则将该RAID所对应的存储区域的重定向标识置位为0;根据已记录的差异位图,将该备用空间的数据重新写回到该LUN所对应的存储区域,将该差异位图清零,并将该备用空间回收。
综上所述,本发明可以使LUN接收数据写入指令时,获取数据写入指令中的LBA地址所处的存储区域对应的写重定向标识;当所述写重定向标识为1时,说明磁盘故障,因此可以将待写入数据写入到备用空间;当所述写重定向标识为0时,说明磁盘正常,因此可以将待写入数据写入到该LUN所处的RAID,但是在将数据写入RAID时,当收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据,并当重试失败时,将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。由于本发明的LUN当其所在RAID故障时,对于前端下发的数据写入指令不返回错误,而是进行重定向写入到备用空间中,从而确保LUN的数据写入指令可以持续下发,确保写入数据有效,能够被正常读出。因此,本发明可以通过预留少数的备份空间,即可实现在存储异常时保证视频监控写业务的连续性,并可以大幅度节省成本。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

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.一种存储设备的数据读写装置,其特征在于,所述装置包括:
指令接收单元,用于LUN接收数据写入指令,根据所述数据写入指令中的待写入数据的LBA地址,获取所述LBA地址所处的存储区域对应的写重定向标识;
第一写入单元,用于当所述写重定向标识为1时,将待写入数据写入到备用空间;
第二写入单元,用于当所述写重定向标识为0时,将待写入数据写入到该LUN所处的RAID;
写入重试单元,用于当LUN收到该RAID返回的硬件错误消息后,LUN进行重试写入该待写入数据;
标识修改单元,用于当重试失败时,LUN将该待写入数据的地址对应的写重定向标识置位为1以使该待写入数据重定向写入到备用空间。
7.根据权利要求6所述的装置,其特征在于,
所述第一写入单元,具体用于当备用空间写入成功时,LUN记录所述待写入数据的重定向信息,其中所述重定向信息包括:数据所属的LUN、数据的LBA地址、数据的长度、数据在备用空间的映射表、数据对应的差异位图;当备用空间写入失败时,LUN向上层应用反馈失败通知。
8.根据权利要求7所述的装置,其特征在于,
所述第二写入单元,具体用于当待写入数据正常写入该LUN所处RAID时,向上层应用返回数据写入成功通知;检查该待写入数据对应的差异位图,如果该差异位图为1,则清零该待写入数据对应的差异位图。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
数据读取单元,用于LUN接收数据读取指令,根据所述数据读取指令中的待读取数据的LBA地址,获取LBA地址对应的差异位图;若该差异位图为1,则从备用空间读取该待读取数据;若该差异位图为0,则从该LUN所处的RAID中读取该待读取数据返回上层;当从该LUN所处的RAID中读取该待读取数据时,若收到该RAID返回的介质错误消息时,则向上层应用反馈该介质错误消息。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
数据回写单元,用于当获知该LUN所处RAID的重新上线事件时,LUN下发数据读取探测指令;若待读取数据返回成功,则将该RAID所对应的存储区域的重定向标识置位为0;根据已记录的差异位图,将该备用空间的数据重新写回到该LUN所对应的存储区域,将该差异位图清零,并将该备用空间回收。
CN201710253759.4A 2017-04-18 2017-04-18 一种存储设备的数据读写方法及装置 Active CN107122261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710253759.4A CN107122261B (zh) 2017-04-18 2017-04-18 一种存储设备的数据读写方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710253759.4A CN107122261B (zh) 2017-04-18 2017-04-18 一种存储设备的数据读写方法及装置

Publications (2)

Publication Number Publication Date
CN107122261A true CN107122261A (zh) 2017-09-01
CN107122261B CN107122261B (zh) 2020-04-07

Family

ID=59725085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710253759.4A Active CN107122261B (zh) 2017-04-18 2017-04-18 一种存储设备的数据读写方法及装置

Country Status (1)

Country Link
CN (1) CN107122261B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868019A (zh) * 2021-08-27 2021-12-31 苏州浪潮智能科技有限公司 一种数据处理方法、装置及相关设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236482A (zh) * 2008-02-26 2008-08-06 杭州华三通信技术有限公司 降级状态下处理数据的方法及独立冗余磁盘阵列系统
CN101645043A (zh) * 2009-09-08 2010-02-10 成都市华为赛门铁克科技有限公司 写数据的方法、读数据的方法及存储设备
US20100037017A1 (en) * 2008-08-08 2010-02-11 Samsung Electronics Co., Ltd Hybrid storage apparatus and logical block address assigning method
US20100037091A1 (en) * 2008-08-06 2010-02-11 Anant Baderdinni Logical drive bad block management of redundant array of independent disks
CN101668048A (zh) * 2009-09-28 2010-03-10 武汉大学 支持任意时间数据访问和修改的数据保护方法及系统
CN102521068A (zh) * 2011-11-08 2012-06-27 华中科技大学 一种固态盘阵列的重建方法
CN102722340A (zh) * 2012-04-27 2012-10-10 华为技术有限公司 数据处理方法、装置及系统
CN103530237A (zh) * 2013-10-31 2014-01-22 厦门大学 一种固态盘阵列的垃圾回收方法
CN103577111A (zh) * 2012-07-23 2014-02-12 上海宝存信息科技有限公司 基于非易失性存储器的动态独立冗余阵列存储系统及方法
CN103649901A (zh) * 2013-07-26 2014-03-19 华为技术有限公司 数据发送方法、数据接收方法和存储设备
CN103699457A (zh) * 2013-09-26 2014-04-02 深圳市泽云科技有限公司 基于条带化的磁盘阵列修复方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236482A (zh) * 2008-02-26 2008-08-06 杭州华三通信技术有限公司 降级状态下处理数据的方法及独立冗余磁盘阵列系统
US20100037091A1 (en) * 2008-08-06 2010-02-11 Anant Baderdinni Logical drive bad block management of redundant array of independent disks
US20100037017A1 (en) * 2008-08-08 2010-02-11 Samsung Electronics Co., Ltd Hybrid storage apparatus and logical block address assigning method
CN101645043A (zh) * 2009-09-08 2010-02-10 成都市华为赛门铁克科技有限公司 写数据的方法、读数据的方法及存储设备
CN101668048A (zh) * 2009-09-28 2010-03-10 武汉大学 支持任意时间数据访问和修改的数据保护方法及系统
CN102521068A (zh) * 2011-11-08 2012-06-27 华中科技大学 一种固态盘阵列的重建方法
CN102722340A (zh) * 2012-04-27 2012-10-10 华为技术有限公司 数据处理方法、装置及系统
CN103577111A (zh) * 2012-07-23 2014-02-12 上海宝存信息科技有限公司 基于非易失性存储器的动态独立冗余阵列存储系统及方法
CN103649901A (zh) * 2013-07-26 2014-03-19 华为技术有限公司 数据发送方法、数据接收方法和存储设备
CN103699457A (zh) * 2013-09-26 2014-04-02 深圳市泽云科技有限公司 基于条带化的磁盘阵列修复方法及装置
CN103530237A (zh) * 2013-10-31 2014-01-22 厦门大学 一种固态盘阵列的垃圾回收方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王湘娜 等: "一种基于RAID5的Disk_Cache的实现", 《计算机应用》 *
王湘娜 等: "基于RAID5的磁盘阵列Cache的研究与实现", 《计算机工程》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868019A (zh) * 2021-08-27 2021-12-31 苏州浪潮智能科技有限公司 一种数据处理方法、装置及相关设备
CN113868019B (zh) * 2021-08-27 2023-11-03 苏州浪潮智能科技有限公司 一种数据处理方法、装置及相关设备

Also Published As

Publication number Publication date
CN107122261B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
US8015371B2 (en) Storage apparatus and method of managing data storage area
US7587631B2 (en) RAID controller, RAID system and control method for RAID controller
US7523356B2 (en) Storage controller and a system for recording diagnostic information
CN100530125C (zh) 一种数据的安全存储方法
US10120769B2 (en) Raid rebuild algorithm with low I/O impact
US20090077302A1 (en) Storage apparatus and control method thereof
CN101782875B (zh) 存储设备和数据存储方法
CN102024044A (zh) 分布式文件系统
CN111722793A (zh) 开放通道存储设备的操作方法
CN103699457A (zh) 基于条带化的磁盘阵列修复方法及装置
CN114625325B (zh) 分布式存储系统及其存储节点离线处理方法
KR102574354B1 (ko) 비정상적 셧다운과 연관된 효율적인 데이터 저장 이용
CN111984365B (zh) 一种虚拟机虚拟磁盘双活实现方法及系统
CN111797058B (zh) 一种通用文件系统及文件管理的方法
US6363457B1 (en) Method and system for non-disruptive addition and deletion of logical devices
CN108170375B (zh) 一种分布式存储系统中的超限保护方法和装置
CN105068896B (zh) 基于raid备份的数据处理方法及装置
CN107122261A (zh) 一种存储设备的数据读写方法及装置
JP4143040B2 (ja) ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
US11687263B2 (en) Full die recovery in ZNS SSD
US8356230B2 (en) Apparatus to manage data stability and methods of storing and recovering data
CN111124740A (zh) 一种数据读取方法、装置、存储设备及机器可读存储介质
CN110245036B (zh) 嵌入式系统中实现nand闪存存储器数据备份处理的系统及其方法
CN112784101B (zh) 视频数据存储方法及装置、数据存储设备
CN101359299A (zh) 一种映像廉价磁盘冗余阵列设备的写操作的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: The invention relates to a data reading and writing method and a device of a storage device

Effective date of registration: 20201231

Granted publication date: 20200407

Pledgee: Industrial and Commercial Bank of China Limited Hangzhou Qianjiang Branch

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2020330001371

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220110

Granted publication date: 20200407

Pledgee: Industrial and Commercial Bank of China Limited Hangzhou Qianjiang Branch

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2020330001371

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data reading and writing method and device of storage device

Effective date of registration: 20220114

Granted publication date: 20200407

Pledgee: Industrial and Commercial Bank of China Limited Hangzhou Qianjiang Branch

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2022330000096

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230207

Granted publication date: 20200407

Pledgee: Industrial and Commercial Bank of China Limited Hangzhou Qianjiang Branch

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2022330000096

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method and device for reading and writing data of a storage device

Effective date of registration: 20230224

Granted publication date: 20200407

Pledgee: Industrial and Commercial Bank of China Limited Hangzhou Qianjiang Branch

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2023330000429

PE01 Entry into force of the registration of the contract for pledge of patent right