用于储存系统的介质扫描操作方法及其装置的制作方法

xiaoxiao2020-7-22  4

专利名称:用于储存系统的介质扫描操作方法及其装置的制作方法
技术领域
本发明涉及一种用于储存系统的介质扫描操作方法。
背景技术
扫描介质以找出错误或问题区域是一非常普遍的程序。大多数的个人计算机操作系统均结合有此一功能当作准备介质区段以容置数据程序的一部份。储存虚拟化子系统(SVS,Storage Virtualizatoin Subsystem)通常也在准备介质区段以供使用的程序之前或进行中,提供一种扫描介质以找出错误或问题区域的方法。也有储存虚拟化子系统进行在线检测以找出一实体储存装置(PSD,Physical Storage Device)的有缺陷介质区段,同时在该区段中的数据仍然可复原或是因为相关的数据流失而造成的损害能够降至最低。现存的储存虚拟化系统通常依赖执行一独立冗余磁盘阵列(RAID,RedundantArray of Independent Disks)的同位一致性查核操作以实现此目的。此操作通常包括一机制用于重写及/或重新指定一因为可能是受损的介质而无法成功读取的介质区段。然而,此一操作却具有以下的缺点过于耗费资源,因而对正常主机输出入操作效能造成非常严重的负面冲击。这是因为此一操作需要自该磁盘阵列的每一成员磁盘机传输数据进来,然后需要对所有的读入数据进行异或(XOR,Exclusive OR)同位计算。而且,它仅能适用于当这些磁盘阵列为冗余磁盘阵列的情形。所谓冗余磁盘阵列,即是该磁盘阵列或是具有冗余磁盘阵列同位特性(例如RAID等级3,4,5等)或是具有镜射特性(例如RAID 1)。它没有办法用于非冗余磁盘阵列,譬如像是单纯的分储阵列(例如RAID 0),也没有办法用于不属于一个磁盘阵列的成员磁盘机的磁盘机。
虽然上述储存虚拟化子系统的主要功能之一,便是保护其中所储存的数据,同时也让其中所储存的数据可以连续地存取,即使是在面临某些错误发生的情况下亦然。举例而言,支持某种形式的冗余磁盘阵列的储存虚拟化子系统,可让单一磁盘机可以失效而不会有数据流失,甚或不会失去存取在该阵列中所储存的数据的能力。然而,仍然有某些错误状况会造成数据本身的流失及/或失去数据存取能力。此状况包括在某一组相关装置中发生多重错误,譬如像是在一冗余磁盘阵列中的两个不同的磁盘机上所发生的错误。
在包含有一磁盘阵列的成员磁盘机组中造成多重错误的一种常见原因,即是在实体储存装置上的介质错误。如果一个冗余磁盘阵列是运作于一“最佳”状态时,通常介质错误可以直接更正而不会有数据流失或是失去数据存取能力的情形发生。然而,当一个冗余磁盘阵列是运作于一“降级”状态时,亦即其因一个或多个成员磁盘机不见了或是失效了而使其中少了部份甚至全部的冗余性,则另一个错误就会导致此等数据流失或是能力数据存取能力的情形发生。
因而,如何可以降低当一冗余磁盘阵列处于“降级”状态时或是当一磁盘阵列不具有介质区段受损时复原其中数据的能力时又发生错误的可能性,是一有待解决的问题。

发明内容
本发明的主要目的之一,是提供一种高效能介质扫描方法,藉以将数据储存系统中的实体介质的有问题区域及早检测出,而能采取适当的因应对策,且同时让受损数据仍然可以复原或是因为相关的数据流失所致的损害能降至最低。
本发明的另一主要目的,是提出一种预防性的方法以降低当一冗余磁盘阵列处于“降级”状态时或是当一磁盘阵列不具有介质区段受损后复原其中数据的能力时又发生错误的可能性。
本发明的又一主要目的,是提供一种具有上述介质扫描方法结合于其中的数据储存子系统及一种数据储存系统。
依据本发明的一实施例,提出了一种用于储存系统的介质扫描操作方法。此方法包含以下步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;以及,如果该区段的状态为有问题,则响应以进行更正操作程序,如果该区段的状态为没问题,则响应以选取该范围内的另一区段进行该验证步骤、该决定步骤、以及该回应步骤,直到在该范围内不再有区段需要进行验证为止。
依据本实施例的一个方面,本发明方法的进一步特征在于决定该所选取区段的数据是否当发生介质错误时可以重新产生。
依据本实施例的一个方面,本发明方法的进一步特征在于决定该所选取区段的数据是否具有相关的冗余数据储存于该储存系统中。
依据本实施例的一个方面,本发明方法的进一步特征在于决定该所选取区段是否为一非数据区段。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该区段的状态为有问题时,还包含以下的步骤决定该有问题的状态是因为介质错误还是因为非介质错误。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该有问题的状态是因为非介质错误时,认定该选取的区段是无法复原的。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该有问题的状态是因为非介质错误时,包含有该选取的区段的一实体储存装置自该介质扫描操作范围内移除。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该有问题的状态是因为介质错误时,包含以下的步骤决定该介质错误是永久性的还是非永久性的。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该有问题的状态是因为介质错误时,包含以下的步骤决定是否进行区段重新指定。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该有问题的状态是因为介质错误时,包含以下的步骤进行区段重新指定。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该有问题的状态是因为介质错误且不进行区段重新指定时,包含以下的步骤认定该选取区段是无法复原的。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该状态被决定为有问题且因为一非永久性介质错误且该选取区段的数据可以重新产生时,还包含以下的步骤将该选取区段的数据重新产生且写入该选取区段中,并将该选取区段再次加以验证。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该状态被决定为有问题且因为一介质错误且该选取区段的数据无法重新产生时,还包含以下的步骤将该选取区段注记为坏数据区段。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该状态被决定为有问题且是因为一介质错误且该错误数据无法重新产生时,还包含以下的步骤决定是否执行破坏性更正操作。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该状态被决定为有问题且是因为一介质错误,还包含以下的步骤藉由发出一单一命令的实体介质写入验证命令至所选取区段的实体储存装置以决定该介质错误是永久性的还是非永久性的。
依据本实施例的一个方面,本发明方法的进一步特征在于其中当该状态被决定为有问题且是因为一非介质错误,还包含以下的步骤重新安排介质扫描操作的区段范围。
依据本实施例的一个方面,本发明方法的进一步特征在于其中该方法操作于离线模式下。
依据本实施例的一个方面,本发明方法的进一步特征在于其中该方法操作于在线模式下。
依据本实施例的一个方面,本发明方法的进一步特征在于其中该介质扫描操作进行方式排定是排定为当系统的负荷相当低时进行介质扫描操作。
依据本实施例的一个方面,本发明方法的进一步特征在于其中该方法执行于一个储存虚拟化子系统中,其中该储存虚拟化子系统在装置侧输出入装置连结中支持点对点序列信号传输。
依据本实施例的一个方面,本发明方法的进一步特征在于其中该方法执行于一个储存虚拟化子系统中,该储存虚拟化子系统中系包含多个设定为冗余组态的储存虚拟化控制器。
依据本发明的另一实施例,提出了一种储存虚拟化子系统。该子系统包含一实体储存装置阵列,每一实体储存装置具有数据储存空间用于储存数据于其中;一控制器耦接于该实体储存装置阵列,用于执行输出入操作以响应于由一主机端所发出以存取该实体储存装置阵列的输出入请求;其中,该控制器设置有介质扫描机制以执行以下的步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;及,如果该区段的状态为有问题,则响应以进行更正操作程序,如果该区段的状态为没问题,则响应以选取该范围内的另一区段进行该验证步骤、该决定步骤、以及该回应步骤,直到在该范围内不再有区段需要进行验证为止。
依据本实施例的一个方面,本发明子系统的进一步特征在于其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否当发生介质错误时可以重新产生。
依据本实施例的一个方面,本发明子系统的进一步特征在于其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否具有相关的冗余数据储存于该储存系统中。
依据本实施例的一个方面,本发明子系统的进一步特征在于其中该介质扫描机制还包含以下步骤决定该所选取区段是否为一非数据区段。
依据本实施例的一个方面,本发明子系统的进一步特征在于其中该储存虚拟化子系统在装置侧输出入装置连结中支持点对点序列信号传输。
依据本实施例的一个方面,本发明子系统的进一步特征在于其中该储存虚拟化子系统中包含多个设定为冗余组态的该控制器。
依据本发明的又一实施例,提出了一种计算机系统。该计算机系统包含一主机计算机;一实体储存装置阵列,每一实体储存装置具有数据储存空间用于储存数据于其中;一控制器耦接于该主机计算机与该实体储存装置阵列之间,用于执行输出入操作以响应于由该主机计算机所发出以存取该实体储存装置阵列的输出入请求;其中,该控制器设置有介质扫描机制以执行以下的步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;以及,如果该区段的状态为有问题,则响应以进行更正操作程序,如果该区段的状态为没问题,则响应以选取该范围内的另一区段进行该验证步骤、该决定步骤、以及该回应步骤,直到在该范围内不再有区段需要进行验证为止。
依据本实施例的一个方面,本发明计算机系统的进一步特征在于其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否当发生介质错误时可以重新产生。
依据本实施例的一个方面,本发明计算机系统的进一步特征在于其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否具有相关的冗余数据储存于该储存系统中。
依据本实施例的一个方面,本发明计算机系统的进一步特征在于其中该介质扫描机制还包含以下步骤决定该所选取区段是否为一非数据区段。


图1为依据本发明的介质扫描操作的一实施例流程图。
图2为依据本发明图1中的更正操作程序的一实施例流程图。
图3为图2中的更正操作程序的条件分支C1的一实施例流程图。
图4为图2中的更正操作程序的条件分支C2的一实施例流程图。
图5为图2中的更正操作程序的条件分支C3的一实施例流程图。
具体实施例方式
储存虚拟化简介(Brief introduction to storage virtualization)所谓储存虚拟化(storage virtualization)是一种将实体储存空间虚拟化的技术,其是将实体储存装置(PSD)的不同区段结合成可供一主机系统存取使用的逻辑储存体(logical storage entity)-在此称为「逻辑介质单元」(LMU,logical media unit)。该技术主要用于磁盘阵列(RAID)储存虚拟化,经由此磁盘阵列的技术,可将较小实体储存装置结合成为容量较大、可容错、高效能的逻辑介质单元。
储存虚拟化控制器(SVC,storage virtualization controller)的主要目的是将实体储存介质的各区段的组合映像(map)形成一主机系统可见的逻辑介质单元。由该主机系统发出的输出入(IO)请求于接收之后先被剖析并解译,且相关的操作及数据会被编译成实体储存装置的输出入请求。这个过程可以是间接地,例如运用快取、延迟(如回写(write-back))、预期(anticipate)(先读(read-ahead))、群集(group)等操作来加强效能及其它的操作特性,因而一主机输出入请求并不一定是以一对一的方式直接对应于实体储存装置输出入请求。
一个外接式(有时称为独立式)储存虚拟化控制器为一通过一输出入接口连接至主机系统的储存虚拟化控制器,其可支持与设于主机系统的外的装置相连接,且通常可独立于该主机而操作。
外接式(或独立式,stand-alone)直接存取磁盘阵列控制器(externaldirect-access RAID controller)是外接式储存虚拟化控制器的一个例子。磁盘阵列控制器是将一个或多个实体直接存取储存装置(DASD,directacces sstorage device)的区段组合以构成逻辑介质单元,而它们的构成方式由所采用的特定磁盘阵列等级(RAID level)决定,其所构成的逻辑介质单元对于主机系统而言,为可连续寻址的,以使每一逻辑媒逻辑介质单元可被利用。典型地,一个单一的磁盘阵列控制器可支持多种磁盘阵列等级,因此,不同的逻辑介质单元可以由直接存取储存装置的各个区段藉由不同的磁盘阵列等级而以不同的方式组合而成,所组合成的各个不同的逻辑介质单元则具有各该磁盘阵列等级的特性。
另一个外接式储存虚拟化控制器的例子是JBOD(Just a Bunch ofDrives)模拟控制器。JBOD为『仅是一捆盘机』的缩写,是一组实体直接存取储存装置,并经由一或多个多装置输出入装置连结信道(multiple-deviceIO device interconnect channel)直接连接于一主机系统上。但使用点对点输出入装置连结连接至该主机系统的直接存取储存装置(如SATA硬盘、PATA硬盘等),无法通过直接连结而构成如前述的JBOD系统,因为这些直接存取储存装置并不允许多个装置直接连接至输出入装置信道。至于智能型的JBOD仿真器,是藉由将输出入请求映像到实体直接存取储存装置的方式,而用来仿真多个多装置输出入装置连结直接存取储存装置,而其中该实体直接存取储存装置是个别地经由点对点输出入装置连结信道连接至JBOD仿真器。
另一个外接式储存虚拟化控制器的例子为一种外接式磁带备份子系统。
在一储存虚拟化子系统的例子中,亦包括了冗余组态的储存虚拟化子系统,其是利用一对储存虚拟化控制器设定为冗余组态,因而即使是在一个储存虚拟化控制器发生故障或是失效的情形下,主机依旧可以通过另一个储存虚拟化控制器连续不中断的执行数据存取工作。
请参阅本申请所主张的优先权,美国专利临时申请“用于储存系统的高效能介质扫描操作(EFFICIENT MEDIA SCAN OPERATIONS FOR STORAGESYSTEMS)”,申请号60/521,307,申请日2004/03/30。其中,关于储存虚拟化子系统及储存虚拟化控制器的操作流程及架构,已详细说明于附件一“序列ATA外接式储存虚拟化控制器及子系统(Serial ATA ExternalStorage Virtualization Controller and Subsystem)”及附件二“冗余序列ATA外接式储存虚拟化子系统(Redundant Serial ATA External StorageVirtualization Subsystem)”中。
本发明的各实施例依据本发明的一实施例,是以在一个实体储存装置上实行介质扫描操作开始。在一个实体储存装置上的整个介质扫描操作包含了在实体介质的各个区段上的一系列的单元操作,每一单元操作作用于一介质区段上。通常,这些单元操作以循序方式于实体介质区段上执行以使因为实体储存装置的机构特性(例如,磁头搜寻、旋转延迟等等)所造成的效能影响降至最低。但是,不以循序方式的其它方式亦可采用于本发明之中。典型的单元操作包含了发出一介质查核(Media Check)命令至实体储存装置,而使该实体储存装置进行介质状态及储存于其中的数据的状态的查核。当该命令执行完毕时,如果该实体储存装置指示与该介质状态或是储存于其中的数据状态有问题时,该储存虚拟化控制器将执行更正操作,亦即,被设计来复原数据或使此状态最后可能造成的损害降至最低的操作。此更正操作的本质将更进一步地视以下情况而定是否有问题的介质区段是一数据区段,其意为储存在其中的将来可能要存取的数据;以及,如果其为一数据区段,则储存于其中的数据是否可以复原(recoverable),例如,该实体储存装置是一冗余磁盘阵列的一成员且该冗余磁盘阵列是处于最佳状态之下。
如果该有问题区段不是一数据区段,则不必考虑储存于其中的数据将来要存取的可能性,因而此介质区段可以破坏性的方式处理,亦即该介质区段及/或储存于其中的数据可以随意处罚而不会影响其中所储存的数据的一致性。此种情形下所用的更正操作,此后称之为数据破坏性更正操作(destructsive corrective action),通常涉及执行一写入至该介质区段以该实体储存装置进行强制数据重写以及查核数据的重新产生,并接着进行一介质查核操作以查核该介质问题是否已经更正。如果问题仍然存在(此可由介质查核操作失败而得知),则通常会尝试把有问题的介质映像出并映像入一替代区段(replacement section)(此种操作此后称为介质区段重新指定(Media Section Reassignment))。另一种实施方式是,直接执行该介质区段重新指定而不先尝试以一介质写入更正该错误,如果该介质区段被认为是不够可靠而足以储存该数据的话。
如果该有问题区段是一数据区段,且储存于其中的数据是以某种形式冗余地储存,而使得其可以被重新产生出来的话,其中该数据重新产生利用或是在同一实体储存装置上的或是在其它实体储存装置上的其它介质区段来重新产生,则可实施一程序让数据完全复原。此通常会涉及重新产生该数据并执行一写入操作至该介质区段以将重新产生的数据写入该有问题介质区段,且同时由该实体储存装置强制查核数据,并接着进行一介质查核操作以查核该介质问题是否已经更正。如果问题仍然存在(此可由介质查核操作失败而得知),则通常会尝试把有问题的介质映像出并映像入一替代区段(此种操作此后称为介质区段重新指定)。另一种实施方式是,直接执行该介质区段重新指定而不先尝试以一介质写入更正该错误,如果该介质区段被认为是不够可靠而足以储存该数据的话。
如果该有问题区段是一数据区段,但储存于其中的数据无法被重新产生出来,则数据复原为不可能。在此种情况下,十分重要的是,或是不执行破坏性操作于该介质区段上,或是在执行破坏性操作时,制作一非易失性(non-volatile)记录,以指出储存于该有问题的介质区段中的数据已经不再有效了(此一操作后文中称为将该介质区段注记为损坏)。以此种方式,未来被产生而为正常操作的一部份的未来的输出入操作,可以检测出此问题并随之处理(例如,回复错误状态至发出要求的装置或主体)。如果实施的方式是,该破坏性操作并未执行,典型的更正操作将仅包含发出一事件消息(eventmessage)至事件记录(event log)和/或发出一通知以告知使用者已经发生一值得注意的状况。如果实施的方式是,该有问题的介质区段要被注记为损坏而让破坏性操作得以实施而作为该更正操作的一部份的话,则通常于该有问题区段注记损坏之后,将进行一类似于上述当非数据区段中检测出介质问题时所定义的更正操作。
除了实际执行上述各种不同的更正操作之外,通常在这些程序的选择步骤中也会产生相关事件消息至事件记录和/或发出相关通知以告知使用者已经发生了甚么事,以防万一此情况是一值得密切监控的情况。
依据本发明的一实施例,该主机端(例如该储存虚拟化控制器)安排要进行介质扫描操作的实体储存装置的介质区段范围并排定进行的方式。该范围可以是一个或多个实体储存装置的一个或部份或全部区段。所谓排定方式是指该操作可以为周期式、独立式、或是立即式操作。在安排范围及排定方式完毕后,可以开始各实体储存装置的介质区段的验证,并依照各区段的数据属性进行相应的更正操作(如果需要的话),其中所谓的区段的数据属性是指譬如像是非数据区段、数据区段且其目前状态允许其中的数据重新产生、或是数据区段且其目前状态不允许其中的数据重新产生等等。
依据本发明的一实施例,当该介质扫描操作所实施的各组介质区段为介质区段的冗余组合的成员(例如RAID-1、RAID-3、RAID-5及RAID-6阵列的冗余磁盘阵列的各成员区段),且其现在的状态容许数据的重新产生时,一典型的介质扫描操作程序如下所述。
(1)发出一介质查核(Media Check)命令至该实体储存装置以验证一介质区段及其中所储存数据的状态。
(2)该实体储存装置执行该介质查核操作并于其后将操作完毕的状态报告给该储存虚拟化控制器。如果状态为“没问题”,则该储存虚拟化控制器接着扫描下一介质区段并回到(1)继续进行程序。
(3)如果该操作完毕的状态为“有问题”且该问题虽因一错误但并非是因为一介质错误(亦即因为一“非介质错误(non-media error)”),则可视实际所需,采用下列两种可行的方式之一。第一种方式为,选取区段系被认定为”无法复原(unrecoverable)”,且可采取适当的对策,并于其后选取下一介质区段进行介质扫描程序。第二种方式为,该特定实体储存装置上的整个介质扫描操作均放弃终止,然后该主机端(host entity)重新安排各实体储存装置的介质区段以进行介质扫描。
(4)否则,如果该操作完毕的状态为“有问题”且该问题是因为一介质错误。此时将把在同一实体储存装置或其它实体储存装置上相应的数据读入并加以结合以重新产生数据,并将此数据写入该介质查核操作失败(未通过)的介质区段中。
(5)当该操作完毕的状态为“有问题”且该问题是因为一介质错误时,则程序会评估该介质错误是否为“永久性的(persistent)”。如果被认定为永久性的,则会进行一介质区段重新指定操作于该有问题的介质区段上。一种判断该介质错误问题为“永久性的”的典型标准是,『将数据重新写入无法防止问题再度发生于同一介质区段中』。或者,该判断标准可以被设定为,『所有的介质错误均被认定为“永久性的”』,且因而介质区段重新指定会被执行于所有介质查核操作未通过且为介质错误的介质区段上。若如果未被认定为永久性的,则其为非永久性的(non-persistent)介质错误。
(6)如果介质区段重新指定进行后失败了,或是介质区段重新指定应该进行但因为某些其它原因而无法进行(例如,所允许的此种重新指定最大数量已达到),则该有问题的区段系被认定为“无法复原”,且程序将至(1)对下一个介质区段继续进行。
(7)如果介质错误被认为并非永久性的,则重新产生的数据将被写回至该有问题的介质区段中。
(8)该介质查核命令将被再度发送至该实体储存装置的有问题区段,以再度验证该有问题的介质区段,且程序从(2)继续下去。
依据本发明的一实施例,当该介质扫描操作所实施的各组介质区段为介质区段的非冗余组合(例如非冗余磁盘阵列,譬如像是RAID-0阵列)的成员,或是,各组介质区段为介质区段的冗余组合的成员,但其现在的状态不容许数据的重新产生时,一典型的介质扫描操作程序如下所述。
(1)发出一介质查核命令至该实体储存装置以验证一介质区段及其中所储存数据的状态。
(2)该实体储存装置执行该介质查核操作并于其后将操作完毕的状态报告给该储存虚拟化控制器。如果状态为“没问题”,则该储存虚拟化控制器接着扫描下一介质区段并回到(1)继续进行程序。
(3)如果该操作完毕的状态为“有问题”且在该介质区段上的破坏性操作并未支持(例如,并未具有将一介质区段注记为损坏的功能),或是该失败是因一错误但并非因为一介质错误(亦即因为一“非介质错误”),则可视实际所需,采用下列两种可行的方式之一。第一种方式为,选取区段被认定为“无法复原”,且可采取适当的对策,并于其后选取下一介质区段进行介质扫描程序。第二种方式为,该特定实体储存装置上的整个介质扫描操作均放弃终止,然后该主机端重新安排各实体储存装置的介质区段以进行介质扫描。
(4)否则,如果该操作完毕的状态为“有问题”且该问题是因为一介质错误且支持破坏性操作于该介质区段上。此时,一种实作方式是将有问题的介质区段注记为损坏,因而未来的在该区段上的读取(READ)操作将可检测到该区段的数据将是无效的并采取适当的对策(例如回复错误状态给发出要求的装置或主体)。
(5)当该操作完毕的状态为“有问题”且该问题是因为一介质错误时,则程序会评估该介质错误是“永久性的”。如果被认定为永久性的,则会进行一介质区段重新指定操作于该有问题的介质区段上。一种判断该介质错误问题为“永久性的”的典型标准是,『将数据重新写入无法防止问题再度发生于同一介质区段中』。或者,该判断标准可以被设定为,『所有的介质错误均被认定为“永久性的”』,且因而介质区段重新指定会被执行于所有介质查核操作未通过且为介质错误的介质区段上。
(6)如果介质区段重新指定进行后失败了,或是介质区段重新指定应该进行但因为某些其它原因而无法进行(例如,所允许的此种重新指定最大数量已达到),则该有问题的区段系被认定为“无法复原”,且程序将至(1)对下一个介质区段继续进行。
(7)在决定该介质错误是否为永久性的时候,可以采用下列方法。发出一实体介质写入(WRITE)命令至该实体储存装置的有问题的区段,接着再发出一介质查核(Media Check)命令。或者,另一种方式为,发出一单一命令的实体介质写入验证(WRITE-VERIFY)命令,以取代前述的两命令式(先发介质写入命令之后再发介质查核命令)程序。程序从(2)继续下去。
依据本发明的一实施例,当该介质扫描操作所实施的各组介质区段为非数据介质区段(例如是实体储存装置阵列中的备用或是未指定的磁盘机)的成员时,一典型的介质扫描操作程序如下所述。
(1)发出一介质查核命令至该实体储存装置以验证一介质区段及其中所储存数据的状态。
(2)该实体储存装置执行该介质查核操作并于其后将操作完毕的状态报告给该储存虚拟化控制器。如果状态为“没问题”,则该储存虚拟化控制器接着扫描下一介质区段并回到(1)继续进行程序。
(3)如果该操作完毕的状态为“有问题”且该问题虽因一错误但并非是因为一介质错误(亦即因为一“非介质错误”),则该选取区段可被认定为“无法复原”,且可采取适当的对策,并于其后选取下一介质区段进行介质扫描程序(至(1)处)。
(4)否则,该操作完毕的状态为“有问题”且该问题是因为一介质错误时,则程序会评估该介质错误是“永久性的”。如果被认定为永久性的,则会进行一介质区段重新指定操作于该有问题的介质区段上。一种判断该介质错误问题为“永久性的”的典型标准是,『将数据重新写入无法防止问题再度发生于同一介质区段中』。或者,该判断标准可以被设定为,『所有的介质错误均被认定为“永久性的”』,且因而介质区段重新指定会被执行于所有介质查核操作未通过且为介质错误的介质区段上。
(5)如果介质区段重新指定进行后失败了,或是介质区段重新指定应该进行但因为某些其它原因而无法进行(例如,所允许的此种重新指定最大数量已达到),则该有问题的区段系被认定为“无法复原”,且程序将至(1)对下一个介质区段继续进行。
(6)在决定该介质错误是否为永久性的时候,可以采用下列方法。发出一实体介质写入(WRITE)命令至该实体储存装置的有问题的区段,接着再发出一介质查核(Media Check)命令。或者,另一种方式为,发出一单一命令的实体介质写入验证(WRITE-VERIFY)命令,以取代前述的两命令式(先发介质写入命令之后再发介质查核命令)程序。程序从(2)继续下去。
在上述程序中,当在一介质区段上的一介质查核操作的失败造成该有问题区段被认定为“无法复原”时,所谓的“适当对策”通常包括有发出一事件至该事件记录,且可选择性地发生一通知以告知使用者已经发生一值得注意的状况。对于数据磁盘机而言,可选择性地将一更替磁盘机置入上线并将有问题磁盘机中的数据复制到其上,并于其后将该有问题的磁盘机移除下线而完全由该更替磁盘机所取代。
图1至图5是依据本发明的另一实施例的主要流程图。
请参阅图1,图1是显示依据本发明的介质扫描操作的一实施例流程图。该主机端,例如像是该储存虚拟化控制器,安排一范围的实体储存装置的介质区段以进行介质扫描操作(步骤S110)。该主机体然后排定进行该介质扫描操作的方式(步骤S120),举例而言,周期式的、单次式的、或是立即式的操作。当该主机开始进行介质扫描操作,会选取一介质区段(步骤S130)并发出一介质查核命令至相关的实体储存装置,以验证所选取区段的状态(步骤S140)。该实体储存装置执行查核操作以响应于该命令,然后将操作完毕状态报告给该主机(步骤S150)。现在该程序必须决定该状态是否为“没问题”(步骤S160)。如果完毕状态为“没问题”,则反映出选取的区段没问题,该主机将会选取另一安排的区段进行介质查核操作,直到已无安排的区段需要查核为止。因此,在(步骤S170)必须要测试是否所选取而刚刚进行验证的区段为最后一区段而没有任何安排的区段需要查核。如果步骤S170的答案为“是”的话,则程序结束。否则,主机体将会选取另一安排的区段(步骤S180)用于进行介质查核操作,且程序进行至结点B以回到步骤S140,进行介质查核操作。如果步骤S160的答案为“否”,亦即完毕状态为“有问题”的话,则将开始更正操作程序(步骤S200)。
请参阅图2,图2是显示依据本发明图1中的更正操作程序的一实施例流程图。该更正操作程序S200一开始先测试是否所选取区段为一非数据区段(步骤S210)。如果S210的答案为“是”的话,则程序进行至结点C3。否则,所选取区段为一数据区段,而程序则进行至步骤S220以测试是否所选取区段中的数据系被冗余地储存。如果S220的答案为“否”的话,程序进行至结点C2。如果S220的答案为“是”的话,则程序进行至步骤S230以更进一步测试所选取的区段中的数据是否可以重新产生出来。如果S230的答案为“否”的话,程序进行至结点C2。如果S230的答案为“是”的话,表示所选取的区段中的数据可以重新产生出来,程序进行至结点C1。
请参阅图3,图3是显示有图2中的更正操作程序的条件分支C1的一实施例流程图。结点C1对应至该更正操作程序中,该介质扫描操作所实施的各组介质区段为介质区段的冗余组合的成员(例如RAID-1、RAID-3、RAID-5及RAID-6阵列的冗余磁盘阵列的各成员区段),且其现在的状态是容许数据的重新产生。
程序自步骤310开始,测试有问题的状态是否因为一介质错误。如果S310的答案为“否”,则程序进行至步骤S320或S330,两者皆为可行的做法,可视实作希望而采取其中任一种。在S320中,选取区段被认定为“无法复原”,且可采取适当的对策。在S330中,在该特定实体储存装置上的整个介质扫描操作均放弃终止(步骤S332),然后该主机体重新安排各实体储存装置的介质区段以进行介质扫描(步骤S334)。当S320或S330结束后,程序进行至结点A。
如果S310的答案为“是”,则程序进行至步骤S350,以测试造成该“有问题”状态的介质错误是永久性的。如果S350的答案为“是”,则程序进行至步骤S360,以测试是否允许介质区段重新指定。如果S360的答案为“是”,则程序进行至步骤S365,进行所选取区段的介质区段重新指定;否则,所选取区段将被认定为无法复原(步骤S370)。在S365或S370结束后,程序进行至结点A。在结点A,程序进行至步骤S170,步骤S170已于前文中以图2加以说明。如果S350的答案为“否”,则程序进行至步骤S380,数据将被重新产生并写至所选取区段,且此选取区段将会被再次选取(步骤S390),以使得该介质查核命令可以再次发送至此同一区段以再次验证(步骤S140)。
请参阅图4,图4是显示有图2中的更正操作程序的条件分支C2的一实施例流程图。结点C2对应至该更正操作程序中,该介质扫描操作所实施的各组介质区段为介质区段的非冗余组合(例如非冗余磁盘阵列,譬如像是RAID-0阵列)的成员,或是各组介质区段为介质区段的冗余组合的成员,但其现在的状态不容许数据的重新产生。
程序自步骤410开始,测试有问题的状态是否因为一介质错误。如果S410的答案为“否”,则程序进行至步骤S420或S430,两者皆为可行的做法,可视实作希望而采取其中任一种。如果S410的答案为“是”,则程序进行至步骤S440,以测试是否支持执行破坏性操作于该介质区段上。如果S440的答案为“否”,则程序也进行至步骤S420或S430。在S420中,选取区段系被认定为“无法复原”,且可采取适当的对策。在S430中,在该特定实体储存装置上的整个介质扫描操作均放弃终止(步骤S432),然后该主机体重新安排各实体储存装置的介质区段以进行介质扫描(步骤S434)。当S420或S430结束后,程序进行至结点A。
如果S440的答案为“是”,则程序进行至步骤445,以将所选取区段注记为损坏,且程序进行至步骤S450,以测试造成该“有问题”状态的介质错误是永久性的。如果S450的答案为“是”,则程序进行至步骤S460,以测试是否允许介质区段重新指定。如果S460的答案为“是”,则程序进行至步骤S465,进行所选取区段的介质区段重新指定;否则,所选取区段将被认定为无法复原(步骤S470)。在S465或S470结束后,程序进行至结点A。如果S450的答案为“否”,程序也进行至结点A。在结点A,程序进行到步骤S170,步骤S170已于前文中以图2加以说明。
请参阅图5,图5是显示有图2中的更正操作程序的条件分支C3的一实施例流程图。结点C3对应至该更正操作程序中,该介质扫描操作所实施的各组介质区段为非数据介质区段(例如是实体储存装置阵列中的备用或是未指定的磁盘机)的成员。程序自步骤510开始,测试有问题的状态是否因为一介质错误。如果S510的答案为“否”,则程序进行至步骤S520,选取区段被认定为“无法复原”,且可采取适当的对策。当S520结束后,程序进行至结点A。
如果S510的答案为“是”,则程序进行至步骤S550,以测试造成该“有问题”状态的介质错误是永久性的。如果S550的答案为“是”,则程序进行至步骤S560,以测试是否允许介质区段重新指定。如果S560的答案为“是”,则程序进行至步骤S565,进行所选取区段的介质区段重新指定;否则,所选取区段将被认定为无法复原(步骤S570)。在S565或S570结束后,程序进行至结点A。如果S550的答案为“否”,程序也进行至结点A。在结点A,程序进行到步骤S170,步骤S170已于前文中以图2加以说明。
由以上的说明可知,本发明致力于将介质扫描对效能的负面影响借着减少这些介质扫描操作所需的资源而降至最低。实现此功效的主要方法便是,消除冗余磁盘阵列同位运算,直到必须进行数据复原时才进行冗余磁盘阵列同位运算。
虽然在上述的实施例中,先进行介质扫描操作范围的安排后再进行方式的排定,但是依据本发明的其它实施方法,亦可先进行介质扫描操作方式的排定后再先进行范围的安排。
虽然在上述的实施例中,数据区段的属性是在更正操作程序中进行辨识,但是依据本发明的其它实施方式,数据区段的属性亦有可能在更正操作程序之前进行辨识。故依据本发明,数据区段的属性并非一定要在更正操作程序中进行辨识。
另外,虽然在上述的实施例中,数据区段的属性是在更正操作程序中一开始即先进行辨识,但是依据本发明的其它实施方式,数据区段的属性亦可在需要时才进行辨识,而非在更正操作程序一开始即先进行辨识。
本发明也借着利用发出命令至实体储存装置以达到查核介质及储存于其中的数据的状态的目的,同时也使资源耗用降至最低,以寻求尽可能地降低负面效能冲击。该实体介质验证(VERIFY)命令特别适用于此一任务,因为它并不产生任何数据传输至主机端(在此情况下为该储存虚拟化控制器),而仅查核介质以及储存于其中的数据的状态。然而,在实作上当一实体储存装置不支持此一命令,或是一验证(VERIFY)命令实质上可能耗用资源较多于可能会涉及数据传输或是牵动其它功能(例如标准的读取命令,READ)的命令时,则可使用其它命令以取代验证(VERIFY)命令而伴演一介质查核(MediaCheck)命令的角色。
本发明增加了在任何实体储存装置上执行介质扫描的能力,不论该实体储存装置是否为一磁盘阵列的一成员或是一储存数据的磁盘机。这也包含了备用磁盘机,包括全域的备用磁盘机(global spare drive)及专用的备用磁盘机(decidated spare drive),以及尚未指定(assigned)的磁盘机。此能力可实现的目的为在数据尚未被储存于这些磁盘机中之前便检出潜在的问题介质区段并以预防的方式加以处理。
本发明同时也定义了两种可能的介质扫描操作模式。第一种模式是离线操作模式,意味着正在进行介质扫描操作的实体储存装置并不可为正常操作中所产生的输出入操作所利用。在此模式下,该实体储存装置要不就已经离线了,要不就是原本虽然在在线使用,但是在进行介质扫描操作之前已经被自在线移除且为了执行介质扫描操作而保持于离线的状态。第二种模式是联机操作模式,意味着该储存虚拟化控制器仍然可对实体储存装置进行正常操作中所产生的输出入操作。在此模式下,实体储存装置的操作状态不必改变以进行介质扫描操作。这种模式有时称为“背景”模式,因为其操作不会影响储存虚拟化控制器对于实体储存装置的正常操作。
本发明也选择性地增加允许背景介质扫描操作可以设定于使用者所指定的时间来执行的功能性。这使得使用者可以具有操作排程的能力,例如,将操作时间排程在系统负荷较低时,因而使得执行介质扫描操作所造成的主机端输出入效能降低的冲击减至最低。此一排程功能通常会包含建立排程而以规则性的方式重复该介质扫描操作的执行,以及能够排定独立式(isolated)或单次式(one-shot)的操作情形。此外,亦可进行在收到使用者指令后立即执行的单次背景介质扫描操作。
本发明也指出该介质扫描操作可以选择性地结合至支持序列式点对点装置端输出入装置连结的储存虚拟化控制器及储存虚拟化子系统之中。
本发明也指出该介质扫描操作可以选择性地结合至包含多个设定为冗余组态的储存虚拟化控制器的储存虚拟化子系统之中以及执行于其上。以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明专利的涵盖范围。
权利要求
1.一种用于储存系统的介质扫描操作方法,包含以下步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;及,如果该区段的状态为有问题,则响应以进行更正操作程序,如果该区段的状态为没问题,则响应以选取该范围内的另一区段进行该验证步骤、该决定步骤、以及该回应步骤,直到在该范围内不再有区段需要进行验证为止。
2.如权利要求1所述的方法,还包含以下步骤决定该所选取区段的数据是否当发生介质错误时可以重新产生。
3.如权利要求1所述的方法,还包含以下的步骤决定该所选取区段的数据是否具有相关的冗余数据储存于该储存系统中。
4.如权利要求1所述的方法,还包含以下的步骤决定该所选取区段是否为一非数据区段。
5.如权利要求1至4中任一权利要求所述的方法,其中当该区段的状态为有问题时,还包含以下的步骤决定该有问题的状态是因为介质错误还是因为非介质错误。
6.如权利要求5所述的方法,其中当该有问题的状态是因为非介质错误时,认定该选取的区段是无法复原的。
7.如权利要求5所述的方法,其中当该有问题的状态是因为非介质错误时,包含有该选取的区段的一实体储存装置是自该介质扫描操作范围内移除。
8.如权利要求5所述的方法,其中当该有问题的状态是因为介质错误时,包含以下的步骤决定该介质错误是永久性的还是非永久性的。
9.如权利要求5所述的方法,其中当该有问题的状态是因为介质错误时,包含以下的步骤决定是否进行区段重新指定。
10.如权利要求5所述的方法,其中当该有问题的状态是因为介质错误时,包含以下的步骤进行区段重新指定。
11.如权利要求5所述的方法,其中当该有问题的状态是因为介质错误且不进行区段重新指定时,包含以下的步骤认定该选取区段是无法复原的。
12.如权利要求1所述的方法,其中当该状态被决定为有问题且因为一非永久性介质错误且该选取区段的数据可以重新产生时,还包含以下的步骤将该选取区段的数据重新产生且写入该选取区段中,并将该选取区段再次加以验证。
13.如权利要求1所述的方法,其中当该状态被决定为有问题且因为一介质错误且该选取区段的数据无法重新产生时,还包含以下的步骤将该选取区段注记为坏数据区段。
14.如权利要求1所述的方法,其中当该状态被决定为有问题且该因为一介质错误且该错误数据无法重新产生时,还包含以下的步骤决定是否执行破坏性更正操作。
15.如权利要求1所述的方法,其中当该状态被决定为有问题且该因为一介质错误,还包含以下的步骤藉由发出一单一命令的实体介质写入验证命令至所选取区段的实体储存装置以决定该介质错误是永久性的还是非永久性的。
16.如权利要求1所述的方法,其中当该状态被决定为有问题且该因为一非介质错误,还包含以下的步骤重新安排介质扫描操作的区段范围。
17.如权利要求1所述的方法,其中该方法操作于离线模式下。
18.如权利要求1所述的方法,其中该方法操作于在线模式下。
19.如权利要求1所述的方法,其中该介质扫描操作进行方式排定是排定为当系统的负荷相当低时进行介质扫描操作。
20.如权利要求1所述的方法,其中该方法执行于一个储存虚拟化子系统中,其中该储存虚拟化子系统在装置侧输出入装置连结中支持点对点序列信号传输。
21.如权利要求1所述的方法,其中该方法执行于一个储存虚拟化子系统中,该储存虚拟化子系统中包含多个设定为冗余组态的储存虚拟化控制器。
22.一种储存虚拟化子系统,包含一实体储存装置阵列,每一实体储存装置具有数据储存空间用于储存数据于其中;一控制器耦接于该实体储存装置阵列,用于执行输出入操作以响应于由一主机端所发出以存取该实体储存装置阵列的输出入请求;其中,该控制器设置有介质扫描机制以执行以下的步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;及,如果该区段的状态为有问题,则响应以进行更正操作程序,如果该区段的状态为没问题,则响应以选取该范围内的另一区段进行该验证步骤、该决定步骤、以及该回应步骤,直到在该范围内不再有区段需要进行验证为止。
23.如权利要求22所述的子系统,其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否当发生介质错误时可以重新产生。
24.如权利要求22所述的子系统,其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否具有相关的冗余数据储存于该储存系统中。
25.如权利要求22所述的子系统,其中该介质扫描机制还包含以下步骤决定该所选取区段是否为一非数据区段。
26.如权利要求22所述的子系统,其中该储存虚拟化子系统在装置侧输出入装置连结中支持点对点序列信号传输。
27.如权利要求22所述的子系统,其中该储存虚拟化子系统中包含多个设定为冗余组态的该控制器。
28.一种计算机系统,包含一主机计算机;一实体储存装置阵列,每一实体储存装置具有数据储存空间用于储存数据于其中;一控制器耦接于该主机计算机与该实体储存装置阵列之间,用于执行输出入操作以响应于由该主机计算机所发出以存取该实体储存装置阵列的输出入请求;其中,该控制器系设置有介质扫描机制以执行以下的步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;及,如果该区段的状态为有问题,则响应以进行更正操作程序,如果该区段的状态为没问题,则响应以选取该范围内的另一区段进行该验证步骤、该决定步骤、以及该回应步骤,直到在该范围内不再有区段需要进行验证为止。
29.如权利要求28所述的系统,其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否当发生介质错误时可以重新产生。
30.如权利要求28所述的系统,其中该介质扫描机制还包含以下步骤决定该所选取区段的数据是否具有相关的冗余数据储存于该储存系统中。
31.如权利要求28所述的系统,其中该介质扫描机制还包含以下步骤决定该所选取区段是否为一非数据区段。
全文摘要
本发明披露了一种用于储存系统的介质扫描操作方法,包含以下的步骤安排一范围的实体储存装置的介质区段以进行介质扫描操作;排定一方式以进行介质扫描操作;在该范围内选取一区段;针对所选取的区段的介质加以验证;决定该选取区段的状态;如果该区段的状态为有问题,则响应以进行更正操作程序,否则将选取该范围内的另一区段进行该验证步骤、该决定步骤、以及此回应步骤,直到在该范围内不再有区段需要进行验证为止。本发明还披露了一储存子系统用以实施此方法、一计算机系统包含有此一储存子系统、以及一储存介质具有机器可执行码储存于其中用以执行此方法。
文档编号G06F11/00GK1655127SQ20051006393
公开日2005年8月17日 申请日期2005年3月30日 优先权日2004年3月30日
发明者施明文, 詹志忠, 洪清海 申请人:普安科技股份有限公司

最新回复(0)