CN102147714A - 一种网络存储系统的管理方法及装置 - Google Patents

一种网络存储系统的管理方法及装置 Download PDF

Info

Publication number
CN102147714A
CN102147714A CN2011100640305A CN201110064030A CN102147714A CN 102147714 A CN102147714 A CN 102147714A CN 2011100640305 A CN2011100640305 A CN 2011100640305A CN 201110064030 A CN201110064030 A CN 201110064030A CN 102147714 A CN102147714 A CN 102147714A
Authority
CN
China
Prior art keywords
resource block
disk
resource
state
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
CN2011100640305A
Other languages
English (en)
Other versions
CN102147714B (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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies Co Ltd
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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN201110064030.5A priority Critical patent/CN102147714B/zh
Publication of CN102147714A publication Critical patent/CN102147714A/zh
Application granted granted Critical
Publication of CN102147714B publication Critical patent/CN102147714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种网络存储系统管理装置及方法,用于把RAID的可用空间根据指定长度划分为多个资源块;在创建逻辑资源时为逻辑资源分配至少一个资源块并更新相应的块表;创建资源块状态表以维护RAID资源块的状态;并在接收到磁盘IO读写错误事件时更新该资源块的记录;其中资源块的状态包括正常状态、降级状态以及故障状态;在资源块降级后选择空闲的资源块替换处于降级状态的资源块,并触发资源管理单元更新逻辑资源索引区的记录。本发明能够有效降低用户更换磁盘的频率,有效保护了用户的投资。

Description

一种网络存储系统的管理方法及装置
技术领域
本发明涉及网络存储技术,尤其涉及一种RAID阵列资源块管理技术。
背景技术
在涉及众多主机的数据存储的网络环境中,为了提高数据存储的可靠性和安全性,同时为了存储容量的扩展性和灵活性,网络存储技术应运而生。通常来说,网络存储系统的作用是为客户端PC机或者服务器(一般统称为主机或Host)提供可用的存储空间。
一般网络存储系统的前端可以通过IP网络或者FC网络与主机相连,为主机提供数据存储服务。在数据传输方面,以基于IP承载的网络存储系统为例,主机可以基于标准的iSCSI(互联网小型计算机系统接口)协议网络存储系统进行数据的读写操作。网络存储系统的核心是存储控制器(Storage Controller),存储控制器进行数据处理并把数据写入到后端物理磁盘中。
为提高写物理磁盘的性能以及提供数据冗余性,存储控制器通常支持独立磁盘冗余阵列(RAID,也可称为RAID阵列)技术,RAID技术是一种把多块独立的物理磁盘按不同的方式组合起来形成一个磁盘组,从而提供比单个磁盘更高的存储性能,并提供数据备份技术。根据不同的数据组织方式,常用的RAID包括RAID0、RAID1、RAID5、RAID6、RAID10等。根据RAID级别的不同可以提供各种级别的性能和可靠度,可以保证多数情况下,一个或者多个磁盘故障时可以通过剩余成员磁盘中的数据采用RAID级别对应的算法恢复出错磁盘的数据,即保证数据不丢失。通过这种算法可重构故障盘中的数据并写入到热备盘中,重构完成后热备盘做成阵列的成员磁盘,恢复阵列的冗余性和可靠性,即通常所说的RAID阵列重建。
在现有实现机制下,RAID成员磁盘健康状态一般包括两种:正常:磁盘未发生IO读写错误;故障:磁盘发生了IO读写错误,出错扇区上的数据不能再被访问。RAID健康状态定义如下:
正常:RAID的所有成员磁盘都正常,RAID可以正常读写,RAID具有完整的数据冗余性和可靠性;
降级:RAID的一个或多个成员磁盘故障,采用RAID级别对应的算法可以通过剩余成员磁盘上的数据重构出出错磁盘的数据,RAID可以正常读写,但是不能提供完整的数据冗余性和可靠性;
故障:RAID的一个或多个成员磁盘故障,采用RAID级别对应的算法无法恢复出错磁盘上的数据,故障状态的RAID直接离线,其上数据不能再被访问。
存储控制器收到原健康状态是“正常”的RAID的成员磁盘故障事件后,RAID把出错磁盘踢出阵列,如果采用RAID级别对应的算法可以通过剩余成员磁盘上的数据重构出出错磁盘的数据,RAID健康状态变为降级,然后触发重建,使用热备盘重构出错磁盘的数据。如果没有可用的热备盘,RAID一直是降级状态,等待热备盘插入。如果采用RAID级别对应的算法不能通过剩余成员磁盘上的数据重构出出错磁盘的数据,RAID健康状态变为故障,RAID直接离线,其上数据不能再被访问。
请参考图1,图1中的RAID的级别为RAID5、成员磁盘数目为4,分别是Disk1到Disk4。D1、D2、D3、P1组成第一个条带,其中D1、D2、D3是数据,P1是这个条带上根据RAID5算法计算出来的校验数据,下面的条带类似,D表示数据,P表示校验数据。
RAID5算法可以保证,1个条带上1个磁盘发生介质错误,可以通过该条带上剩余成员磁盘的数据重构出出错磁盘的数据。如图1所示,假设健康状态是正常的RAID的条带2上,Disk4的D6区域发生磁盘IO读写错误,无法再访问,按照通常的做法,RAID健康状态变为降级,把Disk4从RAID中踢出,然后找可用的热备盘进行重建。
然而出错磁盘踢出阵列后,虽然通过重建可恢复RAID的冗余性,但是无法解决非同一条带的多块磁盘在短时间内故障导致数据丢失的问题。进一步来说,一种常见的情况是:如果网络存储系统中没有符合要求的热备盘,比如没有配置热备盘,或者热备盘类型、容量等不满足上述RAID重建的要求等,此时,RAID一直处于等待重建的状态,不具备完整的冗余性,如果RAID中其他成员磁盘上也发生了磁盘IO读写错误,采用RAID级别对应的算法不能通过剩余成员磁盘上的数据重构出该出错磁盘的数据,RAID健康状态变为故障,RAID离线,无法再进行读写。比如RAID5可容忍一块磁盘故障,即,RAID5的一块成员磁盘发生介质错误,RAID5状态变为降级并踢盘,再有一块成员磁盘发生介质错误,RAID5状态变为故障,不能再被访问。比如图2中Disk4被踢出RAID后,条带5上Disk3的D15区域也发生了磁盘IO读写错误,无法再访问。因为此时RAID5是非冗余状态,条带5的数据丢失,不能再恢复,因此RAID状态变为故障,不能再被访问。
对上述方案的一种改进实现是:在RAID降级后,故障盘并不会立即从RAID中被踢出,而是等重建完成后再踢盘,这样可以在一定程度上提高RAID的健壮性,可降低多块成员磁盘短时间内故障导致数据丢失的风险。然而这两个方案都会导致用户频繁更换磁盘,增加了用户的成本以及使用体验。
发明内容
有鉴于此,本发明提供一种旨在降低用户更换磁盘频率的存储系统管理方法及装置。本发明通过以下技术方案实现:
一种网络存储系统管理装置,用于执行网络存储系统内的资源管理操作,其中网络存储系统包括存储控制器以及多块磁盘,所述存储控制器的前端端口通过网络连接主机,所述存储控制器的后端磁盘端口与所述磁盘相连;该管理装置包括:
资源管理单元,用于使用所述磁盘创建RAID,并把该RAID的可用空间根据指定长度划分为多个资源块,并创建该RAID对应的块表用于记录资源块是否已被分配使用;其中该资源管理单元进一步用于在创建逻辑资源时为逻辑资源分配至少一个资源块并更新相应的块表,并创建该逻辑资源的索引区,其中所述逻辑资源索引区用于记录该逻辑资源的逻辑空间与其自身分配到的RAID资源块的物理空间的对应关系;
状态维护单元,用于创建资源块状态表以维护RAID资源块的状态;并在接收到磁盘IO读写错误事件时根据磁盘IO读写错误事件确定读写错误事件所影响的资源块,然后根据发生IO读写错误的磁盘编号以及RAID级别确定资源块的新状态并在资源块状态表中更新该资源块的记录;其中所述资源块的状态包括正常状态、降级状态以及故障状态;所述资源块状态表包括资源块编号、资源块状态以及发生IO读写错误的磁盘编号;
辅助管理单元,用于选择空闲的资源块替换处于降级状态的资源块,并触发资源管理单元更新逻辑资源索引区的记录。
一种网络存储系统管理方法,用于执行网络存储系统内的资源管理操作,其中网络存储系统包括存储控制器以及多块磁盘,所述存储控制器的前端端口通过网络连接主机,所述存储控制器的后端磁盘端口与所述磁盘相连;该方法包括:
步骤A,使用所述磁盘创建RAID,并把该RAID的可用空间根据指定长度划分为多个资源块,并创建该RAID对应的块表用于记录资源块是否已被分配使用;
步骤B,在创建逻辑资源时为逻辑资源分配至少一个资源块并更新相应的块表,并创建该逻辑资源的索引区,其中所述逻辑资源索引区用于记录该逻辑资源的逻辑空间与其自身分配到的RAID资源块的物理空间的对应关系;
步骤C,创建资源块状态表以维护RAID资源块的状态;并在接收到磁盘IO读写错误事件时根据磁盘IO读写错误事件确定读写错误事件所影响的资源块,然后根据发生IO读写错误的磁盘编号以及RAID级别确定资源块的新状态并在资源块状态表中更新该资源块的记录;其中所述资源块的状态包括正常状态、降级状态以及故障状态;所述资源块状态表包括资源块编号、资源块状态以及发生IO读写错误的磁盘编号;
步骤D,选择空闲的资源块替换处于降级状态的资源块,并更新逻辑资源索引区的记录。
本发明通过资源块状态的维护,并用预留资源块替代降级资源块,从而在相当程度上延长了磁盘在阵列中的使用时间,从而降低了磁盘的更换频率,有效地保护了用户投资。
附图说明
图1是一种RAID阵列中磁盘发生介质错误示意图。
图2是另一种RAID阵列中磁盘发生介质错误示意图。
图3是本发明网络存储系统管理装置逻辑层次图。
图4是本发明网络存储系统管理装置逻辑结构图。
图5是本发明记录资源块分配使用情况的块表示意图。
图6是本发明为逻辑资源分配资源块示意图。
图7是一种本发明磁盘发生介质错误对应资源块的示意图。
图8是另一种本发明磁盘发生介质错误对应资源块的示意图。
图9是又一种本发明磁盘发生介质错误对应资源块的示意图。
具体实施方式
通常网络存储系统为方便主机的数据读写,为了对主机屏蔽存储资源物理上的差异,可以通过虚拟化技术对物理存储资源进行抽象,在物理层面以上(在本发明中是指RAID以上)形成面向用户主机的逻辑资源,并且相应生成逻辑资源地址映射表,以记录逻辑地址与物理地址的映射关系。请参考图3的逻辑层次图,本发明在逻辑资源层与物理层之间引入资源块管理层。以下结合其他附图进一步介绍本发明的详细实施方式。
目前有20%到25%的网络存储系统故障是由于磁盘问题所引起的,且磁盘的实际故障率远高于磁盘标称的理论故障率,用户更换磁盘的频率实际上相当高。对发生过IO错误的磁盘执行检测,根据相关的统计数据,可分为3类:
磁盘损坏,完全不能使用:所占比例20%左右,对应磁盘机械故障,磁盘老化等;
部分扇区失效:所占比例40%左右,比如盘面磁介质损坏;
磁盘正常:所占比例40%左右,比如磁盘运行环境震动、温度异常等导致当前IO执行错误,磁盘FW Bug,软件兼容性处理等。
对于上述比例40%甚至更多的“部分扇区失效”的磁盘,除了失效扇区,其他的扇区是可以继续使用的。现有的方案没有细分上述错误,RAID收到磁盘IO错误,就认为磁盘不可用触发重建,发生IO错误的磁盘被踢出阵列不再使用,导致用户更换磁盘的频率较高,也提高了用户或者存储厂家维护的成本。
请参考图3以及图4,本发明网络存储系统管理装置10主要用于执行网络存储系统内的资源管理操作,其中网络存储系统包括存储控制器以及多块磁盘,所述存储控制器的前端端口通过网络连接主机,所述存储控制器的后端磁盘端口与所述磁盘相连,一般来说存储控制器是一个较为完善的计算机系统,其包括CPU与内存等基本硬件以及操作系统等底层软件。以计算机软件实现本发明为例,从逻辑层面看,前述的管理装置10包括:资源管理单元11、读写辅助单元12、状态维护单元13、重建单元14以及辅助管理单元15。该管理装置在网络存储系统中运行,结合网络存储系统其他模块一并运行时,主要包括以下步骤:
步骤101,在网络存储系统中利用所述磁盘创建RAID阵列;并把所述RAID的可用存储空间根据指定大小划分为多个资源块,其中资源块大小可以是用户通过资源管理单元配置的,各个RAID的资源块的大小可以相同也可以不同,这取决对管理开销的容忍度。
把RAID的可用空间划分为多个资源块的同时创建RAID的块表,每个资源块和资源分配相关的特性是已使用和未使用(即空闲),因此块表实现上可以使用bitmap表,bit设置为1表示对应的块已使用,一方面可提高检索效率,另一方面可节省块表占用的空间。请参考图5,比如将一个64GB的第一RAID阵列(array1)按照1GB的块大小划分为64块,array1的块表仅需要8个字节的空间,块表中bit位为1的表示对应的资源块已使用,为0则表示对应的资源块未使用。再比如将一个32GB的第二RAID阵列(array2)按照512M的块大小划分为64块,第二RAID阵列的块表同样也需要8个字节的空间,块表中bit位为1的表示对应的资源块已使用,为0则表示对应的资源块未使用。进一步来说,如果所述指定长度是多个不同的长度,此时可以进一步在块表中记录块的大小,这样可以满足其他管理操作的需求,比如数据迁移等等,但这与本发明主题并不是紧密相关的,不再进一步讨论。
步骤102,创建逻辑资源(LUN)时为LUN分配至少一个资源块,并在逻辑资源占用的RAID阵列的块表中将分配给该逻辑资源的资源块标记更新为已使用状态;
步骤103,创建逻辑资源时为该逻辑资源建立索引区以记录逻辑资源线性逻辑空间与其自身分配到的RAID资源块物理空间的对应关系;步骤101、步骤102以及步骤103由资源管理单元11执行。
在创建逻辑资源时需要在预先设定的索引区记录逻辑资源对应到哪些资源块。请参考图6,索引区中的前四行记录了第一RAID阵列的哪些资源块被分配给了LUN1,以索引标记A0B10为例,其表示array1的第十个资源块,即块表中第二行从左到右第二个位置所表示的资源块。虽然图6所示的情形是LUN1对应的所有资源块都在一个RAID阵列中。很容易理解的是,LUN1对应的资源块可以分布在不同的RAID阵列中。如果分配了其他RAID阵列的资源块的话,则需要在索引区中进行同样的记录。
步骤104,创建RAID时为该RAID创建资源块状态表,用于记录该RAID中各个资源块的状态。
步骤105,当磁盘发生IO读写错误时,收到磁盘返回的读写错误事件,确定发生读写错误的资源块,根据发生IO读写错误的磁盘编号以及RAID级别判断资源块的新状态,并在预设的资源块状态表中更新该资源块的记录。其中所述资源块的状态通常包括正常状态、降级状态以及故障状态。步骤104以及步骤105由状态维护单元13执行。
资源块的各个状态定义如下:
●所述正常状态表示该资源块所属的磁盘区域上没有发生IO读写错误事件;
●所述降级状态表示该资源块所属的磁盘区域上发生了IO读写错误事件,采用RAID级别对应的算法可以通过剩余成员磁盘上的数据重构出出错磁盘的数据;
●所述故障状态表示该资源块所属的磁盘区域上发生了IO读写错误事件,采用RAID级别对应的算法不能通过剩余成员磁盘上的数据重构出出错磁盘的数据,发生IO读写错误事件的磁盘上的数据无法读写;
其中所述资源块状态表包括资源块编号、资源块状态以及发生IO读写错误的磁盘编号。状态维护单元根据资源块的状态进一步维护RAID总体状态,RAID总体状态通常包括正常状态、降级状态以及故障状态,所述正常状态表示该RAID的所有资源块的状态都是正常,所述降级状态表示该RAID上有一个或多个资源块的状态是降级;所述故障状态表示该RAID上有一个或多个资源块的状态是故障。
在现有的技术中一旦某个磁盘发生IO读写错误,通常都是RAID降级,并将该磁盘踢出RAID阵列,通知重建单元进行RAID重建。一种改进的方案是,RAID降级后,出错磁盘不立即踢出阵列,通知重建单元进行RAID重建,直到重建完成后才踢盘。在本发明的技术方案中,更进一步的改进是,磁盘发生IO读写错误后,该磁盘出错区域所属的资源块降级,该磁盘对应的RAID降级,并通知辅助管理单元资源块降级事件,辅助管理单元判断出错磁盘以及该磁盘对应的RAID是否满足资源块替换的条件并进行相应的处理。因此,所述资源块状态表还可以相应增加一个替换标记,包括三种状态:未替换、已替换、或者正在替换,替换标记的初始值是“未替换”。
本发明中,存储控制器对Host的IO读写请求的处理过程如下:假设在初始情况下所有资源块数据都是具有完整的冗余性,处于正常状态,Host访问逻辑资源的数据时,根据本次IO请求访问的地址以及逻辑资源索引区中的记录,存储控制器把IO请求发送到对应的资源块,RAID模块根据RAID级别对应的算法把IO请求转换为对磁盘的读写命令。为便于描述,我们把发送到对应资源块的IO请求称为父命令,把发送到磁盘的读写命令称为子命令,父命令和子命令存在关联关系,一个父命令可能对应一个或多个子命令。磁盘收到子命令(即读写命令)后,进行相应的处理,并返回命令执行结果给RAID,即命令执行成功或者失败。如果命令执行失败,即磁盘上发生了IO读写错误,RAID收到磁盘IO读写错误事件后,根据RAID算法对IO读写错误进行处理,并把命令执行结果返回给逻辑资源,逻辑资源再返回命令执行结果给主机,这里的RAID对IO读写错误的处理算法和过程是常见的处理方式,本发明不再逐一详述。在本发明中,RAID收到磁盘IO读写错误事件时,根据子命令对应的父命令找到磁盘IO读写错误事件对应的资源块,然后把磁盘IO读写错误事件报告给状态维护单元,由状态维护单元更新RAID的资源块状态表中对应的资源块的记录。
下面开始详述更新的过程:在本发明的一种比较通用的实施方式中,资源块的状态包括三种:正常状态、降级状态以及故障状态。进一步来说,考虑到大部分的资源块均是正常状态,为了减少记录的信息量,提高检索效率,因此RAID的资源块状态表中可以仅记录降级状态和故障状态的资源块。在初始情况下所有资源块状态都是正常的,RAID的资源块状态表为空,没有任何记录。
状态维护单元收到RAID上报的磁盘IO读写错误事件,所述磁盘IO读写错误事件通常包括:发生IO读写错误的磁盘编号以及对应的资源块编号;状态维护单元根据发生IO读写错误的磁盘编号以及RAID级别确定资源块的新状态,即,如果采用RAID级别对应的算法可以通过剩余成员磁盘上的数据重构出出错磁盘的数据,资源块的新状态为降级状态;如果采用RAID级别对应的算法不能通过剩余成员磁盘上的数据重构出出错磁盘的数据,资源块的新状态为故障状态。
如果资源块的原状态是正常,新状态是降级,在资源块状态表中增加一项记录,对应该降级的资源块,并通知辅助管理单元资源块降级事件;如果资源块的原状态是正常,新状态是故障,在资源块状态表中增加一项记录,对应该故障的资源块。资源块状态表中每一项记录通常包含:资源块编号、资源块状态以及发生IO读写错误的磁盘编号,“发生IO读写错误的磁盘编号”对应一个或多个磁盘。
对于资源块所属磁盘区域上多次发生磁盘读写错误,如果资源块原状态是降级,新状态还是降级,更新资源块状态表中该资源块对应的记录中“发生IO读写错误的磁盘编号”,增加本次发生IO读写错误的磁盘编号;如果资源块原状态是降级,新状态是故障,更新资源块状态表中该资源块对应的记录中“资源块状态”为故障,并更新“发生IO读写错误的磁盘编号”,增加本次发生IO读写错误的磁盘编号。
以RAID5为例,如果本次磁盘IO读写错误与上一次磁盘IO读写错误发生在不同磁盘上,且对应不同的资源块,则两个资源块上都有磁盘不能访问,但是采用RAID算法可以通过该资源块上其他磁盘的数据恢复出错磁盘的数据,因此上述两个资源块状态都是降级,仅丧失了冗余性。如果本次磁盘IO读写错误与上一次磁盘IO读写错误发生在不同的磁盘上,且对应同一个资源块,即同一个资源块上有两块磁盘不能访问,采用RAID5算法无法再恢复出错磁盘的数据,因此该资源块状态是故障,该资源块上出错磁盘的数据丢失。
请参考图7至图9所示的一系列状态维护的示例。其中磁盘D1~D4四块磁盘组成的RAID5阵列,根据指定长度划分为64个资源块,所有资源块的状态均为正常。某一时刻,磁盘D1上发生了磁盘IO读写错误,对应资源块1,状态维护单元根据RAID级别以及剩余成员磁盘的状态确定资源块1变为降级状态,更新资源块状态表(如表1),增加资源块1对应的记录,并通知辅助管理单元资源块降级事件;RAID总体状态变为降级。此时D1不会从阵列中踢出,成员磁盘地位还会临时保持。
  资源块编号   资源块状态   发生IO读写错误的磁盘编号   替换标记
  1   降级   1   未替换
表1
进一步来说,假设不满足资源块替换条件,且系统中暂时无可用的热备盘,则此时重建不会开始。假设某一个时刻,D2上也发生了磁盘IO读写错误,对应资源块18,状态维护单元根据RAID级别以及剩余成员磁盘的状态确定资源块18变为降级状态,更新资源块状态表增加资源块18对应的记录,并通知辅助管理单元资源块降级事件;RAID的总体状态仍然为降级,所有资源块均可以正常访问。此时资源块状态表中的记录信息如表2所示。
  资源块编号   资源块状态   发生IO读写错误的磁盘编号   替换标记
  1   降级   1   未替换
  18   降级   2   未替换
表2
进一步地,如果某个时刻D3上又发生了磁盘IO读写错误,对应资源块18,资源块18原来的状态是降级,状态维护单元根据RAID级别以及剩余成员磁盘的状态确定资源块18变为故障状态,更新资源块状态表中资源块18对应的记录,“资源块状态”更新为故障,“发生IO读写错误的磁盘编号”更新为2,3,RAID的总体状态变为故障。此时资源块状态表中的记录信息如表3所示。但是不同的是,如果此时发生磁盘IO读写错误的不是D3,仍然是D2,且对应资源块18,即资源块18上D2前后发生了两次错误,那么此时资源块18的数据依然可以恢复,那么该资源块的状态将保持不变,依然为降级状态。
  资源块编号   资源块状态   发生I0读写错误的磁盘编号   替换标记
  1   降级   1   未替换
  18   故障   2   未替换
表3
步骤106,辅助管理单元收到资源块降级事件后,选择一个状态是正常的空闲资源块替换处于该降级状态的资源块,并触发资源管理单元更新逻辑资源索引区的记录。本步骤由辅助管理单元15执行。
在实现步骤106时可以引入两个参数:
reserved_block_sum:表示创建RAID时预留的空闲资源块数量,可以是指定数量或者RAID上资源块总数乘以一定比例。为每个RAID预留一定数量的空闲资源块,当已经使用的某个资源块上发生介质错误导致该资源块降级时,可使用空闲资源块进行替换该降级的资源块,保证RAID的所有已使用的资源块都是冗余状态;当故障磁盘被热备盘顶替后,该故障磁盘导致的降级资源块可以回收回来,放到空闲资源块中,继续使用。
reserved_block_used:表示预留的空闲资源块中已经被使用的资源块数量,该参数的初始值为零;每使用一个预留的空闲资源块将该参数值加1。
需要说明的是,这两个参数并不是必须的,在其他的实施方式中,完全可以事先指定一些具体的资源块被预留下来,比如最后N个等。
具体来说,每次进行一次替换,则将辅助管理单元15维护的reserved_block_used加1,同时触发资源管理单元修改块表的状态,标记用于替换的资源块从未分配变更为已分配,触发状态维护单元修改资源块状态表,标记该资源块正在替换。假设需要被替换的资源块为源资源块,用于替换的空闲资源块为目标资源块,所谓替换是指:把源资源块的数据拷贝(含RAID校验的方式)到目标资源块中,如果拷贝成功通知资源管理单元修改逻辑资源的索引区,把指向源资源块的记录修改为指向目标资源块,然后通知状态维护单元修改资源块状态表,标记该资源块已替换;如果拷贝或者恢复失败,如果是读源资源块失败,表示源资源块故障,标记源资源块为故障状态,RAID状态也为故障;如果是写目标资源块失败,或者目标资源块发生读写错误状态变为降级,则返回重新分配新的空闲资源块重新执行拷贝,直到拷贝成功,或者RAID触发重建。
进一步来说,为了实现RAID对磁盘IO错误的容忍度,可以引入第三个参数:
disk_error_threshold:表示RAID可容忍的每块磁盘上IO读写错误,如果设置为1,表示只要磁盘上发生了一次IO读写错误,立即触发重建;如果设置为N,表示在有可用空闲资源块的情况下,磁盘上发生了N次IO读写错误才触发重建。
在步骤106的资源块替换前,可以执行如下子步骤:
步骤1061:检查所述资源块状态表中当前出错磁盘上的错误扇区是否已经达到预定的阈值disk_error_threshold,如果是则触发重建单元对RAID进行重建;这一步骤的设置主要是考虑到如果一个磁盘出错的扇区更多,则该磁盘的状态可能比较差,很有可能转变为完全不可用的情形。因此,触发对其进行重建可以降低数据丢失的风险。
步骤1062:检查预留的资源块是否已经被分配完,如果是,表示已经分配不到可用的空闲资源块,则触发重建单元对RAID进行重建。比如说reserved_block_used等于reserved_block_sum表示预留的空闲资源块被用完,此时再发生资源块降级事件,则新降级的资源块无法被替换;这种情况下,一来如果降级资源块进一步恶化为故障,则会产生数据丢失的风险;二来如果采用特定的读写策略(请参考读写辅助单元部分的描述),则降级资源块的读写效率不如正常资源块的读写效率高。
更进一步,对于当前降级的资源块使用了RAID预留的空闲资源块中最后一个资源块的情况,在当前资源块替换完成后,可以执行如下子步骤:
步骤1063:再次检查预留的资源块是否已经被分配完,即判断reserved_block_used是否等于reserved_block_sum,如果是,则从RAID的所有成员磁盘列表中选择错误数最多的磁盘作为故障盘,触发重建管理单元对其进行重建。
以上三个子步骤可以同时实现也可以单独实现。两者并不会相互影响。本发明利用正常的资源块替换掉降级资源块,可以延长出错磁盘在阵列中的使用时间,而以上两个子步骤的实现可以保证出错情况较为严重时触发重建;使得系统在磁盘利用以及可靠性之间取得平衡。
步骤107,如果RAID总体状态是降级或者故障,Host访问逻辑资源的数据时,根据本次IO请求访问的地址以及逻辑资源索引区中的记录,存储控制器把IO请求发送到对应的资源块,读写辅助单元根据状态维护表中记录的资源块状态按照预定策略进行处理。本步骤由读写辅助单元12执行,但需要特别指出的是本步骤并非是本发明的必要步骤,在本发明的基础上也可以利用现有技术的方式进行读写操作。这里所说的预定策略可以包括:
●如果该资源块是正常状态,则按照正常读写操作处理,或者说透明处理;
●如果访问的资源块是降级状态,对于读写资源块状态表中记录的发生IO读写错误的磁盘的数据,根据相应的RAID校验算法进行读写处理,比如,对于RAID5来说,可以读剩余成员磁盘的数据,然后根据异或算法得到出错磁盘上原有的数据;写数据时,根据异或算法更新校验数据;如果访问该资源块所属区域上未发生IO读写错误的磁盘,则按照正常读写操作处理。
●如果该资源块是故障状态,如果访问该资源块所属区域上发生IO读写错误的磁盘,直接返回读写错误,如果访问该资源块所属区域上未发生IO读写错误的磁盘,则按照正常读写操作处理。
进一步来说,为了让前述源资源块与目的资源块之间的拷贝过程不影响主机的读写业务,在上述拷贝过程中,读写辅助单元进一步用于在源资源块上收到IO写请求时,将数据同时写入源资源块和目标资源块;在源资源块上收到业务读请求时,直接读源资源块。
步骤108,在重建触发条件满足时对阵列重建;本步骤由重建单元14执行。重建的触发条件可以是步骤1061以及1062来触发。在重建完成后,即当前某个出错磁盘被新的热备盘代替后,触发状态维护单元相应更新资源块状态表。状态维护单元逐条读取资源块状态表中的记录,如果读取的记录中“发生IO读写错误的磁盘编号”中包含该已经被替换的出错磁盘编号,根据发生RAID级别以及成员磁盘当前状态确定资源块的新状态,如果资源块的新状态是正常状态,可以在资源块状态表中删除该资源块对应的记录;如果资源块的新状态是降级状态,在资源块状态表中更新该资源块对应的记录,在“发生IO读写错误的磁盘编号”中删除该出错磁盘编号。
进一步来说,在更新的过程中可检查资源块的替换标记,如果某个从降级更新为正常的资源块的替换标记是“已替换”,则触发资源管理单元将该资源块更新为没有被分配使用的状态。也就是说某个资源块之前是降级的,其被一个正常的资源块替换的,但重建完成事件使得该降级的资源块重新回到正常状态。由于该正常状态的资源块之前是出于被分配使用的状态,但事实上逻辑索引区的逻辑资源已经映射到某个预留资源块了,因此该资源块恢复到正常状态后属于闲置的资源块,可以重新投入使用,因此需要更新该资源块的分配状态。
本发明通过资源块状态的维护,并用预留资源块替代降级资源块,从而在相当程度上延长了磁盘在阵列中的使用时间,从而降低了磁盘的更换频率;同时配合科学的重建触发条件,在磁盘使用时间以及阵列的健壮性之间取得了很好的平衡。
本发明需要补充说明的是,本申请人在之前以及后续申请的相关专利申请中对逻辑单元划分的标准并不相同,其出发点是为了更好地让本领域普通技术人员了解各个发明独特之处,达到充分公开之目的。在不同的申请中,即便对于名称相同的逻辑单元,其执行的步骤可能也不尽相同。因此并不能依据其他相关申请对本发明做出限制性的解释。以上所述仅仅为本发明较佳的实现方式,任何基于本发明精神所做出的等同的修改皆应涵盖于本发明的权利要求范围中。

Claims (12)

1.一种网络存储系统管理装置,用于执行网络存储系统内的资源管理操作,其中网络存储系统包括存储控制器以及多块磁盘,所述存储控制器的前端端口通过网络连接主机,所述存储控制器的后端磁盘端口与所述磁盘相连;该管理装置包括:
资源管理单元,用于使用所述磁盘创建RAID,并把该RAID的可用空间根据指定长度划分为多个资源块,并创建该RAID对应的块表用于记录资源块是否已被分配使用;其中该资源管理单元进一步用于在创建逻辑资源时为逻辑资源分配至少一个资源块并更新相应的块表,并创建该逻辑资源的索引区,其中所述逻辑资源索引区用于记录该逻辑资源的逻辑空间与其自身分配到的RAID资源块的物理空间的对应关系;
状态维护单元,用于创建资源块状态表以维护RAID资源块的状态;并在接收到磁盘IO读写错误事件时根据磁盘IO读写错误事件确定读写错误事件所影响的资源块,然后根据发生IO读写错误的磁盘编号以及RAID级别确定资源块的新状态并在资源块状态表中更新该资源块的记录;其中所述资源块的状态包括正常状态、降级状态以及故障状态;所述资源块状态表包括资源块编号、资源块状态以及发生IO读写错误的磁盘编号;
辅助管理单元,用于选择空闲的资源块替换处于降级状态的资源块,并触发资源管理单元更新逻辑资源索引区的记录。
2.根据权利要求1所述的管理装置,其特征在于,所述资源块状态表进一步包括替换标记,用于表示降级状态的资源块当前处于未替换、已替换、还是正在替换的状态;其中所述辅助管理单元在完成资源块替换后触发状态维护单元更新所述资源块状态表。
3.根据权利要求1所述的管理装置,其特征在于,还包括重建单元,用于在收到重建触发事件后对RAID阵列进行重建;其中所述辅助管理单元进一步用于在选择没有被分配的资源块之前,检查所述资源块状态表中当前出错磁盘上的错误扇区是否已经达到预定的阈值,如果是则触发重建单元对当前出错的磁盘进行重建;或者进一步用于在选择没有被分配的资源块之前检查预留的资源块是否已经被分配完,如果是,则触发重建单元对当前出错的磁盘进行重建;或者进一步用于在降级资源块替换完成后,检查预留的资源块是否已经被分配完,如果是,则触发重建单元对RAID成员磁盘中错误次数最多的磁盘进行重建。
4.根据权利要求3所述的管理装置,其中所述状态维护单元进一步用于在出错磁盘重建完成后更新资源块状态表;并且检查资源块状态从降级状态更新为正常的资源块是否为已替换的资源块,如果是,则触发所述资源管理单元在块表中将该资源块更新为没有被分配使用。
5.根据权利要求1所述的管理装置,其中所述多个资源块大小相同。
6.根据权利要求1所述的管理装置,其特征在于,还包括:读写辅助单元,用于在资源块替换的过程中,源资源块上收到IO写请求时,将数据同时写入源资源块和目标资源块。
7.一种网络存储系统管理方法,用于执行网络存储系统内的资源管理操作,其中网络存储系统包括存储控制器以及多块磁盘,所述存储控制器的前端端口通过网络连接主机,所述存储控制器的后端磁盘端口与所述磁盘相连;该方法包括:
步骤A,使用所述磁盘创建RAID,并把该RAID的可用空间根据指定长度划分为多个资源块,并创建该RAID对应的块表用于记录资源块是否已被分配使用;
步骤B,在创建逻辑资源时为逻辑资源分配至少一个资源块并更新相应的块表,并创建该逻辑资源的索引区,其中所述逻辑资源索引区用于记录该逻辑资源的逻辑空间与其自身分配到的RAID资源块的物理空间的对应关系;
步骤C,创建资源块状态表以维护RAID资源块的状态;并在接收到磁盘IO读写错误事件时根据磁盘IO读写错误事件确定读写错误事件所影响的资源块,然后根据发生IO读写错误的磁盘编号以及RAID级别确定资源块的新状态并在资源块状态表中更新该资源块的记录;其中所述资源块的状态包括正常状态、降级状态以及故障状态;所述资源块状态表包括资源块编号、资源块状态以及发生IO读写错误的磁盘编号;
步骤D,选择空闲的资源块替换处于降级状态的资源块,并更新逻辑资源索引区的记录。
8.根据权利要求7所述的管理方法,其特征在于,所述资源块状态表还包括替换标记,用于表示降级状态的资源块当前处于未替换、已替换、还是正在替换的状态;其中在步骤D完成资源块替换后更新所述资源块状态表。
9.根据权利要求7所述的管理方法,其特征在于,还包括:
步骤E,在收到重建触发事件后对RAID阵列进行重建;
步骤F,在选择没有被分配的资源块之前,检查所述资源块状态表中当前出错磁盘上的错误扇区是否已经达到预定的阈值,如果是则对当前出错的磁盘进行重建;或者在选择没有被分配的资源块之前检查预留的资源块是否已经被分配完,如果是,则对当前出错的磁盘进行重建;或者在降级资源块替换完成后,检查预留的资源块是否已经被分配完,如果是,则对RAID成员磁盘中错误次数最多的磁盘进行重建。
10.根据权利要求9所述的管理方法,其特征在于,还包括:
步骤G,在出错磁盘重建完成后更新资源块状态表;并且检查资源块状态从降级状态更新为正常的资源块是否为已替换的资源块,如果是,则在块表中将该资源块更新为没有被分配使用。
11.根据权利要求7所述的管理方法,其中所述多个资源块大小相同。
12.根据权利要求7所述的管理方法,其特征在于,还包括:
步骤H,在资源块替换的过程中,源资源块上收到IO写请求时,将数据同时写入源资源块和目标资源块。
CN201110064030.5A 2011-03-17 2011-03-17 一种网络存储系统的管理方法及装置 Active CN102147714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110064030.5A CN102147714B (zh) 2011-03-17 2011-03-17 一种网络存储系统的管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110064030.5A CN102147714B (zh) 2011-03-17 2011-03-17 一种网络存储系统的管理方法及装置

Publications (2)

Publication Number Publication Date
CN102147714A true CN102147714A (zh) 2011-08-10
CN102147714B CN102147714B (zh) 2015-12-16

Family

ID=44421996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110064030.5A Active CN102147714B (zh) 2011-03-17 2011-03-17 一种网络存储系统的管理方法及装置

Country Status (1)

Country Link
CN (1) CN102147714B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914403B (zh) * 2014-04-28 2016-11-02 中国科学院微电子研究所 一种混合内存访问情况的记录方法及其系统
CN106933708A (zh) * 2015-12-29 2017-07-07 伊姆西公司 有助于进行存储系统恢复的方法、装置以及一种存储系统
CN111367466A (zh) * 2018-12-26 2020-07-03 深圳市茁壮网络股份有限公司 一种磁盘预退休方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174672A1 (en) * 2006-01-25 2007-07-26 Benhase Michael T Apparatus and method to reconfigure a storage array disposed in a data storage system
CN101236482A (zh) * 2008-02-26 2008-08-06 杭州华三通信技术有限公司 降级状态下处理数据的方法及独立冗余磁盘阵列系统
CN101477446A (zh) * 2009-02-12 2009-07-08 杭州华三通信技术有限公司 磁盘阵列系统及其降级或重建状态下的逻辑资源处理方法
CN101609420A (zh) * 2009-07-17 2009-12-23 杭州华三通信技术有限公司 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器
CN101976181A (zh) * 2010-10-15 2011-02-16 杭州宏杉科技有限公司 一种存储资源的管理方法及管理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174672A1 (en) * 2006-01-25 2007-07-26 Benhase Michael T Apparatus and method to reconfigure a storage array disposed in a data storage system
CN101236482A (zh) * 2008-02-26 2008-08-06 杭州华三通信技术有限公司 降级状态下处理数据的方法及独立冗余磁盘阵列系统
CN101477446A (zh) * 2009-02-12 2009-07-08 杭州华三通信技术有限公司 磁盘阵列系统及其降级或重建状态下的逻辑资源处理方法
CN101609420A (zh) * 2009-07-17 2009-12-23 杭州华三通信技术有限公司 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器
CN101976181A (zh) * 2010-10-15 2011-02-16 杭州宏杉科技有限公司 一种存储资源的管理方法及管理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914403B (zh) * 2014-04-28 2016-11-02 中国科学院微电子研究所 一种混合内存访问情况的记录方法及其系统
CN106933708A (zh) * 2015-12-29 2017-07-07 伊姆西公司 有助于进行存储系统恢复的方法、装置以及一种存储系统
CN106933708B (zh) * 2015-12-29 2020-03-20 伊姆西Ip控股有限责任公司 有助于进行存储系统恢复的方法、装置以及一种存储系统
CN111367466A (zh) * 2018-12-26 2020-07-03 深圳市茁壮网络股份有限公司 一种磁盘预退休方法和装置
CN111367466B (zh) * 2018-12-26 2023-08-15 深圳市茁壮网络股份有限公司 一种磁盘预退休方法和装置

Also Published As

Publication number Publication date
CN102147714B (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
KR101758544B1 (ko) 비휘발성 메모리 시스템에서의 동기 미러링
US9047220B2 (en) Storage system and data management method
JP4818812B2 (ja) フラッシュメモリストレージシステム
CN102147713B (zh) 一种网络存储系统的管理方法及装置
US8839028B1 (en) Managing data availability in storage systems
CN100390745C (zh) 在处理数据时检验数据完整性的装置及方法
CN102164165B (zh) 一种网络存储系统的管理方法及装置
US20100241793A1 (en) Storage system and method for controlling storage system
US8386837B2 (en) Storage control device, storage control method and storage control program
CN103793182A (zh) 可扩展存储保护
US20130275802A1 (en) Storage subsystem and data management method of storage subsystem
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
CN102135862B (zh) 一种磁盘存储系统及其数据访问方法
CN101566930B (zh) 虚拟磁盘驱动系统和方法
CN102147714B (zh) 一种网络存储系统的管理方法及装置
US9235472B2 (en) Drive array apparatus, controller, data storage apparatus and method for rebuilding drive array
CN102158538B (zh) 一种存储资源的管理方法及装置
US11467904B2 (en) Storage system and control method of the same
CN109814810A (zh) 一种raid阵列中硬盘故障扇区的处理方法及装置
JP7137612B2 (ja) 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム
CN114415968B (zh) 存储系统及其数据写入方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 310052 Hangzhou City, Binjiang District Province, Hing Road, No. 2, floor 1, unit 02, unit 301, 03

Patentee after: MACROSAN TECHNOLOGIES Co.,Ltd.

Address before: 310052 Hangzhou City, Binjiang District Province, Hing Road, No. 2, floor 1, unit 02, unit 301, 03

Patentee before: MACROSAN TECHNOLOGIES CO.,LTD.

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

Denomination of invention: Management method and device of network storage system

Effective date of registration: 20190918

Granted publication date: 20151216

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

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2019330000070

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
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220110

Granted publication date: 20151216

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

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2019330000070

PE01 Entry into force 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 management method and device of network storage system

Effective date of registration: 20220114

Granted publication date: 20151216

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
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230207

Granted publication date: 20151216

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A management method and device of network storage system

Effective date of registration: 20230224

Granted publication date: 20151216

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

Pledgor: MACROSAN TECHNOLOGIES Co.,Ltd.

Registration number: Y2023330000429