儲存虛擬化控制器間動態邏輯媒體單元重新指定方法
2023-07-06 18:29:06 3
專利名稱:儲存虛擬化控制器間動態邏輯媒體單元重新指定方法
技術領域:
本發明涉及一種在儲存虛擬化系統中執行主機端輸出入(IO)繞送的方法,更進一步地亦揭露有關動態邏輯媒體單元(LMU)重新指定的方法。
背景技術:
所謂儲存虛擬化(storage virtualization)是一種將實體儲存空間虛擬化的技術,其是將實體儲存裝置(PSDs)的不同區段結合成可供一主機系統存取使用的邏輯儲存體(logical storage entity)-在此稱為「邏輯媒體單元」(logical media units,LMU)。該技術主要用於磁碟陣列(RAID)儲存虛擬化,經由此磁碟陣列的技術,可將較小實體儲存裝置結合成為容量較大、可容錯、高效能的邏輯媒體單元。
一邏輯媒體單元(Logical Media Units,LMU)是一儲存體,而其中個別的儲存部份(例如儲存區塊)藉由一邏輯儲存位址而被唯一定址。一個常見的LMU的例子為一硬碟實體儲存空間經由主機輸出入裝置連結(Host IO-Device Interconnect)呈現至一主機。於本例子中,儘管在實體層,硬碟被分為磁柱、磁頭以及磁區,其呈現於主機者為儲存區塊的連續組(磁區,sector),且每一儲存區塊可藉由一單一邏輯區塊位址而定址。另一個例子是一儲存磁帶經由主機輸出入裝置連結呈現至一主機。
一儲存虛擬化控制器(storage virtualization controller,SVC)的主要目的是將實體儲存媒體的各區段的組合映射(map)形成一主機系統可見的邏輯媒體單元。由該主機系統發出的輸出入(IO)請求於接收之後會先被剖析並解譯,且相關的操作及數據會被編譯成實體儲存裝置的輸出入請求。這個過程可以是間接地,例如運用快取、延遲(如回寫(write-back))、預期(anticipate)(先讀(read-ahead))、群集(group)等操作來加強效能及其他的操作特性,因而一主機輸出入請求並不一定是以一對一的方式直接對應於實體儲存裝置輸出入請求。
一個外接式(或可稱為獨立式(stand-alone))儲存虛擬化控制器為一種經由輸出入介面連接於主機系統的儲存虛擬化控制器,且其可連接至位於主機系統外部的裝置,一般而言,外接式的儲存虛擬化控制器通常是獨立於主機進行運作。
外接式(或獨立式)直接存取磁碟陣列控制器(external direct-accessRAID controller)是外接式儲存虛擬化控制器的一個例子。磁碟陣列控制器是將一或多個實體直接存取儲存裝置(direct access storage devices,DASDs)的區段組合以構成邏輯媒體單元,而它們的構成方式由所採用的特定磁碟陣列等級(RAID level)決定,其所構成的邏輯媒體單元對於可利用其主機系統而言,為可連續定址的。典型地,一個單一的磁碟陣列控制器(single RAID controllcr)可支援多種磁碟陣列型態,因此,不同的邏輯媒體單元可以由直接存取儲存裝置的各個區段藉由不同的磁碟陣列等級而以不同的方式組合而成,所組合成的各個不同的邏輯媒體單元則具有各該磁碟陣列等級的特性。
另一個外接式儲存虛擬化控制器的例子是JBOD(Just a Bunch ofDrives)模擬控制器。JBOD為『僅是一捆碟機』的縮寫,是一組實體直接存取儲存裝置,並經由一或多個多裝置輸出入裝置連結通道(multiple-device IO device interconnect channel)直接連接於一主機系統上。使用點對點輸出入裝置連結連接至該主機系統的直接存取儲存裝置(如SATA硬碟、PATA硬碟等),無法通過直接連結而構成如前述的JBOD系統,因為這些直接存取儲存裝置並不允許多個裝置直接連接至輸出入裝置通道上。
另一個外接式儲存虛擬化控制器的例子為一種外接式磁帶備份子系統。
一個儲存虛擬化子系統由一或多個上述的儲存虛擬化控制器或外接式儲存虛擬化控制器,以及連接至其上用以提供儲存空間的至少一個PSD所構成。
一個冗餘儲存虛擬化子系統是一個包含兩或多個冗餘組態的儲存虛擬化控制器的儲存虛擬化子系統。將一對儲存虛擬化控制器(StorageVirtualization Controller,SVC)設定組態為一對冗餘對的主要動機,是讓主機可以連續不斷地存取數據,即便是在發生了單一個SVC故障(malfunction)或是失效(failure)的情況下。此可藉由以下的方法而達成在各SVC中加入一功能而使得當一個SVC發生問題(handicapped)或是完全失效(completely incapacitated)時,讓另一個SVC取代(take overfor)它。在裝置端方面,這需要兩個SVC均能存取其所管理的所有實體儲存裝置(PSD),而不論任一個PSD開始時是被指定(assign)給哪一個SVC管理。在主機端方面,這需要每一個SVC,當發生了其同伴(mate)SVC原本並未上線(on line)或是在某一時間點離線(off line)(其發生原因譬如像是因為故障/失效、維護作業等等)等情況時,該SVC都具有能力得以呈現(present)所有可存取的資源(accessible resources)至主機並讓這些資源可以為主機所利用(available),這些資源亦包括了原本指定給另一個SVC管理的資源。
一個典型的裝置端實作方案為,裝置端輸出入裝置連結(device-sideIO device interconnect)是多發動者(multiple-initiator)、多裝置(multiple-device)類型,且所有的裝置端輸出入裝置連結均連接至該等SVC兩者,以使得該兩SVC任一者皆可以存取任一個連接至一裝置端輸出入裝置連結上的PSD。當該兩SVC均上線且為可操作時,每一個PSD將可被其中一個或另一個SVC所管理,通常此是由使用者所設定或由組態設定(configuration)而決定。舉例來說,一個由PSD的RAID組合所構成的邏輯媒體單元(logical media unit,LMU)的所有成員PSD,將會為該LMU所被指定的特定SVC所管理。
一個典型的主機端實作方案,包含多裝置輸出入裝置連結(multiple-device IO device interconnect)連接至該一或多個主機以及該兩個SVC上,且對每一個連結來說,每一個SVC將會呈現其自身的一組唯一裝置識別號(ID),該組唯一裝置識別號是用來映射(map)該等LMU的各區段(section)。如果一個特定的SVC並未上線或是已經離線的話,該上線的SVC將會呈現該等兩組裝置ID-它自身的裝置ID組以及在正常狀態下指定給它的同伴的裝置ID組,並且以相同的方式映射LMU至這些ID,就如同當該兩SVC均在線上且處於完全的可操作狀態下。以此種實作方案,當一個SVC未上線或離線時,主機部份不需要有特別的功能來從一個裝置/路徑切換至另一個裝置/路徑來維持其可以存取所有的LMU各區段。此種類型的實作方案通常稱為『透明冗餘(transparent redundancy)』的方式。
冗餘SVC組態通常被區分為兩大類第一類是『主動-待命(active-standby)』式,第二類是『主動-主動(active-active)』式。在第一類『主動-待命』式冗餘SVC組態中,其中一個SVC呈現、管理及處理在儲存虛擬化子系統(Storage Virtualization Subsystem,SVS)中所有的LMU的所有的IO請求,而另一個SVC僅是處於待命狀態並準備好隨時取代之,如果該主動SVC發生問題(handicapped)或是完全失效(completelyincapacitated)的話。在第二類『主動-主動(active-active)』式冗餘SVC組態中,該兩個SVC呈現、管理及處理在儲存虛擬化子系統(StorageVirtualization Subsystem,SVS)中同時存在的不同的LMU的IO請求。在主動-主動式組態下,該兩個SVC總是隨時準備好了當另一個SVC故障而發生問題(handicapped)或是完全失效(completely incapacitated)時取代它。主動-主動式組態通常提供較佳的效能,因為有兩個SVC的資源(例如CPU時間、內部匯流排頻寬等等),而非僅有一個SVC的資源,可用以服務IO請求。
一冗餘SVS的另一項基本條件(element)是,每一個SVC均有能力監視另一個SVC的狀態。通常,這可以藉由以下的方式達成-實作一個或多個控制器間通訊通道(inter-controller communications channel,ICCchannel)介於該兩SVC之間,而該兩SVC則可通過該ICC交換(exchange)操作狀態。此等ICC可以是專用的(dedicated)通道,其唯一功能僅是用來交換關於該冗餘SVS的操作的參數(parameter)以及數據;或者此等ICC可以是該等IO裝置連結,抑或是主機端或者是裝置端的IO裝置連結,中的一者或多者,而該等操作的參數(parameter)以及數據的交換是與在這些連結上的主機與SVC間或裝置與SVC間的IO請求相關數據以多工的方式傳遞。此等ICC通道也可以是專用的通道與多工的通道的組合。
冗餘SVS的另一項重要條件(element)是,一個SVC讓另一個SVC完全失效(completely incapacitated)而無幹擾地完全取代它的能力。舉例來說,存活的(surviving)SVC要承接(take on)其同伴SVC的身分,可能需要承接該離線SVC原來呈現於該主機端IO裝置連結的裝置ID組,這轉而(in turn)需要該離線SVC釋出其(relinquish)對該等ID的控制權。此一『失效作用(incapacitation)』通常藉由以下的方式達成-拉啟(assert)被下線的SVC上的重置信號線(reset signal line),將所有連接至外部的信號線設為一預先定義的狀態(pre-defined state)以消除幹擾到存活的SVC的可能性。將該兩SVC間接設有重置信號線以使得在此情況下其中一個SVC可以重置另一個SVC是達成此一目的的一種常見方式。另一種達成此一目的的方式是在SVC中建立以下的能力-一SVC可以檢測出何時其可能會發生故障,並拉啟(assert)其自身的重置信號以『自殺』(例如,加入一個監視者計時器(watchdog timer)而當萬一執行於該SVC上的程式不能在一預定的時間間隔內探詢(poll)它時拉啟一重置信號),而將所有連接至外部的信號線設為一預先定義的狀態以消除幹擾到存活的SVC的可能性。
由此可見,上述現有的儲存虛擬化控制器的控制方法在使用上,顯然仍存在有不便與缺陷,而亟待加以進一步改進。為了解決現有的儲存虛擬化控制器的控制方法存在的問題,相關廠商莫不費盡心思來謀求解決之道,但長久以來一直未見適用的設計被發展完成,此顯然是相關業者急欲解決的問題。因此如何能創設一種新的外接式儲存虛擬化控制器的控制方法,便成了當前業界極需改進的目標。
有鑑於上述現有的儲存虛擬化控制器的控制方法存在的缺陷,本發明人基於從事此類產品設計製造多年豐富的實務經驗及專業知識,並配合學理的運用,積極加以研究創新,以期創設一種新的儲存虛擬化控制器間動態邏輯媒體單元重新指定方法,能夠改進一般現有的儲存虛擬化控制器間動態邏輯媒體單元重新指定方法,使其更具有實用性。經過不斷的研究、設計,並經反覆試作及改進後,終於創設出確具實用價值的本發明。
發明內容
本發明的目的在於,克服現有的儲存虛擬化控制器的控制方法存在的缺陷,而提供一種新的儲存虛擬化控制器間動態邏輯媒體單元重新指定方法,所要解決的技術問題是使其基於前述冗餘儲存虛擬化子系統的概念,發展提供實際可行的實施方案。
本發明的另一目的在於,克服現有的儲存虛擬化控制器的控制方法存在的缺陷,而提供一種新的儲存虛擬化控制器間動態邏輯媒體單元重新指定方法,在儲存虛擬化系統中,當主機支援多重路徑功能時,提供一種動態邏輯媒體重新指定的機制,使可動態調整各儲存虛擬化控制器的邏輯媒體單元的指定狀況,以解決儲存虛擬化控制器間負載不平衡的問題,或者解決當一儲存虛擬化控制器接收到一主機端輸入請求,而此儲存虛擬化控制器並非此輸出入請求所定址的邏輯媒體單元目前所指定的儲存虛擬化控制器時,而產生的無法處理該輸出入請求的問題。
本發明與現有技術相比具有明顯的優點和有益效果。由以上技術方案可知,本發明的主要技術內容如下為了達到上述目的,依據本發明的一特色,提供有一種於儲存虛擬化子系統中執行動態邏輯媒體單元重新指定的方法,該儲存虛擬化子系統包含複數個儲存虛擬化控制器及一實體儲存裝置陣列連接於其上,該實體儲存裝置陣列包含至少一實體儲存裝置,且定義有至少一邏輯媒體單元,該邏輯媒體單元包含該實體儲存裝置陣列的複數區段;該等儲存虛擬化控制器的一啟始一第一邏輯媒體單元的重新指定;及一為該至少一邏輯媒體單元的一第一邏輯媒體單元的擁有者的第一儲存虛擬化控制器依據該啟始指示而釋出該第一邏輯媒體單元,並使該第一邏輯媒體單元指定移轉一第二儲存虛擬化控制器,使其成為新的該第一邏輯媒體單元的擁有者。
於本發明的一實施例中,該啟始重新指定的儲存虛擬化控制器為該第一儲存虛擬化控制器。
於本發明的另一實施例中,該啟始重新指定的儲存虛擬化控制器為該等儲存虛擬化控制器中的一第三儲存虛擬化控制器。
於本發明的又一實施例中,該啟始重新指定的儲存虛擬化控制器為該第二儲存虛擬化控制器。
其中前述第二儲存虛擬化控制器是在接收到一定址於該第一邏輯媒體單元的輸出入請求後啟始該重新指定第一邏輯媒體單元。
而該第二儲存虛擬化控制器是在成為該新的第一邏輯媒體單元擁有者之前是將所接收到的定址於該第一邏輯媒體單元的輸出入請求放入隊列中,並於成為該新的第一邏輯媒體單元擁有者後處理該等隊列中定址於該第一邏輯媒體單元的輸出入請求以及任何新接收到定址於該第一邏輯媒體單元的輸出入請求。
在本發明的一實施例中,在該第一儲存虛擬化控制器釋出該第一邏輯媒體單元之前是將必須由該第一邏輯媒體單元擁有者來進行的邏輯媒體單元虛擬化的操作進行下列的一處理暫停、放棄及等待其做完。且若為暫停或放棄必須由該第一邏輯媒體單元擁有者來進行的邏輯媒體單元虛擬化的操作,則該第二儲存虛擬化控制器成為該新的第一邏輯媒體單元擁有者後繼續進行該暫停或放棄的邏輯媒體單元虛擬化的操作。
在本發明的另一實施例中,在第一儲存虛擬化控制器釋出該第一邏輯媒體單元之前更包括執行以下步驟允許並使任何進行中而定址於該第一邏輯媒體單元的輸出入請求做完;讓任何定址於該第一邏輯媒體單元的主機輸出入的執行暫停;及將任何還沒開始的定址於該第一邏輯媒體單元的輸出入請求放入隊列中。
在本發明的又一實施例中,該第一儲存虛擬化控制器釋出該第一邏輯媒體單元的步驟包括有改變其自身的邏輯媒體單元指定狀態版本以指出該第一邏輯媒體單元已不再指定給該第一儲存虛擬化控制器。
在該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元後是以一個指定通知告知該第二儲存虛擬化控制器說該第一邏輯媒體單元已指定移轉給該第二儲存虛擬化控制器。
而當該第二儲存虛擬化控制器收到該指定通知後,改變其自身的指定狀態版本以指出該第一邏輯媒體單元現在已經指定給該第二儲存虛擬化控制器。
前述改變指定狀態版本中,包括修改其自身的數據快取控制結構。
在本發明的一實施例中,該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元後,是對該第二儲存虛擬化控制器發送請求該第一邏輯媒體單元所有權歸還,以請求該第二儲存虛擬化控制器在之後歸還該第一邏輯媒體單元的所有權。
在本發明的另一實施例中,該第一儲存虛擬化控制器是將在該邏輯媒體單元重新指定過程中任何放入隊列的定址於該第一邏輯媒體單元的輸出入請求繞送至該第二儲存虛擬化控制器。
在本發明的一實施例中,更包含一協調機制,用以在產生該等儲存虛擬化控制器中有複數個儲存虛擬化控制器同時啟始該第一邏輯媒體單元的重新指定時決定重新指定的對象。
前述的協調機制可為該第一儲存虛擬化控制器所執行,且於該釋出該第一邏輯媒體單元後通知該等儲存虛擬化控制器的其他儲存虛擬化控制器誰成為該新的第一邏輯媒體單元的擁有者。
或前述的協調機制為一第三儲存虛擬化控制器所執行,該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元後通知該第三儲存虛擬化控制器,該第三儲存虛擬化控制器通知該等儲存虛擬化控制器的其他儲存虛擬化控制器誰成為該新的第一邏輯媒體單元的擁有者。
在一實施例中,前述的協調機制是依據該等啟始第一邏輯媒體單元的重新指定程序的儲存虛擬化控制器中所具有的定址於該第一邏輯媒體單元的主機輸出入請求的時間長短來決定該重新指定對象。
本發明的一實施例中,該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元之前,包含一判斷是否達到可釋出該第一邏輯媒體單元的時機的步驟。
前述的判斷步驟可包括下列至少之一步驟查核是否對該該第一邏輯媒體單元保持了一段最小指定保持期間、查核是否有任何定址於該第一邏輯媒體單元的輸出入請求、及查核該第一邏輯媒體單元的輸出入空窗期間是否超過一預定的輸出入空窗期間臨界值。
前述的輸出入空窗期間設定為開始於收到最後一個定址於該第一邏輯媒體單元的主機輸出入請求。
或者該輸出入空窗期間的起始時點設定於當處理一定址於該第一邏輯媒體單元的輸出入請求完成時,並於收到一新的定址於該第一邏輯媒體單元的輸出入請求時取消計時。
在本發明的進一步的實施例中,該等儲存虛擬化控制器可以執行主機端輸出入繞送程序,以使該等儲存虛擬化控制器於收到非指定於其自身的一特定的邏輯媒體單元的輸出入請求時,可轉送至該特定邏輯媒體單元的擁有者的儲存虛擬化控制器處理。
在前述同時可執行繞送程序的實施例中,該重新指定過程可更包含有以下步驟該第一儲存虛擬化控制器在釋出該第一邏輯媒體單元之前,指示其他的該儲存虛擬化控制器讓定址於該第一邏輯媒體單元正在執行繞送的輸出入請求執行完畢,並將定址於該第一邏輯媒體單元的主機輸出入請求的繞送暫停;及該等儲存虛擬化控制器於收到該指示後進行相關的動作。
前述繞送暫停步驟包含將所有定址於該第一邏輯媒體單元的輸出入請求存入隊列。
在另一實施例中,更包括有一決定步驟,用以決定是否啟始該第一邏輯媒體單元的重新指定,並於啟始該第一邏輯媒體單元的重新指定程序前,該等儲存虛擬化控制器中的非該第一邏輯媒體單元的擁有者於收到定址於該第一邏輯媒體單元的輸出入請求時執行該繞送程序。
前述決定步驟包含執行一輸出入流動的智慧型分析功能的操作。
在一實施例中,前述智慧型分析功能的操作包括以下步驟計算對於該第一邏輯媒體單元經過經過該段時間的輸出入比率及數據比率;以及檢測該輸出入比率及數據比率是否與一事先定義的條件相符合,當該條件符合時,才能將執行該第一邏輯媒體單元重新指定功能。在另一實施例中,前述智慧型分析功能的操作包括以下步驟計算對於該第一邏輯媒體單元經過某一段時間的輸出入比例;以及查核是否該輸出入流所顯示的實際比例值超過一第一臨界值,若是,才能啟始該第一邏輯媒體單元重新指定,其中該該第一臨界值為在一段期間內被繞送的定址於該第一邏輯媒體單元的輸出入請求與其他未被繞送的輸出入請求的比例。
在又一實施例中,前述智慧型分析功能的操作包括以下步驟計算對於該第一邏輯媒體單元經過某一段時間的數據比例;以及查核是否該輸出入流所顯示的實際比例值超過一第二臨界值,若是,才能啟始該第一邏輯媒體單元重新指定,其中該第二臨界值為在一段期間內被繞送的定址於該第一邏輯媒體單元的單位時間數據量與其他未被繞送的單位時間數據量的比例。
在再一實施例中,前述智慧型分析功能的操作更包括以下步驟計數該輸出入流所顯示的實際比例值超過該臨界值的次數;及檢查該所計數超過該臨界值的次數是否以超過或等於一臨界值次數,當該所計數的次數超過或等於該臨界值次數時,才能啟始該第一邏輯媒體單元重新指定程序。
或在一實施例中,前述智慧型分析功能的操作包括以下步驟計算對該第一邏輯媒體單元經過一段時間的輸出入流所顯示的實際比例值超過該臨界值的時間;及檢查該所計算的超過該臨界值時間是否以超過或等於一臨界值期間,並當該所計算的時間超過或等於該臨界值期間時,才能啟始該第一邏輯媒體單元重新指定程序。
而在進一步的實施例中,該智慧型分析功能的操作包括以下步驟檢測自從前一次該第一邏輯媒體單元重新指定後的時間是否已經超過一等候期間,若未超過,則該第一儲存虛擬化控制器不會發動執行該重新指定功能。
在本發明的一實施例中,更包括執行一負載平衡邏輯媒體單元重新指定機制以決定是否啟始該重新指定。
前述的負載平衡邏輯媒體單元重新指定機制包括有以下步驟監測該等儲存虛擬化控制器間的處理負載的平衡;及檢查該等儲存虛擬化控制器間是否存在有處理負載上的實質不平衡,並當存在有處理負載上實質不平衡時,才能執行邏輯媒體單元重新指定。
又,為了達到上述目的,本發明還提供了一種儲存虛擬化子系統,包含複數個儲存虛擬化控制器及一實體儲存裝置陣列連接於其上,該實體儲存裝置陣列包含至少一實體儲存裝置;至少一邏輯媒體單元,該邏輯媒體單元包含該實體儲存裝置陣列的複數區段;該等儲存虛擬化控制器的一啟始一第一邏輯媒體單元的重新指定;及一為該至少一邏輯媒體單元的一第一邏輯媒體單元的擁有者的第一儲存虛擬化控制器依據該啟始指示而釋出該第一邏輯媒體單元,並使該第一邏輯媒體單元指定移轉一第二儲存虛擬化控制器,使其成為新的該第一邏輯媒體單元的擁有者。
在本發明的一實施例中,前述的儲存虛擬化子系統可以執行主機端輸出入繞送。
在本發明的另一實施例中,該等儲存虛擬化控制器的至少一者具有一該第一邏輯媒體單元的輸出入請求狀態表,用以紀錄該等儲存虛擬化控制器中的非該第一邏輯媒體單元擁有者的其他各儲存虛擬化控制器的各該第一邏輯媒體單元的輸出入請求收迄時間。
其中該具有該狀態表的儲存虛擬化控制器為該第一儲存虛擬化控制器。
其中該具有該狀態表的儲存虛擬化控制器為一第三儲存虛擬化控制器。
在本發明的又一實施例中,該等邏輯媒體單元支援藉由使用者組態設定以動態地重新指定而不需要重新初始化任一個SVC。
又,為了達到上述目的,本發明還提供了一種電腦系統,包含一主機及一儲存虛擬化子系統連接於其上;該儲存虛擬化子系統包含複數個儲存虛擬化控制器及一實體儲存裝置陣列連接於其上,該實體儲存裝置陣列包含至少一實體儲存裝置;該儲存虛擬化子系統並定義至少一邏輯媒體單元,該邏輯媒體單元包含該實體儲存裝置陣列的複數區段;該儲存虛擬化子系統更包含該等儲存虛擬化控制器的一啟始一第一邏輯媒體單元的重新指定程序;及一為該至少一邏輯媒體單元的一第一邏輯媒體單元的擁有者的第一儲存虛擬化控制器依據該啟始指示而釋出該第一邏輯媒體單元,並使該第一邏輯媒體單元指定移轉一第二儲存虛擬化控制器,使其成為新的該第一邏輯媒體單元的擁有者。
在本發明的一實施例中,該儲存虛擬化子系統可執行主機端輸出入繞送。
在本發明的另一實施例中,該儲存虛擬化子系統及一主機被設置成可執行分離冗餘路徑輸出入傳送功能。
在本發明的又一實施例中,該主機是被預先設定組態成,當其發送定址於該第一邏輯媒體單元的輸出入請求時,是通過連接該主機與該第一邏輯媒體單元所指定的儲存虛擬化控制器的連結來發送該輸出入請求,而當該第一邏輯媒體單元無法再通過前述路徑存取,才改經連接該主機與其他儲存虛擬化控制器的連結來發送該輸出入請求。
再,為了達到上述目的,本發明還提供了一種儲存虛擬化控制器,是用於一儲存虛擬化子系統而與該子系統中的一第二儲存虛擬化控制器互為冗餘組態,該儲存虛擬化控制器包含一中央處理電路,用以執行輸出入操作以回應於一主機的輸出入請求;至少一主機端輸出入裝置連結埠設置來連接至該主機;至少一控制器間通訊通道控制器用以連接至該第二儲存虛擬化控制器;及其中該中央處理電路被構造成可用以執行動態邏輯媒體單元的重新指定。
在本發明的一實施例中,該儲存虛擬化控制器亦可以執行主機端輸出入請求繞送。
經由上述可知,本發明一種執行主機端輸出入請求繞送以及動態邏輯媒體單元重新指定的儲存虛擬化子系統。在一實施例中,當一主機輸出入請求為一儲存虛擬化控制器所接收到而該儲存虛擬化控制器不是該主機輸出入請求所定址的邏輯媒體單元的邏輯媒體單元擁有者時,該輸出入請求可被繞送至另一儲存虛擬化控制器-該邏輯媒體單元擁有者-而被執行。在另一實施例中,該邏輯媒體單元擁有者的指定可以動態地重新指定給原先不是邏輯媒體單元擁有者的接收儲存虛擬化控制器,而使得該接收儲存虛擬化控制器變成新的邏輯媒體單元擁有者以執行該主機輸出入請求。
藉由上述技術方案,本發明儲存虛擬化控制器間動態邏輯媒體單元重新指定的儲存虛擬化子系統方法至少具有下列優點在現有的儲存虛擬化子系統的基礎上本發明中具有多重路徑功能性(multi-pathing functionality)的實作方案中所採用組態具有的優點為,不需要開關電路(switch circuitry)來連接該兩SVC6002,6003的主機端IO裝置連結,因而減少了主動元件的數目,也因而減少了易於失效元件的數目(因為主動元件較易於失效),同時也降低了SVC的成本。
綜上所述,本發明特殊的儲存虛擬化控制器間動態邏輯媒體單元重新指定方法,其具有上述諸多的優點及實用價值,並在同類方法中未見有類似的方法及結構設計公開發表或使用而確屬創新,其不論在方法或功能上皆有較大的改進,在技術上有較大的進步,並產生了好用及實用的效果,且較現有的外接式儲存虛擬化控制器的控制方法具有增進的多項功效,從而更加適於實用,而具有產業的廣泛利用價值,誠為一新穎、進步、實用的新設計。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其他目的、特徵和優點能夠更明顯易懂,以下特舉較佳實施例,並配合附圖,詳細說明如下。
圖1是一典型的冗餘儲存虛擬化子系統實作方案的方塊圖。
圖2是另一冗餘儲存虛擬化子系統實作方案的方塊圖。
圖3是描述一非冗餘(non-redundant)儲存虛擬化子系統的組態。
圖4是描述一冗餘(redundant)儲存虛擬化子系統的組態。
圖5是描述依據本發明的一實施例的一冗餘儲存虛擬化子系統的組態,其中是以多裝置主機端輸出入裝置連結將主機與兩個儲存虛擬化控制器連接在一起。
圖6顯示依據本發明的一實施例的一組態,其中該主機具有多重路徑功能性(multi-pathing functionality)。
圖7顯示依據本發明的一實施例的一組態,其中是設置有多重冗餘路徑(multiple redundant paths)。
圖8顯示依據本發明的一實施例的一種具有分離冗餘路徑(splitredundant paths)於主機與儲存虛擬化子系統間的實作方案。
圖9顯示依據本發明的另一實施例的一種具有分離冗餘路徑於主機與儲存虛擬化子系統間的實作方案。
圖10顯示依據本發明的一實施例,其中該兩個儲存虛擬化控制器各設置有一個控制器間通訊通道控制器且由一個控制器間通訊通道連接在一起,同時該等儲存虛擬化控制器的主要功能方塊圖亦顯示於圖中。
圖11A、圖11B及圖11C顯示依據本發明的一實施例的一種主機端輸出入繞送流程。
圖12A是描述依據本發明的一實施例的一邏輯媒體單元動態重新指定程序的主要操作流程。
圖12B是描述依據本發明的一實施例的一典型的邏輯媒體單元重新指定程序。
圖13是描述依據本發明的一實施例的一邏輯媒體單元重新指定起始時機分析的流程圖。
圖14A及圖14B是為說明邏輯媒體單元重新指定起始時機的一些實例。
圖15A及圖15B例示依據本發明的一實施例的一用以設定該輸出入空窗期間的開始時點的改良機制。
圖16A及圖16B描述依據本發明的一實施例的一涉及主機端輸出入繞送的邏輯媒體單元重新指定程序。
圖17A是例示依據本發明的一智慧型輸出入流分析的一實施例。
圖17B是例示依據本發明的另一智慧型輸出入流分析的一實施例。
圖17C是例示依據本發明的又一智慧型輸出入流分析的一實施例。
圖17D是例示依據本發明的再一智慧型輸出入流分析的一實施例。
圖18是例示依據本發明的又再一智慧型輸出入流分析的一實施例。
圖19A及圖19B是例示依據本發明的一智慧型輸出入流分析的其他的實施例。
圖20是描述依據本發明的一實施例的負載平衡邏輯媒體單元重新指定機制。
圖21是描述依據本發明的一實施例的重新指定時機決定機制。
10,1001,2001,3001,4001,5001,6001,7001,8001,9001主機1002,2000,2002,3002,4002,5002,6002,7002,8002,9002第一儲存虛擬化控制器1003,2003,2900,4003,5003,6003,7003,8003,9003第二儲存虛擬化控制器1005,2005,3005,4005,8005,9005實體儲存裝置2200主機端輸出入裝置連結控制器2360ICC連結控制器2400中央處理電路2700控制器間通訊通道2800記憶體3000裝置端輸出入裝置連結控制器3400,4004存取控制開關4000,5005,6005,7005實體儲存裝置陣列具體實施方式
請參閱圖1,所示為一典型的冗餘儲存虛擬化子系統(SVS)實作方案的方塊圖。該SVS包含兩個儲存虛擬化控制器(SVC),第一儲存虛擬化控制器(SVC1)1002及第二儲存虛擬化控制器(SVC2)1003,以及複數個實體儲存裝置(PSD)1005通過兩個裝置端IO裝置連結而連接於其上。一個控制器間通訊(ICC)通道設置於該兩SVC之間。該等SVC1002,1003是通過主機端IO裝置連結而連接至一主機1001上。請注意,該主機端IO裝置連結的連接方式使得一個SVC(例如SVC1 1002)可以取代其同伴SVC(例如SVC2 1003),藉由接管在正常狀態下將會被其同伴SVC呈現至該連結上的該等IO裝置連結ID,並將LMU的各區段以相同於其同伴SVC會採用的方式映射至這些ID上。同時,請注意,該裝置端IO裝置連結的連接方式使得該兩SVC可以存取被連接至該等裝置端IO裝連結上的所有PSD。在本例中,一個典型的、可能用於或是主機端或是裝置端上的IO裝置連結可以是平行小型電腦系統介面(Parallel Small Computer System Interface,Parallel SCSI)或是光纖通道仲裁迴路(Fibre Channel-Arbitrated Loop,FC-AL),因為兩者皆為多發動者、多裝置IO裝置連結(multiple-initiator,multiple-device IO deviceinterconnect),且因而兩個SVC(1002及1003)可以操作於目標模式(亦即,裝置模式)下而被連接至在主機端上的單一個連結,且讓該兩SVC(1002及1003)可操作於發動者模式下,而與多個裝置一起,被連接至裝置端上。
圖1中的組態有的缺點如下,單一個PSD1005的故障,端視其故障的性質而定,可能會使整個裝置端IO裝置連結當機,因而使得在同一連結上的所有其他的PSD1005均無法存取(inaccessible)。
請參閱圖2,圖2是另一冗餘SVS實作方案的方塊圖。該SVS包含兩個SVC(SVC1及SVC2)2002,以及複數個PSD2005通過四個裝置端IO裝置連結而連接於其上,其中每一個PSD2005連接至兩個裝置端IO裝置連結。一個ICC通道設置於該兩SVC之間。該等SVC2002是通過主機端IO裝置連結而連接至一主機2001上。圖2中所示的組態是圖1的改善,有效地避免了因為造成單一個裝置端IO裝置連結失效的故障而產生的連接在相同裝置端IO裝置連結上的其他PSD2005的存取中斷,此是利用雙埠PSD2005以及增加一條額外的連結至每一PSD2005而達成。以此方式,單一裝置端IO裝置連結的阻斷(可能由在PSD上的連結控制器IC故障所致),將不會造成連接於相同連結上的其他PSD2005無法存取,因為連接至該等相同PSD2005每一者上的該第二條連結可以用來存取該等PSD2005而不會受到幹擾。
在圖2中的組態更有以下的優點IO請求負載可以分散於該等冗餘裝置端連結之間,因而使裝置端IO裝置連結子系統的總頻寬相較於每個PSD僅具有單一連結的組態加倍。在此種情況下,典型的裝置端IO裝置連結選擇將會是光纖FC-AL,因為在市場上的該光纖FC-AL PSD的雙埠性質,以及該光纖協定的元件使得一個發動者,譬如一個SVC,可以決定在不同的連結上的那一個連結ID對應至相同的PSD。
雖然在圖2中的組態,實際上,在遇到裝置端IO裝置連結失效時,遠比圖1中的組態強固,但仍然有可能會發生一個PSD2005的故障使連接至其雙埠對兩個IO裝置連結均當機的情形。如果這種情形真的發生的話,再次地,連接至相同連結對上的其他PSD2005的存取亦將會中斷。在由PSD2005的標準的單一冗餘RAID組合(例如,RAID5)所構成的LMU中,這保證會是一場大災難,因為這將造成RAID組合中的多個PSD2005下線,導致整個LMU也因而下線。
請參閱圖3,圖3是描述一非冗餘(non-redundant)儲存虛擬化子系統的組態,其中每一PSD3005是由連接每一個PSD3005至該SVC3002的一專用的裝置端IO裝置連結所服務。該SVC3002是通過主機端IO裝置連結而連接至一主機3001上。此一組態對於單一裝置點對點輸出入裝置連結(single-device point-to-point IO device interconnect)而言,譬如SATA,是必要的。相較於連接於多個裝置上的多裝置IO裝置連結而言,此組態提供了兩個不同的優點。第一個優點是其對抗IO裝置連結失效上的強固性(robustness)。在一個PSD 3005上或連結上的故障,頂多僅影響到該單一的連結/連接的PSD3005。所有其他的PSD3005仍然保持完全地可存取,因為他們是由其自身的專用的連接該PSD3005至該等SVC3002的IO裝置連結所服務。第二個優點為其全然的效能擴展性。在圖1及圖2中的組態中,多個PSD1005,2005共用單一個連結,增加PSD僅能讓效能擴展至單一連結頻寬的最大值,超過以後再增加PSD並無法產生任何效能上的增進。
在圖3中的組態中,每一個PSD3005是由一專用的連結所服務,隨著PSD3005及/或連結數目的增加,由所有連結及/或PSD3005所構成的裝置端子系統的效能可以無限地擴展。然而,在每PSD3005具有一專用的連結的組態中(如圖3中所顯示者)使用普通標準多裝置IO裝置連結譬如像是平行SCSI或光纖,成本效益不佳,因為此等連結的每埠成本相當地高。然而,每埠成本相當的低的SATA IO裝置連結的出現,帶給了此種組態成本低廉的好處。
請參閱圖4,圖4是描述一冗餘(redundant)儲存虛擬化子系統的組態,其中結合有專用的單一裝置、點對點IO裝置連結以將所有的PSD4005連接至兩個SVC(SVC1及SVC2)4002上。為了讓兩個SVC可以存取相同的PSD,一個開關電路(switching circuit)4004,下文中稱為『存取控制開關(accesscontrol switch)』,是被插入至裝置端IO裝置連結路徑中、介於該等SVC與該PSD4005之間。因為該連結的點對點本質,一次僅有一個SVC,在當時被指定給該特定PSD的該SVC,可以啟動存取該PSD。另一個SVC相對於此一PSD維持於一待命(stand-by)模式,而它連接至該特定PSD的IO裝置連結被禁能(disabled)。
藉由每個PSD4005結合專用的連結,圖4中的該冗餘SVS有效地避免了可能發生的下列後果-在一裝置端IO裝置連結中斷掉或阻斷的情形(可能因為一個PSD4005失效而產生),將會造成多個PSD4005無法存取。在主機端,單一個主機端IO裝置連結的失效(可能是因一個SVC故障而產生),可能也會造成整個連結的阻斷,因而造成該一或該等SVC無法經由該連結存取。典型的解決方法是提供多個冗餘路徑(path)至每一個由該等SVC所呈現的LMU,此可藉由將每一個LMU在不只一個主機端連結上呈現給該等主機而達成。此種實作方案可見於圖6。
在本發明的一個典型的冗餘SVS中,每一個呈現給主機端的LMU將被指定給其中的一個SVC或另一個SVC以處理主機IO。這是因為,在處理一個主機IO的過程中,有某些關於一個特定LMU的一些操作必須完整地一起執行(perform atomically),這表示不會有可能修改相關狀態的其他操作來插斷(interruption)。要完整地一起執行一些操作,通常需要協調正在處理定址於相同LMU的不同執行緒(thread)。當這些執行緒執行於單一SVC上時,執行緒間協調(inter-thread coordination)可以很容易地且有效率地完成而不會造成嚴重的效能劣化。然而,如果這些執行緒是在不同的SVC上執行的話,SVC間溝通將會頻繁地被呼叫來達成執行緒間協調。這不僅會大幅增加設計上的複雜度,而且通常會導致嚴重的效能劣化。實際上,所產生的效能劣化通常將會遠超過原先因為讓該等冗餘SVC執行於主動-主動模式下所達成的效能增進。
在此,主機IO的處理與LMU指定有關時通常將包括與特定IO處理相關的數據快取操作及與LMU虛擬化處理有關的操作,該等與LMU虛擬化處理有關的操作是可將該LMU映射至實體儲存裝置。數據快取操作包括如下的情形(a)為被一主機IO所存取的數據搜尋快取記憶體;(b)如果IO相關數據的某些部分目前沒有指定快取緩衝區(cachebuffer)來儲存的話,分派快取緩衝區來達成此一功能;(c)如果要讀取的數據不在快取記憶體中的話,啟動IO請求以將該數據自該LMU讀取進入該快取記憶體;(d)開始IO相關數據轉移的程序,自該主機與被指定來儲存該IO相關數據的快取緩衝區之間往返。
(e)對於寫入而言,如果是在完全寫入模式(write-through mode)下,啟動IO請求以將數據自快取的鏡像(cached image)寫至該LMU中。
LMU虛擬化包括如下的情形(a)將LMU的IO映射至實體儲存裝置。這可能涉及到將LMU的IO操作的一部份分割成多個實體儲存裝置IO操作及/或將不同的LMU的IO操作的一部份結合成為單一個PSD操作。
(b)產生冗餘數據,譬如RAID同位數據,並將其寫至各個適當的PSD的適當位置。
(c)從冗餘數據重新產生無法從一特定的PSD回復的數據(其原因可能是該PSD已經失效了或是不存在),可能是利用將該冗餘數據與其他PSD上的數據結合而達成。
(d)將一PSD上的數據回復至與其他PSD上的數據一致的狀態,此稱為PSD數據重建。譬如像是,如果一個PSD被替換掉了因而需要將該PSD的數據重建的話,可能會需要這麼做。
(e)當需要時,重新配置數據及重新產生冗餘數據於PSD上,以回應於在LMU組態上的變化;在此稱為LMU組態修改。新增磁碟機至LMU並重新分割以將該等新增磁碟機納入或改變RAID等級,將會需要此一操作。
在這個清單中,有些LMU虛擬化操作並不直接涉入主機IO的處理(譬如,PSD數據重建或LMU組態修改),而這,需要他們可以被執行於同一負責處理IO的SVC上(目前LMU所指定的SVC),以避免過多的控制器間協調。
因為LMU通常被指定給其中的一個SVC或另一個SVC以處理IO,每一個主機必需具有一條路徑讓它能經由LMU所指定的SVC來存取每一個呈現給它的LMU。當主機端IO裝置連結為多裝置連結時,達成此一目的的最簡單的方式是將該兩SVC的主機端連接在一起而如圖5所示。以匯流排式的(bus-style)連結,譬如平行SCSI,此通常可以達成而無需額外的電路,然而以其他類型的連結,譬如光纖,可能需要開關電路(switching circuit)以達成此連結。在此種組態中,主機5001端可以存取任何由該SVS所呈現的LMU(是由PSD陣列5005的各個區段結合而成)而獨立於將該LMU呈現給主機端的SVC。此種組態對於以下的實作方案特別地重要-主機5001不具有特別軟體執行於其上,而讓該主機於一路徑不再提供存取至一特定的LMU的情況下可以聰明地切換於該等冗餘的存取路徑之間(在此稱為『多重路徑功能』(multi-pathing functionality))-因為它使得主機可以當一LMU原本指定的SVC(例如SVC2 5003)下線時,繼續經由在線上的SVC(例如SVC1 5002)存取LMU。一個SVC可以取代其同伴SVC,藉由接管在正常狀態下將會被其同伴SVC呈現至該連結上的該等IO裝置連結ID,並將LMU以相同於其同伴SVC原本會採用的方式映射至這些ID上。此種類型的冗餘SVC組態通常稱為『透明的(transparent)』冗餘組態且此種接管機制是為『透明的(transparent)』接管機制,因為主機不需要被告知何時一個SVC將會從另一個SVC處接管其IO處理。
請參閱圖6,圖6顯示該主機6001具有多重路徑功能性(multi-pathingfunctionality)的實作方案中所可以採用的另一個組態。在此組態中,如果一特定LMU所指定的SVC下線(或是該LMU指定僅是從一個SVC改變至另一個SVC)的話,在該主機6001上的多重路徑功能性將會自動處理IO的繞送(rerouting),而將IO從該主機6001至該下線SVC的連結上繞送(rerouting)到該主機至該線上SVC的連結上去。此種組態具有的優點為,不需要開關電路(switch circuitry)來連接該兩SVC6002,6003的主機端IO裝置連結,因而減少了主動元件的數目,也因而減少了易於失效元件的數目(因為主動元件較易於失效),同時也降低了SVC的成本。然而,在此種組態中,至少需要兩個主機埠,因而增加了主機上的實作上的成本。此外,該等主機本身每一個必須為每一個SVC提供主機埠與每一個SVC上的主機端埠數量相同。
藉由在冗餘SVS中結合以專用的連結或多重冗餘連結於每個PSD上,在圖2及圖4中所描繪的冗餘SVS消除了以下的風險-在該等裝置端連結的一者中發生斷掉或是阻斷的情形,將會導致多個PSD無法存取而有可能造成一LMU的下線。在主機端,單一主機端IO裝置連結的失效(可能是因為形成實體連結一部份的纜線連接斷了所造成的),也可能造成整個連結的失效,因而導致無法經由該連結存取SVC。
通常用來消除因為單一主機端IO裝置連結的斷掉或阻斷而無法存取LMU的風險的一種組態為圖7中所顯示的多重冗餘路徑(multipleredundant paths)。在此一組態中,每一個呈現給主機7001的LMU的各區段可以通過至少兩個連結來存取,因此如果一個連結真的斷了或是被阻斷的話,主機仍然可以通過其他的連結來存取。當然,這需要在主機上實作上述的多重路徑功能性(muli-pathing functionality)以達成IO的繞送(rerouting),萬一通過一特定主機端連結無法存取至一LMU的話。
在圖7及圖6中所顯示的組態中,每個SVC有兩個主機端連結埠。在單個SVC上的這兩個埠形成一冗餘埠互補對(redundant portcomplement),每一個指定給該SVC的LMU則可通過埠互補對中任一個埠來存取。萬一一個連結斷了或是被阻斷的話,或是萬一一個埠故障的話,LMU的存取可通過互補埠來進行而獲得保證。再次地,請注意,在圖7及圖6中所顯示的組態間的取捨。在圖7中,該兩SVC的主機端連結是連接在一起,此可能需要主動開關電路(switch circuitry),且主機端連結的頻寬相加僅能允許其為該兩SVC的主機端連結埠的頻寬總合的一半。在圖6中,在SVC上的每一個主機端連結埠是以一專用的連結連接至一主機連結埠,使得連結的頻寬可以依SVC埠的數目放大,但卻為因主機埠較多而增加了主機平臺的費用。
雖然在一冗餘SVC實作方案中,其每一個SVC配置有一對埠用作為冗餘埠的目的可以達成本發明的目標(goal),惟其缺點在於成本太高,其是因為既要過多的SVC埠,又要或是開關電路(switch circuitry)用於某種IO裝置連結類型(type)譬如光纖FC-AL以將該兩SVC上的互補埠(complementary port)連結在一起,或是增加主機的埠數。
請參閱圖8及圖9,顯示了一種實作方案可以有效地將該等SVC上所需的埠數目減半,且可以消除在該等主機端連結的連接及其所必需的開關電路(switch circuitry)。在圖8及圖9各別中,每一個SVC是被連接至該主機,以該SVC的一主機端埠通過一個主機端IO裝置連結而連接至該主機的主機埠。在圖8中所示者是使用雙埠(dual-ported)SAS實體儲存裝置,然而在圖9中,是使用單埠(single-ported)實體儲存裝置。它基本上結合了SVC冗餘性以及埠的冗餘性兩者所需的互補特性(complementary aspect)而成為單一對的埠,每個埠設在一個SVC上。在此種實作方案中,LMU的各個區段(section)是由該兩SVC在主機端IO裝置連結上呈現給主機。此種組態為分離冗餘路徑(split redundant paths)的一個例子。所謂分離冗餘路徑是在一冗餘儲存虛擬化系統(SV system)中的每一個SVC上,恰有一條(存在有一條且只有一條)路徑連接到呈現給主機的一LMU的任一個區段(section)。在此一組態中,因為LMU或是其區段是由該兩SVC呈現給該主機,在任何時候(也許是因為察覺到路徑失效),可以開始IO繞送而將IO繞送至不是LMU目前所指定的SVC去。
本發明更進一步地定義了一功能性,此處稱為『主機端IO繞送』,其中當IO由一個SVC所接收到,而該SVC卻不是該被定址的LMU所指定的SVC,則所接收到的IO被繞送至該被定址的LMU所指定的SVC去。該被定址的LMU所指定的SVC在下文中稱為『LMU所有者』。此種繞送通常將通過控制器間通訊通道(inter-controller communication channel,簡稱ICC通道)發生,這種ICC通道是用作為兩個SVC間的主要通訊媒介。
兩個SVC各設置有一個ICC通道(或連結)控制器的例子且由一個ICC通道2700連接在一起的實例可見圖10,其中該等SVC的主要功能方塊亦顯示於圖中。在此實施例中,SVC1 2000包含有一主機端輸出入裝置連結控制器2200,一中央處理電路(central processing circuit,CPC)2400,一記憶體2800,及一裝置端輸出入裝置連結控制器3000,及一ICC連結控制器2360。此處雖以分開的功能方塊描述,但於實際應用時,兩個以上,甚至全部的功能方塊(functional block)可皆整合在一單一晶片上。例如,該ICC連結控制器可以與該主機端輸出入裝置連結控制器或是該裝置端輸出入裝置連結控制器甚或是與其兩者整合為一單一晶片IC。
主機端輸出入裝置連結控制器2200連接至主機10及中央處理電路2400,用來作為儲存虛擬化控制器2000及主機10之間的介面及緩衝,其可接收由主機10傳來的輸出入請求和相關數據,並且將其映射及/或傳遞至中央處理電路2400。主機端輸出入裝置連結控制器2200可以包含有一或多個用來耦接於該主機10的主機端埠。此處所提及埠的類型可以為光纖通道支援Fabric(Fibre Channel supporting Fabric)、點對點連結、公用迴路連結及/或專用迴路連結於目標模式,操作於目標模式的平行SCSI,支援網際網路SCSI(Internet SCSI;iSCSI)協定且操作於目標模式的乙太網路,操作於目標模式的序列附加(serial-attached)SCSI(SAS),以及操作於目標模式的SATA。該裝置端輸出入裝置連結控制器3000及該ICC連結控制器2360每一者可包含一個或多個埠支援目標及/或發動者模式下的協定,例如那些主機端輸出入裝置連結控制器2200的主機端埠所支持的協定,以與其他連接於其上的裝置通訊。
該中央處理電路2400主要包含CPU及CPU晶片組用以處理及/或監控IO請求處理及LMU虛擬化操作。當中央處理電路2400接收到來自主機端輸出入裝置連結控制器2200的主機輸出入請求時,中央處理電路2400會將此輸出入請求剖析,並且執行一些操作以回應此輸出入請求,以及將SV12000所請求的數據及/或報告及/或資訊,經由主機端輸出入裝置連結控制器2200傳送至主機10。
將主機10傳入的輸出入請求剖析之後,若所收到的為一讀取請求且一或多個操作被執行以為回應時,中央處理電路2400會由內部或由記憶體2800中或藉由此二種方式取得所請求的數據,並將這些數據傳送至主機10。若所請求的數據無法於內部取得或並不存在於記憶體2800,該讀取請求將會經由裝置端輸出入裝置連結控制器3000發送至實體儲存裝置陣列4000,然後這些所請求的數據將由實體儲存裝置陣列4000傳送至記憶體2800,之後再經由主機端輸出入裝置連結控制器2200傳送到主機10。
當由主機10傳入一寫入請求(write request)傳達至中央處理電路2400時,於寫入請求被剖析並執行一或多個操作後,中央處理電路2400通過主機端輸出入裝置連結控制器2200接收從主機10傳入的數據,將其儲存在記憶體2800中,再經由中央處理電路2400傳送至實體儲存裝置陣列4000。對於同步或非同步裝置操作兩者,數據皆經由中央處理電路2400傳送至實體儲存裝置陣列4000。當該寫入請求為一回寫請求(write backrequest),寫入做完報告(IO complete report)會先被傳送至主機10,而後中央處理電路2400才會執行實際的寫入操作;而當該寫入請求為一完全寫入請求(write through request),則寫入做完報告會在數據已實際寫入實體儲存裝置陣列4000後才被傳送至主機10。
記憶體2800連接於中央處理電路2400,其作為一緩衝器,用來緩衝傳送於主機10及實體儲存裝置陣列4000之間通過中央處理電路2400的數據。實際應用時,記憶體2800可以是DRAM(動態隨機存取記憶體Dynamic RandomAccess Memory),該DRAM亦可為SDRAM(同步動態隨機存取記憶體Synchronous Dynamic Random Access Memory)。
裝置端輸出入裝置連結控制器3000為介於中央處理電路2400及實體儲存裝置陣列4000間的裝置端輸出入裝置連結控制器,用來作為一儲存虛擬化控制器2000及實體儲存裝置陣列4000間的介面及緩衝,並接收中央處理電路2400所發出的IO請求及相關數據,且將這些數據映射及/或傳送至實體儲存裝置陣列4000。
於本例中,該ICC連結控制器2360設置於SVC1 2000中以連接至SVC22900。此外該裝置端輸出入裝置連結控制器300C是通過該存取控制開關3400而連接至該實體儲存裝置陣列4000。該存取控制開關3400亦連接至該SVC2 2900。該實體儲存裝置陣列400可以為該等SVC 2000,2900通過該存取控制開關3400存取。另外,來自主機10的控制/數據資訊可以被該CPC2400通過該RCC連結控制器2360而被傳送至該SVC2 2900,並進一步傳送至一第二實體儲存裝置陣列(圖未示)。請注意,該存取控制開關3400僅僅對於點對點、單埠PSD(譬如像是SATA PSD),且當兩個輸出入裝置連結被連接至該PSD的該單埠時才需要。
圖9是顯示依據本發明的一個電腦系統的組態,其設置有一SVS包含此種存取控制開關及單埠PSD。而另一方面,一使用雙埠PSD(譬如像是SAS PSD),且使其埠對的一埠連接至該SVC1、另一埠連接至該SVC2上,且每一者均通過一個分開的輸出入裝置連結時,並不需要該存取控制開關3400。圖8是顯示依據本發明的一個電腦系統的組態,其設置有一SVS包含此種存取控制開關及雙埠PSD。
本發明的一種主機端IO繞送流程的實作方案如下。亦請參閱圖11A、圖11B及圖11C。該主機1101準備IO請求並將其發送給SVC(步驟1103)。當一來自該主機的IO請求被接收(步驟1104),接收到的SVC1102是將其剖析以決定該請求所定址的LMU(步驟1105)。在步驟1106中,如果所定址的LMU是被指定給該接收SVC1102,則該SVC直接執行該IO請求(步驟1109)。在步驟1106中,如果該IO請求所定址的LMU是指定給另一個SVC1103,則該SVC通過該ICC通道而將該IO請求轉送(forward)給該另一個SVC(步驟1107)。在接收到該IO請求時,該另一個SVC1103則剖析該IO請求(步驟1108)。
請參閱圖11B,如果該IO請求需要自該主機傳送數據,例如一寫入(WRITE)IO請求(步驟1114),該另一個SVC1103會向該接收SVC1102要求數據(步驟1115)。該接收SVC1102可能已經自主機端傳送一些或全部數據至其記憶體的緩衝器(buffer)中,或是該接收SVC1102可能在開始自該主機傳送數據之前,等待來自該另一個SVC1103的數據傳送請求。當該接收SVC1102收到該另一SVC1103的數據請求時,會查核所請求的數據是否存於其自身的記憶體內(步驟1116),如果所請求的數據不在記憶體中的話,該接收SVC1102將對發送該IO請求的主機端轉送數據請求,並會等待數據從主機傳送過來。而該主機端在收到該請求後傳送該數據至該接收SVC1102(步驟1117)。該接收SVC1102將會通過該ICC通道而將數據轉送給該另一個SVC1103(步驟1118)。該IO請求於是被該另一個SVC1103所執行(步驟1119)。
在該IO請求執行中或做完時,如果數據要被傳送至該主機,例如一讀取(READ)IO請求(步驟1124),該另一個SVC1103會轉送要被傳送至該主機的數據至該接收SVC1102。該接收SVC1102會將此數據通過用來接收該IO請求的主機端IO裝置連結來轉送至該主機(步驟1125)。在主機1101接收到來自SVC1102的數據之後(步驟1127),通知數據已經收到的收悉確認被發送給該接收SVC1102。在該接收SVC1102收到收悉確認後,是將之轉送給該另一個SVC1103(步驟1127)。在IO請求做完時,該IO請求的做完狀態將會由該另一個SVC1103轉送至該接收SVC1102(步驟1128),然後在所有的數據被傳送至該主機後轉送該做完狀態,當作已被傳送的IO請求的一部份(步驟1129)。該IO請求於是完成(步驟1130)。
雖然上述的主機端IO繞送實作方案所支援的組態可以降低系統成本及複雜度,此藉由降低達成SVC冗餘性所需的主機端IO裝置連結的數目以及連接至每一個LMU的多重冗餘路徑而達成。然而,如果因為主機中的多重路徑功能性而使IO請求繞送所通過的一條裝置端連結路徑會持續造成IO請求需要繞送(因為所定址的LMU被指定給該另一個SVC1103之故)的話,將會造成嚴重的IO效能劣化。上述造成嚴重的IO效能劣化可能會發生的情況如下-如果在主機端與所定址的LMU所指定的SVC間的路徑(稱為『主要路徑』)所形成的連結斷掉、阻塞或是因其他原因造成的故障、甚或僅僅是因為該主機1101的多重路徑功能並未察覺該主要路徑的話-而其結果則為IO將通過另外的連結繞送。
如果主機支援一種方法而可以指定一主要路徑讓IO請求可以通過該主要路徑傳送直到該LMU無法再通過該路徑存取的話,則該主機可以被預先設定組態成(pre-configured),當其發送(send)定址於一特定LMU的IO請求時,是通過連接該主機與該所定址的LMU所指定的SVC的連結來發送該IO請求,因而消除了繞送的需要。另一種實施態樣是,每一個LMU可以在該SVS上預先設定組態(pre-configured),而使得該LMU被指定給一SVC,而該SVC被連接至該主機最可能傳送IO請求的連結上。
以上用來使IO請求必需繞送至該另一個SVC的頻率降至最低的方法的缺點是,它必須預先設定組態(pre-configuration),而這通常需要先將系統下線然後再讓它重新上線,以使得組態的修改得以生效。因而,此方式於一動態改變環境中用起來並不十分好用。在另一個較為複雜的方法中,本發明可以支援LMU至SVC的動態重新指定(dynamic reassignment)。
亦請參閱圖12A。LMU的動態重新指定通常必須有以下的操作必須由LMU所指定的SVC來進行的LMU虛擬化(LMU Virtualization)的操作(譬如,PSD數據重建)必須暫停或放棄或做完(步驟1221)。LMU指定被轉移至該另一個SVC(步驟1224),該等暫停或放棄的LMU虛擬化操作可以繼續進行或重新開始,且該另一個SVC所隊列中的主機IO請求也可開始執行(步驟1225)。請注意,整個重新指定過程進行於當該SVS在線上的時候,而這就是所謂的動態LMU重新指定。
在最簡單的實施例中,該等LMU可以藉由使用者組態設定以動態地重新指定而不需要重新初始化任一個SVC。如果使用者注意到一個特定的LMU的IO繞送頻率過高的話,他可以在該等SVC仍然在線上時以手動的方式將該LMU重新指定給該另一個SVC以期降低IO繞送頻率。
在另一個實施例中,LMU重新指定將基於所記錄的統計數據而被自動執行,其中所記錄的統計數據為定址於該LMU的該等IO請求通過哪一個SVC而被接收到。如果一個SVC(稱之為接收SVC)接收到一IO定址於一目前指定給另一個SVC的LMU,一LMU重新指定操作將被執行於該IO處理之前,以自該另一個SVC改變LMU指定至該接收SVC。當該LMU被指定給該接收SVC時,該IO於是會被該接收SVC所處理。請注意,在本實施例中,分離冗餘路徑傳送功能(split redundant pathing)可以無須依賴主機端IO繞送功能而達成,因為其並非將IO發送至該LMU現在被指定的SVC,而將該LMU重新指定給正在接收IO的SVC。
在本實施例中的一典型的重新指定程序描述於圖12B中流程圖中。當一IO被接收到而該IO為定址於一目前被指定給另一個SVC的LMU時(此SVC於下文中稱為LMU擁有者1230)(步驟1201),該接收SVC(下文中稱為IO處理SVC)1220是啟始該LMU重新指定過程(步驟1202)。此過程是開始於要求該LMU擁有者1230釋出該特定LMU的所有權(步驟1203),同時會將取得該特定LMU的所有權之前(即,執行在LMU重新指定過程中)將所接收到的定址於該LMU的IO請求放入隊列中。該LMU擁有者1230然後等待一」適當」的時機以開始其LMU重新指定程序(步驟1207)。此程序通常必須暫停或放棄必須由被指定給該LMU的SVC所執行的LMU虛擬化操作(譬如,PSD數據重建)(步驟1208),同時讓任何定址於該LMU的主機IO的執行暫停,且將任何還沒開始的IO請求放入隊列中(步驟1209)。當此種LMU虛擬化操作被暫停或放棄且所有正在進行中的定址於該LMU的IO請求被做完時(步驟1210),該LMU擁有者1230改變其自身的LMU指定狀態版本(copy)以指出該LMU已不再指定給它了(步驟1211)。此可以包括修改數據快取控制結構以釋出與該LMU相關的快取數據及資源的所有權。該LMU擁有者1230現在以一個指定通知告知該IO處理SVC1220說所有權指定已經被轉移給它了(步驟1212)。在該IO處理SVC1220收到該指定通知後(步驟1204),改變其自身的指定狀態版本(copy)以指出該LMU現在已經指定給它了(步驟1205)。這也可能涉及修改其自身的數據快取控制結構以接管(take over)與該LMU相關的快取數據及資源。該IO處理SVC1220現在將藉由繼續進行或重新開始被暫停或放棄LMU虛擬化操作、執行在LMU重新指定過程中放入隊列的IO、以及正常處理任何新接收到的IO而完成該LMU重新指定程序(步驟1206)。
在另一實施例中,若原本的LMU擁有者1230在執行在LMU重新指定過程中有任何放入隊列的定址於該LMU的IO時,則在該LMU擁有者1230通知該IO處理SVC1220說所有權指定已經被轉移給它的步驟1212中更包含有同時請求該所有權移轉歸還的訊息,以請求該IO處理SVC1220(新的LMU擁有者)歸還該特定LMU的所有權。
在又一實施例中,若原本的LMU擁有者1230在執行在LMU重新指定過程中有任何放入隊列的定址於該LMU的IO時,則在該LMU擁有者1230通知該IO處理SVC1220說所有權指定已經被轉移給它的步驟1212中更包含有同時將該等放入隊列的定址於該LMU的IO繞送至該IO處理SVC1220(新的LMU擁有者)。
而對一再一實施例而言,前述的步驟1209及步驟1210可省略。例如如果主機的組態被設定為其一次只能夠發送單一個IO且必須等待相應該IO的完成回應收到後才能發出第二個IO,且該SMS執行完全寫入模式(write-through mode),則此種組態下,由於SVS同一時間對定址於一特定LMU的主機IO請求而言僅可能存在有一個,因而當該IO處理SVC1220因接收到該定址於此特定LMU的主機IO請求而啟動LMU重新指定程序(如步驟1201,1202),意味著,此可存在於SVS中的唯一一個該特定LMU的主機IO請求,存在於該IO處理SVC中,此時,該LMU擁有者1230不會存在有任何定址於該特定LMU的主機IO請求,因而步驟1209及步驟1210為不必要存在。
又,在另一具有二個以上的控制器的儲存虛擬化子系統的實施例中,亦即,在此種實施例中,SVS中除了存在有該IO處理SVC1220與LMU擁有者1230的二SVC外,尚存在有至少一第三SVC。此時,更可包含有一協調機制,用以協調若有二個以上SVC同時請求轉移該特定LMU的所有權時的狀況。
此協調機制可設計為由目前為該LMU的擁有者來負責執行,亦或可指定由一特定的SVC(此後稱為仲裁者)來負責執行。若為前者,則如前述的其他實施例,當一SVC接收到定址於該並非指定給他的LMU的IO時,則會對該LMU目前的擁有者請求釋出該LMU的所有權。而若當該LMU擁有者同時接收到來自於複數個不同SVC的釋出該LMU的所有權請求時,該LMU擁有者決定要將該LMU的所有權指定給誰,且在該LMU擁有者通知該決定對象所有權指定已經被轉移給它的步驟中,則更包含有通知其他的SVC,誰成為新的該特定LMU的擁有者。而此時若其他的SVC仍有需取得該LMU的所有權的需求時,則可在對此新的該LMU擁有者請求釋出該LMU的所有權。而若為後者,則當一SVC接收到定址於該並非指定給他的LMU的IO時,則是將請求LMU擁有者釋出該LMU的所有權的訊息發送給該仲裁者,而該仲裁者會在對該LMU擁有者發送出請求釋出該LMU的所有權。並且在該LMU擁有者完成釋出所有權的動作後,是通知該仲裁者所有權已釋出。並由該仲裁者決定誰是新的擁有者,並通知該新的擁有者其已成為新的擁有者。
而前述的決定要將該特定LMU的所有權指定給誰的步驟中,可依據該等SVC中各SVC所具有的定址於該特定LMU的主機IO請求的時間長短來決定。此種做法是因顧及主機等待該IO做完回復的時間之故。例如在此種具有二個以上的SVC的SVS中,每個SVC是具有一紀錄有其他各SVC的主機IO的收迄時間狀態表,而當每個SVC只要收到非屬於指定它的LMU的IO請求時,會將相關訊息通知SVS中其他各SVC,而使其得以更新該狀態表。而當該特定LMU擁有者欲決定要將該特定LMU的所有權指定給誰時,可依據該狀態表中檢查其他各SVC收到定址於該特定LMU的主機IO的時間,而將該特定LMU的所有權決定給具有最早時間者(即,代表該SVC具有等待最久的定址於該特定LMU的IO請求)。另外,若該SVS為前述設置有仲裁者的話,或可僅有該仲裁者具有前述各SVC的IO收迄時間狀態表,而當每個SVC只要收到非屬於指定它的LMU的IO請求時,會將相關訊息通知該仲裁者,而使仲裁者得以更新該狀態表,而該仲裁者是依據該表內容決定某一特定LMU的所有權應指定給誰。因為LMU重新指定程序通常會造成暫時性的IO流暫停,而這有可能造成嚴重的效能劣化,所以LMU重新指定的排程(schedule)通常會以使得重新指定相對於IO數量的頻率最小化的方式為之。在前文中提到「於LMU重新指定程序中所謂的等待一」適當」時機」是指,該LMU擁有者1230會對先前的狀態及目前的狀態進行智慧型分析以決定何時才是開始LMU重新指定程序的最佳時機。
請參閱圖13。此智慧型分析的一實施例,當LMU擁有者收到釋出所有權請求時,只要是在LMU擁有者繼續收到定址於該LMU的IO的話,是要求LMU擁有者在取得所有權後保持所有權一段最短期間(稱為最小指定保持期間(minimum assignment retention period)),而若在收到該釋出所有權的請求時,LMU擁有者並沒有存在有任何與定址於該特定LMU的IO請求需處理或處理中的話,則是要求該LMU擁有者須有另一段期間(此處稱為IO空窗期間臨界值(idle IO period threshold))沒有收到定址於該LMU的IO。因此,LMU擁有者收到釋出所有權請求時(步驟1301)後會判斷該LMU重新指定的請求是否為已超過該最小指定保持期間(步驟1302)。如果一個LMU重新指定要求是在經過了該最小指定保持期間之後提出的話,則LMU重新指定程序立即開始(步驟1303)。如果一個LMU重新指定要求是在該最小指定保持期間尚未過完之前提出,則續判斷是否有任何定址於該特定LMU的IO請求在等待執行或正在執行中(步驟1304)。若有任何正在等待執行或執行中的定址於該LMU的IO請求的話,則回到步驟1302,而若不再有任何定址於該LMU的IO於該LMU擁有者上尚未執行或是在執行的過程中,則判斷IO空窗期間(沒有收到定址於該LMU的IO的期間)是否超過IO空窗期間臨界值(步驟1305),若是,則LMU指定可以釋出(步驟1303)。否則,回到步驟1302。
設定一IO空窗期間臨界值的背後想法,是要預期是否該主機再有任何定址於該LMU的IO要發給該LMU擁有者。如果這段期間過完了而沒有任何來自主機的指示顯示它確實具有更多的IO要發出的話,則該LMU擁有者可以假設該主機確實不再有任何IO尚未發出。該LMU擁有者]可以將沒有收到定址於該特定LMU的主機IO當作是此一指示。在最簡單的實作方案中,該IO空窗期間可以被設定為開始於收到最後一個定址於該特定LMU的主機IO。但是,此種實作方案在後述的情況下可能會錯誤地預期目前的主機狀態-此在一定址於該LMU的IO被接收時即被設定開始的IO空窗期間是在該SVC完成該IO的處理之前就已超過了該IO空窗期間臨界值。在此種情況下,如果該主機的組態被設定為它一次只能夠發送單一個IO且必須等待相應該IO的完成回應收到後才能發出第二個IO,則該SVS可能錯誤地認定該主機目前不再有任何定址於該LMU的IO要發出。而因其IO空窗期間已超過其臨界值,且因前述主機組態,在LMU完成該定址於該LMU的IO後至收到第二個定址於該LMU的IO必定存在有一時間差,因而LMU擁有者可能因誤判而於該IO處理完畢後隨即會開始LMU重新指定程序。
請參閱圖15A及圖15B。用以設定該IO空窗期間的開始時點的改良機制如下。將該IO空窗期間的起始時點設定於當處理一定址於該特定LMU的一IO完成時(步驟1501),且如果該IO空窗期間被標示為尚未開始的話,則將該IO空窗期間標示為已經開始了,而其結果為該IO空窗期間開始計時(步驟1502及1503)。且如果該IO空窗期間被標示為已經開始的話,則將該IO處理完成且不改變該起始時間(步驟1502及1504)。如果,在該計時開始之後(這使得步驟1508的測試結果為肯定),另一個定址於該特定LMU的主機IO被收到的話(步驟1507),則將該IO空窗期間標示為尚未開始(步驟1509)。在此機制中,只有當該IO空窗期間已經開始後才會被用來決定該LMU重新指定何時該開始進行。
請參閱圖14A及圖14B。該最小指定保持期間1401、該IO空窗期間臨界值1402、該IO空窗期間1403以及該LMU重新指定要求的關係如下。圖14A是描述該IO空窗期間1403的起始時間開始得夠早而可在最小指定保持期間1401內過完該IO空窗期間臨界值1402。在此情況下,在第一個案例,案例A中,LMU重新指定要求是在圖中的時間點A1404發出,此表示LMU擁有者是在該最小指定保持期間1401內以及該IO空窗期間臨界值1402過完之前收到LMU重新指定要求,因而LMU擁有者於該IO空窗期間臨界值1402過完之前將不會執行重新指定程序。在第二個案例,案例B中,LMU重新指定要求是在圖中的時間點B1405發出,此表示LMU擁有者是在該IO空窗期間臨界值1402過完之後但仍然在最小指定保持期間1401中收到LMU重新指定要求,則重新指定程序將會被其立刻執行。在第三個案例,案例C中,LMU重新指定要求是在圖中的時間點C1406發出,此表示LMU擁有者是在該最小指定保持期間1401過完之後收到重新指定要求,則重新指定程序將會立刻執行。
在上述案例A中,並未讓重新指定要求立刻執行,其可以讓重新指定程序在IO空窗期間超過IO空窗期間臨界值或在該最小指定保持期間1401過完之後立刻執行,或者,另一種實施方式是,當該IO空窗期間超過IO空窗期間臨界值或該最小指定保持期間1401過完之後,該重新指定程序可以被重新評估以決定是否需要在該時間點上進行重新指定,或是,該LMU擁有者可以將該重新指定要求直接拒絕,端視該SVS的組態設定而定。
圖14B是描述該IO空窗期間1412的起始時間開始得太晚而無法在最小指定保持期間1411結束之前過完該IO空窗期間臨界值1412。在此情況下,在第一個案例,案例D中,LMU重新指定要求是在圖中的時間點D1407發出,此表示LMU擁有者在該IO空窗期間臨界值1412過完之前且仍然在最小指定保持期間1411中收到該重新指定要求,則重新指定程序於該最小指定保持期間1411過完之前將不會執行。在第二個案例,案例E中,是LMU重新指定要求是在圖中的時間點E1408發出,或在第三個案例,案例F中,是LMU重新指定要求是在圖中的時間點F1409發出,則重新指定要求將會立刻執行,因為該最小指定保持期間1411已經過完。在案例E中,重新指定要求發出在該IO空窗期間臨界值1412過完之前但已超過該最小指定保持期間1411,而在案例F中,重新指定要求發出在該IO空窗期間臨界值1412與該最小指定保持期間1411過完之後。
在另一個較為複雜的實施例中,主機端IO繞送及自動動態LMU重新指定可以結合在一起以達到更佳的效能特性。若定址於一LMU的IO的接收SVC並非目前該LMU所指定的SVC,則一開始時(initially)將會被繞送至另一個SVC(該LMU擁有者)。該等SVC可以執行IO流動(IO flow)的智慧型分析功能,特別是關於IO繞送的頻率及與被繞送的IO相關的數據被繞送的比率的智慧型分析功能。如果此分析顯示出LMU重新指定可以產生明顯效能增進,因為,譬如IO繞送頻率及/或與被繞送的IO相關的數據被繞送的比率降低的話,則LMU重新指定可以為該冗餘SVC對所自動執行。
在本實施例中,典型的LMU重新指定程序大體上如圖16A及圖16B所示。當已經決定要進行一LMU重新指定時,決定的SVC(可能是任一個SVC該LMU擁有者1620或是另一個SVC)發出一請求至該LMU擁有者1620以啟始一LMU重新指定並釋出LMU的所有權(步驟1602,1602』)。在圖16A中,該LMU重新指定程序是該另一個SVC1630而非該LMU擁有者1620所決定。該LMU擁有者1620於是等待一適當時機以開始其自身部份的LMU重新指定程序(步驟1603)。此程序通常必須將由該LMU所指定的SVC來執行LMU虛擬化操作(例如PSD數據重建)暫停或放棄(步驟1604),且讓正在執行的定址於該LMU的任何IO請求執行完畢,同時將定址於該LMU的主機IO請求的執行被暫停(put on hold),且所有定址於該LMU且尚未開始執行的主機IO請求被排入隊列(queued)(步驟1605)。此外該LMU擁有者1620指示另一SVC讓定址於該LMU的正在執行的繞送的IO請求執行完畢,並將主機IO請求的繞送暫停,此繞送暫停藉由將所有定址於該LMU的等待繞送的IO請求存入隊列以於俟後處理而達成(步驟1606)。該另一個SVC讓任何定址於該LMU正在處理的IO請求處理完畢,同時將定址於該LMU的主機IO的執行暫停,並且把任何定址於該LMU且尚未開始的IO請求放入隊列中(步驟1607)。當該等LMU虛擬化操作暫停或放棄且在該等SVC上的所有定址於該LMU正在進行的IO請求完成後,該LMU擁有者1620改變其自身的LMU指定狀態版本(copy)以指出該LMU已不再指定給它了(步驟1608)。此可以包括修改數據快取控制結構以釋出與該LMU相關的快取數據及資源的所有權。該LMU擁有者1620現在通知該另一個SVC說所有權指定已經被轉移給它了(步驟1609)。在該另一個SVC收到該指定通知(步驟1610)後,該另一個SVC於是改變其自身的指定狀態版本(copy)以指出該LMU現在已經指定給它並使得它成為新的LMU擁有者了(步驟1611)。這也可能涉及修改其自身的數據快取控制結構以接管與該LMU相關的快取數據及資源。該新的LMU擁有者現在將藉由繼續進行或重新開始被暫停或放棄LMU虛擬化操作、執行在LMU重新指定過程中放入隊列的IO、以及正常處理任何新接收到的IO而完成該LMU重新指定程序(步驟1612),而原先的LMU擁有者1620則開始將在它這邊存於隊列中而等待LMU重新指定完成的IO進行繞送,以及將任何新收到的相關IO繞送(步驟1613)。在圖16B中,該LMU重新指定程序是該LMU擁有者1620所決定,且在該步驟1602中的『發出一請求至該LMU擁有者1620以啟始一LMU重新指定並釋出LMU的所有權』步驟以及步驟1603中的「該LMU擁有者1620於是等待一適當時機以開始其自身部份的LMU重新指定程序」是為該LMU擁有者1620的內部操作。
而若儲存虛擬化子系統中若具有二個以上的SVC,則步驟1606中更包含有同時對其他的SVC發出停止定址於該LMU的IO的繞送指示,且在步驟1609中更包含有同時通知其他的SVC誰是新的LMU擁有者,因而其他的SVC可繼續恢復繞送並將定址於該LMU的IO至該新的LMU擁有者。
請參閱圖17A,上述的智慧型IO流分析的一個實施例為,該分析包括對一LMU定義一第一臨界值(threshold),此第一臨界值是為該LMU在一段期間內被繞送的IO與未被繞送的IO的比例(步驟1701),以及計算對於該LMU經過某一段時間的IO比率(步驟1702)。如果IO流所顯示的實際比例值超過該第一臨界值的話(步驟1703),則將執行LMU重新指定功能(步驟1704)。
請參閱圖17B,上述的智慧型IO流分析的另一個實施例為,該分析包括對一LMU定義一第二臨界值,此第二臨界值是為該LMU在一段期間內的被繞送的單位時間數據量與未被繞送的單位時間數據量的比例(步驟1711),以及計算對於該LMU經過某一段時間的數據比率(步驟1712)。如果IO流所顯示的實際比例值超過該第二臨界值的話(步驟1713),則將執行LMU重新指定功能(步驟1714)。
請參閱圖17C,上述的智慧型IO流分析的又一個實施例為,該分析包括對一LMU定義上述該第一臨界值與該第二臨界值並更進一步藉由該等第一與第二臨界值定義一相關的臨界值機制(步驟1721),以及計算對於一LMU經過某一段時間的IO比率及數據比率(步驟1722),同時設定與IO比率臨界值及/或數據比率臨界值相關之用以觸發LMU重新指定的一個或多個條件(步驟1723)。當該臨界值機制的一個或是複數特定條件滿足時(步驟1724),將觸發(trigger)一LMU重新指定(步驟1725)。該臨界值機制的一個例子為,如果該等第一與第二臨界值中任一者為IO流所顯示的相關實際比例值所超過的話,則將執行LMU重新指定(步驟1725)。該臨界值機制的另一個例子為,如果該等第一與第二臨界值兩者皆為IO流所顯示的相關實際比例值所超過的話,則將執行LMU重新指定。雖然前文中舉了兩個例子,惟熟習此技藝者將可輕易提出其他與該等第一與第二臨界值相關的臨界值機制以達成此一實施例的機能而不超出本發明的精神。
請參閱圖17D,上述的智慧型IO流分析的再一個實施例為,定義一給定的LMU經過某一段時間與IO比率及數據比率相關的條件(步驟1731),以及計算對於該給定的LMU經過該段時間的IO比率及數據比率(步驟1732)。測試該條件是否符合(步驟1733),且當該條件符合時進行執行LMU重新指定功能(步驟1714)。
上述的智慧型IO流分析機制可能產生的一個問題是,如果對於一個通過兩者的LMU的IO比率以及/或者的數據比率相當接近的話,可能會產生LMU重新指定的頻率過高的問題,而這本身可能會對效能產生實質的負面衝擊,因為在每一次執行LMU重新指定時IO流將會暫停。因而,最好是具有一機制可以限制LMU重新指定的頻率。
請參閱圖18,上述機制的一個實施例是,該智慧型IO流分析機制可以包括對LMU重新指定定義一等待期間(wait period),而在發生一次LMU重新指定後,至少要經過該等待期間後才能再開始第二次LMU重新指定而將LMU重新指定回第一次指定前原本所指定的SVC。開始時,定義經過某一段時間的IO比率及/或數據比率的一臨界值並定義一等待期間(步驟1801)。接下來,計算對一LMU經過某一段時間的該IO比率及/或數據比率(步驟1802)。檢測該IO比率及/或數據比率是否超過該臨界值(步驟1803)。一但該IO比率及/或數據比率超過該臨界值,檢測自從上次重新指定後的時間是否已經超過該等候期間(步驟1804)。一但自從上次重新指定後的時間已經超過該等候期間,則執行LMU重新指定(步驟1805)。
請參閱圖19A及圖19B,另外的一個實施例是,為上述的各期間定義一段期間或一數目,而要求於一次LMU重新指定前,上述的實際I0以及/或者數據比率的比例至少要維持在相關的臨界值以上該段期間或該數目。
請參閱圖19A,定義經過某一段時間的IO比率及/或數據比率的一臨界值,並定義經過一段時間的IO比率及/或數據比率超過該臨界值的一臨界值次數(N′)(步驟1901)。開始時,N=0,其中N定義IO比率及/或數據比率超過該臨界值的次數(步驟1902),且計算針對一LMU經過一段時間的IO比率及/或數據比率(步驟1903)。然後,檢查是否IO比率及/或數據比率超過該臨界值(步驟1904)。如果IO比率及/或數據比率超過該臨界值(步驟1904),則IO比率及/或數據比率超過該臨界值的次數N增加1(步驟1905)。步驟1906檢查是否N是大於或等於N′。如果N≥N′成立,則進行LMU重新指定(步驟1907)。如果N≥N′不成立,則程序回到步驟1903。
請參閱圖19B,定義經過某一段時間的IO比率及/或數據比率的一臨界值,並定義IO比率及/或數據比率超過該臨界值的一臨界值期間(T2)(步驟1911)。開始計算或重新計算對一LMU經過一段時間的IO比率及/或數據比率超過該臨界值的時間(步驟1913)。檢查是否IO比率及/或數據比率超過該臨界值(步驟1914)。如果IO比率及/或數據比率未超過該臨界值(步驟1914),則程序回到步驟1912。反之,如果IO比率及/或數據比率超過該臨界值,則程序進行至步驟1915。步驟1915檢查是否T是大於或等於T2。如果T≥T2成立(步驟1915),程序進行至步驟1916;如果T≥T2不成立,則程序回到步驟1913。步驟1916進行LMU重新指定。
在某些狀況下,將LMU指定給一個SVC而該SVC並非是收到大部份主機發送給該LMU的IO的SVC,若由效能的觀點來看將可能是有利的。如果當LMU的指定使得IO總是由收到的SVC來處理而在兩個SVC之間的處理負載上有實質的不平衡時,則可能發生上述的情形。舉例而言,如果有4個LMULMU1,LMU2,LMU3,LMU4,其中定址於LMU1及LMU2的IO由主機發送給SVC-A來處理,定址於LMU3及LMU4的IO由則發送給SVC-B來處理,且LMU1及LMU2兩者皆在進行處理密集(processing-intensive)的LMU虛擬化的操作時(例如PSD數據重建),則將LMU1及LMU3指定給SVC-A且LMU2及LMU4指定給SVC-B,然後將定址於LMU2及LMU3的IO加以繞送至它們所指定的SVC的話,與將LMU1及LMU2指定在同一個SVC上並因而免除了繞送的情況相比之下,前者實際上可以產生更好的效能。這是因為藉由將LMU虛擬化的操作的負載加以平衡於兩個SVC之間所得到的效能改善,會超過因為LMU所指定的SVC並非收到大部份定址於該LMU的主機IO的SVC而必須進行的IO繞送所造成的負面效應。
為了適應此種情形,除了要分析主機IO流特性以決定LMU該指定給哪一個SVC之外(而且,也許,如果現在並未指定給最佳的SVC的話則重新指定),每一個SVC的處理負載亦需列入考慮。一依據上述考慮的負載平衡LMU重新指定機制描述於圖20的流程圖中。在此負載平衡LMU重新指定機制2010中,於該兩SVC間的處理負載的平衡被監測,例如藉由計算該等SVC間的處理負載而達成。在步驟2013中,檢查該兩SVC間是否存在有處理負載上的實質不平衡。如果在步驟2013中的回答是肯定的,則於步驟2014中執行LMU重新指定;否則在步驟2013繼續檢查。每一個LMU指定的各種情境(scenario)的相對效能,其包括在兩個SVC間的處理負載的平衡的效能優勢,與繞送IO的效能代價兩者間的取捨(trade-off),皆可被計算出,且該指定情境達到最佳整體效能者於是可以被選出,而各個LMU的指定則據以進行。
總之,依據本發明上述的各實施例,提出了一重新指定時機決定機制2100於圖21中。在步驟2102中,預設了一或多個觸發該IO重新指定功能的條件。在步驟2103中,決定重新指定時機決定機制中的一個或多個預設的條件是否被滿足。如果在步驟2103中的條件被滿足時,將執行該IO重新指定功能(步驟2104)。另一方面,如果該等預設的條件未滿足時,將不會觸發該動態LMU重新指定功能。又或,依據另一種機制,如果沒有任一預設條件被滿足時,將不會觸發該動態LMU重新指定功能。
以上所述,僅是本發明的較佳實施例而已,並非對本發明作任何形式上的限制,雖然本發明已以較佳實施例揭露如上,然而並非用以限定本發明,任何熟悉本專業的技術人員,在不脫離本發明技術方案範圍內,當可利用上述揭示的方法及技術內容作出些許的更動或修飾為等同變化的等效實施例,但凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬於本發明技術方案的範圍內。
權利要求
1.一種於儲存虛擬化子系統中執行動態邏輯媒體單元重新指定的方法,該儲存虛擬化子系統包含複數個儲存虛擬化控制器及一實體儲存裝置陣列連接於其上,該實體儲存裝置陣列包含至少一實體儲存裝置,且定義有至少一邏輯媒體單元,該邏輯媒體單元包含該實體儲存裝置陣列的複數區段,其特徵在於該方法包含該等儲存虛擬化控制器的一啟始一第一邏輯媒體單元的重新指定;及一為該至少一邏輯媒體單元的一第一邏輯媒體單元的擁有者的第一儲存虛擬化控制器依據該啟始指示而釋出該第一邏輯媒體單元,並使該第一邏輯媒體單元指定移轉至一第二儲存虛擬化控制器,使其成為新的該第一邏輯媒體單元的擁有者。
2.根據權利要求1所述的方法,其特徵在於其中所述的啟始重新指定的儲存虛擬化控制器為該第一儲存虛擬化控制器。
3.根據權利要求1所述的方法,其特徵在於其中所述的啟始重新指定的儲存虛擬化控制器為該等儲存虛擬化控制器中的一第三儲存虛擬化控制器。
4.根據權利要求1所述的方法,其特徵在於其中所述的啟始重新指定的儲存虛擬化控制器為該第二儲存虛擬化控制器。
5.根據權利要求4所述的方法,其特徵在於其中所述的第二儲存虛擬化控制器是在接收到一定址於該第一邏輯媒體單元的輸出入請求後啟始該重新指定第一邏輯媒體單元。
6.根據權利要求5所述的方法,其特徵在於其中所述的第二儲存虛擬化控制器是在成為該新的第一邏輯媒體單元擁有者之前是將所接收到的定址於該第一邏輯媒體單元的輸出入請求放入隊列中,並於成為該新的第一邏輯媒體單元擁有者後處理該等隊列中定址於該第一邏輯媒體單元的輸出入請求以及任何新接收到定址於該第一邏輯媒體單元的輸出入請求。
7.根據權利要求1所述的方法,其特徵在於其更包括以下步驟該第一儲存虛擬化控制器釋出該第一邏輯媒體單元之前是將必須由該第一邏輯媒體單元擁有者來進行的邏輯媒體單元虛擬化的操作進行下列之一處理暫停、放棄及等待其做完。
8.根據權利要求7所述的方法,其特徵在於其更包括有該第二儲存虛擬化控制器成為該新的第一邏輯媒體單元擁有者後繼續進行該暫停或放棄的邏輯媒體單元虛擬化的操作步驟。
9.根據權利要求1所述的方法,其特徵在於其中所述的第一儲存虛擬化控制器釋出該第一邏輯媒體單元之前更包括執行以下步驟允許並使任何進行中而定址於該第一邏輯媒體單元的輸出入請求做完;讓任何定址於該第一邏輯媒體單元的主機輸出入的執行暫停;及將任何還沒開始的定址於該第一邏輯媒體單元的輸出入請求放入隊列中。
10.根據權利要求1所述的方法,其特徵在於其中所述的第一儲存虛擬化控制器釋出該第一邏輯媒體單元的步驟包括有改變其自身的邏輯媒體單元指定狀態版本以指出該第一邏輯媒體單元已不再指定給該第一儲存虛擬化控制器。
11.根據權利要求1所述的方法,其特徵在於其更包括有以下步驟該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元後是以一個指定通知告知該第二儲存虛擬化控制器說該第一邏輯媒體單元已指定移轉給該第二儲存虛擬化控制器。
12.根據權利要求11所述的方法,其特徵在於其中所述的第二儲存虛擬化控制器收到該指定通知後,改變其自身的指定狀態版本以指出該第一邏輯媒體單元現在已經指定給該第二儲存虛擬化控制器。
13.根據權利要求10或12所述的方法,其特徵在於其包括修改其自身的數據快取控制結構。
14.根據權利要求1所述的方法,其特徵在於其中所述的步驟中更包括有該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元後是對該第二儲存虛擬化控制器發送請求該第一邏輯媒體單元所有權歸還,以請求該第二儲存虛擬化控制器在之後歸還該第一邏輯媒體單元之所有權。
15.根據權利要求1所述的方法,其特徵在於其更包括有以下步驟該第一儲存虛擬化控制器是將在該邏輯媒體單元重新指定過程中任何放入隊列的定址於該第一邏輯媒體單元的輸出入請求繞送至該第二儲存虛擬化控制器。
16.根據權利要求1所述的方法,其特徵在於其更包含一協調機制,用以在產生該等儲存虛擬化控制器中有複數個儲存虛擬化控制器同時啟始該第一邏輯媒體單元的重新指定時決定重新指定的對象。
17.根據權利要求16所述的方法,其特徵在於其中所述的協調機制為該第一儲存虛擬化控制器所執行,且於該釋出該第一邏輯媒體單元後通知該等儲存虛擬化控制器的其他儲存虛擬化控制器誰成為該新的第一邏輯媒體單元的擁有者。
18.根據權利要求16所述的方法,其特徵在於其中所述的協調機制為一第三儲存虛擬化控制器所執行,該第一儲存虛擬化控制器於釋出該第一邏輯媒體單元後通知該第三儲存虛擬化控制器,該第三儲存虛擬化控制器通知該等儲存虛擬化控制器的其他儲存虛擬化控制器誰成為該新的第一邏輯媒體單元的擁有者。
19.根據權利要求16所述的方法,其特徵在於其是依據該等啟始第一邏輯媒體單元的重新指定程序的儲存虛擬化控制器中所具有定址於該第一邏輯媒體單元的主機輸出入請求的時間長短來決定該重新指定對象。
20.根據權利要求1所述的方法,其特徵在於其中所述的第一儲存虛擬化控制器於釋出該第一邏輯媒體單元之前,包含一判斷是否達到可釋出該第一邏輯媒體單元的時機的步驟。
21.根據權利要求20所述的方法,其特徵在於其中所述的判斷步驟包括查核是否對該該第一邏輯媒體單元保持了一段最小指定保持期間。
22.根據權利要求20所述的方法,其特徵在於其中所述的該判斷步驟包括查核是否有任何定址於該第一邏輯媒體單元的輸出入請求。
23.根據權利要求20所述的方法,其特徵在於其中所述的該判斷步驟包括查核該第一邏輯媒體單元的輸出入空窗期間是否超過一預定的輸出入空窗期間臨界值。
24.根據權利要求23所述的方法,其特徵在於其中所述的輸出入空窗期間設定為開始於收到最後一個定址於該第一邏輯媒體單元的主機輸出入請求。
25.根據權利要求23所述的方法,其特徵在於其中所述的輸出入空窗期間的起始時點設定於當處理一定址於該第一邏輯媒體單元的輸出入請求完成時,並於收到一新的定址於該第一邏輯媒體單元的輸出入請求時取消計時。
26.根據權利要求1所述的方法,其特徵在於其中所述的等儲存虛擬化控制器可以執行主機端輸出入繞送程序,以使該等儲存虛擬化控制器於收到非指定於其自身的一特定的邏輯媒體單元的輸出入請求時,可轉送至該特定邏輯媒體單元的擁有者的儲存虛擬化控制器處理。
27.根據權利要求26所述的方法,其特徵在於其更包含有以下步驟該第一儲存虛擬化控制器在釋出該第一邏輯媒體單元之前,指示其他的該儲存虛擬化控制器讓定址於該第一邏輯媒體單元正在執行繞送的輸出入請求執行完畢,並將定址於該第一邏輯媒體單元的主機輸出入請求繞送暫停;及該等儲存虛擬化控制器於收到該指示後進行相關的動作。
28.根據權利要求27所述的方法,其特徵在於其中所述的繞送暫停步驟包含將所有定址於該第一邏輯媒體單元的輸出入請求存入隊列。
29.根據權利要求26所述的方法,其特徵在於其更包括有一決定步驟,用以決定是否啟始該第一邏輯媒體單元的重新指定,並於啟始該第一邏輯媒體單元的重新指定程序前,該等儲存虛擬化控制器中的非該第一邏輯媒體單元的擁有者是在收到定址於該第一邏輯媒體單元的輸出入請求時執行該繞送程序。
30.根據權利要求29所述的方法,其特徵在於其中所述的決定步驟包含執行一輸出入流動的智慧型分析功能的操作。
31.根據權利要求30所述的方法,其特徵在於其中所述的智慧型分析功能的操作包括以下步驟計算對於該第一邏輯媒體單元經過經過該段時間的輸出入比率及數據比率;以及檢測該輸出入比率及數據比率是否與一事先定義的條件相符合,當該條件符合時,才能將執行該第一邏輯媒體單元重新指定功能。
32.根據權利要求30所述的方法,其特徵在於其中所述的智慧型分析功能的操作包括以下步驟計算對於該第一邏輯媒體單元經過某一段時間的輸出入比例;以及查核是否該輸出入流所顯示的實際比例值超過一第一臨界值,若是,才能啟始該第一邏輯媒體單元重新指定,其中該第一臨界值為在一段期間內被繞送的定址於該第一邏輯媒體單元的輸出入請求與其他未被繞送的輸出入請求的比例。
33.根據權利要求30所述的方法,其特徵在於其中所述的智慧型分析功能的操作包括以下步驟計算對於該第一邏輯媒體單元經過某一段時間的數據比例;以及查核是否該輸出入流所顯示的實際比例值超過一第二臨界值,若是,才能啟始該第一邏輯媒體單元重新指定,其中該第二臨界值為在一段期間內被繞送的定址於該第一邏輯媒體單元的單位時間數據量與其他未被繞送的單位時間數據量的比例。
34.根據權利要求32或33所述的方法,其特徵在於其中所述的智慧型分析功能的操作包括以下步驟計數該輸出入流所顯示的實際比例值超過該臨界值的次數;及檢查該所計數超過該臨界值的次數是否以超過或等於一臨界值次數,當該所計數的次數超過或等於該臨界值次數時,才能啟始該第一邏輯媒體單元重新指定程序。
35.根據權利要求32或33所述的方法,其特徵在於其中所述的智慧型分析功能的操作包括以下步驟計算對該第一邏輯媒體單元經過一段時間的輸出入流所顯示的實際比例值超過該臨界值的時間;及檢查該所計算超過該臨界值時間是否以超過或等於一臨界值期間,並當該所計算的時間超過或等於該臨界值期間時,才能啟始該第一邏輯媒體單元重新指定程序。
36.根據權利要求30所述的方法,其特徵在於其中所述的智慧型分析功能的操作包括以下步驟檢測自從前一次該第一邏輯媒體單元重新指定後的時間是否已經超過一等候期間,若未超過,則該第一儲存虛擬化控制器不會發動執行該重新指定功能。
37.根據權利要求1所述的方法,其特徵在於其更包括執行一負載平衡邏輯媒體單元重新指定機制以決定是否啟始該重新指定。
38.根據權利要求37所述的方法,其特徵在於其中所述的負載平衡邏輯媒體單元重新指定機制包括有以下步驟監測該等儲存虛擬化控制器間的處理負載的平衡;及檢查該等儲存虛擬化控制器間是否存在有處理負載上的實質不平衡,並當存在有處理負載上實質不平衡時,才能執行邏輯媒體單元重新指定。
39.一種儲存虛擬化子系統,其特徵在於其包含複數個儲存虛擬化控制器及一實體儲存裝置陣列連接於其上,該實體儲存裝置陣列包含至少一實體儲存裝置;至少一邏輯媒體單元,該邏輯媒體單元包含該實體儲存裝置陣列的複數區段;該等儲存虛擬化控制器的一啟始一第一邏輯媒體單元的重新指定;及一為該至少一邏輯媒體單元的一第一邏輯媒體單元的擁有者的第一儲存虛擬化控制器依據該起始指示而釋出該第一邏輯媒體單元,並使該第一邏輯媒體單元指定移轉至一第二儲存虛擬化控制器,使其成為新的該第一邏輯媒體單元的擁有者。
40.根據權利要求39所述的儲存虛擬化子系統,其特徵在於其中所述的儲存虛擬化子系統可以執行主機端輸出入繞送。
41.根據權利要求39所述的儲存虛擬化子系統,其特徵在於其中所述的等儲存虛擬化控制器的至少一者具有一該第一邏輯媒體單元的輸出入請求狀態表,用以紀錄該等儲存虛擬化控制器中的非該第一邏輯媒體單元擁有者的其他各儲存虛擬化控制器的各該第一邏輯媒體單元的輸出入請求收迄時間。
42.根據權利要求41所述的儲存虛擬化子系統,其特徵在於其中所述的具有該狀態表的儲存虛擬化控制器為該第一儲存虛擬化控制器。
43.根據權利要求41所述的儲存虛擬化子系統,其特徵在於其中所述的具有該狀態表的儲存虛擬化控制器為一第三儲存虛擬化控制器。
44.根據權利要求39所述的儲存虛擬化子系統,其特徵在於其中所述的等邏輯媒體單元支援藉由使用者組態設定以動態地重新指定而不需要重新初始化任一個SVC。
45.一種電腦系統,其特徵在於其包含一主機及一儲存虛擬化子系統連接於其上;該儲存虛擬化子系統包含複數個儲存虛擬化控制器及一實體儲存裝置陣列連接於其上,該實體儲存裝置陣列包含至少一實體儲存裝置;該儲存虛擬化子系統並定義至少一邏輯媒體單元,該邏輯媒體單元包含該實體儲存裝置陣列的複數區段;該儲存虛擬化子系統更包含該等儲存虛擬化控制器的一啟始一第一邏輯媒體單元的重新指定程序;及一為該至少一邏輯媒體單元的一第一邏輯媒體單元的擁有者的第一儲存虛擬化控制器依據該起始指示而釋出該第一邏輯媒體單元,並使該第一邏輯媒體單元指定移轉至一第二儲存虛擬化控制器,使其成為新的該第一邏輯媒體單元的擁有者。
46.根據權利要求45所述的電腦系統,其特徵在於其中所述的儲存虛擬化子系統可以執行主機端輸出入繞送。
47.根據權利要求45所述的電腦系統,其特徵在於其中所述的儲存虛擬化子系統及一主機被設置成可執行分離冗餘路徑輸出入傳送功能。
48.根據權利要求45所述的電腦系統,其特徵在於其中所述的主機被預先設定組態成,當其發送定址於該第一邏輯媒體單元的輸出入請求時,是通過連接該主機與該第一邏輯媒體單元所指定的儲存虛擬化控制器的連結來發送該輸出入請求,而當該第一邏輯媒體單元無法再通過前述路徑存取,才改經連接該主機與其他儲存虛擬化控制器的連結來發送該輸出入請求。
49.一種儲存虛擬化控制器,用於一儲存虛擬化子系統而與該子系統中的一第二儲存虛擬化控制器互為冗餘組態,其特徵在於其中所述的儲存虛擬化控制器包含一中央處理電路,用以執行輸出入操作以回應於一主機的輸出入請求;至少一主機端輸出入裝置連結埠設置來連接至該主機;至少一控制器間通訊通道控制器用以連接至該第二儲存虛擬化控制器;及其中該中央處理電路被構造成可用以執行動態邏輯媒體單元的重新指定。
50.根據權利要求49所述的儲存虛擬化控制器,其特徵在於其中所述的儲存虛擬化控制器亦可以執行主機端輸出入請求繞送。
全文摘要
本發明是有關於一種執行主機端輸出入請求繞送以及動態邏輯媒體單元重新指定的儲存虛擬化子系統。在一實施例中,當一主機輸出入請求為一儲存虛擬化控制器所接收到而該儲存虛擬化控制器不是該主機輸出入請求所定址的邏輯媒體單元的邏輯媒體單元擁有者時,該輸出入請求可被繞送至另一儲存虛擬化控制器-該邏輯媒體單元擁有者-而被執行。在另一實施例中,該邏輯媒體單元擁有者的指定可以動態地重新指定給原先不是邏輯媒體單元擁有者的接收儲存虛擬化控制器,而使得該接收儲存虛擬化控制器變成新的邏輯媒體單元擁有者以執行該主機輸出入請求。
文檔編號G06F3/06GK1725170SQ20051008609
公開日2006年1月25日 申請日期2005年7月19日 優先權日2004年7月19日
發明者施明文, 詹志忠 申請人:普安科技股份有限公司