储存虚拟化系统中更新实体储存装置的控制程序的方法

文档序号:6578501阅读:236来源:国知局

专利名称::储存虚拟化系统中更新实体储存装置的控制程序的方法
技术领域
:本发明涉及一种实体储存装置的控制程序更新的方法,特别是涉及一种实体储存装置的控制程序更新的方法,以及用此方法的储存虚拟化控制器及其系统。
背景技术
:先前技术的相关数据,请参考美国专利No.7032218、No.6907504、No.6728833、No.6816950、No.6820211及美国/>开专利No.20050033933。由以上先前技术可知在传统储存虚拟化系统中,硬碟在更新控制程序时,系统会进入降级才莫式(degradedmode),该系统在降级^^式且不中断来自主机端的读写请求情况下,一次仅能更新一个硬碟的控制程序;储存虛拟化系统通常具有许多个硬碟,若该系统中全部的硬碟皆欲更新控制程序时,将耗费系统相当长的时间,且该系统长时间处于降级模式,造成整体效能不佳的现象,并增加数据遗失的风险。此外,在部分先前技术中,系将要更新控制程序的硬碟中全部的数据复制至另一代理硬碟后才进行更新,并在控制程序更新完成后,再将代理硬碟中全部的数据复制回更新完成的硬碟,非常地耗时且效能不佳。再者,由于现有习知的技术在进行完成更新控制程序后执行磁碟机重建时,无法进行存取,大幅降低了系统的效能。另外,传统的储存虚拟化系统在更新该实体储存装置控制程序的程序中,若该系统仅具有单一同位数据用来检核使用者数据,当发生其他的实体储存装置毁损(Fail)时,会使该系统部分的数据遗失,无法重建回来,造成不可挽回的灾害。综观上述说明,传统的储存虛拟化系统在更新其实体储存装置的控制程序时,有更新过程时间长、整体效率不佳、数据遗失的风险高等缺点,且该实体储存装置更新控制程序的过程中,若该系统仅具有检核使用者数据的一同位数据,当发生实体储存装置毁损时,会造成系统数据遗失的重大灾害。由此可见,上述现有的储存虛拟化系统在更新其实体储存装置的控制程序方法在方法、产品结构及使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决上述存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般方法及9产品又没有适切的方法及结构能够解决上述问题,此显然是相关业者急欲解决的问题。因此如何能创设一种新的储存虛拟化系统中更新实体4渚存装置的控制程序的方法,实属当前重要研发课题之一,亦成为当前业界极需改进的目标。
发明内容本发明的目的在于,在一具有一或多个用来检核使用者数据的同位数据的储存虚拟化系统中提供一种更新实体储存装置的控制程序的方法及其系统,以提升储存虚拟化系统的效能。依据本发明的一实施例,控制程序更新完成后执行部分重建时即可对于未变动数据区段直接进行存取。本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,该方法包含以下步骤选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求所对应的未变动数据区段注记为一变动数据区段;以及该被选定的实体储存装置在完成更新控制程序后执行部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区^:完成部分重建后才发出读取或写入请求。本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。前述的方法,其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的数据区段读取时,则利用其冗余数据算出读取数据并送出。前述的方法,其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变。前述的方法,其中所述的部分重建包含以下步骤a.选取一变动凄史据区段,利用其冗余数据算出该变动数据区段的新数据,并把该变动数据区段以新数据写覆且取消该变动数据区段的注记;以及b.重复执行步骤a,直到该实体储存装置中无任何变动数据区段为止。前述的方法,其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段读取时,则利用其冗余数据算出读取数据并送出。前述的方法,其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则直接将该变动数据区段以写入请求相对应的写入数据写覆且取消该变动数据区段的注记。前述的方法,其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数小于或等于该同位实体储存装置的数目时,则继续执行该被选定的实体储存装置的控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数大于该同位实体储存装置的数目时,则该被选定的实体储存装置上的变动数据区段的数据被标记为错误数据。前述的方法,其中当发生有实体储存装置毁损且该发生毁损的实体储存装置是正在执4亍控制程序更新或部分重建,若该实体储存装置上有变动数据区段时,则取消该变动数据区段的注记。前述的方法,其中若该变动数据区段的数据连结状态是一具有连结数据的状态时,则将对该实体储存装置发出的写入请求的相对应数据储存于一存储器内而为一连结数据。前述的方法,其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的数据区段读取时,则利用其冗余数据算出读取数据并送出。前述的方法,其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的变动数据区段读取时,则将该变动数据区段的连结数据直接送出。前述的方法,其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的未变动数据区段写入时,则注记该未变动数据区段为一变动数据区段及储存该写入请求相对应的写入数据为一连结数据。前述的方法,其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变及以写入请求相对应的写入数据将该变动数据区段原先的连结数据直接写覆。前述方法,其中所述的部分重建包含以下步骤a.选取一变动数据区段,复制该变动数据区段的连结数据至该变动数据区段上并取消该变动数据区段的注记;以及b.重复执行步骤a,直到该实体储存装置中无任何变动数据区段为止。前述的方法,其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段读取时,则将该变动数据区段的连结数据直接送出。前述的方法,其中当该被选定的实体储存装置于部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则直接将该变动数据区段以写入请求相对应的写入数据写覆且取消该变动数据区段的注记。前述的方法,其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段写入时,、则该变动数据区段的注记维直接写覆。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数小于或等于该同位实体储存装置的数目时,不会发生系统数据遗失,该被选定的实体储存装置则继续执行控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损数目与正在更新控制程序的实体储存装置的数目的总和大于该同位实体储存装置的数目,若需对该正在更新控制程序的实体储存装置内的未变动数据区段读取时,则暂不回复该读取请求,直到该正在更新控制程序的实体储存装置完成控制程序的更新后,再利用冗余数据算出读取数据并送出。前述的方法,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数大于该同位实体储存装置的数目时,则复制该变动数据区段的连结数据至该变动数据区段上。前述的方法,其中当发生有实体储存装置毁损且该发生毁损的实体储存装置正在执行控制程序更新或部分重建,若该实体储存装置上有变动数据区段时,则取消该变动数据区段的注记。前述的方法,其中所述的储存虚拟化系统包含多个实体储存装置、一第一及第二存储装置,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序,且该第一存储装置是用来储存变动数据区段的注记及该第二存储装置是用来储存该注记的连结数据。前述的方法,其中所述的第一及第二存储装置位于磁碟阵列控制器的存储器中。前述的方法,其中所述的第一、第二存储装置是一动态随机存取存储器或一非易失性々者存装置。前述的方法,其中所述的非易失性储存装置是一硬式磁碟机或固态磁碟机,或是一具有电池或超级电容供应电源的动态随机存取存储器。前述的方法,其中所述的储存虛拟化系统包含多个实体储存装置,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序。前述的方法,其中所述的数据区段的大小是一实体储存装置的一^f兹区、一快取存储器、或一逻辑区块的大小。前述的方法,其中若该储存虛拟化系统具有N个同位实体储存装置,其中N为自然数,在不中断主机单元对实体储存装置的读、写请求情况下,该系统可同时执4亍N个实体储存装置的控制程序的更新。前述的方法,其更包含以下步骤在所述实体储存装置中设置至少一数据储存带,且在同一数据储存带中提供多个同位数据储存块。本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种可在储存虚拟化系统中更新实体储存装置内的控制程序的储存虚拟化控制器,该储存虛拟化控制器包含有一中央处理电路;一主机端输入输出装置连结控制器,用以连接于该中央处理电路及至少一主机,用来接收来自主机的IO请求;以及一装置端输入输出装置连结控制器,用以连接于该中央处理电路及多个实体储存装置,用来回应于接收自该主机的10请求而对所述实体储存装置执行10操作,其中所述实体储存装置设置有至少一数据储存带,且在同一数据储存带中设置有至少一个同位数据储存块;其中,该中央处理电路执行以下步骤以更新该实体储存装置内的控制程序选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求所对应的未变动数据区段注记为一变动数据区段;以及该被选定的实体储存装置在完成更新控制程序后执行部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区段完成部分重建后才发出读取或写入请求。本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。前述的储存虚拟化控制器,其中当发生有实体储存装置毁损且该储存虛拟化系统中实体储存装置的离线总数小于或等于该同位实体储存装置的数目时,则继续执行该被选定的实体储存装置的控制程序更新或部分重建,直到该被选定的实体々者存装置完成部分重建为止。前述的储存虚拟化控制器,其中当发生有实体储存装置毁损且该储存虛拟化系统中实体储存装置的离线总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。前述的储存虚拟化控制器,其中若该储存虚拟化系统具有N个同位实体储存装置,其中N为自然数,在不中断主机单元对实体储存装置的读、写请求情况下,该系统可同时执行N个实体储存装置的控制程序的更新。前述的储存虛拟化控制器,其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数小于或等于该同位实体储存装置的数目时,不会发生系统数据遗失,该被选定的实体储存装置则继续执行控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。前述的储存虚拟化控制器,其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虛拟化系统中实体储存装置的毁损总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。本发明的目的及解决其技术问题另外再采用以下技术方案来实现。依据本发明提出的一种可更新实体储存装置内的控制程序的储存虛拟化系统,该系统包含一主机,用来发出IO请求;一储存虚拟化控制器,该储存虛拟化控制器耦接于该主机且用于执行10操作以回应于该10请求;以及多个实体储存装置,所述实体储存装置耦接于该储存虛拟化控制器,用来提供该储存虚拟化电脑系统储存空间,其中所述实体储存装置中设置有至少一数据储存带,且在同一数据储存带中设置有至少一个同位数据储存块;其中,该储存虛拟化控制器执行以下步骤以更新该实体储存装置内的控制程序选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求所对应的未变动数据区段注记为一变动数据区段;以及该被选定的实体储存装置在完成更新控制程序后执行部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区段完成部分重建后才发出读取或写入请求。本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。前述的储存虚拟化系统,其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数小于或等于该同位实体储存装置的数目时,则继续执行该被选定的实体储存装置的控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。前述的储存虚拟化系统,其中当发生有实体储存装置毁损且该储存虛拟化系统中实体储存装置的离线总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。前述的储存虚拟化系统,其中若该储存虚拟化系统具有N个同位实体储存装置,其中N为自然数,在不中断主机单元对实体储存装置的读、写请求情况下,该系统可同时执行N个实体储存装置的控制程序的更新。前述的储存虚拟化系统,其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数小于或等于该同位实体储存装置的数目时,不会发生系统数据遗失,该被选定的实体储存装置则继续执行控制程序更新或部分重建,直到该4皮选定的实体储存装置完成部分重建为止。前述的储存虚拟化系统,其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虛拟化系统中实体储存装置的毁损总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明储存虚拟化系统中更新实体储存装置的控制程序的方法至少具有下列优点及有益效果本发明在一具有一或多个用来检核使用者数据的同位数据的储存虚拟化系统中提供一种更新实体储存装置的控制程序的方法及其系统,以提升储存虚拟化系统的效能。依据本发明的一实施例,控制程序更新完成后执行部分重建时即可对于未变动数据区段直接进行存取。综上所述,本发明可提升储存虚拟化系统的效能。本发明在技术上有显著的进步,具有明显的积极效果,诚为一新颖、进步、实用的新设计。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细"i兌明如下。图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:装置端输入输出装置连结控制器具体实施例方式为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的储存虛拟化系统中更新实体储存装置的控制程序的方法其具体实施方式、方法、步骤、结构、特征及其功效,详细"i兌明如后。有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得一更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。储存虚拟化技术储存虚拟化(Storagevirtua1ization)4支术已^皮广泛地应用于数位4诸存系统中,可藉由组合凄史个实体4诸存装置(PhysicalStorageDevice,简称PSD),来组成一个逻辑储存单元以供主机单元(HostEntity)进行存取,例如一个逻辑磁碟(LogicalDiskDrive,LD)。储存虛拟化技术的主要应用是将数个较小的实体储存装置进行组合,组合后产生一个容量较大、错误容许率较高且效能较高的逻辑储存装置。当该储存虛拟化系统中的一实体储存装置发生毁损(Fail)时,在更换新实体储存装置后,该毁损的实体储存装置上原先的储存数据可由其他实体储存装置上所储存的使用者数据(userdata)及同位数据(paritydata)进行重建(rebuiId),而将该毁损的实体储存装置上原先所储存的数据重新产生(regenerate)并储存到新实体储存装置上。图1是依据本发明的一实施例的一储存虚拟化系统,该储存虚拟化系统1包4舌一石兹》茱阵列控制器(RAIDcontroller,RedundantArrayofInd印endentDisksController)150耦接至一主机单元10及一实体储存装置阵列(PSDArray)100耦接至该磁石莱阵列控制器150上。该主才几单元10可为一主机电脑,如一服务器系统、工作站、个人电脑系统等。另外,上述储存虚拟化系统1也可以为包括内建(bui11-in)—磁碟阵列控制卡(RAIDCard)及一实体储存装置阵列100的一主机电脑,如储存服务器(storages已rver)。一储存虚拟化控制器(storagevirtualizationcontroller,SVC)的主要目的是将实体储存媒体的各区段的组合映射(map)形成一主机系统可见的逻辑媒体单元。由该主机系统发出的输入输出请求(IOrequest)在被储存虛拟化控制器接收之后会先被剖析并解译,且相关的操作及数据会被储存虚拟化控制器编译成实体储存装置的输入输出请求,并对实体储存装置发出所述输入输出请求。这个过程可以是间接地,例如运用快取、延迟(如:回写(write-back))、预期(anticipate)(先读(read-ahead))、群集(gro叩)等操作来加强效能及其他的操作特性,因而一主机输入输出请求并不一定是以一对一的方式直接对应于实体储存装置输入输出请求。因此,一个来自主机单元的读取请求(readrequest)或写入请求(writerequest)可能对应(correspond)至一个或多个实体j诸存装置的读取或写入请求,且多个来自主机单元的读取或写入请求也可能对应至一个实体储存装置的读取或写入请求;因而,一个实体储存装置的读取或写入请求可能对应至来自主机单元的一个或多个读取或写入请求,且多个实体储存装置的读取或写入请求也可能对应至来自主机单元的一个读取或写入请求。依据本发明的一实施例,该石兹碟阵列控制器150可为一储存虚拟化控制器,可对该实体储存装置阵列100中的多个实体储存装置IIO执行储存虚拟化程序,而将该多个实体储存装置110映射成为一或多个在该主机单元lO上呈现的逻辑磁碟机(logicaldisk,LD),该逻辑i兹i莱才几可净皮规划成多个逻辑区块(logicalblock)来储存数据。依据本发明的一实施例,该,兹-莱阵列控制器150包括一主才几端输入输出(10)装置连结控制器(host-side10deviceinterconnectcontroller)160、中央处理电路(centralprocessingcircuitry,CPC)170、存储器(memory)180、装置端输入输出装置连结控制器(device-side10deviceinterconnectcontroller)190等。该主机端输入输出装置连结控制器160连接该主机单元10与中央处理电路170,用来作为该磁碟阵列控制器150及主机单元10间的介面及緩冲。主机端输入输出装置连结控制器160是用来接收自该主机单元10所传来的10请求和相关数据,并且将其映射(mapping)及/或传送(transfer)至中央处理电路170。该中央处理电路170包括有CPU芯片组/同位引擎175、中央处理器(CPU)176、唯读存储器(readonlymemory,ROM)177、非易失性存储器(Non-VolatileRAM,NVRAM)178等电路。依据本发明的一实施例,该CPU芯片组/同位引擎175接收来自主机单元10的写入数据,经该CPU芯片组/同位引擎175处理后产生一或多个同位数据,再将该写入数据及该一或多个同位数据写至所述PSD110中。若该同位数据为多个时,该多个同位数据以不同的演算方式所求得。另夕卜,当该实体储存装置阵列100中的PSD110发生毁损时,可在该毁损的PSD被更换后,通过该CPU芯片组/同位引擎175,利用该实体储存装置阵列100中其他PSD上的使用者数据及所述同位数据,执行同位运算(paritycomputation),以重新产生(regenerate)该毁损PSD上原先的数据,并将运算结果储存至新PSD中。非易失性存储器(NVRAM)178用来储存该实体储存装置阵列100的IO操作执行状态的相关数据,以作为在IO梯:作尚未完成前发生不正常电源关闭后、电源又回复时检验^使用。存储器180可为动态随机存取存储器(dynamicrandomaccessmemory,歸M)或非易失性存储器,可用来储存系统启动及控制程序,以及其他暂存的数据。依据本发明的一实施例,存储器180又可包括第一存储器181用以储存一判别数据(determinationdata),以及第二存储器182用以储存上述判别数据所连结的数据(连结数据,linkeddata)。该判别数据与连结数据将于后文中说明。依据本发明的另一实施例,该第一存储器181及第二存储器182可以皆为动态随机存取存储器,或皆为非易失性存储器,或一者为动态随机存取存储器、一者可为非易失性存储器的组合。上述所提及的非易失性存储器可为快闪存储器(flashmemory)、电子抹除式可程序唯读存储器(electricallyerasableprogrammableread-onlymemory,EEPROM)、磁阻式随机存取存储器(magneticrandomaccessmemory,MRAM)、铁电存储器(ferroelectricRAM,FRAM)等。该非易失性存储器甚至可以为一具有电池或一超级电容(supercapacitor)或是其^也备用电源来供应电力的动态随机存取存储器、或是当电源关闭时还能保存数据一段时间的其他储存媒体。依据本发明的一实施例,该装置端输入输出装置连结控制器190连接于该中央处理电路170与该实体储存装置阵列100之间,作为此二者间的介面与緩冲,用以将该中央处理电路170处理后的数据写入该实体储存装置阵列100中,或是自该实体储存装置阵列100中读取数据至该中央处理电路170中。依据本发明的一实施例,该实体储存装置阵列100包含多个实体储存装置110,可为硬式磁碟机(HDD)或固态磁碟(SSD)、或光碟机(opticaldiscdrive)、或勵光碟机(digitalversatilediscdrive,DVDdrive)等,作为该储存虛拟化系统1储存数据使用。所述实体储存装置110内包含一非易失性存储器及一或多个记录媒体。该非易失性存储器内储存一控制程序(controlprogram)112,作为所述实体4诸存装置110的相关10控制。该控制程序112为一可程序化的程序码(code),故该控制程序112可通过所述实体储存装置HQ的10介面将所述实体储存装置110新的控制程序112写入,而将原先的控制程序112覆盖。实体储存装置110的所述记录媒体可规划成作为储存数据使用的多个数据区段(datasegment),而该数据区段的大小是可变动。上述当主机单元IO欲写入数据至实体储存装置阵列100时,会先将数据暂存于存储器180中,再将存储器180中的数据储存到PSD110中,其数据传递路径依序为主机单元IO、主机端输入输出装置连结控制器160、中央处理电路170、存储器180、中央处理电路170、装置端输入输出装置连结控制器190、实体储存装置阵列100。当主机单元IO欲自实体储存装置阵列IOO读取数据时,该实体储存装置阵列100会先将数据暂存于存储器180中,再将存储器180中的数据送到主机单元10,其数据传递路径依序为实体储存装置阵列100、装置端输入输出装置连结控制器190、中央处理电路170、存储器180、中央处理电路170、主机端输入输出装置连结控制器160、主4几单元10。本发明所述的储存虚拟化系统,包含检验使用者数据用的至少一同位数据、一存储装置、至少一》兹碟阵列控制器及多个实体储存装置,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序。依据本发明的一实施例,图2A是图1中实体储存装置阵列100的方块图。在本实施例中,该实体储存装置为硬盘驱动器(HDD)。图2A的实体储存装置阵列IOO中包括了6部HDD110,但在实际的应用中,并未受限于此数目。在HDD1至HDD6中,每一HDD包含了多个数据储存块(datachunk,或简称chunk),例如HDD1内的D1、D5…D(4N-3)或HDD2内的D2、D6...D(4N-2)或HDD3内的D3、D7…D(4N-l)或HDD4内的D4、P2…D(4N)或HDD5内的P1、Q2...PN或HDD6内的Q1、D8…QN等,皆称为一数据々者存块。其中该每一数据储存块具有一编号,且该每一HDD110内编号相同的数据储存块的数据则可组合成一笔包含多个使用者数据储存块及二个同位数据储存块的数据储存带(datastripe,或简称stripe)。图2A中数据储存带1(stripe1)由Dl、D2、D3、D4、Pl与Ql等编号皆为No.1的数据储存块所组成,其中Dl、D2、D3与D4为使用者数据储存块,Pl与Ql为同位数据储存块;数据储存带2(stripe2)由编号皆为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-l)与D(4N)为使用者数据储存块,PN与QN为同位数据储存块。由此可知,该实体储存装置阵列100的数据即是由N个数据储存带的数据所组成。所述同位数据储存块可平均分布于HDD1至HDD6中,或是将所述同位数据储存块储存于HDD1至HDD6其中的2个同位硬碟(parityHDD)中(图未示)。该同位数据储存块Pl可由使用者数据储存块Dl、D2、D3与D4执行一同位运算求得;该另一同位数据储存块Ql可由使用者数据储存块Dl、D2、D3与D4执行不同于Pl的另一同位运算求得。Dl的数据也可由D2、D3、D4与P1或由D2、D3、D4与Ql分别执行不同的同位运算计算求得。由此可知,该同一数据储存带中的其中一数据储存块的数据(不限于使用者数据储存块或同位数据储存块)皆可由该数据储存带中与该数据储存块编号相同的其他HDD上的数据储存块的数据经同位运算求得。同故可知当Dl、D2、D3与D4有数据储存块无法读出时,该无法读出的数据储存块可由同一数据储存带中的其他冗余数据利用同位运算算出。虽然图2A中仅有P与Q二种同位数据储存块,但在实际应用中,并不受限于此数目,可为3种或超过3种不同的同位数据储存块。在HDD1至HDD6中,每一HDD包含了多个数据区段用以储存数据,其中该每一数据区段具有一编号且可设定该数据区段空间的大小。依照设定的差异,该数据区段的大小,可为一》兹区(sector)的大小、一逻辑区块(logicalblock)的大小、一快取存储器(cachebuffer)的大小、一数据卡者存块的大小或其他的大小。在图2A的例子中,该数据区^:的大小为一个数据储存块的大小,但是在图2B的例子中,一个数据储存块中包了含多个数据区段,例如D1数据储存块中包含了数据区段D1-1、Dl-2、Dl-3、Dl-4,此时一个使用者数据储存块中包含了多个使用者数据区段(userdatasegment)且一个同位数据i者存块包含了多个同位数据区段(paritydatasegment)。当一数据区段的数据无法读出时,可利用同一数据储存带中该数据区^爻的其他冗余数据区段(redundantdatasegment)(包含4吏用者数据区段及同位数据区段)经同位运算算出。该磁碟阵列控制器150可接收来自主机单元10的读取或写入请求,该读取或写入请求相对应于HDD上的数据,可能仅包含一数据储存块中的一小部分数据,也可能包括一个数据储存块以上的数据。图3是本发明的概略流程图。图3中,该石兹碟阵列控制器于该储存虛拟化系统中,同时执行一或多个PSD控制程序的更新,其中包含了该一或多个PSD在更新控制程序或执4亍部分重建(partialrebuilding)期间,该磁碟阵列控制器若需要对该一或多个PSD发出读取/写入请求(Read/WriteRequest,或以R/WRequest来表示)时的处理程序;其中更包含了该一或多个PSD更新控制程序或执行部分重建期间,若发生PSD毁损的情形时的处理程序。在本发明中,所谓部分重建(partialrebuilding)程序,是指在PSD的控制程序更新完成后,;兹碟阵列控制器针对该PSD的变动数据区-敬的部分执4亍数据更新。所谓变动数据区^:(modifieddatasegment),是表示一数据区段的数据因为写入请求而需要被更新,但却因为该PSD正在进行控制程序更新而无法对该数据区段进行数据更新,而在目前的状态下其中数据为不正确的旧数据;未被注记为变动数据区段的数据区段则称为未变动数据区段(unmodifieddatasegment)。部分重建中的数据更新,可以是利用同一数据储存带的使用者数据及同位数据执行同位运算来针对变动数据区段重新产生正确的使用者数据并加以更新,也可以是利用该变动数据区段所连结的连结数据(linkeddata)来将旧数据更新为正确的使用者数据。连结数据将于下文说另作说明。该PSD更新控制程序的流程开始于图3中的步骤300。步骤310中,该储存虛拟化系统中的箱S莱阵列控制器(以下简称为控制器)150侦测该系统中的同位PSD(parityPSD)的数目及PSD控制程序更新模式的指定。此处所谓的同位PSD的数目是指在一个数据储存带中所包含的同位数据储存块(paritydatachunk)的数目。该同位PSD的数目等于0(没有同位PSD)的状况不在本发明讨论的范围内。根据本发明的实施例,该储存虚拟化系统的硬体配置中,该同位PSD数目是一个或多个。该PSD控制程序的更新模式可为PSD控制程序更新模式A或是PSD控制程序更新模式B。当PSD在更新控制程序的期间中,若控制器需要对该PSD发出写入请求时,因该PSD此时无法写入数据,故该控制器会先将该写入请求所对应的该PSD的数据区段记录为一判别数据(determinationdata)用来判别一PSD数据区段是否为变动数据区段,该记录表示该PSD在更新控制程序的期间,该PSD上该数据区段的数据已发生异动,而须伺PSD更新控制程序的程序完毕后,再将发生有数据异动的数据区段更改成正确数据。若仅记录发生数据变动PSD的数据区段于判别数据中,但并不储存该写入请求相对应于该PSD的写入数据(即连结数据)时,则为PSD控制程序更新模式A;若除了记录发生数据变动PSD的数据区段外,并同时储存连结数据,且利用判别数据与的连结时,则为PSD控制程序更新模式B。因为该写入请求相对应于该PSD的写入数据与变动数据区段是利用判别数据连结在一起,故该写入请求相对应于该PSD的写入数据称为连结数据,此时该;陂注记为变动数据区段的数据连结状态是一具有连结数据的状态。该判别数据,可为一变动数据区#爻表(modifieddatasegmenttable)、或是一阵歹寸(array)或一链结串歹寸(linklist)或其他不同形态的数据结构的数据。依据本发明的一实施例,该判别数据及连结数据可以储存在存储器180的第一存储器181及第二存储器182中。依据本发明的另一实施例,该判别数据及连结数据也可以储存在存储器180以外的其他存储器,甚至是储存在该磁碟阵列控制器之外的存储器。所述存储器也是一硬碟装置(HardDiskDrive)或是当电源关闭时还能保存数据一段时间的其他储存媒体。上述硬碟装置可包含一般具有马达装置的硬碟或是固态磁碟(solidstatedisk,SSD)。该判别数据也可以是^i:储存于各个PSD当中,例如各PSD的保留空间(reservedspace)中,甚至是储存于各个凄t据区段中。在本发明下述的实施例中,主要是以变动数据区段表作为该判别数据的一实施例来说明本发明。其中,变动数据区段表是用来记录变动数据区段的编号,以判别一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的读取/写入请求的处理程序将会改变。步骤34Q中,该(等)PSD在更新控制程序期间,若发生PSD毁损时,该控制器的处理程序。由于同位PSD数目及更新模式的不同,该储存虚拟化系统所能承受PSD发生毁损的数目也会不同,该控制器会根据当时的情况执4亍相对应的程序。步骤320、330与340的步骤中,该3个步骤是以虚线框起并以Ml表示,该M1中的3个步骤在图3中的流程图中虽然有先后之别,但在实际执4亍时,该Ml中的3个步骤可为同时扭3亍的。步骤350中,该(等)PSD完成控制程序的更新。当执行更新控制程序的PSD为两个或两个以上时,其中该每一PSD执行控制程序更新的程序系独立的,可为多个PSD同时执行或多个PSD在不同时间执4亍。步骤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-1ine)时无法在无同位PSD的情形下执行该(等)PSD控制程序的更新,故经步骤430判断后,直接跳至步骤470中,结束本流程。若否,则该控制器150侦测该储存虛拟化系统中具有m个(m》l)同位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个等待更新控制程序的PSD110,以执行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的PSD110设定为离线状态。在本发明中,该离线状态是指该PSD110自开始执行控制程序更新至部分重建完成并恢复连线前的一段时间。另外,当该实体储存装置阵列100中任何的PSD110发生毁损时,该发生毁损的PSD110将无法受到该控制器150来管控,因而该发生毁损的PSD110也视为离线状态。该实体储存装置阵列100的多个PSD110中,哪些PSD已经完成控制程序的更新及该PSD的连线/离线状态等相关资讯可^L记录在控制器150中的非易失性存储器178内(例如铁电存储器,FRAM)、或是其他实体储存装置、或是不因电源中断而消失所储存的数据的其他储存媒体内,以使得该PSD的连线/离线记录可以一直被保存。藉此,当变动数据区^:表因电池电力耗尽或毁损而遗失时,伺电源恢复后,该控制器150,能依此连线/离线记录直接对该PSD进^f亍全部的数据重建。步骤530中,该控制器150执行该被选定的PSD110控制程序112的更新。由于该储存虚拟化系统中,可能同时包含一或多种不同传输介面的PSD,》口串歹'j先进净支术才妄取(serialadvancedtechnologyattached,SATA)、串列附接小型电脑系统介面(serialattachedSCSI,SAS)或光纤通道介面(fibrechannel,FC)等不同传输介面的PSD,故各种不同传输介面、厂牌的PSD有其相对应的PSD控制程序。故该控制器150依照各PSD110的传输介面、厂牌与型号,选择相对应的控制程序码(controlprogramcodes)并载入。此等控制程序码112可通过主^/L单元10,先将该控制程序码载入(load)至控制器150中,再由控制器150将该控制程序码写入PSD110的NVRAM内。该PSD110控制程序更新的时间与该PSD的特性而有差异,时间约为数十秒至数分钟之间。上述步骤510、520及530等3个步骤,即图3步骤320中的详细流程。当该控制器150收到来自主机单元10对该PSD的写入请求时,该控制器150会需要对该写入请求的数据进行运算以产生新的同位数据,来取代原先的同位数据。当来自主机单元的写入或读取请求需针对该离线进行控制程序更新的PSD110来存取数据时,则4丸行图6中步骤540。图6为接续图5的流程图。步骤540中,该控制器150侦测该PSD110在更新控制程序期间,该储存虚拟化系统中是否有新发生PSD毁损的情况。若否,则执行步骤550;若是,则执行步骤541。在本发明中,当发生PSD毁损的情况时,该控制器150会记录该发生毁损的PSD。此处所指的新发生PSD毁损的情况是指有PSD毁损的情况发生,但该控制器150尚未记录该发生毁损的PSD;若曾经有PSD毁损的情况发生且该控制器150已经记录该发生毁损的PSD时,则不^L为有新发生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,正在执行控制程序更新的该PSD110上的变动数据区段的数据无法通过与该变动数据区段编号相同的其他PSD上的数据区段的数据来部分重建该变动数据区段的数据,造成该储存虚拟化系统发生部分数据遗失,无法再继续正常运作;若PSD离线的总数不大于m,则系统可继续运作。步骤542中,依据本发明的一实施例,该发生毁损PSD的数目、离线执行控制程序更新PSD的数目及离线执行部分重建PSD的数目总和小于或等于该同位PSD的数目m时,该控制器150可继续接收来自主机单元的10请求,该系统并不会遗失数据,其他程序可继续执行,故直接跳回步骤540。依据本发明的另一实施例,该发生毁损PSD的数目、离线进行控制程序更新PSD的数目及离线4丸行部分重建PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,但为了降低系统风险,该控制器150会暂停接收来自主机单元的10请求,而在等到该PSD执行至步骤640完成后,才会恢复接收来自主机单元的IO请求及再接受执行其他PSD控制程序的更新。上述步骤542中,若以一个具有2个同位PSD的RAID6的储存虚拟化系统为例,当该系统中1个PSD执行控制程序的更新时,该系统还可承受l个其他PSD发生毁损,不会造成部分数据遗失的情形;在更换新PSD后,该毁损PSD上原先的数据可利用同位运算再重建(rebuild)回来。若该系统在已有1个PSD执行控制程序的更新时,另有2个或2个以上的PSD发生毁损,则系统会产生部分数据遗失的情形。步骤544中,因为有PSD发生毁损,而使得该储存虚拟化系统中PSD的离线总数超出该储存虚拟化系统所能承受PSD离线总数的最大上限,造成该储存虚拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的一实施例,该控制器150停止接受来自主机单元10的10请求,此时该正在执行PSD更新控制程序程序的PSD可继续执行控制程序更新至更新完成且不必执行部分重建程序。该控制器150会将该PSD内变动数据区段上的数据,标记为错误数据(markedasbaddata);若变动数据区段表内有"i己录i亥PSD6令变动凄丈才居区,殳编号(modifieddatasegmentnumber)时,贝'J该控制器150会将该变动数据区段表内该PSD所有的数据区段编号删除。步骤544执行完毕后,即跳回步至骤540,经过步骤540至步骤570的程序后,该PSD110重新恢复连线(步骤640)并结束PSD控制程序更新模式A的程序(步骤650)。上述该PSD内的变动数据区段的数据因发生毁损PSD的数据遗失,已经无法通过部分重建恢复至一正确的数据,该PSD110中变动数据区^l的数据并非正确的数据,故依据本发明的一实施例,该控制器150将该PSD110中变动数据区段的数据,标记为错误数据,若以后再有欲对该PSD标记为错误数据的数据区段来存取数据时,该控制器150会对主机单元回应此数据区段为错误数据。依据本发明的另一实施例,当一数据区段被标示为错误数据后,若该数据区段在其他外部的储存虚拟化系统中还有另一备份数据,则可由主机端读取该备份数据重新写入而更正该错误数据。步骤550中,该控制器150判断于该PSD110控制程序更新完成前期间,是否需对该PSD110发出读取/写入请求。若是,则执行步骤552;若否,则执行步骤560。步骤552中,该控制器150判断需要对该PSD110发出的读取/写入请求是否为一读取请求。若是,则执行步骤554;若否,则表示需要对该PSD110发出的读取/写入请求是一写入请求,则执行步骤556。步骤554中,该控制器150需要对该PSD110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据储存于该正在执行控制程序更新的PSD110其中的数据区段内,由于此时该PSD110离线正在执行控制程序的更新,无论该数据区段为未变动数据区段或变动数据区段,都无法自该PSD110中读取数据,而其他非正在执行更新控制程序及部分重建的PSD110则可正常读取数据。该控制器150是利用其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)执行同位运算来重新产生该PSDIIO上该编号的数据区段的数据(此又称利用冗余数据算出),并将运算结果送出。步骤554执行完毕后,便跳回至步骤540。步骤556中,该控制器150判断该写入请求对应的该PSD110上的数据区段是否为一变动数据区段。该变动数据区段的判断检查变动数据区段表内是否有记录该PSD的该变动数据区段编号。若否,则执行步骤558。若是,则代表其为一变动数据区段,表示该编号的数据区段内的数据是一变动数据,此时虽然无法直接将该数据区段相对应的写入数据写入该数据区段内,但由于该数据区段的编号之前已经被记录于变动数据区段表内,故不需将该PSD110的该数据区段编号再记录一次,而让原有记录维持不变,便直接跳回步骤540。步骤558中,因该写入请求所对应的该PSD110的数据区段原是一未变动数据区段,故该控制器150将该写入请求所对应的该PSD110的数据区段编号,记录于变动数据区段表内,表示该PSD110上该数据区段编号的数据需要被更新,目前的状态下不可被读出使用。步骤558执行完毕后,便再度跳回步骤540中。步骤556及558中,该控制器会对该写入请求的数据进行运算以产生新的同位数据,来取代原先的同位数据。故当一变动数据区段表中记录有其中一数据区段编号时,表示该数据区段所对应的同位数据区段已经产生改变,由于该数据区段此时无法直接写入,仅先做一记录,伺该PSD110执行部分重建程序时,再依此记录,重建该数据区段的数据。步骤560中,该控制器150判断该PSD110是否完成控制程序的更新。若是,则执行步骤570;若否,则跳回执行步骤540。在该PSD110更新控制程序期间,该控制器150会在步骤540至步骤560间反复执行,直到该PSDIIO完成控制程序的更新。当该PSDIIO在控制程序更新期间,若该控制器150需要对该PSD110发出写入请求时,则表示该PSD110中部分数据区段需要被更改,所述数据区段内储存不正确的数据(变动数据),故需对该需要被更改的数据区段执行部分重建,以恢复成正确的数据。该PSD110的部分重建时机,等待该PSD110完成控制程序的更新之后。步骤570中,该控制器150判断变动数据区段表内是否有记录着该PSD110的任何数据区^f殳编号。若否,则表示该PSD110在执行控制程序更新期间,该控制器150并不需要对该PSD110发出写入请求,故变动数据区段表内并未记录该PSD110的任何数据区段编号,则执行图8中步骤6M;若是,则表示该PSD110在执行控制程序更新期间,该控制器150需要对该PSD110发出写入请求,该PSD110上的变动数据区段的数据需要被更新,故需对变动数据区段表内有该PSD110数据区段编号记录的变动数据区段执行部分重建,则执行图7中步骤580。在该PSD110已完成控制程序的更新后、尚未完成其部分重建前,此时该PSD110虽尚未恢复连线,但该控制器150对于该PSD中的未变动数据区段,仍可直接发出读取或写入请求,以执行对该PSD110的读取或写入程序,故可增进系统的效能。当来自主机单元的写入或读取请求需针对该离线进行部分重建程序的PSD110来存取数据时,则执行图7中步骤580。图7为接续图6的流程图。步骤580中,该控制器150侦测该PSD110在执行部分重建期间,该储存虚拟化系统中是否有新发生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会暂停接收来自主机单元的10请求,而在等到该PSD执行至步骤640完成后,才会恢复接收来自主机单元的10请求及再接受执行其他PSD控制程序的更新。上述步骤582中,若以一个具有2个同位PSD的RAID6的储存虚拟化系统为例,当该系统中1个PSD执行部分重建时,该系统还可承受另l个PSD发生毁损或执行部分重建,不会造成部分数据遗失的情形。若该系统在已有1个PSD执行部分重建时,另有2个或2个以上的PSD发生毁损,则系统会产生部分数据遗失的情形。若该系统在已有1个PSD执行部分重建时,另有1个PSD执行控制程序的更新时,又若另有1个PSD发生毁损,则系统会产生部分数据遗失的情形。步骤584中,因为有PSD发生毁损,而使得该储存虚拟化系统中PSD的离线总数已经超出该储存虛拟化系统所能承受PSD离线总数的最大上限,造成该储存虚拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的一实施例,该控制器150停止接受来自主机单元10的10请求,此时该正在执行PSD部分重建程序的PSD仅需将该PSD目前正在执行的变动数据区段执行完毕,其他的变动数据区段则不必执行部分重建程序。该控制器150会将该PSD内变动数据区段上的数据,标记为错误数据;若变动数据区段表内有记录该PSD的变动数据区段编号时,则会将该变动数据区段表内该PSD所有的数据区段编号删除。依据本发明的另一实施例,当一数据区段被标示为错误数据后,若该数据区段于其他外部的储存虛拟化系统中还有另一备份数据,则可由主机端读取该备份数据重新写入而更正该错误数据。步骤584执行完毕后,即跳回至步骤580,经过步骤580至步骤620的程序后,该PSD110重新恢复连线(步骤640)并结束PSD控制程序更新模式A的程序(步骤650)。步骤590中,该控制器150判断于该PSD110部分重建完成前期间,是否需对该PSD110发出读取/写入请求。若是,则执行步骤592;若否,则执行步骤610。步骤592中,该控制器150判断需要对该PSD110发出的读取/写入请求所对应的数据区段是否为一变动数据区段。若否,则执行步骤594;若是,则执行步骤596。步骤594中,表示变动数据区段表内并无记录该PSD110的数据区段编号,代表该PSD110上该编号的数据区段的数据于该PSD110更新控制程序期间不需要被更改,或是该编号的数据区段已经完成部分重建程序;亦即,该编号的数据区段是一未变动数据区段,所以该PSD110上该编号的数据区段可被直接读取或写入,故该控制器150可直接对该PSD110发出读取/写入请求,以将该读取或写入请求相对应于该PSD110上该编号的数据区段的数据直接读取或写入。在执行该PSDIIO的部分重建程序时,该控制器150对于未变动数据区段不必等到该PSD110恢复连线即可对该PSD110上的未变动数据区段发出读耳又或写入请求,以直接执行对该PSD110读取或写入程序,故可增进该系统的效能。步骤594执行完毕后,即跳回步骤580。步骤596中,该控制器150判断需要对该PSD110发出的读取/写入请求是否为一读取请求。若是,则执行步骤600;若否,则表示需要对该PSD110发出的读取/写入请求是一写入请求,执行步骤598。步骤598中,该控制器150需要对该PSD110发出的读取/写入请求为一写入请求,且该写入请求所对应的该PSD110上的数据区段是一变动数据区段,依据本发明的第一实施例,由于该PSD110上的该数据区段的编号已经被记录于变动数据区段表内,故不需将该PSD110的该数据区段编号再记录一次,所以可直接跳至步骤580。步骤598中,依据本发明的第二实施例,该控制器150利用该写入请求所对应的该PSD110上该编号的数据区段的写入数据而将该PSD110上该变动数据区段内原先的数据直接写覆,并将变动数据区段表内该PSD的该数据区段编号删除,如此可节省对该编号数据区段的部分重建时间。步骤598执行完毕后,跳回至步骤580。步骤600中,该控制器150需要对该PSD110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据储存于该正在执行部分重建的PSD110的变动数据区段内,由于该PSD110上的该变动数据区段的数据不正确而需要被更新且尚未完成该变动数据区段的部分重建程序,故该变动数据区段不可被直接读取,而其他并非正在执行部分重建及更新控制程序的PSD110则可正常读取。该控制器150利用其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)执行同位运算来重新产生该PSD110上该编号的数据区段的数据,并将运算结果送出。步骤600执行完毕后,便跳回至步骤580中。步骤610中,该控制器150判断该PSD110上该正在执行部分重建的数据区段是否重建完成。若是,则执行步骤620;若否,则跳回执行步骤580。由于该控制器150在该PSD110更新控制程序期间,可能需要对该PSD110上的多个数据区段发出写入请求,造成该PSD110上的多个数据区段为变动数据区段,而该PSD110上所有的变动数据区段都需执行部分重建程序。步骤620中,该控制器150判断该PSD110上所有的变动数据区段是否均已完成部分重建,即判断该变动婆:据区,爻表内是否已无该PSD110的任何数据区段编号记录。若是,则执行图8中的步骤640;若否,则执行步骤630。步骤630中,该控制器150根据变动数据区段表内的编号记录执行该PSD110的部分重建程序,以重建该PSDIIO上变动数据区段的数据。在执行部分重建时,该控制器150会根据变动数据区段表内的记录,先选择该PSD110上的一数据区段编号,再利用其他PSD上具有相同编号的数据区段的数据(含同位数据),^L行同位运算来重新产生该PSD110上该编号的数据区段的数据,并将重新产生的数据写回该PSD上该编号的数据区段内,最后该控制器150再将变动数据区段表内该PSD110的该数据区段编号删除,完成该PSD110上一个变动数据区段的部分重建程序。在该PSD110部分重建的期间,该控制器150会在步骤580至步骤630间重复执行,直到变动数据区段表中该PSD110所有的数据区段编号皆被删除为止。图8步骤640中,该控制器150将该PSDIIO重新设定为连线(on-line)状态,再度进入正常工作模式。当然,该控制器150恢复成正常地对该PSD110发出读取/写入请求,同时并将该PSD110的连/离线记录由离线状态更改为连线状态。步骤640执行完毕后,则进入步骤650结束PSD的控制程序更新模式A。若还有其他的PSD110需更新控制程序,则重新执行步骤500。图9至图12是PSD控制程序更新模式B的详细流程。该PSD控制程序更新模式B开始于图9中步骤700。步骤710中,控制器150选定实体储存装置阵列100中n个等待更新控制程序的PSD110,以执行PSD110的控制程序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控制程序更新^t式B中,该控制器150针对每一个被选定等待更新控制程序的PSD执行一系列的程序,该流程组包含图9至图12中的步骤720至步骤850。每一个PSD依照当时的实际状态,分别执行所述程序系列中各自的程序。亦即,每一个PSD所执行的程序系列是相互独立的,可以同时执行(平行处理)或先后分别来执行。步骤720中,该控制器150将该被选定等待更新控制程序ll2的PSD110设定为离线状态。本步骤内容请参考步骤520的相关说明。步骤730中,该控制器150执行该被选定的PSD110控制程序PSD112的更新。本步骤内容请参考步骤530的相关说明。上述步骤710、720及730等3个步骤,即图3步骤320中的详细流程。当该控制器150收到来自主机单元10对该PSD的写入请求时,该控制器150会需要对该写入请求的数据进行运算以产生新的同位数据,来取代原先的同位数据。当来自主机单元的写入或读取请求需针对该离线进行控制程序更新的PSDIIO来存取数据时,则执行图10中步骤740。图10为接续图9的流程图。步骤740中,该控制器150侦测该PSD110在更新控制程序期间,该储存虚拟化系统中是否有新发生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个,而并非离线的总凄t为m个,其原因在于若当控制器150需要对该PSD110发出写入请求时,除了在变动数据区段表内记录该写入请求相对应该PSD110的数据区^:编号之外,同时需在第二存储器182内储存该写入请求相对应该PSD110的写入数据,其中该变动数据区段表内该PSD的数据区段编号是连结储存于第二存储器182中的写入数据(连结数据)。此时该PSD110虽然为离线状态,但由于该变动数据区段具有连结数据,在更新PSD控制程序期间,若该控制器150需对该PSD110中变动数据区段发出读取请求时,则不需通过重新产生读取数据来读取,可藉由读取该变动数据区段的连结数据来完成;若该控制器150需对该PSD110中变动数据区段发出写入请求时,则利用该写入请求对应于该变动数据区段的写入数据,将该变动数据区段原先所连结的连结数据直接写覆。故PSD控制程序更新模式B较PSD控制程序更新模式A具有更大的容错能力。若发生PSD毁损的总数超过m时,造成该储存虚拟化系统发生部分数据遗失,无法再继续正常运作;若PSD毁损的总数不大于m,则系统可继续运作。步骤742中,依据本发明的一实施例,若发生毁损的PSD数目总和小于或等于该同位PSD的数目m时,该控制器150可继续接收来自主机单元的I0请求,该系统并不会遗失数据,其他程序可继续进行,故直接跳回步骤740。步骤742中,依据本发明的另一实施例,若该发生毁损的PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,但为了降低系统风险,该控制器150会暂停接收来自主机单元的10请求,而在等到该PSD执行至步骤840完成后,才会恢复接收来自主机单元的IO请求及再接受执行其他PSD控制程序的更新。上述步骤742中,若以一个具有2个同位PSD的RAID6的卡者存虚拟化系统为例,当该系统在执行控制程序的更新时,该系统还可承受另外2个PSD发生毁损,不会造成部分数据遗失的情形;在更换新PSD后,该毁损PSD原先的数据可再重建(rebuild)回来。若该系统有中3个或3个以上的PSD发生毁损时,则系统会产生部分数据遗失的情形。步骤744中,因为有PSD发生毁损,而4吏得该储存虚拟化系统中PSD的毁损总数超出该储存虚拟化系统所能承受PSD毁损总数的最大上限,造成该储存虛拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的实施例,该控制器150停止接受来自主机单元10的10请求,此时该正在执行控制程序更新程序的PSD可以继续执行控制程序更新至其更新完成,同时也可以执行部分重建至其完成。由于该PSD的变动数据区段有连结数据,当该PSD执行部分重建程序时,可以复制该连结数据至相对的变动数据区段上,以执行该PSD的该变动数据区段的部分重建程序。此外,因为该PSD的变动数据区段可以被部分重建,所以该控制器150不会将该PSD的变动数据区段标示为错误数据;若变动数据区段表内有记录该PSD的变动数据区段编号时,该控制器150此时不会将该变动数据区段表内该PSD所有的数据区段编号删除。必须注意的是虽然该PSD可以继续执行控制程序更新与部分重建,但此时系统已经发生数据毁损,在该控制器150使该PSD重新恢复连线后,该系统不会立即再接受其他PSD更新控制程序。步骤744执行完后,便跳回至步骤740,经过步骤740至步骤830的判断及/或执行后,该PSD110重新恢复连线(步骤840)并结束该PSD控制程序更新模式B的程序(步骤850)。步骤750中,该控制器150判断于该PSD110控制程序更新完成前期间,是否需对该PSD110发出读取/写入请求。若是,则执行步骤751;若否,则执行步骤760。步骤751中,该控制器150判断需要对该PSD110发出的读取/写入请求是否为一读取请求。若是,则执行步骤752;若否,则表示需要对该PSD110发出的读取/写入请求是一写入请求,则执行步骤756。步骤752中,该控制器150判断所有正在更新控制程序的PSD及发生毁损的PSD的总数是否大于m。若是时,该控制器150若收到主机单元对该正在更新控制程序的PSD的未变动数据区段的读取请求时,并无法重新产生该未变动数据区段的读取数据,也无法立即回应主机单元,故执行步骤753B;若否,则执行步骤753A。步骤753A中,该控制器150判断该读取请求相对应于该PSD的数据区段是否为一变动数据区段,若是,则执行步骤755A;若否,则执行步骤754A。步骤754A中,该控制器150需要对该PSD110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据储存于该正在执行控制程序更新的PSD110的未变动数据区^殳内,由于此时该PSD110离线正在执4亍控制程序的更新,无法直接自该PSD110中读取数据,而其他并非正在执行控制程序更新的PSD110及其他正在执行部分重建的PSD110则可正常读取数据。该控制器150利用其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)执行同位运算来重新产生该PSD110上该编号的数据区段的数据,并将运算结果送出。步骤754A执行完毕后,便跳回至步骤740。步骤755A中,该控制器150需要对该PSD110发出的读取/写入请求为一读取请求,且该读取请求所对应的数据是储存于该正在执行控制程序更新的PSD110的变动数据区段内,该控制器150将变动数据区段所连结的连结数据直接送出。步骤755A执行完毕后,便跳回至步骤740。步骤753B中,该控制器150判断该读取请求相对应于该PSD110的数据区段是否为一变动数据区段,若是,则执行步骤755A;若否,则执行步骤757。步骤757中,该控制器150先暂停回应主机单元该读取请求,直到该正在更新控制程序的PSD110更新完成。在所有正在更新控制程序的PSD及发生毁损的PSD的总数大于m的情况下,对于该正在更新控制程序的PSD110而言,此时若该控制器150收到主机单元对该PSD110的未变动数据区段的读取请求时,该控制器150无法通过其他PSD上具有相同数据区段编号的数据区段的数据(含同位数据)来重新产生该未变动数据区段上的数据,故该控制器150会先暂停回应主机单元该读取请求,直到该PSD110更新控制程序完成为止。步骤757执行完毕,则执行步骤754B。步骤754B中,该控制器150将该读取请求所对应该PSD110的数据区段内的数据直接送出。由于此时已经完成控制程序更新,且该读取请求所对应该PSD110的数据区段为未变动数据区段,故该控制器150可以将该PSD110的该数据区段内的数据直接送出。步骤754B执行完毕后,便跳至步骤770。上述步骤754B中,由于该PSD110已经完成控制程序更新,故不再跳回步骤740的判断程序中。当该PSD110未完成控制程序更新时,会在步骤740至步骤760间反复执行,直到该PSD110完成控制程序的更新。步骤756中,该控制器150判断该写入请求所对应该PSD110上的数据区段是否为一变动数据区段。若是,则执行步骤759;若否,则执行步骤758。步骤758中,该写入请求所对应的该PSD110的数据区段是一未变动数据区段。该控制器150将该写入请求所对应的该PSD110的数据区段编号,记录于变动数据区段表内,表示该PSD110上该编号的数据区段的数据需要被更改,目前的状态下不可被读出使用;该控制器150除了在变动数据区段表内记录该PSD110的数据区段编号之外,同时并在第二存储器182中储存该写入请求所对应的该PSDIIO上该编号数据区段的写入数据。步骤758执行完毕后,便再度跳回步骤"0中。步骤759中,该写入请求所对应的该PSD110的数据区段是一变动数据区段。由于该数据区段编号已经被记录于变动数据区段表内,故不需将该PSD110的该数据区段编号再记录一次,但该数据区段编号原先所连结的连结数据则需以该写入请求所对应该PSD110上该编号的数据区段的写入数据写覆。步骤759执行完毕,便跳至步骤740。步骤758及759中,当一变动数据区段表中记录有其中一数据区段编号,则在执行部分重建程序时,会依此记录重建该数据区^:的数据。步骤760中,该控制器150判断该PSDIIO是否完成控制程序的更新。若是,则执行步骤770;若否,则跳回执行步骤740。在该PSD110更新控制程序的期间,该控制器150会在步骤740至步骤760间反复执行,直到该PSD110完成控制程序的更新。步骤770中,该控制器150判断变动数据区段表内是否有记录着该PSD110的任何数据区段编号。若否,则表示该PSD110在执行控制程序更新期间,该控制器150并不需要对该PSDIIO发出写入请求,故变动数据区段表内并未记录该PSD110的任何数据区段编号,则执行图12中步骤840;若是,则表示该PSD110在执行控制程序更新期间,该控制器150需要对该PSD110发出写入请求,该PSD110上的变动数据区段的数据需要被更新,故需对变动数据区段表内有该PSD110数据区段编号记录的变动数据区段执行部分重建,则执行图11中步骤780。在该PSD110已完成控制程序的更新后,尚未完成部分重建前,此时该PSD110虽尚未恢复连线,但该控制器150对于该PSD中的未变动数据区段,仍可直接发出读取或写入请求,以执行对该PSD110的该读取或写入程序,故可增进系统的效能。当来自主机单元的写入或读取请求需针对该离线进行部分重建程序的PSDIIO来存取数据时,则执行图11中步骤780。图11为接续图10的流程图。步骤780中,该控制器150侦测该PSD110在执行部分重建期间,该储存虚拟化系统中是否有新发生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可继续接收来自主机单元的10请求,故直接跳回步骤780。依据本发明的另一实施例,若该发生毁损的PSD的数目总和等于该同位PSD的数目m,该系统在其可承受PSD发生毁损的临界点,该系统虽然不会发生数据遗失,爿f旦为了降低系统风险,该控制器150会暂停接收来自主机单元的10请求,而在等到该PSD执行至步骤840完成后,才会恢复接收来自主机单元的10请求及再接受执行其他PSD控制程序的更新。上述步骤782中,若以一个具有2个同位PSD的RAID6的储存虚拟化系统为例,当该系统在执行部分重建时,该系统还可承受另外2个PSD发生毁损,不会造成部分数据遗失的情形;在更换新PSD后,该毁损PSD原先的数据可再重建(rebuild)回来。若该系统有中3个或3个以上的PSD发生毁损时,则系统会产生部分数据遗失的情形。步骤784中,因为有PSD发生毁损而使得该储存虚拟化系统中PSD的毁损总数已经超出该储存虚拟化系统所能承受PSD发生毁损的最大上限,造成该储存虛拟化系统部分数据遗失,无法再继续正常运作,故依据本发明的实施例,该控制器150停止接受来自主机单元10的10请求,此时该正在执4于PSD部分重建程序的PSD110,可以继续扭j于至该PSD110所有的部分重建至重建完成。由于该PSD110的变动数据区段连结有连结数据,当该PSD执行部分重建程序时,可以复制该连结数据至相对的变动数据区段上,以执行该PSD的该变动数据区段的部分重建程序。此外,因为该PSD的变动数据区段可以:故重建,所以该控制器150不会将该PSD的变动数据区段标示为错误数据;同时,若变动数据区段表内有记录该PSD的变动数据区段编号时,该控制器150此时也不会将该变动数据区段表内该PSD所有的数据区段编号删除。必须注意的是虽然该PSD可以继续执行部分重建程序,但此时系统已经发生数据毁损,在该控制器150使该PSD重新恢复连线后,该系统不会立即再接受其他PSD更新控制程序。步骤784执行完后,使Jf兆回至步骤780,经过步骤780至步骤830的判断及/或执行后,该PSD11G重新恢复连线(步骤840)并结束该PSD控制程序更新it式B的程序(步骤850)。步骤790中,该控制器150判断于该PSD110部分重建完成前期间,是否需对该PSD110发出读取/写入请求。若是,则执行步骤792;若否,则执行步骤810。步骤792中,该控制器150判断需要对该PSD110发出的读取/写入请求所对应的数据区段是否为一变动数据区段。若否,则执行步骤794;若是,则执行步骤796。步骤794中,表示变动数据区段表内并无记录该PSD110的数据区段编号,代表该PSD110上该编号的数据区段的数据在该PSD110更新控制程序期间不需要被更改,或是该编号的数据区段已经完成部分重建程序;亦即,该编号的数据区段是一未变动数据区段,所以该PSD110上该编号的数据区段可直接被读取或写入,故该控制器150可直接对该PSD110发37出读取/写入请求,以将该读取或写入请求相对应于该PSD110上该编号的数据区段的数据直接读取或写入。在执行该PSDIIO的部分重建程序时,该控制器150对于未变动数据区段不必等到该PSD110恢复连线即可对该PSD110上的未变动数据区段发出读取或写入请求,以直接执行对该PSD110读取或写入程序,故可增进该系统的效能。步骤794执行完毕后,即跳回步骤780。步骤796中,该控制器150判断需要对该PSD110发出的读取/写入请求是否为一读取请求。若是,则执行步骤800;若否,则表示需要对该PSD110发出的读取/写入请求是一写入请求,则执行步骤798。步骤798中,该控制器150需要对该PSD110发出的读取/写入请求为一写入请求,且该写入请求所对应的该PSD110上的数据区段是一变动数据区段,依据本发明的第一实施例,由于该PSD110上的该数据区段的编号已经被记录于变动数据区段表内,故不需将该PSD110的该数据区段编号再记录一次,但该编号的数据区段原先所连结的连结数据则需以写入请求所对应的该PSD110上该编号的数据区段的写入数据写覆,步骤798执行完毕后,跳回至步骤780。步骤798中,依据本发明的第二实施例,需要对该PSD110发出的读取/写入请求为一写入请求,且该写入请求所对应的该PSD110的数据区段编号的数据是一变动数据,该控制器150利用该写入请求所对应的该PSD110上该编号的该变动数据区段的写入数据而将该PSD110上该变动数据区段内原先的数据直接写覆,并将变动数据区段表内该PSD110的该数据区段编号删除,如此可节省对该编号数据区段的部分重建时间。步骤798执行完毕后,跳回至步骤780。步骤800中,该控制器150需要对该PSD110发出的读取/写入请求是一读取请求,且该读取请求所对应的数据储存于该正在执行部分重建的PSDIIO的变动数据区段内,由于该PSDIIO上该编号的数据区段的数据不正确需要被更改且尚未完成该编号的数据区段的部分重建程序,该编号的数据区段的数据并非一正确的数据,故该编号的数据区段的数据不可直接被读取,该控制器150将该编号的数据区段所连结的连结数据直接送出。步骤800执行完毕后,便再度跳回至步骤780中。步骤810中,该控制器150判断该PSD110上正在执行部分重建的数据区段是否重建完成。若是,则执行步骤820;若否,则跳回执行步骤780。由于该控制器150在该PSD110更新控制程序期间,可能需要对该PSD110上的多个数据区段发出写入请求,造成该PSD110上的多个数据区段为变动数据区段,故该PSD110上所有的变动数据区段都需执行部分重建程序。在步骤820中,该控制器150判断该PSD110上所有的变动数据区段是否均已完成部分重建,即判断该变动数据区段表内是否已无该PSD110的任何数据区段编号记录。若是,则执行图12中的步骤840;若否,则执行步骤830。步骤830中,该控制器150根据变动数据区段表内的编号记录执行该PSDIIO的部分重建程序,以重建该PSDIIO上变动数据区段的数据。该控制器150根据变动数据区段表内的记录,先选择该PSD110上的一数据区段编号,将该变动数据区段表内该数据区段编号所连结的连结数据复制回该编号的数据区段内,最后该控制器150再将变动数据区段表内该PSD110的该凄t据区段编号删除,完成该PSD110上一个变动数据区段的部分重建程序。在该PSD110部分重建的期间,该控制器150会在步骤780至步骤830间重复执行,直到变动数据区段表中该PSD110所有的数据区段编号皆被删除为止。图12步骤840中,该控制器150将该PSD110重新i殳定为连线(on-line)状态,再度进入正常工作模式。当然,该控制器150恢复成正常地对该PSD110发出读取/写入请求,同时并将该PSD110的连/离线记录由离线状态更改为连线状态。步骤840执行完毕后,则进入步骤850结束PSD的控制程序更新模式B。若还有其他的PSD110需更新控制程序,则重新执行步骤700。上述PSD控制程序更新模式A或PSD控制程序更新模式B中,虽然该作上:并不仅限于记i该数据区段编号的方i:只要是能够将变动:据^段加以注记而能判别该数据区段为变动数据区段即可。例如记录每一数据区段的属性,而变动数据区段与一般数据区段分别具有不同的属性,如True/False或是1/0等表示方式,可清楚地分辨出变动数据区段与一般数据区段。依据本发明的又一实施例,提供一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,该方法包含以下的步骤在同一数据储存带中提供多个用来检核使用者数据的同位数据储存块;选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;以及,更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需要对该实体储存装置发出一写入请求时,则将该实体储存装置上相对应的数据区段注记为一变动数据区段。藉此,该储存虚拟化系统中可同时更新多个实体储存装置的控制程序;或是,该储存虚拟化系统中可在有实体储存装置发生毁损的同时,仍可进行实体储存装置的控制程序更新,因而加速了实体储存装置的控制程序的更新,并改善系统的效能。例如,当一数据储存带中具有两个同位数据储存块时,可以同时进行两个实体储存装置的控制程序更新;或是,当有一个实体储存装置发生毁损的同时,仍然可以同时进行另一个实体储存装置的控制程序更新。又如,当一数据储存带中具有三个同位数据储存块时,可以同时进行三个实体储存装置的控制程序更新;或是,当有二个实体储存装置发生毁损的同时,仍然可以同时进行另一个实体储存装置的控制程序更新;或是,当有一个实体储存装置发生毁损的同时,仍然可以同时进行另外两个实体储存装置的控制程序更新。再者,依据本发明的进一步的实施例,在同一数据储存带中提供多个用来始r核使用者数据的同位数据储存块的情况下,在该更新该被选定的实体储存装置内的控制程序步骤之后,更进一步包含以下的步骤该被选定的实体储存装置在完成更新控制程序后执行部分重建程序,其中在该部分重建程序完成前,若需要对该实体储存装置上未变动数据区段的发出读取或写入请求时,直接对该未变动数据区段发出读取或写入请求而不需等到所有的变动数据区段完成部分重建后才发出读取或写入请求。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。权利要求1.一种在储存虚拟化系统中更新实体储存装置的控制程序的方法,其特征在于该方法包含以下步骤选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求所对应的未变动数据区段注记为一变动数据区段;以及该被选定的实体储存装置在完成更新控制程序后执行部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区段完成部分重建后才发出读取或写入请求。2.根据权利要求1所述的方法,其特征在于其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的数据区段读取时,则利用其冗余数据算出读取数据并送出。3.根据权利要求1所述的方法,其特征在于其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变。4.根据权利要求l所述的方法,其特征在于其中所述的部分重建包含以下步骤a.选取一变动数据区段,利用其冗余数据算出该变动数据区段的新数据,并把该变动数据区段以新数据写覆且取消该变动数据区段的注记;以及b.重复执行步骤a,直到该实体储存装置中无任何变动数据区段为止。5.根据权利要求1所述的方法,其特征在于其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段读取时,则利用其冗余数据算出读取数据并送出。6.根据权利要求1所述的方法,其特征在于其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则直接将该变动数据区段以写入请求相对应的写入数据写覆且取消该变动数据区段的注记。7.根据权利要求l所述的方法,其特征在于其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变。8.根据权利要求l所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数小于或等于该同位实体储存装置的数目时,则继续执行该被选定的实体储存装置的控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。9.根据权利要求l所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。10.根据权利要求1所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数大于该同位实体储存装置的数目时,则该被选定的实体储存装置上的变动数据区段的数据4皮才示i己为4酱"i吴数4居。11.根据权利要求1所述的方法,其特征在于其中当发生有实体储存装置毁损且该发生毁损的实体储存装置系正在执行控制程序更新或部分重建,若该实体储存装置上有变动数据区段时,则取消该变动数据区段的注记。12.根据权利要求1所述的方法,其特征在于其中若该变动数据区段的数据连结状态是一具有连结数据的状态时,则将对该实体储存装置发出的写入请求的相对应数据储存于一存储器内而为一连结数据。13.根据权利要求1所述的方法,其特征在于其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的数据区^:读取时,则利用其冗余数据算出读取数据并送出。14.根据权利要求12所述的方法,其特征在于其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的变动数据区段读取时,则将该变动数据区段的连结数据直接送出。15.根据权利要求12所述的方法,其特征在于其中当该被选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的未变动数据区段写入时,则注记该未变动数据区段为一变动数据区段及储存该写入请求相对应的写入数据为一连结数据。16.根据权利要求12所述的方法,其特征在于其中当该净皮选定的实体储存装置在控制程序更新期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变及以写入请求相对应的写入数据将该变动数据区段原先的连结数据直接写覆。17.根据权利要求12所述的方法,其特征在于其中所述的部分重建包含以下步骤a.选取一变动数据区段,复制该变动数据区段的连结数据至该变动数据区段上并取消该变动数据区段的注记;以及b.重复执行步骤a,直到该实体储存装置中无任何变动数据区段为止。18.根据权利要求12所述的方法,其特征在于其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段读取时,则将该变动数据区段的连结数据直接送出。19.根据权利要求12所述的方法,其特征在于其中当该被选定的实体储存装置于部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则直接将该变动数据区段以写入请求相对应的写入数据写覆且取消该变动数据区段的注记。20.根据权利要求12所述的方法,其特征在于其中当该被选定的实体储存装置在部分重建期间中,若需对该实体储存装置的变动数据区段写入时,则该变动数据区段的注记维持不变及以写入请求相对应的写入数据将该变动数据区段原先的连结数据直接写覆。21.根据权利要求12所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数小于或等于该同位实体储存装置的数目时,不会发生系统数据遗失,该被选定的实体储存装置则继续执行控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。22.根据权利要求12所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。23.根据权利要求12所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损数目与正在更新控制程序的实体储存装置的数目的总和大于该同位实体储存装置的数目,若需对该正在更新控制程序的实体储存装置内的未变动数据区段读取时,则暂不回复该读取请求,直到该正在更新控制程序的实体储存装置完成控制程序的更新后,再利用冗余数据算出读取数据并送出。24.才艮据权利要求12所述的方法,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数大于该同位实体储存装置的数目时,则复制该变动数据区段的连结数据至该变动数据区段上。25.根据权利要求12所述的方法,其特征在于其中当发生有实体储存装置毁损且该发生毁损的实体储存装置正在执行控制程序更新或部分重建,若该实体储存装置上有变动数据区段时,则取消该变动数据区段的注记。26.根据权利要求1所述的方法,其特征在于其中所述的储存虚拟化系统包含多个实体储存装置、一第一及第二存储装置,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序,且该第一存储装置是用来储存变动数据区段的注记及该第二存储装置是用来储存该注记的连结数据。27.根据权利要求26所述的方法,其特征在于其中所述的第一及第二存储装置位于》兹碟阵列控制器的存储器中。28.根据权利要求27所述的方法,其特征在于其中所述的第一、第二存储装置是一动态随机存取存储器或一非易失性储存装置。29.根据权利要求28所述的方法,其特征在于其中所述的非易失性储存装置是一硬式磁碟机或固态磁碟机,或是一具有电池或超级电容供应电源的动态随机存取存储器。30.根据权利要求1所述的方法,其特征在于其中所述的储存虚拟化系统包含多个实体储存装置,其中该每一实体储存装置包含多个数据区段及一可程序化的控制程序。31.根据权利要求30所述的方法,其特征在于其中所述的数据区段的大小是一实体储存装置的一磁区、一快取存储器、或一逻辑区块的大小。32.根据权利要求1所述的方法,其特征在于其中若该储存虛拟化系统具有N个同位实体储存装置,其中N为自然数,在不中断主机单元对实体储存装置的读、写请求情况下,该系统可同时执行N个实体储存装置的控制程序的更新。33.根据权利要求1至32中任一权利要求所述的方法,其特征在于其更包含以下步骤在所述实体储存装置中设置至少一数据储存带,且在同一数据储存带中提供多个同位数据储存块。34.—种可在储存虚拟化系统中更新实体储存装置内的控制程序的储存虚拟化控制器,其特征在于该储存虚拟化控制器包含有一中央处理电路;一主机端输入输出装置连结控制器,用以连接于该中央处理电路及至少一主机,用来接收来自主机的10请求;以及一装置端输入输出装置连结控制器,用以连接于该中央处理电路及多个实体储存装置,用来回应于接收自该主机的IO请求而对所述实体储存装置执行IO操作,其中所述实体储存装置设置有至少一数据储存带,且在同一数据储存带中设置有至少一个同位数据储存块;其中,该中央处理电路执行以下步骤以更新该实体储存装置内的控制程序选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求所对应的未变动数据区段注记为一变动数据区,爻;以及该被选定的实体储存装置在完成更新控制程序后执行部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区段完成部分重建后才发出读取或写入请求。35.根据权利要求34所述的储存虛拟化控制器,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数小于或等于该同位实体储存装置的数目时,则继续执行该被选定的实体储存装置的控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。36.根据权利要求34所述的储存虚拟化控制器,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。37.根据权利要求34所述的储存虛拟化控制器,其特征在于其中若该储存虚拟化系统具有N个同位实体储存装置,其中N为自然数,在不中断主机单元对实体储存装置的读、写请求情况下,该系统可同时执行N个实体储存装置的控制程序的更新。38.根据权利要求34所述的储存虚拟化控制器,其特征在于其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数小于或等于该同位实体储存装置的数目时,不会发生系统数据遗失,该被选定的实体储存装置则继续执行控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。39.根据权利要求34所述的储存虚拟化控制器,其特征在于其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。40.—种可更新实体储存装置内的控制程序的储存虚拟化系统,其特征在于该储存虚拟化系统包含一主机,用来发出IO请求;一储存虚拟化控制器,该储存虚拟化控制器系耦接于该主机且用于执行10操:作以回应于该10请求;以及多个实体储存装置,所述实体储存装置耦接于该储存虛拟化控制器,用来提供该储存虚拟化电脑系统储存空间,其中所述实体储存装置中设置有至少一数据储存带,且在同一数据储存带中设置有至少一个同位数据储存块;其中,该储存虚拟化控制器执行以下步骤以更新该实体储存装置内的控制程序选定名欠更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求所对应的未变动数据区"^注记为一变动数据区段;以及该被选定的实体々者存装置在完成更新控制程序后执^f亍部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区段完成部分重建后才发出读取或写入请求。41.才艮据权利要求40所述的储存虛拟化系统,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数小于或等于该同位实体储存装置的数目时,则继续执行该被选定的实体储存装置的控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。42.根据权利要求40所述的储存虚拟化系统,其特征在于其中当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的离线总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该4皮选定的实体储存装置完成部分重建为止。43.根据权利要求40所述的储存虛拟化系统,其特征在于其中若该储存虚拟化系统具有N个同位实体储存装置,其中N为自然数,在不中断主机单元对实体储存装置的读、写请求情况下,该系统可同时执行N个实体储存装置的控制程序的更新。44.根据权利要求40所述的储存虚拟化系统,其特征在于其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数小于或等于该同位实体储存装置的数目时,不会发生系统数据遗失,该被选定的实体储存装置则继续执行控制程序更新或部分重建,直到该被选定的实体储存装置完成部分重建为止。45.根据权利要求40所述的储存虚拟化系统,其特征在于其中所述的变动数据区段的数据连结状态是一具有连结数据的状态,当发生有实体储存装置毁损且该储存虚拟化系统中实体储存装置的毁损总数等于该同位实体储存装置的数目时,则暂停接受实体储存装置的读取或写入请求,直到该被选定的实体储存装置完成部分重建为止。全文摘要本发明是关于一种储存虚拟化系统中更新实体储存装置的控制程序的方法,该方法包含以下的步骤选定欲更新控制程序的一或多个实体储存装置;使该被选定的实体储存装置进入一离线状态;更新该被选定的实体储存装置内的控制程序,其中在该更新控制程序完成前,若需对该实体储存装置发出一写入请求时,则将该写入请求中所对应的未变动数据区段注记为一变动数据区段;该被选定的实体储存装置在完成更新控制程序后执行部分重建,其中在该部分重建完成前,若需要对该实体储存装置上一未变动数据区段读取或写入时,则可直接对该实体储存装置发出读取或写入请求,而不需等到该实体储存装置上所有的变动数据区段完成部分重建才发出读取或写入请求。文档编号G06F3/06GK101604250SQ20091014300公开日2009年12月16日申请日期2009年5月21日优先权日2008年6月12日发明者洪清海申请人:普安科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1