CN103984587B - 储存虚拟化系统中更新实体储存装置的控制程序的方法 - Google Patents
储存虚拟化系统中更新实体储存装置的控制程序的方法 Download PDFInfo
- Publication number
- CN103984587B CN103984587B CN201410257909.5A CN201410257909A CN103984587B CN 103984587 B CN103984587 B CN 103984587B CN 201410257909 A CN201410257909 A CN 201410257909A CN 103984587 B CN103984587 B CN 103984587B
- Authority
- CN
- China
- Prior art keywords
- physical storage
- control program
- chosen
- storage devices
- data
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 818
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000015654 memory Effects 0.000 claims description 62
- 238000013500 data storage Methods 0.000 claims description 58
- 230000008859 change Effects 0.000 claims description 50
- 230000014759 maintenance of location Effects 0.000 claims description 17
- 238000005138 cryopreservation Methods 0.000 claims description 6
- 238000000151 deposition Methods 0.000 claims description 6
- 230000000155 isotopic effect Effects 0.000 claims 1
- 230000003362 replicative effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 27
- 238000005516 engineering process Methods 0.000 description 10
- 230000004069 differentiation Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 241001269238 Data Species 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 208000033999 Device damage Diseases 0.000 description 1
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 101100284507 Schizosaccharomyces pombe (strain 972 / ATCC 24843) hdd1 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明是有关于一种储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数,该方法包含以下的步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求中所对应的一未变动数据区段注记为一变动数据区段;该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;其中当执行该控制程序更新或该部分重建时,且发生有该被选定的实体储存装置以外的其他实体储存装置毁损且该储存虚拟化系统中该多个实体储存装置为离线状态的总数小于或等于该同位实体储存装置的数目N时,该被选定的一或多个实体储存装置继续执行该控制程序更新或该部分重建,该系统不会发生数据遗失的情形。
Description
本发明是申请日为2009年05月21日,申请号为2009101430063,发明名称为“储存虚拟化系统中更新实体储存装置的控制程序的方法”的发明专利申请的分案申请。
技术领域
本发明涉及一种实体储存装置的控制程序更新的方法,特别是涉及一种实体储存装置的控制程序更新的方法,以及用此方法的储存虚拟化控制器及其系统。
背景技术
先前技术的相关数据,请参考美国专利No.7032218、No.6907504、No.6728833、No.6816950、No.6820211及美国公开专利No.20050033933。
由以上先前技术可知:在传统储存虚拟化系统中,硬盘在更新控制程序时,系统会进入降级模式(degraded mode),该系统在降级模式且不中断来自主机端的读写请求情况下,一次仅能更新一个硬盘的控制程序;储存虚拟化系统通常具有许多个硬盘,若该系统中全部的硬盘皆欲更新控制程序时,将耗费系统相当长的时间,且该系统长时间处于降级模式,造成整体效能不佳的现象,并增加数据遗失的风险。此外,在部分先前技术中,系将要更新控制程序的硬盘中全部的数据复制至另一代理硬盘后才进行更新,并在控制程序更新完成后,再将代理硬盘中全部的数据复制回更新完成的硬盘,非常地耗时且效能不佳。
再者,由于现有习知的技术在进行完成更新控制程序后执行磁盘机重建时,无法进行存取,大幅降低了系统的效能。
另外,传统的储存虚拟化系统在更新该实体储存装置控制程序的程序中,若该系统仅具有单一同位数据用来检核使用者数据,当发生其他的实体储存装置毁损(Fail)时,会使该系统部分的数据遗失,无法重建回来,造成不可挽回的灾害。
综观上述说明,传统的储存虚拟化系统在更新其实体储存装置的控制程序时,有更新过程时间长、整体效率不佳、数据遗失的风险高等缺点,且该实体储存装置更新控制程序的过程中,若该系统仅具有检核使用者数据的一同位数据,当发生实体储存装置毁损时,会造成系统数据遗失的重大灾害。
由此可见,上述现有的储存虚拟化系统在更新其实体储存装置的控制程序方法在方法、产品结构及使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决上述存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般方法及产品又没有适切的方法及结构能够解决上述问题,此显然是相关业者急欲解决的问题。因此如何能创设一种新的储存虚拟化系统中更新实体储存装置的控制程序的方法,实属当前重要研发课题之一,亦成为当前业界极需改进的目标。
发明内容
本发明的目的在于,在一具有一或多个用来检核使用者数据的同位数据的储存虚拟化系统中提供一种更新实体储存装置的控制程序的方法及其系统,以提升储存虚拟化系统的效能。依据本发明的一实施例,控制程序更新完成后执行部分重建时即可对于未变动数据区段直接进行存取。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;其中当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数小于或等该于同位实体储存装置的数目N时,该被选定的一或多个实体储存装置继续执行该控制程序更新或该部分重建,该系统不会发生数据遗失的情形
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的方法,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的数据区段读取时,则利用其冗余数据算出一读取数据并送出。
前述的方法,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变。
前述的方法,其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段读取时,则利用其冗余数据算出一读取数据并送出。
前述的方法,其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则直接将该变动数据区段以写入相对应的写入数据写覆且取消该变动数据区段的注记。
前述的方法,其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变。
前述的方法,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序。
前述的方法,其中若注记为该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据。
前述的方法,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的数据区段读取时,则利用其冗余数据算出一读取数据并送出。
前述的方法,当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段读取时,则将该变动数据区段的该连结数据直接送出。
前述的方法,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该未变动数据区段写入时,则注记该未变动数据区段为该变动数据区段及储存写入相对应的写入数据为该连结数据。
前述的方法,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变及以写入相对应的写入数据将该变动数据区段原先的该连结数据直接写覆。
前述的方法,其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段读取时,则将该变动数据区段的该连结数据直接送出。
前述的方法,其中当该被选定的一或多个实体储存装置于该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则直接将该变动数据区段以写入相对应的写入数据写覆且取消该变动数据区段的注记。
前述的方法,其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变及以写入相对应的写入数据将该变动数据区段原先的该连结数据直接写覆。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数大于该同位实体储存装置的数目N时,则该被选定的一或多个实体储存装置上的该变动数据区段的数据被标记为一错误数据。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数小于或等于该同位实体储存装置的数目N时,该系统不会发生数据遗失,该被选定的一或多个实体储存装置则继续执行该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数小于或等于该同位实体储存装置的数目N时,不会发生该系统数据遗失,该被选定的一或多个实体储存装置则继续执行该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的数目与正在更新该控制程序的实体储存装置的数目的总和大于该同位实体储存装置的数目N时,若需对该正在更新该控制程序的实体储存装置内的未变动数据区段读取时,则暂不回复该读取,直到该正在更新该控制程序的实体储存装置完成该控制程序的更新后,再利用冗余数据算出一读取数据并送出。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数大于该同位实体储存装置的数目N时,则复制该变动数据区段的该连结数据至该变动数据区段上。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;使该被选定的一或多个实体储存装置进入一离线状态;更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该发生毁损的实体储存装置正在执行该控制程序更新或该部分重建,若该实体储存装置上有该变动数据区段时,则取消该变动数据区段的注记。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的方法,其中更包含以下步骤:在该多个实体储存装置中设置至少一数据储存带,且在同一数据储存带中提供多个同位数据储存块;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数小于或等于该同位实体储存装置的数目N时,则该控制程序更新模块或该部分重建模块继续执行该被选定的一或多个实体储存装置的该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的装置,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的数据区段读取时,则利用其冗余数据算出一读取数据并送出。
前述的装置,其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,且该部分重建模块继续执行该被选定的一或多个实体储存装置的该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;其中该储存虚拟化系统同位实体储存装置的数目为N,N为自然数;其中当发生有该多个实体储存装置中的任一个毁损且该发生毁损的实体储存装置是正在执行该控制程序更新或该部分重建,若该实体储存装置上有该变动数据区段时,则取消该变动数据区段的注记。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;以及其中该变动数据区段的一数据连结状态是一具有连结数据的状态,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数小于或等于该同位实体储存装置的数目N时,该系统不会发生数据遗失,且该控制程序更新模块或该部分重建模块则继续执行该被选定的一或多个实体储存装置的该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;其中该变动数据区段的一数据连结状态是一具有连结数据的状态,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,且该部分重建模块继续执行该被选定的一或多个实体储存装置的该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;部分重建模块,用于该被选定的实体储存装置在完成该控制程序的更新后会执行一部分重建;以及其中该变动数据区段的一数据连结状态是一具有连结数据的状态,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数大于该同位实体储存装置的数目N时,则复制该变动数据区段的该连结数据至该变动数据区段上。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;注记模块,用于在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;其中该变动数据区段的一数据连结状态是一具有连结数据的状态,当发生有该多个实体储存装置中的任一个毁损且该发生毁损的实体储存装置正在执行该控制程序更新或该部分重建,若该实体储存装置上有该变动数据区段时,则取消该变动数据区段的注记。
综上所述,本发明可提升储存虚拟化系统的效能。本发明在技术上有显著的进步,具有明显的积极效果,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1是储存虚拟化系统中主机单元、磁盘阵列控制器及实体储存装置阵列间的连结关系的方块图;
图2A是实体储存装置阵列与各PSD上所储存的数据间的关系的示意图;
图2B是数据储存带与各PSD上数据的关系的示意图;
图3是本发明中PSD更新控制程序的概略流程图;
图4是本发明中的一实施例的流程图;
图5至图8是本发明的实施例中PSD的控制程序更新模式A的详细流程图;
图9至图12是本发明的实施例中PSD的控制程序更新模式B的详细流程图。
10:主机单元 150:磁盘阵列控制器
100:实体储存装置阵列 110:实体储存装置
112:控制程序
160:主机端输入输出装置连结控制器
170:中央处理电路 175:芯片组/同位引擎
176:中央处理器 177:唯读存储器(ROM)
178:非易失性存储器(NVRAM) 180:存储器(Memory)
181:第一存储器 182:第二存储器
190:装置端输入输出装置连结控制器
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的储存虚拟化系统中更新实体储存装置的控制程序的方法其具体实施方式、方法、步骤、结构、特征及其功效,详细说明如后。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得一更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
【储存虚拟化技术】
储存虚拟化(Storage virtualization)技术已被广泛地应用于数位储存系统中,可藉由组合数个实体储存装置(Physical Storage Device,简称PSD),来组成一个逻辑储存单元以供主机单元(Host Entity)进行存取,例如一个逻辑磁盘(Logical Disk Drive,LD)。储存虚拟化技术的主要应用是将数个较小的实体储存装置进行组合,组合后产生一个容量较大、错误容许率较高且效能较高的逻辑储存装置。当该储存虚拟化系统中的一实体储存装置发生毁损(Fail)时,在更换新实体储存装置后,该毁损的实体储存装置上原先的储存数据可由其他实体储存装置上所储存的使用者数据(user data)及同位数据(paritydata)进行重建(rebuild),而将该毁损的实体储存装置上原先所储存的数据重新产生(regenerate)并储存到新实体储存装置上。
图1是依据本发明的一实施例的一储存虚拟化系统,该储存虚拟化系统1包括一磁盘阵列控制器(RAID controller,Redundant Array of Independent Disks Controller)150耦接至一主机单元10及一实体储存装置阵列(PSD Array)100耦接至该磁盘阵列控制器150上。该主机单元10可为一主机计算机,如一服务器系统、工作站、个人计算机系统等。另外,上述储存虚拟化系统1也可以为包括内建(built-in)一磁盘阵列控制卡(RAID Card)及一实体储存装置阵列100的一主机计算机,如:储存服务器(storage server)。
一储存虚拟化控制器(storage virtualization controller,SVC)的主要目的是将实体储存媒体的各区段的组合映射(map)形成一主机系统可见的逻辑媒体单元。由该主机系统发出的输入输出请求(IO request)在被储存虚拟化控制器接收之后会先被剖析并解译,且相关的操作及数据会被储存虚拟化控制器编译成实体储存装置的输入输出请求,并对实体储存装置发出所述输入输出请求。这个过程可以是间接地,例如运用快取、延迟(如:回写(write-back))、预期(anticipate)(先读(read-ahead))、群集(group)等操作来加强效能及其他的操作特性,因而一主机输入输出请求并不一定是以一对一的方式直接对应于实体储存装置输入输出请求。因此,一个来自主机单元的读取请求(read request)或写入请求(write request)可能对应(correspond)至一个或多个实体储存装置的读取或写入请求,且多个来自主机单元的读取或写入请求也可能对应至一个实体储存装置的读取或写入请求;因而,一个实体储存装置的读取或写入请求可能对应至来自主机单元的一个或多个读取或写入请求,且多个实体储存装置的读取或写入请求也可能对应至来自主机单元的一个读取或写入请求。
依据本发明的一实施例,该磁盘阵列控制器150可为一储存虚拟化控制器,可对该实体储存装置阵列100中的多个实体储存装置110执行储存虚拟化程序,而将该多个实体储存装置110映射成为一或多个在该主机单元10上呈现的逻辑磁盘(logical disk,LD),该逻辑磁盘可被规划成多个逻辑区块(logical block)来储存数据。
依据本发明的一实施例,该磁盘阵列控制器150包括一主机端输入输出(IO)装置连结控制器(host-side IO device interconnect controller)160、中央处理电路(central processing circuitry,CPC)170、存储器(memory)180、装置端输入输出装置连结控制器(device-side IO device interconnect controller)190等。该主机端输入输出装置连结控制器160连接该主机单元10与中央处理电路170,用来作为该磁盘阵列控制器150及主机单元10间的介面及缓冲。主机端输入输出装置连结控制器160是用来接收自该主机单元10所传来的IO请求和相关数据,并且将其映射(mapping)及/或传送(transfer)至中央处理电路170。该中央处理电路170包括有CPU芯片组/同位引擎175、中央处理器(CPU)176、唯读存储器(read only memory,ROM)177、非易失性存储器(Non-Volatile RAM,NVRAM)178等电路。
依据本发明的一实施例,该CPU芯片组/同位引擎175接收来自主机单元10的写入数据,经该CPU芯片组/同位引擎175处理后产生一或多个同位数据,再将该写入数据及该一或多个同位数据写至所述PSD 110中。若该同位数据为多个时,该多个同位数据以不同的演算方式所求得。另外,当该实体储存装置阵列100中的PSD 110发生毁损时,可在该毁损的PSD被更换后,通过该CPU芯片组/同位引擎175,利用该实体储存装置阵列100中其他PSD上的使用者数据及所述同位数据,执行同位运算(parity computation),以重新产生(regenerate)该毁损PSD上原先的数据,并将运算结果储存至新PSD中。非易失性存储器(NVRAM)178用来储存该实体储存装置阵列100的IO操作执行状态的相关数据,以作为在IO操作尚未完成前发生不正常电源关闭后、电源又回复时检验使用。存储器180可为动态随机存取存储器(dynamic random access memory,DRAM)或非易失性存储器,可用来储存系统启动及控制程序,以及其他暂存的数据。依据本发明的一实施例,存储器180又可包括第一存储器181用以储存一判别数据(determination data),以及第二存储器182用以储存上述判别数据所连结的数据(连结数据,linked data)。该判别数据与连结数据将于后文中说明。依据本发明的另一实施例,该第一存储器181及第二存储器182可以皆为动态随机存取存储器,或皆为非易失性存储器,或一者为动态随机存取存储器、一者可为非易失性存储器的组合。上述所提及的非易失性存储器可为快闪存储器(flash memory)、电子抹除式可程序唯读存储器(electrically erasable programmable read-only memory,EEPROM)、磁阻式随机存取存储器(magnetic random access memory,MRAM)、铁电存储器(ferroelectricRAM,FRAM)等。该非易失性存储器甚至可以为一具有电池或一超级电容(super capacitor)或是其他备用电源来供应电力的动态随机存取存储器、或是当电源关闭时还能保存数据一段时间的其他储存媒体。
依据本发明的一实施例,该装置端输入输出装置连结控制器190连接于该中央处理电路170与该实体储存装置阵列100之间,作为此二者间的介面与缓冲,用以将该中央处理电路170处理后的数据写入该实体储存装置阵列100中,或是自该实体储存装置阵列100中读取数据至该中央处理电路170中。
依据本发明的一实施例,该实体储存装置阵列100包含多个实体储存装置110,可为硬盘(HDD)或固态硬盘(SSD)、或光盘机(optical disc drive)、或DVD光盘机(digitalversatile disc drive,DVD drive)等,作为该储存虚拟化系统1储存数据使用。所述实体储存装置110内包含一非易失性存储器及一或多个记录媒体。该非易失性存储器内储存一控制程序(control program)112,作为所述实体储存装置110的相关IO控制。该控制程序112为一可程序化的程序码(code),故该控制程序112可通过所述实体储存装置110的IO介面将所述实体储存装置110新的控制程序112写入,而将原先的控制程序112覆盖。实体储存装置110的所述记录媒体可规划成作为储存数据使用的多个数据区段(data segment),而该数据区段的大小是可变动。
上述当主机单元10欲写入数据至实体储存装置阵列100时,会先将数据暂存于存储器180中,再将存储器180中的数据储存到PSD 110中,其数据传递路径依序为:主机单元10、主机端输入输出装置连结控制器160、中央处理电路170、存储器180、中央处理电路170、装置端输入输出装置连结控制器190、实体储存装置阵列100。当主机单元10欲自实体储存装置阵列100读取数据时,该实体储存装置阵列100会先将数据暂存于存储器180中,再将存储器180中的数据送到主机单元10,其数据传递路径依序为:实体储存装置阵列100、装置端输入输出装置连结控制器190、中央处理电路170、存储器180、中央处理电路170、主机端输入输出装置连结控制器160、主机单元10。
本发明所述的储存虚拟化系统,包含检验使用者数据用的至少一同位数据、一存储装置、至少一磁盘阵列控制器及多个实体储存装置,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序。
依据本发明的一实施例,图2A是图1中实体储存装置阵列100的方块图。在本实施例中,该实体储存装置为硬盘驱动器(HDD)。图2A的实体储存装置阵列100中包括了6部HDD110,但在实际的应用中,并未受限于此数目。在HDD 1至HDD 6中,每一HDD包含了多个数据储存块(data chunk,或简称chunk),例如HDD 1内的D1、D5…D(4N-3)或HDD 2内的D2、D6…D(4N-2)或HDD 3内的D3、D7…D(4N-1)或HDD 4内的D4、P2…D(4N)或HDD 5内的P1、Q2…PN或HDD 6内的Q1、D8…QN等,皆称为一数据储存块。其中该每一数据储存块具有一编号,且该每一HDD 110内编号相同的数据储存块的数据则可组合成一笔包含多个使用者数据储存块及二个同位数据储存块的数据储存带(data stripe,或简称stripe)。图2A中数据储存带1(stripe 1)由D1、D2、D3、D4、P1与Q1等编号皆为No.1的数据储存块所组成,其中D1、D2、D3与D4为使用者数据储存块,P1与Q1为同位数据储存块;数据储存带2(stripe 2)由编号皆为No.2的D5、D6、D7、P2、Q2与D8等数据储存块所组成,其中D5、D6、D7与D8为使用者数据储存块,P2与Q2为同位数据储存块。依此类推,数据储存带N由编号皆为No.N的D(4N-3)、D(4N-2)、D(4N-1)、D(4N)、PN与QN等数据储存块所组成,其中D(4N-3)、D(4N-2)、D(4N-1)与D(4N)为使用者数据储存块,PN与QN为同位数据储存块。
由此可知,该实体储存装置阵列100的数据即是由N个数据储存带的数据所组成。所述同位数据储存块可平均分布于HDD 1至HDD 6中,或是将所述同位数据储存块储存于HDD1至HDD 6其中的2个同位硬盘(parity HDD)中(图未示)。该同位数据储存块P1可由使用者数据储存块D1、D2、D3与D4执行一同位运算求得;该另一同位数据储存块Q1可由使用者数据储存块D1、D2、D3与D4执行不同于P1的另一同位运算求得。D1的数据也可由D2、D3、D4与P1或由D2、D3、D4与Q1分别执行不同的同位运算计算求得。由此可知,该同一数据储存带中的其中一数据储存块的数据(不限于使用者数据储存块或同位数据储存块)皆可由该数据储存带中与该数据储存块编号相同的其他HDD上的数据储存块的数据经同位运算求得。同一数据储存带的所有数据储存块的数据称之为冗余数据(redundant data),故可知当D1、D2、D3与D4有数据储存块无法读出时,该无法读出的数据储存块可由同一数据储存带中的其他冗余数据利用同位运算算出。虽然图2A中仅有P与Q二种同位数据储存块,但在实际应用中,并不受限于此数目,可为3种或超过3种不同的同位数据储存块。
在HDD 1至HDD 6中,每一HDD包含了多个数据区段用以储存数据,其中该每一数据区段具有一编号且可设定该数据区段空间的大小。依照设定的差异,该数据区段的大小,可为一磁区(sector)的大小、一逻辑区块(logical block)的大小、一快取存储器(cachebuffer)的大小、一数据储存块的大小或其他的大小。在图2A的例子中,该数据区段的大小为一个数据储存块的大小,但是在图2B的例子中,一个数据储存块中包了含多个数据区段,例如D1数据储存块中包含了数据区段D1-1、D1-2、D1-3、D1-4,此时一个使用者数据储存块中包含了多个使用者数据区段(user data segment)且一个同位数据储存块包含了多个同位数据区段(parity data segment)。当一数据区段的数据无法读出时,可利用同一数据储存带中该数据区段的其他冗余数据区段(redundant data segment)(包含使用者数据区段及同位数据区段)经同位运算算出。
该磁盘阵列控制器150可接收来自主机单元10的读取或写入请求,该读取或写入请求相对应于HDD上的数据,可能仅包含一数据储存块中的一小部分数据,也可能包括一个数据储存块以上的数据。
图3是本发明的概略流程图。图3中,该磁盘阵列控制器于该储存虚拟化系统中,同时执行一或多个PSD控制程序的更新,其中包含了该一或多个PSD在更新控制程序或执行部分重建(partial rebuilding)期间,该磁盘阵列控制器若需要对该一或多个PSD发出读取/写入请求(Read/Write Request,或以R/W Request来表示)时的处理程序;其中更包含了该一或多个PSD更新控制程序或执行部分重建期间,若发生PSD毁损的情形时的处理程序。在本发明中,所谓部分重建(partial rebuilding)程序,是指在PSD的控制程序更新完成后,磁盘阵列控制器针对该PSD的变动数据区段的部分执行数据更新。所谓变动数据区段(modified data segment),是表示一数据区段的数据因为写入请求而需要被更新,但却因为该PSD正在进行控制程序更新而无法对该数据区段进行数据更新,而在目前的状态下其中数据为不正确的旧数据;未被注记为变动数据区段的数据区段则称为未变动数据区段(unmodified data segment)。部分重建中的数据更新,可以是利用同一数据储存带的使用者数据及同位数据执行同位运算来针对变动数据区段重新产生正确的使用者数据并加以更新,也可以是利用该变动数据区段所连结的连结数据(linked data)来将旧数据更新为正确的使用者数据。连结数据将于下文说另作说明。该PSD更新控制程序的流程开始于图3中的步骤300。
步骤310中,该储存虚拟化系统中的磁盘阵列控制器(以下简称为控制器)150侦测该系统中的同位实体储存装置的数目(同位PSD(parity PSD)的数目)及PSD控制程序更新模式的指定。此处所谓的同位实体储存装置的数目(同位PSD的数目)是指在一个数据储存带中所包含的同位数据储存块(parity data chunk)的数目。该同位PSD的数目等于0(没有同位PSD)的状况不在本发明讨论的范围内。根据本发明的实施例,该储存虚拟化系统的硬体配置中,该同位PSD数目是一个或多个。该PSD控制程序的更新模式可为PSD控制程序更新模式A或是PSD控制程序更新模式B。当PSD在更新控制程序的期间中,若控制器需要对该PSD发出写入请求时,因该PSD此时无法写入数据,故该控制器会先将该写入请求所对应的该PSD的数据区段记录为一判别数据(determination data)用来判别一PSD数据区段是否为变动数据区段,该记录表示该PSD在更新控制程序的期间,该PSD上该数据区段的数据已发生异动,而须伺PSD更新控制程序的程序完毕后,再将发生有数据异动的数据区段更改成正确数据。若仅记录发生数据变动PSD的数据区段于判别数据中,但并不储存该写入请求相对应于该PSD的写入数据(即连结数据)时,则为PSD控制程序更新模式A;若除了记录发生数据变动PSD的数据区段外,并同时储存连结数据,且利用判别数据与的连结时,则为PSD控制程序更新模式B。因为该写入请求相对应于该PSD的写入数据与变动数据区段是利用判别数据连结在一起,故该写入请求相对应于该PSD的写入数据称为连结数据,此时该被注记为变动数据区段的数据连结状态是一具有连结数据的状态。该判别数据,可为一变动数据区段表(modified data segment table)、或是一阵列(array)或一链结串列(link list)或其他不同形态的数据结构的数据。
依据本发明的一实施例,该判别数据及连结数据可以储存在存储器180的第一存储器181及第二存储器182中。依据本发明的另一实施例,该判别数据及连结数据也可以储存在存储器180以外的其他存储器,甚至是储存在该磁盘阵列控制器之外的存储器。所述存储器也是一硬盘装置(Hard Disk Drive)或是当电源关闭时还能保存数据一段时间的其他储存媒体。上述硬盘装置可包含一般具有马达装置的硬盘或是固态硬盘(solid statedisk,SSD)。该判别数据也可以是分散储存于各个PSD当中,例如各PSD的保留空间(reserved space)中,甚至是储存于各个数据区段中。在本发明下述的实施例中,主要是以变动数据区段表作为该判别数据的一实施例来说明本发明。其中,变动数据区段表是用来记录变动数据区段的编号,以判别一PSD数据区段是否为变动数据区段。
步骤320中,该控制器选定n个PSD离线(off-line),并执行该n个PSD的控制程序更新。依据本发明的一实施例,当该系统中无任何PSD发生毁损时,该(等)被选定更新控制程序的PSD数目n不大于同位PSD的数目m,其中,n与m的关系为:1≤n≤m,m及n为正整数。依据本发明的另一实施例,若该系统中有f个PSD发生毁损时,则n的最大值只能被限制在m-f。其中,该n、f与m的关系为:1≤n≤m-f,m、n及f均为正整数。
步骤330中,该(等)PSD在更新控制程序期间,若控制器需对该(等)PSD发出一读取/写入请求时,该控制器的处理程序。当控制器收到来自主机单元对实体储存装置的一或多个读取/写入请求,会由控制器发出相对应的一或多个实体储存装置读取/写入请求。当该(等)更新控制程序的PSD在更新控制程序期间,若该控制器需对该(等)PSD发出相对应的一或多个PSD读取/写入请求时,该控制器并不会对该(等)更新控制程序的PSD发出读取/写入请求,但该控制器于此期间中对该(等)PSD的读取/写入请求的处理程序将会改变。
步骤340中,该(等)PSD在更新控制程序期间,若发生PSD毁损时,该控制器的处理程序。由于同位PSD数目及更新模式的不同,该储存虚拟化系统所能承受PSD发生毁损的数目也会不同,该控制器会根据当时的情况执行相对应的程序。
步骤320、330与340的步骤中,该3个步骤是以虚线框起并以M1表示,该M1中的3个步骤在图3中的流程图中虽然有先后之别,但在实际执行时,该M1中的3个步骤可为同时执行的。
步骤350中,该(等)PSD完成控制程序的更新。当执行更新控制程序的PSD为两个或两个以上时,其中该每一PSD执行控制程序更新的程序系独立的,可为多个PSD同时执行或多个PSD在不同时间执行。
步骤360中,该(等)PSD完成控制程序的更新后,该控制器对于该(等)PSD是否需执行部分重建的判断及该(等)PSD部分重建的执行程序。若该(等)PSD更新控制程序期间,该控制器需要对该(等)PSD发出写入请求以改变该(等)PSD上的数据时(例如因为该控制器收到一或多个来自主机单元对该(等)PSD的写入请求时),则必须在更新控制程序完成后在该(等)PSD上执行部分重建程序。
步骤370中,该(等)PSD执行部分重建期间,若该控制器需要对该(等)PSD发出读取/写入请求时的处理程序。在该控制器执行该(等)PSD的部分重建期间,若该控制器需要对该(等)PSD发出读取/写入请求时,会改变其读取/写入请求的处理程序,而该控制器并不一定会对该(等)更新控制程序的PSD发出读取/写入请求;在部分重建期间,该控制器对该(等)PSD上未变动数据区段可直接发出读取或写入请求,但对该(等)PSD上变动数据区段则有不同的处理方式。
步骤380中,该(等)PSD在部分重建期间若发生PSD毁损时,该控制器的处理程序。由于同位PSD的数目及更新模式的不同,该储存虚拟化系统所能承受PSD发生毁损的数目也会不同,该控制器会根据当时的情况执行相对的程序。
步骤360、370与380的步骤中,该3个步骤是以虚线框起并以M2表示,该M2中的3个步骤在流程图中虽然有先后之别,但在实际执行时,该M2中的3个步骤可为同时执行的。
步骤390中,该控制器完成对该(等)PSD的部分重建程序。所述PSD部分重建的时间因所述PSD控制程序更新期间所需要对该(等)PSD发出写入请求的数目的不同而有差异,先完成部分重建的PSD可以先恢复连线。
步骤400中,该控制器将该(等)完成部分重建程序的PSD重新恢复连线,该(等)PSD更新控制程序流程结束于图3的步骤410。若其他的PSD也需更新控制程序时,则重新回到步骤300。
图4是图3中该控制器执行PSD控制程序更新的程序,该PSD控制程序更新程序开始于步骤420。
步骤430中,该控制器150侦测该储存虚拟化系统中同位PSD的数目m是否等于0。若是,则表示该系统中并无同位PSD,该控制器150在该(等)PSD更新控制程序期间,若控制器150需对该(等)PSD发出读取请求时,无法将该(等)PSD的数据读出,此时该控制器150将无法回应主机单元的读取请求。所以,故该储存虚拟化系统连线(on-line)时无法在无同位PSD的情形下执行该(等)PSD控制程序的更新,故经步骤430判断后,直接跳至步骤470中,结束本流程。若否,则该控制器150侦测该储存虚拟化系统中具有m个(m≥1)同位PSD,则执行步骤440。
步骤440中,该控制器150判断PSD变动数据区段的数据连结状态是否为一具有连结数据的状态。若否,则该控制器150执行执行步骤450中的PSD控制程序更新模式A,其不于变动数据区段连结一写入请求相对应的写入数据(即连结数据);若是,则该控制器150执行执行步骤460中的PSD控制程序更新模式B,其是在变动数据区段连结一写入请求相对应的写入数据(连结数据)。依据本发明的一实施例,该PSD控制程序更新模式A及该PSD控制程序更新模式B的选定可根据当时NVRAM中所剩余的存储空间来决定。依据本发明的一实施例,所剩余的存储空间较大者,可执行PSD控制程序更新模式B,反之,则执行PSD控制程序更新模式A。该控制器150执行PSD控制程序更新的流程结束于图4的步骤470。
图5至图8是PSD控制程序更新模式A的详细流程。该PSD控制程序更新模式A开始于图5中步骤500。步骤510中,控制器150选定实体储存装置阵列100中n个等待更新控制程序的PSD 110,以执行PSD的控制程序112的更新。依据本发明的一实施例,当该系统中无任何PSD发生毁损时,该(等)被选定更新控制程序的PSD数目n不大于同位PSD的数目m,该n与m的关系为:1≤n≤m。依据本发明的另一实施例,若该系统中有f个PSD发生毁损时,则n的最大值只能被限制在m-f。其中,该n、f与m的关系为:1≤n≤m-f,m、n及f均为正整数。该n个PSD110的选定可由该储存虚拟化系统管理人员决定,或由一程序来安排该n个PSD控制程序更新的执行。若该储存虚拟化系统中具有m个同位PSD,本发明最多可同时进行m个PSD的控制程序更新,相较于只有一个同位PSD的储存虚拟化系统,该储存虚拟化系统最多可以将更新PSD控制程序的时间减少为原来的m分之一,因而该储存虚拟化系统整体的执行效率可以明显地提升;若该系统所拥有的同位PSD数目愈多,本发明的效益越明显。
在PSD控制程序更新模式A中,该控制器150针对每一个被选定等待更新控制程序的PSD执行一系列的程序,包含图5至图8中的步骤520至步骤650。每一个PSD依照当时的实际状态,分别执行所述程序系列中各自的程序。亦即,每一个PSD所执行的程序系列是相互独立的,可以同时执行(平行处理)或先后分别来执行。
步骤520中,该控制器150将该被选定等待更新控制程序112的PSD 110设定为离线状态。在本发明中,该离线状态是指该PSD 110自开始执行控制程序更新至部分重建完成并恢复连线前的一段时间。另外,当该实体储存装置阵列100中任何的PSD 110发生毁损时,该发生毁损的PSD 110将无法受到该控制器150来管控,因而该发生毁损的PSD 110也视为离线状态。该实体储存装置阵列100的多个PSD 110中,哪些PSD已经完成控制程序的更新及该PSD的连线/离线状态等相关资讯可被记录在控制器150中的非易失性存储器178内(例如:铁电存储器,FRAM)、或是其他实体储存装置、或是不因电源中断而消失所储存的数据的其他储存媒体内,以使得该PSD的连线/离线记录可以一直被保存。藉此,当变动数据区段表因电池电力耗尽或毁损而遗失时,伺电源恢复后,该控制器150,能依此连线/离线记录直接对该PSD进行全部的数据重建。
步骤530中,该控制器150执行该被选定的PSD 110控制程序112的更新。由于该储存虚拟化系统中,可能同时包含一或多种不同传输介面的PSD,如:串列先进技术接取(serial advanced technology attached,SATA)、串列附接小型计算机系统介面(serialattached SCSI,SAS)或光纤通道介面(fibre channel,FC)等不同传输介面的PSD,故各种不同传输介面、厂牌的PSD有其相对应的PSD控制程序。故该控制器150依照各PSD 110的传输介面、厂牌与型号,选择相对应的控制程序码(control program codes)并载入。此等控制程序码112可通过主机单元10,先将该控制程序码载入(load)至控制器150中,再由控制器150将该控制程序码写入PSD 110的NVRAM内。该PSD 110控制程序更新的时间与该PSD的特性而有差异,时间约为数十秒至数分钟之间。
上述步骤510、520及530等3个步骤,即图3步骤320中的详细流程。
当该控制器150收到来自主机单元10对该PSD的写入请求时,该控制器150会需要对该写入请求的数据进行运算以产生新的同位数据,来取代原先的同位数据。
当来自主机单元的写入或读取请求需针对该离线进行控制程序更新的PSD 110来存取数据时,则执行图6中步骤540。
图6为接续图5的流程图。步骤540中,该控制器150侦测该PSD 110在更新控制程序期间,该储存虚拟化系统中是否有新发生PSD毁损的情况。若否,则执行步骤550;若是,则执行步骤541。在本发明中,当发生PSD毁损的情况时,该控制器150会记录该发生毁损的PSD。此处所指的新发生PSD毁损的情况是指有PSD毁损的情况发生,但该控制器150尚未记录该发生毁损的PSD;若曾经有PSD毁损的情况发生且该控制器150已经记录该发生毁损的PSD时,则不视为有新发生PSD毁损的情况发生。
步骤541中,该控制器150判断发生毁损的PSD是否为该正在更新控制程序的PSD。若是,则跳至步骤650结束该PSD控制程序更新模式A;若否,则执行步骤542。在执行步骤541判断的同时,该发生毁损的PSD的相关数据将会被该控制器150记录下来且若变动数据区段表内记录有该发生毁损PSD的变动数据区段编号时,则该控制器150会将该变动数据区段表内该PSD所有的数据区段编号删除。
步骤542中,该控制器150判断该系统中PSD离线的总数是否超过同位PSD的数目m。若是,则执行步骤544;若否,则执行步骤540。
依据本发明的实施例,若系统的同位PSD的数目为m个,且于控制程序更新模式A下,在更新PSD控制程序或执行部分重建期间,系统允许该实体储存装置阵列100中PSD离线的总数为m个。该发生毁损的PSD包括正在更新控制程序且发生毁损的PSD、正在执行部分重建且发生毁损的PSD、及因为其他原因而发生毁损的PSD。本发明中所谓离线的PSD除了发生毁损的PSD的外也包括正在更新控制程序的PSD及正在执行部分重建的PSD。若发生PSD离线的总数超过m,正在执行控制程序更新的该PSD 110上的变动数据区段的数据无法通过与该变动数据区段编号相同的其他PSD上的数据区段的数据来部分重建该变动数据区段的数据,造成该储存虚拟化系统发生部分数据遗失,无法再继续正常运作;若PSD离线的总数不大于m,则系统可继续运作。
步骤542中,依据本发明的一实施例,该发生毁损PSD的数目、离线执行控制程序更新PSD的数目及离线执行部分重建PSD的数目总和小于或等于该同位PSD的数目m时,该控制器150可继续接收来自主机单元的IO请求,该系统并不会遗失数据,其他程序可继续执行,故直接跳回步骤540。依据本发明的另一实施例,该发生毁损PSD的数目、离线进行控制程序更新PSD的数目及离线执行部分重建PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,但为了降低系统风险,该控制器150会暂停接收来自主机单元的IO请求,而在等到该PSD执行至步骤640完成后,才会恢复接收来自主机单元的IO请求及再接受执行其他PSD控制程序的更新。
上述步骤542中,若以一个具有2个同位PSD的RAID 6的储存虚拟化系统为例,当该系统中1个PSD执行控制程序的更新时,该系统还可承受1个其他PSD发生毁损,不会造成部分数据遗失的情形;在更换新PSD后,该毁损PSD上原先的数据可利用同位运算再重建(rebuild)回来。若该系统在已有1个PSD执行控制程序的更新时,另有2个或2个以上的PSD发生毁损,则系统会产生部分数据遗失的情形。
步骤544中,因为有PSD发生毁损,而使得该储存虚拟化系统中PSD的离线总数超出该储存虚拟化系统所能承受PSD离线总数的最大上限,造成该储存虚拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的一实施例,该控制器150停止接受来自主机单元10的IO请求,此时该正在执行PSD更新控制程序程序的PSD可继续执行控制程序更新至更新完成且不必执行部分重建程序。该控制器150会将该PSD内变动数据区段上的数据,标记为错误数据(marked as bad data);若变动数据区段表内有记录该PSD的变动数据区段编号(modified data segment number)时,则该控制器150会将该变动数据区段表内该PSD所有的数据区段编号删除。步骤544执行完毕后,即跳回步至骤540,经过步骤540至步骤570的程序后,该PSD 110重新恢复连线(步骤640)并结束PSD控制程序更新模式A的程序(步骤650)。
上述该PSD内的变动数据区段的数据因发生毁损PSD的数据遗失,已经无法通过部分重建恢复至一正确的数据,该PSD 110中变动数据区段的数据并非正确的数据,故依据本发明的一实施例,该控制器150将该PSD 110中变动数据区段的数据,标记为错误数据,若以后再有欲对该PSD标记为错误数据的数据区段来存取数据时,该控制器150会对主机单元回应此数据区段为错误数据。依据本发明的另一实施例,当一数据区段被标示为错误数据后,若该数据区段在其他外部的储存虚拟化系统中还有另一备份数据,则可由主机端读取该备份数据重新写入而更正该错误数据。
步骤550中,该控制器150判断于该PSD 110控制程序更新完成前期间,是否需对该PSD 110发出读取/写入请求。若是,则执行步骤552;若否,则执行步骤560。
步骤552中,该控制器150判断需要对该PSD 110发出的读取/写入请求是否为一读取请求。若是,则执行步骤554;若否,则表示需要对该PSD 110发出的读取/写入请求是一写入请求,则执行步骤556。
步骤554中,该控制器150需要对该PSD 110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据储存于该正在执行控制程序更新的PSD 110其中的数据区段内,由于此时该PSD 110离线正在执行控制程序的更新,无论该数据区段为未变动数据区段或变动数据区段,都无法自该PSD 110中读取数据,而其他非正在执行更新控制程序及部分重建的PSD 110则可正常读取数据。该控制器150是利用其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)执行同位运算来重新产生该PSD 110上该编号的数据区段的数据(此又称利用冗余数据算出),并将运算结果送出。步骤554执行完毕后,便跳回至步骤540。
步骤556中,该控制器150判断该写入请求对应的该PSD 110上的数据区段是否为一变动数据区段。该变动数据区段的判断检查变动数据区段表内是否有记录该PSD的该变动数据区段编号。若否,则执行步骤558。若是,则代表其为一变动数据区段,表示该编号的数据区段内的数据是一变动数据,此时虽然无法直接将该数据区段相对应的写入数据写入该数据区段内,但由于该数据区段的编号之前已经被记录于变动数据区段表内,故不需将该PSD 110的该数据区段编号再记录一次,而让原有记录维持不变,便直接跳回步骤540。
步骤558中,因该写入请求所对应的该PSD 110的数据区段原是一未变动数据区段,故该控制器150将该写入请求所对应的该PSD 110的数据区段编号,记录于变动数据区段表内,表示该PSD 110上该数据区段编号的数据需要被更新,目前的状态下不可被读出使用。步骤558执行完毕后,便再度跳回步骤540中。
步骤556及558中,该控制器150会对该写入请求的数据进行运算以产生新的同位数据,来取代原先的同位数据。故当一变动数据区段表中记录有其中一数据区段编号时,表示该数据区段所对应的同位数据区段已经产生改变,由于该数据区段此时无法直接写入,仅先做一记录,伺该PSD 110执行部分重建程序时,再依此记录,重建该数据区段的数据。
步骤560中,该控制器150判断该PSD 110是否完成控制程序的更新。若是,则执行步骤570;若否,则跳回执行步骤540。在该PSD 110更新控制程序期间,该控制器150会在步骤540至步骤560间反复执行,直到该PSD 110完成控制程序的更新。
当该PSD 110在控制程序更新期间,若该控制器150需要对该PSD 110发出写入请求时,则表示该PSD 110中部分数据区段需要被更改,所述数据区段内储存不正确的数据(变动数据),故需对该需要被更改的数据区段执行部分重建,以恢复成正确的数据。该PSD110的部分重建时机,等待该PSD 110完成控制程序的更新之后。
步骤570中,该控制器150判断变动数据区段表内是否有记录着该PSD 110的任何数据区段编号。若否,则表示该PSD 110在执行控制程序更新期间,该控制器150并不需要对该PSD 110发出写入请求,故变动数据区段表内并未记录该PSD 110的任何数据区段编号,则执行图8中步骤640;若是,则表示该PSD 110在执行控制程序更新期间,该控制器150需要对该PSD 110发出写入请求,该PSD 110上的变动数据区段的数据需要被更新,故需对变动数据区段表内有该PSD 110数据区段编号记录的变动数据区段执行部分重建,则执行图7中步骤580。
在该PSD 110已完成控制程序的更新后、尚未完成其部分重建前,此时该PSD 110虽尚未恢复连线,但该控制器150对于该PSD中的未变动数据区段,仍可直接发出读取或写入请求,以执行对该PSD 110的读取或写入程序,故可增进系统的效能。
当来自主机单元的写入或读取请求需针对该离线进行部分重建程序的PSD 110来存取数据时,则执行图7中步骤580。
图7为接续图6的流程图。步骤580中,该控制器150侦测该PSD 110在执行部分重建期间,该储存虚拟化系统中是否有新发生PSD毁损的情况。若否,则执行步骤590;若是,则执行步骤581。
步骤581中,该控制器150判断发生PSD毁损的PSD是否为该正在执行部分重建的PSD。若是,则跳至步骤650结束该PSD控制程序更新模式A;若否,则执行步骤582。在执行步骤581判断的同时,该发生PSD毁损的PSD的相关数据将会被该控制器150记录下来且若变动数据区段表内记录有该发生毁损PSD的变动数据区段编号时,则该控制器150会将该变动数据区段表内的该PSD所有的数据区段编号删除。
步骤582中,该控制器150判断该系统中PSD离线的总数是否超过同位PSD的数目m。若是,则执行步骤584;若否,则执行步骤580。
依据本发明的一实施例,若该发生毁损PSD的数目、离线执行控制程序更新PSD的数目及离线执行部分重建PSD的数目总和小于或等于该同位PSD的数目m时,该控制器150可继续接收来自主机单元的IO请求,故直接跳回步骤580。依据本发明的另一实施例,若该发生毁损PSD的数目、离线执行控制程序更新PSD的数目及离线执行部分重建PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,但为了降低系统风险,该控制器150会暂停接收来自主机单元的IO请求,而在等到该PSD执行至步骤640完成后,才会恢复接收来自主机单元的IO请求及再接受执行其他PSD控制程序的更新。
上述步骤582中,若以一个具有2个同位PSD的RAID 6的储存虚拟化系统为例,当该系统中1个PSD执行部分重建时,该系统还可承受另1个PSD发生毁损或执行部分重建,不会造成部分数据遗失的情形。若该系统在已有1个PSD执行部分重建时,另有2个或2个以上的PSD发生毁损,则系统会产生部分数据遗失的情形。若该系统在已有1个PSD执行部分重建时,另有1个PSD执行控制程序的更新时,又若另有1个PSD发生毁损,则系统会产生部分数据遗失的情形。
步骤584中,因为有PSD发生毁损,而使得该储存虚拟化系统中PSD的离线总数已经超出该储存虚拟化系统所能承受PSD离线总数的最大上限,造成该储存虚拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的一实施例,该控制器150停止接受来自主机单元10的IO请求,此时该正在执行PSD部分重建程序的PSD仅需将该PSD目前正在执行的变动数据区段执行完毕,其他的变动数据区段则不必执行部分重建程序。该控制器150会将该PSD内变动数据区段上的数据,标记为错误数据;若变动数据区段表内有记录该PSD的变动数据区段编号时,则会将该变动数据区段表内该PSD所有的数据区段编号删除。依据本发明的另一实施例,当一数据区段被标示为错误数据后,若该数据区段于其他外部的储存虚拟化系统中还有另一备份数据,则可由主机端读取该备份数据重新写入而更正该错误数据。步骤584执行完毕后,即跳回至步骤580,经过步骤580至步骤620的程序后,该PSD 110重新恢复连线(步骤640)并结束PSD控制程序更新模式A的程序(步骤650)。
步骤590中,该控制器150判断于该PSD 110部分重建完成前期间,是否需对该PSD110发出读取/写入请求。若是,则执行步骤592;若否,则执行步骤610。
步骤592中,该控制器150判断需要对该PSD 110发出的读取/写入请求所对应的数据区段是否为一变动数据区段。若否,则执行步骤594;若是,则执行步骤596。
步骤594中,表示变动数据区段表内并无记录该PSD 110的数据区段编号,代表该PSD 110上该编号的数据区段的数据于该PSD 110更新控制程序期间不需要被更改,或是该编号的数据区段已经完成部分重建程序;亦即,该编号的数据区段是一未变动数据区段,所以该PSD 110上该编号的数据区段可被直接读取或写入,故该控制器150可直接对该PSD110发出读取/写入请求,以将该读取或写入请求相对应于该PSD 110上该编号的数据区段的数据直接读取或写入。在执行该PSD 110的部分重建程序时,该控制器150对于未变动数据区段不必等到该PSD 110恢复连线即可对该PSD 110上的未变动数据区段发出读取或写入请求,以直接执行对该PSD 110读取或写入程序,故可增进该系统的效能。步骤594执行完毕后,即跳回步骤580。
步骤596中,该控制器150判断需要对该PSD 110发出的读取/写入请求是否为一读取请求。若是,则执行步骤600;若否,则表示需要对该PSD 110发出的读取/写入请求是一写入请求,执行步骤598。
步骤598中,该控制器150需要对该PSD 110发出的读取/写入请求为一写入请求,且该写入请求所对应的该PSD 110上的数据区段是一变动数据区段,依据本发明的第一实施例,由于该PSD 110上的该数据区段的编号已经被记录于变动数据区段表内,故不需将该PSD 110的该数据区段编号再记录一次,所以可直接跳至步骤580。步骤598中,依据本发明的第二实施例,该控制器150利用该写入请求所对应的该PSD 110上该编号的数据区段的写入数据而将该PSD 110上该变动数据区段内原先的数据直接写覆,并将变动数据区段表内该PSD的该数据区段编号删除,如此可节省对该编号数据区段的部分重建时间。步骤598执行完毕后,跳回至步骤580。
步骤600中,该控制器150需要对该PSD 110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据储存于该正在执行部分重建的PSD 110的变动数据区段内,由于该PSD 110上的该变动数据区段的数据不正确而需要被更新且尚未完成该变动数据区段的部分重建程序,故该变动数据区段不可被直接读取,而其他并非正在执行部分重建及更新控制程序的PSD 110则可正常读取。该控制器150利用其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)执行同位运算来重新产生该PSD 110上该编号的数据区段的数据,并将运算结果送出。步骤600执行完毕后,便跳回至步骤580中。
步骤610中,该控制器150判断该PSD 110上该正在执行部分重建的数据区段是否重建完成。若是,则执行步骤620;若否,则跳回执行步骤580。
由于该控制器150在该PSD 110更新控制程序期间,可能需要对该PSD 110上的多个数据区段发出写入请求,造成该PSD 110上的多个数据区段为变动数据区段,而该PSD110上所有的变动数据区段都需执行部分重建程序。步骤620中,该控制器150判断该PSD110上所有的变动数据区段是否均已完成部分重建,即判断该变动数据区段表内是否已无该PSD 110的任何数据区段编号记录。若是,则执行图8中的步骤640;若否,则执行步骤630。
步骤630中,该控制器150根据变动数据区段表内的编号记录执行该PSD 110的部分重建程序,以重建该PSD 110上变动数据区段的数据。在执行部分重建时,该控制器150会根据变动数据区段表内的记录,先选择该PSD 110上的一数据区段编号,再利用其他PSD上具有相同编号的数据区段的数据(含同位数据),执行同位运算来重新产生该PSD 110上该编号的数据区段的数据,并将重新产生的数据写回该PSD上该编号的数据区段内,最后该控制器150再将变动数据区段表内该PSD 110的该数据区段编号删除,完成该PSD 110上一个变动数据区段的部分重建程序。在该PSD 110部分重建的期间,该控制器150会在步骤580至步骤630间重复执行,直到变动数据区段表中该PSD 110所有的数据区段编号皆被删除为止。
图8步骤640中,该控制器150将该PSD 110重新设定为连线(on-line)状态,再度进入正常工作模式。当然,该控制器150恢复成正常地对该PSD 110发出读取/写入请求,同时并将该PSD 110的连/离线记录由离线状态更改为连线状态。
步骤640执行完毕后,则进入步骤650结束PSD的控制程序更新模式A。若还有其他的PSD 110需更新控制程序,则重新执行步骤500。
图9至图12是PSD控制程序更新模式B的详细流程。该PSD控制程序更新模式B开始于图9中步骤700。步骤710中,控制器150选定实体储存装置阵列100中n个等待更新控制程序的PSD 110,以执行PSD 110的控制程序112的更新。依据本发明的一实施例,当该系统中无任何PSD发生毁损时,该(等)被选定更新控制程序的PSD数目n不大于同位PSD的数目m,该n与m的关系为:1≤n≤m。依据本发明的另一实施例,若该系统中有f个PSD发生毁损时,则n的最大值只能被限制在m-f。其中,该n、f与m的关系为:1≤n≤m-f,m、n及f均为正整数。
在PSD控制程序更新模式B中,该控制器150针对每一个被选定等待更新控制程序的PSD执行一系列的程序,该流程组包含图9至图12中的步骤720至步骤850。每一个PSD依照当时的实际状态,分别执行所述程序系列中各自的程序。亦即,每一个PSD所执行的程序系列是相互独立的,可以同时执行(平行处理)或先后分别来执行。
步骤720中,该控制器150将该被选定等待更新控制程序112的PSD 110设定为离线状态。本步骤内容请参考步骤520的相关说明。
步骤730中,该控制器150执行该被选定的PSD 110控制程序PSD112的更新。本步骤内容请参考步骤530的相关说明。
上述步骤710、720及730等3个步骤,即图3步骤320中的详细流程。
当该控制器150收到来自主机单元10对该PSD的写入请求时,该控制器150会需要对该写入请求的数据进行运算以产生新的同位数据,来取代原先的同位数据。
当来自主机单元的写入或读取请求需针对该离线进行控制程序更新的PSD 110来存取数据时,则执行图10中步骤740。
图10为接续图9的流程图。步骤740中,该控制器150侦测该PSD 110在更新控制程序期间,该储存虚拟化系统中是否有新发生PSD毁损的情况。若否,则执行步骤750;若是,则执行步骤741。关于新发生PSD毁损的情况,请参考步骤540的相关说明。
步骤741中,该控制器150判断发生PSD毁损的PSD是否为正在更新控制程序的该PSD。若是,则执行步骤850结束该PSD控制程序更新模式B;若否,则执行步骤742。在执行步骤741判断的同时,该发生PSD毁损的PSD的相关数据将会被该控制器150记录下来且若变动数据区段表内记录有该发生毁损PSD的变动数据区段编号时,则该控制器150会将该变动数据区段表内该PSD所有的数据区段编号删除。
步骤742中,该控制器150判断该系统中PSD毁损的总数是否超过同位PSD的数目m。若是,则执行步骤744;若否,则执行步骤740。
依据本发明的实施例,若系统的同位PSD的数目为m个,且在控制程序更新模式B下,在更新PSD控制程序或执行部分重建期间,系统允许该实体储存装置阵列100中PSD毁损的总数为m个,而并非离线的总数为m个,其原因在于:若当控制器150需要对该PSD 110发出写入请求时,除了在变动数据区段表内记录该写入请求相对应该PSD 110的数据区段编号之外,同时需在第二存储器182内储存该写入请求相对应该PSD 110的写入数据,其中该变动数据区段表内该PSD的数据区段编号是连结储存于第二存储器182中的写入数据(连结数据)。此时该PSD 110虽然为离线状态,但由于该变动数据区段具有连结数据,在更新PSD控制程序期间,若该控制器150需对该PSD 110中变动数据区段发出读取请求时,则不需通过重新产生读取数据来读取,可藉由读取该变动数据区段的连结数据来完成;若该控制器150需对该PSD 110中变动数据区段发出写入请求时,则利用该写入请求对应于该变动数据区段的写入数据,将该变动数据区段原先所连结的连结数据直接写覆。故PSD控制程序更新模式B较PSD控制程序更新模式A具有更大的容错能力。若发生PSD毁损的总数超过m时,造成该储存虚拟化系统发生部分数据遗失,无法再继续正常运作;若PSD毁损的总数不大于m,则系统可继续运作。
步骤742中,依据本发明的一实施例,若发生毁损的PSD数目总和小于或等于该同位PSD的数目m时,该控制器150可继续接收来自主机单元的IO请求,该系统并不会遗失数据,其他程序可继续进行,故直接跳回步骤740。步骤742中,依据本发明的另一实施例,若该发生毁损的PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,但为了降低系统风险,该控制器150会暂停接收来自主机单元的IO请求,而在等到该PSD执行至步骤840完成后,才会恢复接收来自主机单元的IO请求及再接受执行其他PSD控制程序的更新。
上述步骤742中,若以一个具有2个同位PSD的RAID 6的储存虚拟化系统为例,当该系统在执行控制程序的更新时,该系统还可承受另外2个PSD发生毁损,不会造成部分数据遗失的情形;在更换新PSD后,该毁损PSD原先的数据可再重建(rebuild)回来。若该系统有中3个或3个以上的PSD发生毁损时,则系统会产生部分数据遗失的情形。
步骤744中,因为有PSD发生毁损,而使得该储存虚拟化系统中PSD的毁损总数超出该储存虚拟化系统所能承受PSD毁损总数的最大上限,造成该储存虚拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的实施例,该控制器150停止接受来自主机单元10的IO请求,此时该正在执行控制程序更新程序的PSD可以继续执行控制程序更新至其更新完成,同时也可以执行部分重建至其完成。由于该PSD的变动数据区段有连结数据,当该PSD执行部分重建程序时,可以复制该连结数据至相对的变动数据区段上,以执行该PSD的该变动数据区段的部分重建程序。此外,因为该PSD的变动数据区段可以被部分重建,所以该控制器150不会将该PSD的变动数据区段标示为错误数据;若变动数据区段表内有记录该PSD的变动数据区段编号时,该控制器150此时不会将该变动数据区段表内该PSD所有的数据区段编号删除。必须注意的是:虽然该PSD可以继续执行控制程序更新与部分重建,但此时系统已经发生数据毁损,在该控制器150使该PSD重新恢复连线后,该系统不会立即再接受其他PSD更新控制程序。步骤744执行完后,便跳回至步骤740,经过步骤740至步骤830的判断及/或执行后,该PSD 110重新恢复连线(步骤840)并结束该PSD控制程序更新模式B的程序(步骤850)。
步骤750中,该控制器150判断于该PSD 110控制程序更新完成前期间,是否需对该PSD 110发出读取/写入请求。若是,则执行步骤751;若否,则执行步骤760。
步骤751中,该控制器150判断需要对该PSD 110发出的读取/写入请求是否为一读取请求。若是,则执行步骤752;若否,则表示需要对该PSD 110发出的读取/写入请求是一写入请求,则执行步骤756。
步骤752中,该控制器150判断所有正在更新控制程序的PSD及发生毁损的PSD的总数是否大于m。若是时,该控制器150若收到主机单元对该正在更新控制程序的PSD的未变动数据区段的读取请求时,并无法重新产生该未变动数据区段的读取数据,也无法立即回应主机单元,故执行步骤753B;若否,则执行步骤753A。
步骤753A中,该控制器150判断该读取请求相对应于该PSD的数据区段是否为一变动数据区段,若是,则执行步骤755A;若否,则执行步骤754A。
步骤754A中,该控制器150需要对该PSD 110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据储存于该正在执行控制程序更新的PSD 110的未变动数据区段内,由于此时该PSD 110离线正在执行控制程序的更新,无法直接自该PSD 110中读取数据,而其他并非正在执行控制程序更新的PSD 110及其他正在执行部分重建的PSD 110则可正常读取数据。该控制器150利用其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)执行同位运算来重新产生该PSD 110上该编号的数据区段的数据,并将运算结果送出。步骤754A执行完毕后,便跳回至步骤740。
步骤755A中,该控制器150需要对该PSD 110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据是储存于该正在执行控制程序更新的PSD 110的变动数据区段内,该控制器150将变动数据区段所连结的连结数据直接送出。步骤755A执行完毕后,便跳回至步骤740。
步骤753B中,该控制器150判断该读取请求相对应于该PSD 110的数据区段是否为一变动数据区段,若是,则执行步骤755A;若否,则执行步骤757。
步骤757中,该控制器150先暂停回应主机单元该读取请求,直到该正在更新控制程序的PSD 110更新完成。在所有正在更新控制程序的PSD及发生毁损的PSD的总数大于m的情况下,对于该正在更新控制程序的PSD 110而言,此时若该控制器150收到主机单元对该PSD 110的未变动数据区段的读取请求时,该控制器150无法通过其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)来重新产生该未变动数据区段上的数据,故该控制器150会先暂停回应主机单元该读取请求,直到该PSD 110更新控制程序完成为止。步骤757执行完毕,则执行步骤754B。
步骤754B中,该控制器150将该读取请求所对应该PSD 110的数据区段内的数据直接送出。由于此时已经完成控制程序更新,且该读取请求所对应该PSD 110的数据区段为未变动数据区段,故该控制器150可以将该PSD 110的该数据区段内的数据直接送出。步骤754B执行完毕后,便跳至步骤770。
上述步骤754B中,由于该PSD 110已经完成控制程序更新,故不再跳回步骤740的判断程序中。当该PSD 110未完成控制程序更新时,会在步骤740至步骤760间反复执行,直到该PSD 110完成控制程序的更新。
步骤756中,该控制器150判断该写入请求所对应该PSD 110上的数据区段是否为一变动数据区段。若是,则执行步骤759;若否,则执行步骤758。
步骤758中,该写入请求所对应的该PSD 110的数据区段是一未变动数据区段。该控制器150将该写入请求所对应的该PSD 110的数据区段编号,记录于变动数据区段表内,表示该PSD 110上该编号的数据区段的数据需要被更改,目前的状态下不可被读出使用;该控制器150除了在变动数据区段表内记录该PSD 110的数据区段编号之外,同时并在第二存储器182中储存该写入请求所对应的该PSD 110上该编号数据区段的写入数据。步骤758执行完毕后,便再度跳回步骤740中。
步骤759中,该写入请求所对应的该PSD 110的数据区段是一变动数据区段。由于该数据区段编号已经被记录于变动数据区段表内,故不需将该PSD 110的该数据区段编号再记录一次,但该数据区段编号原先所连结的连结数据则需以该写入请求所对应该PSD110上该编号的数据区段的写入数据写覆。步骤759执行完毕,便跳至步骤740。
步骤758及759中,当一变动数据区段表中记录有其中一数据区段编号,则在执行部分重建程序时,会依此记录重建该数据区段的数据。
步骤760中,该控制器150判断该PSD 110是否完成控制程序的更新。若是,则执行步骤770;若否,则跳回执行步骤740。在该PSD 110更新控制程序的期间,该控制器150会在步骤740至步骤760间反复执行,直到该PSD 110完成控制程序的更新。
步骤770中,该控制器150判断变动数据区段表内是否有记录着该PSD 110的任何数据区段编号。若否,则表示该PSD 110在执行控制程序更新期间,该控制器150并不需要对该PSD 110发出写入请求,故变动数据区段表内并未记录该PSD 110的任何数据区段编号,则执行图12中步骤840;若是,则表示该PSD 110在执行控制程序更新期间,该控制器150需要对该PSD 110发出写入请求,该PSD 110上的变动数据区段的数据需要被更新,故需对变动数据区段表内有该PSD 110数据区段编号记录的变动数据区段执行部分重建,则执行图11中步骤780。
在该PSD 110已完成控制程序的更新后,尚未完成部分重建前,此时该PSD 110虽尚未恢复连线,但该控制器150对于该PSD中的未变动数据区段,仍可直接发出读取或写入请求,以执行对该PSD 110的该读取或写入程序,故可增进系统的效能。
当来自主机单元的写入或读取请求需针对该离线进行部分重建程序的PSD 110来存取数据时,则执行图11中步骤780。
图11为接续图10的流程图。步骤780中,该控制器150侦测该PSD 110在执行部分重建期间,该储存虚拟化系统中是否有新发生PSD毁损的情况。若否,则执行步骤790;若是,则执行步骤781。
步骤781中,该控制器150判断发生PSD毁损的PSD是否为该正在执行部分重建的PSD。若是,则跳至步骤850结束该PSD控制程序更新模式B;若否,则执行步骤782。在执行步骤781判断的同时,该发生PSD毁损的PSD的相关数据将会被记录下来且若变动数据区段表内记录有该发生毁损PSD的变动数据区段编号时,则该变动数据区段表内的该PSD所有的数据区段编号将会被删除。
步骤782中,该控制器150判断该系统中PSD毁损的总数是否超过同位PSD的数目m。若是,则执行步骤784;若否,则执行步骤780。
依据本发明的一实施例,若该发生毁损的PSD数目总和小于或等于该同位PSD的数目m时,该控制器150可继续接收来自主机单元的IO请求,故直接跳回步骤780。依据本发明的另一实施例,若该发生毁损的PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,但为了降低系统风险,该控制器150会暂停接收来自主机单元的IO请求,而在等到该PSD执行至步骤840完成后,才会恢复接收来自主机单元的IO请求及再接受执行其他PSD控制程序的更新。
上述步骤782中,若以一个具有2个同位PSD的RAID 6的储存虚拟化系统为例,当该系统在执行部分重建时,该系统还可承受另外2个PSD发生毁损,不会造成部分数据遗失的情形;在更换新PSD后,该毁损PSD原先的数据可再重建(rebuild)回来。若该系统有中3个或3个以上的PSD发生毁损时,则系统会产生部分数据遗失的情形。
步骤784中,因为有PSD发生毁损而使得该储存虚拟化系统中PSD的毁损总数已经超出该储存虚拟化系统所能承受PSD发生毁损的最大上限,造成该储存虚拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的实施例,该控制器150停止接受来自主机单元10的IO请求,此时该正在执行PSD部分重建程序的PSD 110,可以继续执行至该PSD 110所有的部分重建至重建完成。由于该PSD 110的变动数据区段连结有连结数据,当该PSD执行部分重建程序时,可以复制该连结数据至相对的变动数据区段上,以执行该PSD的该变动数据区段的部分重建程序。此外,因为该PSD的变动数据区段可以被重建,所以该控制器150不会将该PSD的变动数据区段标示为错误数据;同时,若变动数据区段表内有记录该PSD的变动数据区段编号时,该控制器150此时也不会将该变动数据区段表内该PSD所有的数据区段编号删除。必须注意的是:虽然该PSD可以继续执行部分重建程序,但此时系统已经发生数据毁损,在该控制器150使该PSD重新恢复连线后,该系统不会立即再接受其他PSD更新控制程序。步骤784执行完后,便跳回至步骤780,经过步骤780至步骤830的判断及/或执行后,该PSD 110重新恢复连线(步骤840)并结束该PSD控制程序更新模式B的程序(步骤850)。
步骤790中,该控制器150判断于该PSD 110部分重建完成前期间,是否需对该PSD110发出读取/写入请求。若是,则执行步骤792;若否,则执行步骤810。
步骤792中,该控制器150判断需要对该PSD 110发出的读取/写入请求所对应的数据区段是否为一变动数据区段。若否,则执行步骤794;若是,则执行步骤796。
步骤794中,表示变动数据区段表内并无记录该PSD 110的数据区段编号,代表该PSD 110上该编号的数据区段的数据在该PSD 110更新控制程序期间不需要被更改,或是该编号的数据区段已经完成部分重建程序;亦即,该编号的数据区段是一未变动数据区段,所以该PSD 110上该编号的数据区段可直接被读取或写入,故该控制器150可直接对该PSD110发出读取/写入请求,以将该读取或写入请求相对应于该PSD 110上该编号的数据区段的数据直接读取或写入。在执行该PSD 110的部分重建程序时,该控制器150对于未变动数据区段不必等到该PSD 110恢复连线即可对该PSD 110上的未变动数据区段发出读取或写入请求,以直接执行对该PSD 110读取或写入程序,故可增进该系统的效能。步骤794执行完毕后,即跳回步骤780。
步骤796中,该控制器150判断需要对该PSD 110发出的读取/写入请求是否为一读取请求。若是,则执行步骤800;若否,则表示需要对该PSD 110发出的读取/写入请求是一写入请求,则执行步骤798。
步骤798中,该控制器150需要对该PSD 110发出的读取/写入请求为一写入请求,且该写入请求所对应的该PSD 110上的数据区段是一变动数据区段,依据本发明的第一实施例,由于该PSD 110上的该数据区段的编号已经被记录于变动数据区段表内,故不需将该PSD 110的该数据区段编号再记录一次,但该编号的数据区段原先所连结的连结数据则需以写入请求所对应的该PSD 110上该编号的数据区段的写入数据写覆,步骤798执行完毕后,跳回至步骤780。步骤798中,依据本发明的第二实施例,需要对该PSD 110发出的读取/写入请求为一写入请求,且该写入请求所对应的该PSD 110的数据区段编号的数据是一变动数据,该控制器150利用该写入请求所对应的该PSD 110上该编号的该变动数据区段的写入数据而将该PSD 110上该变动数据区段内原先的数据直接写覆,并将变动数据区段表内该PSD 110的该数据区段编号删除,如此可节省对该编号数据区段的部分重建时间。步骤798执行完毕后,跳回至步骤780。
步骤800中,该控制器150需要对该PSD 110发出的读取/写入请求是一读取请求,且该读取请求所对应的数据储存于该正在执行部分重建的PSD 110的变动数据区段内,由于该PSD 110上该编号的数据区段的数据不正确需要被更改且尚未完成该编号的数据区段的部分重建程序,该编号的数据区段的数据并非一正确的数据,故该编号的数据区段的数据不可直接被读取,该控制器150将该编号的数据区段所连结的连结数据直接送出。步骤800执行完毕后,便再度跳回至步骤780中。
步骤810中,该控制器150判断该PSD 110上正在执行部分重建的数据区段是否重建完成。若是,则执行步骤820;若否,则跳回执行步骤780。
由于该控制器150在该PSD 110更新控制程序期间,可能需要对该PSD 110上的多个数据区段发出写入请求,造成该PSD 110上的多个数据区段为变动数据区段,故该PSD110上所有的变动数据区段都需执行部分重建程序。在步骤820中,该控制器150判断该PSD110上所有的变动数据区段是否均已完成部分重建,即判断该变动数据区段表内是否已无该PSD 110的任何数据区段编号记录。若是,则执行图12中的步骤840;若否,则执行步骤830。
步骤830中,该控制器150根据变动数据区段表内的编号记录执行该PSD 110的部分重建程序,以重建该PSD 110上变动数据区段的数据。该控制器150根据变动数据区段表内的记录,先选择该PSD 110上的一数据区段编号,将该变动数据区段表内该数据区段编号所连结的连结数据复制回该编号的数据区段内,最后该控制器150再将变动数据区段表内该PSD 110的该数据区段编号删除,完成该PSD 110上一个变动数据区段的部分重建程序。在该PSD 110部分重建的期间,该控制器150会在步骤780至步骤830间重复执行,直到变动数据区段表中该PSD 110所有的数据区段编号皆被删除为止。
图12步骤840中,该控制器150将该PSD 110重新设定为连线(on-line)状态,再度进入正常工作模式。当然,该控制器150恢复成正常地对该PSD 110发出读取/写入请求,同时并将该PSD 110的连/离线记录由离线状态更改为连线状态。
步骤840执行完毕后,则进入步骤850结束PSD的控制程序更新模式B。若还有其他的PSD 110需更新控制程序,则重新执行步骤700。
上述PSD控制程序更新模式A或PSD控制程序更新模式B中,虽然该变动数据区段是以记录该数据区段编号的方式来处理及判别,但在实际操作上,并不仅限于记录该数据区段编号的方式,只要是能够将变动数据区段加以注记而能判别该数据区段为变动数据区段即可。例如:记录每一数据区段的属性,而变动数据区段与一般数据区段分别具有不同的属性,如:True/False或是1/0等表示方式,可清楚地分辨出变动数据区段与一般数据区段。
依据本发明的又一实施例,提供一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,该方法包含以下的步骤:在同一数据储存带中提供多个用来检核使用者数据的同位数据储存块;选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;以及,更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需要对该实体储存装置发出一写入请求时,则将该实体储存装置上相对应的数据区段注记为一变动数据区段。藉此,该储存虚拟化系统中可同时更新多个实体储存装置的控制程序;或是,该储存虚拟化系统中可在有实体储存装置发生毁损的同时,仍可进行实体储存装置的控制程序更新,因而加速了实体储存装置的控制程序的更新,并改善系统的效能。例如,当一数据储存带中具有两个同位数据储存块时,可以同时进行两个实体储存装置的控制程序更新;或是,当有一个实体储存装置发生毁损的同时,仍然可以同时进行另一个实体储存装置的控制程序更新。又如,当一数据储存带中具有三个同位数据储存块时,可以同时进行三个实体储存装置的控制程序更新;或是,当有二个实体储存装置发生毁损的同时,仍然可以同时进行另一个实体储存装置的控制程序更新;或是,当有一个实体储存装置发生毁损的同时,仍然可以同时进行另外两个实体储存装置的控制程序更新。
再者,依据本发明的进一步的实施例,在同一数据储存带中提供多个用来检核使用者数据的同位数据储存块的情况下,在该更新该被选定的实体储存装置内的控制程序步骤之后,更进一步包含以下的步骤:该被选定的实体储存装置在完成更新控制程序后执行部分重建程序,其中在该部分重建程序完成前,若需要对该实体储存装置上未变动数据区段的发出读取或写入请求时,直接对该未变动数据区段发出读取或写入请求而不需等到所有的变动数据区段完成部分重建后才发出读取或写入请求。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (31)
1.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;其中当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数小于或等于该同位实体储存装置的数目N时,该被选定的一或多个实体储存装置继续执行该控制程序更新或该部分重建,该系统不会发生数据遗失的情形。
2.根据权利要求1所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的数据区段读取时,则利用其冗余数据算出一读取数据并送出。
3.根据权利要求1所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变。
4.根据权利要求1所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段读取时,则利用其冗余数据算出一读取数据并送出。
5.根据权利要求1所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则直接将该变动数据区段以写入相对应的写入数据写覆且取消该变动数据区段的注记。
6.根据权利要求1所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变。
7.根据权利要求1所述的方法,其特征在于其中若注记为该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据。
8.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的数据区段读取时,则利用其冗余数据算出一读取数据并送出。
9.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段读取时,则将该变动数据区段的该连结数据直接送出。
10.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该未变动数据区段写入时,则注记该未变动数据区段为该变动数据区段及储存写入相对应的写入数据为该连结数据。
11.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变及以写入相对应的写入数据将该变动数据区段原先的该连结数据直接写覆。
12.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段读取时,则将该变动数据区段的该连结数据直接送出。
13.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置于该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则直接将该变动数据区段以写入相对应的写入数据写覆且取消该变动数据区段的注记。
14.根据权利要求7所述的方法,其特征在于其中当该被选定的一或多个实体储存装置在该部分重建期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变及以写入相对应的写入数据将该变动数据区段原先的该连结数据直接写覆。
15.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,直到该被选定的一或多个实体储存装置完成该部分重建为止。
16.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数大于该同位实体储存装置的数目N时,则该被选定的一或多个实体储存装置上的该变动数据区段的数据被标记为一错误数据。
17.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数小于或等于该同位实体储存装置的数目N时,该系统不会发生数据遗失,该被选定的一或多个实体储存装置则继续执行该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
18.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,直到该被选定的一或多个实体储存装置完成该部分重建为止。
19.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数大于该同位实体储存装置的数目N时,则复制该被选定的一或多个的该变动数据区段的该连结数据至该变动数据区段上。
20.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定一或多个的实体储存装置进入一离线状态;
更新该被选定一或多个的实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的数目与正在更新该控制程序的实体储存装置的数目的总和大于该同位实体储存装置的数目N时,若需对该正在更新该控制程序的实体储存装置内的未变动数据区段读取时,则暂不回复该读取,直到该正在更新该控制程序的实体储存装置完成该控制程序的更新后,再利用冗余数据算出一读取数据并送出。
21.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该方法包含以下步骤:
在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
使该被选定的一或多个实体储存装置进入一离线状态;
更新该被选定的一或多个实体储存装置内的一控制程序,其中在更新该控制程序完成前,若需对该一或多个实体储存装置发出一写入请求时,则将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建,若该变动数据区段的一数据连结状态是一具有连结数据的状态时,则将对该被选定的一或多个实体储存装置发出的该写入请求的相对应数据储存于一存储器内而为一连结数据;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该发生毁损的实体储存装置正在执行该控制程序更新或该部分重建,若该实体储存装置上有变动数据区段时,则取消该变动数据区段的注记。
22.根据权利要求1至21中任一权利要求所述的方法,其特征在于其更包含以下步骤:在该多个实体储存装置中设置至少一数据储存带,且在同一数据储存带中提供多个同位数据储存块;该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数。
23.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为该离线状态的总数小于或等于该同位实体储存装置的数目N时,则该控制程序更新模块或该部分重建模块继续执行该被选定的一或多个实体储存装置的该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
24.根据权利要求23所述的装置,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的数据区段读取时,则利用其冗余数据算出一读取数据并送出。
25.根据权利要求23所述的装置,其特征在于其中当该被选定的一或多个实体储存装置在该控制程序更新期间中,若需对该被选定的一或多个实体储存装置的该变动数据区段写入时,则该变动数据区段的注记维持不变。
26.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为离线状态的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,且该部分重建模块继续执行该被选定的一或多个实体储存装置的该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
27.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中当发生有该多个实体储存装置中的任一个毁损且该发生毁损的实体储存装置是正在执行该控制程序的更新或该部分重建,若该实体储存装置上有该变动数据区段时,则取消该变动数据区段的注记。
28.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中该变动数据区段的一数据连结状态是一具有连结数据的状态,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数小于或等于该同位实体储存装置的数目N时,该系统不会发生数据遗失,且该控制程序更新模块或该部分重建模块则继续执行该被选定的一或多个实体储存装置的该控制程序更新或该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
29.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中该变动数据区段的一数据连结状态是一具有连结数据的状态,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数等于该同位实体储存装置的数目N时,则暂停接受该被选定的一或多个实体储存装置的读取或写入请求,且该部分重建模块继续执行该被选定的一或多个实体储存装置的该部分重建,直到该被选定的一或多个实体储存装置完成该部分重建为止。
30.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中该变动数据区段的一数据连结状态是一具有连结数据的状态,该储存虚拟化系统的同位实体储存装置的数目为N,N为自然数;当发生有该多个实体储存装置中的任一个毁损且该储存虚拟化系统中该多个实体储存装置为毁损的总数大于该同位实体储存装置的数目N时,则复制该变动数据区段的该连结数据至该变动数据区段上。
31.一种在储存虚拟化系统中更新实体储存装置的控制程序的装置,其中该储存虚拟化系统中包含多个实体储存装置,其特征在于该装置包括:
选定模块,用于在该多个实体储存装置中选定欲更新控制程序的一或多个实体储存装置;
进入离线模块,用于使该被选定的一或多个实体储存装置进入一离线状态;
控制程序更新模块,用于更新该被选定的一或多个实体储存装置内的一控制程序;
注记模块,用于在更新该控制程序完成前,若需对该被选定的一或多个实体储存装置发出一写入请求时,将该写入请求所对应的一未变动数据区段注记为一变动数据区段;以及
部分重建模块,用于该被选定的一或多个实体储存装置在完成该控制程序的更新后会执行一部分重建;
其中该变动数据区段的一数据连结状态是一具有连结数据的状态,当发生有该多个实体储存装置中的任一个毁损且该发生毁损的实体储存装置正在执行该控制程序更新或该部分重建,若该实体储存装置上有该变动数据区段时,则取消该变动数据区段的注记。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6110908P | 2008-06-12 | 2008-06-12 | |
US61/061,109 | 2008-06-12 | ||
CN200910143006.3A CN101604250B (zh) | 2008-06-12 | 2009-05-21 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910143006.3A Division CN101604250B (zh) | 2008-06-12 | 2009-05-21 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984587A CN103984587A (zh) | 2014-08-13 |
CN103984587B true CN103984587B (zh) | 2017-10-20 |
Family
ID=40940763
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910143006.3A Active CN101604250B (zh) | 2008-06-12 | 2009-05-21 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
CN201410257909.5A Active CN103984587B (zh) | 2008-06-12 | 2009-05-21 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
CN200910143069.9A Active CN101604251B (zh) | 2008-06-12 | 2009-05-26 | 多同位储存系统中更新实体储存装置控制程序的方法 |
CN201410141647.6A Active CN103927206B (zh) | 2008-06-12 | 2009-05-26 | 多同位储存系统中更新实体储存装置控制程序的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910143006.3A Active CN101604250B (zh) | 2008-06-12 | 2009-05-21 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910143069.9A Active CN101604251B (zh) | 2008-06-12 | 2009-05-26 | 多同位储存系统中更新实体储存装置控制程序的方法 |
CN201410141647.6A Active CN103927206B (zh) | 2008-06-12 | 2009-05-26 | 多同位储存系统中更新实体储存装置控制程序的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8356292B2 (zh) |
CN (4) | CN101604250B (zh) |
GB (1) | GB2460767B (zh) |
TW (1) | TWI456389B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604250B (zh) * | 2008-06-12 | 2014-07-16 | 普安科技股份有限公司 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
KR101732030B1 (ko) * | 2010-12-22 | 2017-05-04 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9087019B2 (en) * | 2012-01-27 | 2015-07-21 | Promise Technology, Inc. | Disk storage system with rebuild sequence and method of operation thereof |
US8943489B1 (en) * | 2012-06-29 | 2015-01-27 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual computing appliances |
JP6207295B2 (ja) * | 2013-08-14 | 2017-10-04 | キヤノン株式会社 | 印刷装置及びその制御方法 |
US9250999B1 (en) * | 2013-11-19 | 2016-02-02 | Google Inc. | Non-volatile random access memory in computer primary memory |
US10459847B1 (en) | 2015-07-01 | 2019-10-29 | Google Llc | Non-volatile memory device application programming interface |
US10133625B2 (en) * | 2015-08-11 | 2018-11-20 | Western Digital Technologies, Inc. | Storing parity data separate from protected data |
KR102665540B1 (ko) | 2016-11-25 | 2024-05-10 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 raid 시스템 |
CN108205303B (zh) * | 2016-12-16 | 2020-10-02 | 法法汽车(中国)有限公司 | 一种车辆电子部件更新方法及装置 |
KR20180138394A (ko) * | 2017-06-21 | 2018-12-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
JP6791834B2 (ja) * | 2017-11-30 | 2020-11-25 | 株式会社日立製作所 | 記憶システム及び制御ソフトウェア配置方法 |
US10664187B2 (en) | 2017-12-01 | 2020-05-26 | International Business Machines Corporation | Reducing a rate at which data is mirrored from a primary server to a secondary server |
US10417069B2 (en) | 2017-12-01 | 2019-09-17 | International Business Machines Corporation | Handling zero fault tolerance events in machines where failure likely results in unacceptable loss |
US10725776B2 (en) | 2017-12-01 | 2020-07-28 | International Business Machines Corporation | Reducing a rate at which requests are sent from one processor to another to reduce processor utilization at the processor receiving the requests |
US10481980B2 (en) * | 2018-03-29 | 2019-11-19 | International Business Machines Corporation | Enabling segmented source data introspection within dispersed storage network (DSN) memory |
CN110874181B (zh) * | 2018-08-31 | 2021-12-17 | 杭州海康威视系统技术有限公司 | 一种数据更新方法及更新装置 |
US10936454B2 (en) | 2018-11-21 | 2021-03-02 | International Business Machines Corporation | Disaster recovery for virtualized systems |
US11209990B2 (en) * | 2019-03-15 | 2021-12-28 | Super Micro Computer, Inc. | Apparatus and method of allocating data segments in storage regions of group of storage units |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1482547A (zh) * | 2002-07-29 | 2004-03-17 | �Ҵ���˾ | 以非破坏性方式升级驱动器固件的方法和系统 |
CN1494510A (zh) * | 2001-01-05 | 2004-05-05 | 马丁工程公司 | 传送带的导向装置 |
CN1815455A (zh) * | 2004-12-10 | 2006-08-09 | 普安科技股份有限公司 | 储存系统及其不良储存装置资料维持方法 |
CN101082853A (zh) * | 2006-05-31 | 2007-12-05 | 株式会社日立制作所 | 闪速存储器存储系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999908A (en) * | 1992-08-06 | 1999-12-07 | Abelow; Daniel H. | Customer-based product design module |
JP2002318666A (ja) | 2001-04-20 | 2002-10-31 | Hitachi Ltd | ディスクアレイ装置に実装されたハードディスクユニットのファームウエアの更新方法およびこの更新方法を実行する機能を備えたディスクアレイ装置 |
US6820211B2 (en) | 2001-06-28 | 2004-11-16 | International Business Machines Corporation | System and method for servicing requests to a storage array |
US6728833B2 (en) | 2002-02-28 | 2004-04-27 | International Business Machines Corporation | Upgrading firmware on disks of the raid storage system without deactivating the server |
US6816950B2 (en) | 2002-05-08 | 2004-11-09 | Lsi Logic Corporation | Method and apparatus for upgrading disk drive firmware in a RAID storage system |
US20050033933A1 (en) | 2003-08-04 | 2005-02-10 | Hetrick William A. | Systems and methods for modifying disk drive firmware in a raid storage system |
US7197599B2 (en) * | 2003-12-29 | 2007-03-27 | Intel Corporation | Method, system, and program for managing data updates |
US7171518B2 (en) | 2004-04-02 | 2007-01-30 | Lsi Logic Corporation | Data storage system recovery from disk failure during system off-line condition |
US7493454B2 (en) * | 2004-10-29 | 2009-02-17 | International Business Machines Corporation | Method for achieving reliable worm storage using WMRM storage |
US7389379B1 (en) | 2005-04-25 | 2008-06-17 | Network Appliance, Inc. | Selective disk offlining |
US7558915B2 (en) * | 2005-06-06 | 2009-07-07 | Dell Products L.P. | System and method for updating the firmware of a device in a storage network |
US8065441B2 (en) * | 2005-08-19 | 2011-11-22 | Intel Corporation | Method and apparatus for supporting universal serial bus devices in a virtualized environment |
US20070067563A1 (en) | 2005-09-19 | 2007-03-22 | Lsi Logic Corporation | Updating disk drive firmware behind RAID controllers |
CN101055512A (zh) * | 2007-06-01 | 2007-10-17 | 威盛电子股份有限公司 | 数据存取方法 |
JP2009075716A (ja) | 2007-09-19 | 2009-04-09 | Nec Corp | ディスクアレイ装置 |
CN101604250B (zh) * | 2008-06-12 | 2014-07-16 | 普安科技股份有限公司 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
-
2009
- 2009-05-21 CN CN200910143006.3A patent/CN101604250B/zh active Active
- 2009-05-21 CN CN201410257909.5A patent/CN103984587B/zh active Active
- 2009-05-22 TW TW098117105A patent/TWI456389B/zh active
- 2009-05-26 CN CN200910143069.9A patent/CN101604251B/zh active Active
- 2009-05-26 CN CN201410141647.6A patent/CN103927206B/zh active Active
- 2009-06-11 US US12/482,774 patent/US8356292B2/en active Active
- 2009-06-12 GB GB0910195.7A patent/GB2460767B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494510A (zh) * | 2001-01-05 | 2004-05-05 | 马丁工程公司 | 传送带的导向装置 |
CN1482547A (zh) * | 2002-07-29 | 2004-03-17 | �Ҵ���˾ | 以非破坏性方式升级驱动器固件的方法和系统 |
CN1815455A (zh) * | 2004-12-10 | 2006-08-09 | 普安科技股份有限公司 | 储存系统及其不良储存装置资料维持方法 |
CN101082853A (zh) * | 2006-05-31 | 2007-12-05 | 株式会社日立制作所 | 闪速存储器存储系统 |
Also Published As
Publication number | Publication date |
---|---|
GB2460767A (en) | 2009-12-16 |
CN103927206B (zh) | 2017-06-16 |
US20090313617A1 (en) | 2009-12-17 |
US8356292B2 (en) | 2013-01-15 |
CN101604251A (zh) | 2009-12-16 |
TWI456389B (zh) | 2014-10-11 |
CN101604250A (zh) | 2009-12-16 |
CN103927206A (zh) | 2014-07-16 |
CN103984587A (zh) | 2014-08-13 |
GB0910195D0 (en) | 2009-07-29 |
CN101604250B (zh) | 2014-07-16 |
GB2460767B (en) | 2012-06-27 |
CN101604251B (zh) | 2014-05-07 |
TW200951710A (en) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984587B (zh) | 储存虚拟化系统中更新实体储存装置的控制程序的方法 | |
JP3743841B2 (ja) | 記憶装置システムおよび制御方法 | |
US7281089B2 (en) | System and method for reorganizing data in a raid storage system | |
JP3753461B2 (ja) | 冗長性パリティ法によるデータの書き込み方法およびデータ記憶システム | |
KR100701563B1 (ko) | 스토리지 제어 장치 및 방법 | |
CN107250975A (zh) | 数据存储系统和数据存储方法 | |
JPH05505264A (ja) | データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶 | |
CN101609420A (zh) | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 | |
CN102508724A (zh) | 一种基于软raid的磁盘坏块处理方法 | |
CN110187830A (zh) | 一种加速磁盘阵列重建的方法及系统 | |
US7062605B2 (en) | Methods and structure for rapid background initialization of a RAID logical unit | |
TWI278745B (en) | Raid consistency initialization method | |
Friedman | RAID keeps going and going and...[magnetic disk storage] | |
JPH03192436A (ja) | 情報記録再生方式 | |
US7430635B2 (en) | Methods and structure for improved import/export of RAID level 6 volumes | |
JP3122252B2 (ja) | ディスクアレイ制御方式 | |
JP2003271425A (ja) | 記憶制御装置 | |
Klein et al. | Optimizing RAID for long term data archives | |
JPH07200190A (ja) | デイスクアレイ装置 | |
JPS597986B2 (ja) | 磁気デイスク・サブ・システム | |
MXPA99003253A (en) | Expansion of the number of drives in a raid set while maintaining integrity of migrated data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |