发明内容
本发明实施例提供逻辑单元坏扇区的数据修复方法及装置,用以提高修复及时性。
本发明实施例提供了一种逻辑单元坏扇区的数据修复方法,包括:
主机向硬盘阵列查询逻辑单元坏扇区;
所述主机接收所述硬盘阵列发送的逻辑单元坏扇区的标识信息;
所述主机根据所述逻辑单元坏扇区的标识信息,对所述逻辑单元坏扇区存储的数据进行修复。
本发明实施例提供了另一种逻辑单元坏扇区的数据修复方法,包括:
硬盘阵列存储逻辑单元坏扇区的标识信息;
所述硬盘阵列向主机发送所述主机查询的所述逻辑单元坏扇区的标识信息,以使所述主机根据所述逻辑单元坏扇区的标识信息,对所述逻辑单元坏扇区存储的数据进行修复。
本发明实施例还提供了一种主机,包括:
查询单元,用于向硬盘阵列查询逻辑单元坏扇区;
接收单元,用于接收所述硬盘阵列发送的逻辑单元坏扇区的标识信息;
修复单元,用于根据所述逻辑单元坏扇区的标识信息,对所述逻辑单元坏扇区存储的数据进行修复。
本发明实施例还提供了一种硬盘阵列,包括至少两个硬盘和硬盘控制器,所述硬盘控制器包括:
存储单元,用于存储逻辑单元坏扇区的标识信息;
发送单元,用于向主机发送所述主机查询的所述逻辑单元坏扇区的标识信息,以使所述主机根据所述逻辑单元坏扇区的标识信息,对所述逻辑单元坏扇区存储的数据进行修复。
由上述技术方案可知,本发明实施例的主机通过向硬盘阵列查询逻辑单元坏扇区,使得主机接收该硬盘阵列发送的逻辑单元坏扇区的标识信息,进而可以根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复,由于主机能够主动对逻辑单元坏扇区存储的数据进行修复,在一定程度上避免了现有技术中主机只能由业务触发访问逻辑单元坏扇区时才能被动地对该逻辑单元坏扇区存储的数据进行修复的问题,从而提高了修复及时性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的逻辑单元坏扇区的数据修复方法的流程示意图,如图1所示,本实施例的逻辑单元坏扇区的数据修复方法可以包括:
101、主机向硬盘阵列查询逻辑单元坏扇区;
具体地,上述主机可以周期性向上述硬盘阵列查询逻辑单元坏扇区。
在101之前,硬盘阵列可以利用条带内的冗余数据(即条带冗余数据),对条带内的损坏数据进行写修复。如果硬盘阵列没有条带冗余数据,例如:当RAID 5中有一个硬盘失效时,就不能再对另一个失效的硬盘进行修复,或者RAID 0本身就没有条带冗余数据等情况,则无法对条带内的损坏数据进行写修复,则出现了与损坏数据相应的坏扇区即逻辑单元坏扇区。此时,硬盘阵列可以存储逻辑单元坏扇区的标识信息。例如:逻辑单元坏扇区的标识信息可以包括但不限于LUN、逻辑块地址(Logical Block Address,简称LBA)和长度(Length)。
102、上述主机接收上述硬盘阵列发送的逻辑单元坏扇区的标识信息;
具体地,主机可以接收硬盘阵列发送的该硬盘阵列存储的逻辑单元坏扇区的标识信息。
103、上述主机根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。
例如:主机可以根据上述逻辑单元坏扇区的标识信息,确定上述逻辑单元坏扇区,然后,对上述逻辑单元坏扇区存储的数据进行修复。
再例如:主机可以根据逻辑单元坏扇区的标识信息与文件标识的对应关系,确定与上述逻辑单元坏扇区的标识信息对应的文件标识,最后,上述主机则对上述文件标识对应的文件进行修复。
可以理解的是:本实施例中,主机对逻辑单元坏扇区存储的数据进行修复的方法可以采用的方法,例如:通过备份数据、或者其他途径获得逻辑单元坏扇区存储的数据,并向硬盘阵列发送写请求,将获得的数据重新写入。
需要说明的是,在本发明实施例中执行主体除了主机以外,还可以是服务器等其他设备。
本实施例中,主机通过向硬盘阵列查询逻辑单元坏扇区,使得主机接收该硬盘阵列发送的逻辑单元坏扇区的标识信息,进而可以根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。本实施例中,主机能够主动对逻辑单元坏扇区存储的数据进行修复,避免了现有技术中主机只能由业务触发访问逻辑单元坏扇区时才能被动地对该逻辑单元坏扇区存储的数据进行修复的问题,从而提高了修复及时性。
可选地,如果上述主机修复上述逻辑单元坏扇区成功,则上述主机可以向上述硬盘阵列指示上述逻辑单元坏扇区修复成功,以使上述硬盘阵列删除上述逻辑单元坏扇区的标识信息。
可选地,如果上述主机修复上述逻辑单元坏扇区成功,则硬盘阵列可以删除上述逻辑单元坏扇区的标识信息。
可选地,在101之前,本实施例中的主机还可以进一步接收上述硬盘阵列发送的即将失效信息,上述即将失效信息包括逻辑单元的标识信息,上述即将失效信息为当上述逻辑单元中坏扇区的大小超过预先设置的大小阈值时,上述硬盘阵列发送的;然后,上述主机可以根据上述逻辑单元的标识信息,对上述逻辑单元所对应的坏扇区的数据进行备份或迁移。这些备份数据可以作为主机对逻辑单元坏扇区存储的数据进行修复时的参考数据。其中,上述逻辑单元的标识信息可以包括但不限于LUN。
图2为本发明另一实施例提供的逻辑单元坏扇区的数据修复方法的流程示意图,如图2所示,本实施例的逻辑单元坏扇区的数据修复方法可以包括:
201、硬盘阵列存储逻辑单元坏扇区的标识信息;
具体地,硬盘阵列可以利用条带内的冗余数据(即条带冗余数据),对条带内的损坏数据进行写修复。如果硬盘阵列没有条带冗余数据,例如:当RAID5中有一个硬盘失效时,就不能再对另一个失效的硬盘进行修复,或者RAID0本身就没有条带冗余数据等情况,则无法对条带内的损坏数据进行写修复,则出现了与损坏数据相应的坏扇区即逻辑单元坏扇区。此时,硬盘阵列可以存储逻辑单元坏扇区的标识信息。例如:逻辑单元坏扇区的标识信息可以包括但不限于LUN、LBA和长度。
202、上述硬盘阵列向主机发送上述主机查询的上述逻辑单元坏扇区的标识信息,以使上述主机根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。
可选地,如果上述主机修复上述逻辑单元坏扇区成功,硬盘阵列还可以进一步接收上述主机发送的用于指示上述逻辑单元坏扇区修复成功的指示信息,然后,删除上述逻辑单元坏扇区的标识信息。
可选地,如果上述主机修复上述逻辑单元坏扇区成功,则硬盘阵列可以删除上述逻辑单元坏扇区的标识信息。
可选地,在201之后,当硬盘阵列存储的逻辑单元中坏扇区的大小超过预先设置的大小阈值时,本实施例中的硬盘阵列还可以进一步向主机发送即将失效信息,上述即将失效信息包括上述逻辑单元的标识信息,以使上述主机根据上述逻辑单元的标识信息,对上述逻辑单元所对应的坏扇区的数据进行备份或迁移。这些备份数据可以作为主机对逻辑单元坏扇区存储的数据进行修复时的参考数据。其中,上述逻辑单元的标识信息可以包括但不限于LUN。
本实施例中,硬盘阵列通过存储逻辑单元坏扇区的标识信息,使得主机向硬盘阵列查询逻辑单元坏扇区时,硬盘阵列能够向主机发送该主机查询的上述逻辑单元坏扇区的标识信息,使得主机进而可以根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。本实施例中,硬盘阵列能够根据主机的主动查询向主机提供逻辑单元坏扇区的标识信息,使得主机能够主动对逻辑单元坏扇区存储的数据进行修复,避免了现有技术中主机只能由业务触发访问逻辑单元坏扇区时才能被动地对该逻辑单元坏扇区存储的数据进行修复的问题,从而提高了修复及时性。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本发明另一实施例提供的主机的结构示意图,如图3所示,本实施例的主机可以包括查询单元31、接收单元32和修复单元33。其中,查询单元31用于向硬盘阵列查询逻辑单元坏扇区;接收单元32用于接收上述硬盘阵列发送的逻辑单元坏扇区的标识信息;修复单元33用于根据接收单元32接收的上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。
上述图1和图2对应的实施例中主机的功能可以由本实施例提供的主机实现。
进一步地,本实施例中的修复单元33具体可以根据逻辑单元坏扇区的标识信息与文件标识的对应关系,确定与上述逻辑单元坏扇区的标识信息对应的文件标识,对上述文件标识对应的文件进行修复。
进一步地,若修复上述逻辑单元坏扇区成功,本实施例中的修复单元33还可以进一步向上述硬盘阵列指示上述逻辑单元坏扇区修复成功,以使上述硬盘阵列删除上述逻辑单元坏扇区的标识信息。
进一步地,本实施例中的查询单元31具体可以周期性向上述硬盘阵列查询逻辑单元坏扇区。
本实施例中,主机通过查询单元31向硬盘阵列查询逻辑单元坏扇区,使得接收单元32接收该硬盘阵列发送的逻辑单元坏扇区的标识信息,进而修复单元33可以根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。本实施例中,主机能够主动对逻辑单元坏扇区存储的数据进行修复,避免了现有技术中主机只能由业务触发访问逻辑单元坏扇区时才能被动地对该逻辑单元坏扇区存储的数据进行修复的问题,从而提高了修复及时性。
进一步地,如图4所示,本实施例的主机还可以进一步包括处理单元41,用于接收上述硬盘阵列发送的即将失效信息,上述即将失效信息包括逻辑单元的标识信息,上述即将失效信息为当上述逻辑单元中坏扇区的大小超过预先设置的大小阈值时,上述硬盘阵列发送的,以及根据上述逻辑单元的标识信息,对上述逻辑单元所对应的坏扇区的数据进行备份或迁移。
图5为本发明另一实施例提供的硬盘阵列的结构示意图,如图5所示,本实施例的硬盘阵列可以包括至少两个硬盘51和硬盘控制器52。其中,硬盘控制器52可以包括存储单元521和发送单元522。其中,存储单元521用于存储逻辑单元坏扇区的标识信息;发送单元522用于向主机发送主机查询的上述逻辑单元坏扇区的标识信息,以使上述主机根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。
上述图1和图2对应的实施例中硬盘阵列的功能可以由本实施例提供的硬盘阵列中的硬盘控制器52实现。
进一步地,如图6所示,本实施例中的硬盘控制器52还可以进一步包括删除单元523。可选地,若上述主机修复上述逻辑单元坏扇区成功,删除单元523则可以接收上述主机发送的用于指示上述逻辑单元坏扇区修复成功的指示信息,并删除上述逻辑单元坏扇区的标识信息;可选地,若上述主机修复上述逻辑单元坏扇区成功,删除单元523则还可以直接删除上述逻辑单元坏扇区的标识信息。
进一步地,如图7所示,本实施例中的硬盘控制器52还可以进一步包括指示单元524,用于当存储单元521存储的逻辑单元中坏扇区的大小超过预先设置的大小阈值时,向上述主机发送即将失效信息,上述即将失效信息包括上述逻辑单元的标识信息,以使上述主机根据上述逻辑单元的标识信息,对上述逻辑单元所对应的坏扇区的数据进行备份或迁移。
本实施例中,硬盘阵列通过硬盘控制器52的存储单元521存储逻辑单元坏扇区的标识信息,使得主机向硬盘阵列查询逻辑单元坏扇区时,硬盘控制器的发送单元522能够向主机发送该主机查询的上述逻辑单元坏扇区的标识信息,使得主机进而可以根据上述逻辑单元坏扇区的标识信息,对上述逻辑单元坏扇区存储的数据进行修复。本实施例中,硬盘阵列能够根据主机的主动查询向主机提供逻辑单元坏扇区的标识信息,使得主机能够主动对逻辑单元坏扇区存储的数据进行修复,避免了现有技术中主机只能由业务触发访问逻辑单元坏扇区时才能被动地对该逻辑单元坏扇区存储的数据进行修复的问题,从而提高了修复及时性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM,)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。