專利名稱::執(zhí)行儲存虛擬化的儲存子系統(tǒng)及儲存系統(tǒng)架構(gòu)及其方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種儲存虛擬化的方法,特別是涉及一種可彈性擴(kuò)充儲存容量的儲存虛擬化的方法。
背景技術(shù):
:公知技術(shù)中,由磁碟陣列子系統(tǒng)(diskarraysubsystem)所映射出來的邏輯磁碟機(jī)(LogicalDrive,LD)或分割區(qū)(partition)呈現(xiàn)在主機(jī)通道上成為實(shí)體卷(physicalvolume,PV)給主機(jī)存取,主機(jī)存取這些實(shí)體卷時直接利用邏輯磁碟機(jī)或分割區(qū)的邏輯區(qū)塊位址(logicalblockaddress,LBA)以進(jìn)行存取。因此,一旦磁碟陣列子系統(tǒng)將這些實(shí)體卷呈現(xiàn)給主機(jī)之后,便難以再變更這些實(shí)體卷及其對應(yīng)的邏輯磁碟機(jī)或分割區(qū)的組態(tài)(configuration);特別是,欲減小一個實(shí)體卷及其對應(yīng)的邏輯磁碟機(jī)或分割區(qū)的容量更是完全不可能。此架構(gòu)使得磁碟陣列子系統(tǒng)在容量上的彈性受到一些限制,因而使磁碟陣列子系統(tǒng)的儲存空間的運(yùn)用上受到很大的限制。舉例而言,若一個磁碟陣列子系統(tǒng)的容量有800GB,原本被組態(tài)設(shè)定為兩個400GB的邏輯磁碟機(jī),其分別稱為LDl及LD2,然后分別呈現(xiàn)一實(shí)體卷,其分別稱為PVl及PV2,至主機(jī)存取,結(jié)果在使用一陣子后發(fā)現(xiàn)PVl的用途只會用到100GB,但是PV2的用途所需要的空間一直增加,如此將使得400GB的容量最終將不敷使用。在公知技術(shù)中,由于PVl的組態(tài)無法改變且只使用100GB容量,而閑置的300GB容量卻無法使用。反之,PV2卻因其空間不足只好再另行添購儲存設(shè)備而形成該RAID子系統(tǒng)在資源上的浪費(fèi)。再者,在某些公知資料儲存系統(tǒng)架構(gòu)下,在磁碟陣列子系統(tǒng)之間抑或是無法進(jìn)行資料遷徙、抑或是在進(jìn)行資料遷徙時的系統(tǒng)效能不彰,這對于資料儲存系統(tǒng)資源的使用彈性及/或系統(tǒng)效能有著負(fù)面的影響。又且,在某些公知資料儲存系統(tǒng)架構(gòu)下,雖在磁碟陣列子系統(tǒng)之間可以進(jìn)行資料遷徙,但是卻無法具有RAID功能的保護(hù),這對于現(xiàn)今資料可利用性(dataavailability)要求高漲的資訊時代而言是難以接受的。此外,在某些公知資料儲存系統(tǒng)架構(gòu)下,所有的輸出入存取命令(IOaccesscommands)者β必須經(jīng)由儲存節(jié)點(diǎn)(storagenode)中的一個主控儲存節(jié)點(diǎn)(masterstoragenode)來發(fā)出以被恰當(dāng)?shù)貓?zhí)行,即使該輸出入存取命令所系屬的資料本身并不位于該節(jié)點(diǎn)中的實(shí)體儲存裝置中。在有沉重10負(fù)擔(dān)的情況下,系統(tǒng)的效能可能最終僅取決于該主控儲存節(jié)點(diǎn)的10處理能力。因此,如何增加磁碟陣列子系統(tǒng)在儲存資源上更有彈性以避免資源浪費(fèi)問題,實(shí)為儲存業(yè)界的一大難題。
發(fā)明內(nèi)容本發(fā)明的目的在于,提供一種新的執(zhí)行儲存虛擬化的儲存子系統(tǒng)及儲存系統(tǒng)架構(gòu)及其方法,所要解決的技術(shù)問題是使其增加磁碟陣列子系統(tǒng)在儲存資源上更有彈性以避免資源浪費(fèi)問題,非常適于實(shí)用。本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實(shí)現(xiàn)的。依據(jù)本發(fā)明的一實(shí)施例,提出一種存取資料的方法,用于存取一儲存系統(tǒng)架構(gòu)中的資料,該儲存系統(tǒng)架構(gòu)包含至少一磁碟陣列子系統(tǒng),該方法包含下列步驟提供一區(qū)段分配系統(tǒng)(SectionAllocationSystem,SAS)用以管理該至少一磁碟陣列子系統(tǒng)中的一第一媒體區(qū)及一第二媒體區(qū);借由一區(qū)塊關(guān)聯(lián)表得到一主機(jī)邏輯區(qū)塊位址(LBA)所對應(yīng)的一位置索引;借由一實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制得到該位置索引所對應(yīng)的位于該第一媒體區(qū)中的一第一實(shí)體區(qū)段的一位置資訊;將該第一實(shí)體區(qū)段中的資料復(fù)制或搬移至于該第二媒體區(qū)中的一第二實(shí)體區(qū)段中;更新該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制中的交互參照,以使得借由該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制所得到的該位置索引所對應(yīng)的位置資訊系該第二實(shí)體區(qū)段的位置資訊;以及一定址于該主機(jī)邏輯區(qū)塊位址的一主機(jī)輸入/輸出請求利用該第二實(shí)體區(qū)段的位置資訊存取該第二實(shí)體區(qū)段中的資料。依據(jù)本發(fā)明的一實(shí)施態(tài)樣,提供一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列(blockassociationsetsectionallocationlist,BASSAL)及一實(shí)體對虛擬/虛擬對實(shí)體(P2V/V2P)區(qū)段分配串列于該區(qū)段分配系統(tǒng)中;利用該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列產(chǎn)生該區(qū)塊關(guān)聯(lián)表;以及利用該P(yáng)2V/V2P區(qū)段分配串列產(chǎn)生該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制。依據(jù)本發(fā)明的另一實(shí)施態(tài)樣,提供一實(shí)體對虛擬映射表(P2Vtable)于該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制中,以使借由該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制可得到該位置索引所對應(yīng)的該第一實(shí)體區(qū)段的該位置資訊。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,產(chǎn)生一虛擬對實(shí)體映射表(V2Ptable)于該P(yáng)2V/V2P區(qū)段分配串列中,用以輔助該實(shí)體對虛擬映射表以加速索引到該第二實(shí)體區(qū)段。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含一節(jié)點(diǎn)表索引該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,該P(yáng)2V/V2P區(qū)段分配串列包含一屬性區(qū)塊,用以記載該區(qū)段分配系統(tǒng)的一區(qū)段分配系統(tǒng)識別碼及其相關(guān)設(shè)定資訊;一目錄,用以記載指引、管理該多個媒體區(qū)所含的多個實(shí)體區(qū)段(section)上的資訊;一虛擬對實(shí)體映射表欄位,用以儲存一虛擬對實(shí)體映射表;以及一實(shí)體對虛擬映射表欄位,用以儲存一實(shí)體對虛擬映射表。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟接收該多個媒體區(qū)中的一將被移除的媒體區(qū)所對應(yīng)的一移除訊息;根據(jù)該移除訊息,找出該將被移除的媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);取得來自該區(qū)段分配系統(tǒng)所的屬的該將被移除的媒體區(qū)的一實(shí)體區(qū)段資訊;根據(jù)所取得的該實(shí)體區(qū)段資訊,復(fù)制或搬移該將被移除的媒體區(qū)所包含多個實(shí)體區(qū)段中的一第三實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一;以及判斷該將被移除的媒體區(qū)上所包含的所有該多個實(shí)體區(qū)段上的資料是否已復(fù)制或搬移至其他該多個媒體區(qū)其中的一個或多個媒體區(qū)中。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,當(dāng)判斷該將被移除的媒體區(qū)上的所有該多個實(shí)體區(qū)段上的資料尚有實(shí)體區(qū)段未完成復(fù)制或搬移至其他該多個媒體區(qū)其中的一個或多個時,則到該多個實(shí)體區(qū)段中的一第四實(shí)體區(qū)段;以及進(jìn)行「復(fù)制或搬移該將被移除的媒體區(qū)所包含多個實(shí)體區(qū)段中的該第四實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一」的步驟。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)判斷該將被移除的媒體區(qū)上的所有該多個實(shí)體區(qū)段上的資料已完成復(fù)制或搬移至其他該多個媒體區(qū)其中的一個或多個時,則移除該將被移除的媒體區(qū)。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,在該「復(fù)制或搬移該將被移除的媒體區(qū)所包含多個實(shí)體區(qū)段中的一第三實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一」步驟之后還包含下列步驟根據(jù)所取得的該媒體區(qū)的該實(shí)體區(qū)段資訊,增加該將被移除的媒體區(qū)所具有的一有效性檢查序號(VCSN),并通知該將被移除的媒體區(qū)所系屬的一VCSN代理人其增加后的該有效性檢查序號。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟接收一新增媒體區(qū)的一新增訊息;根據(jù)該新增訊息,找出該新增媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);計(jì)算該區(qū)段分配系統(tǒng)中所有的該多個媒體區(qū)中已使用的多個實(shí)體區(qū)段的一總實(shí)體區(qū)段數(shù);考慮該新增媒體區(qū)所包含的一實(shí)體區(qū)段數(shù)及該總實(shí)體區(qū)段數(shù),以計(jì)算出各該多個媒體區(qū)的一平衡后的實(shí)體區(qū)段數(shù)(balancedsectioncount);處理該多個媒體區(qū)的其中之一;判斷正在處理中的該媒體區(qū)的該實(shí)體區(qū)段數(shù)是否大于該平衡后的實(shí)體區(qū)段數(shù);當(dāng)該正在處理中的多個媒體區(qū)的實(shí)體區(qū)段數(shù)大于該平衡后的實(shí)體區(qū)段數(shù)時,復(fù)制該多個媒體區(qū)中已使用的多個實(shí)體區(qū)段上的資料至該新增媒體區(qū);以及重復(fù)進(jìn)行該「判斷正在處理中的該媒體區(qū)的實(shí)體區(qū)段數(shù)是否大于該平衡后的實(shí)體區(qū)段數(shù)」的步驟。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)所有的該多個媒體區(qū)已處理完成時,結(jié)束此增加流程。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)該總實(shí)體區(qū)段數(shù)不大于該平衡后的實(shí)體區(qū)段數(shù)時,則取得該多個媒體區(qū)中的下一個媒體區(qū)進(jìn)行處理;以及判斷所有的該多個媒體區(qū)是否處理完成。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,在「復(fù)制該多個媒體區(qū)中已使用的多個實(shí)體區(qū)段上的資料至該新增媒體區(qū)」的步驟前,還包含下列步驟增加處理中的該媒體區(qū)的一有效性檢查序號(VCSN),并通知處理中的該媒體區(qū)所系屬的一VCSN代理人其增加后的該有效性檢查序號。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟接收該多個媒體區(qū)中的一將被移除的媒體區(qū)所對應(yīng)的一移除訊息;根據(jù)該移除訊息,找出該將被移除的媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn);當(dāng)該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列尚有未完成確認(rèn)者時,選擇一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列進(jìn)行確認(rèn);判斷該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中目前進(jìn)行處理的一第五實(shí)體區(qū)段是否關(guān)聯(lián)于該將被移除的媒體區(qū);當(dāng)該第五實(shí)體區(qū)段是關(guān)聯(lián)于該將被移除的媒體區(qū)時,復(fù)制該第五實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一;以及當(dāng)該第五實(shí)體區(qū)段并非關(guān)聯(lián)于該將被移除的媒體區(qū)時,則到該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的下一個實(shí)體區(qū)段。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)所有該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列已完成確認(rèn)時,則移除該將被移除的媒體區(qū)。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)判斷已到目前進(jìn)行確認(rèn)的該區(qū)段分配串列的終點(diǎn)時,則到該多個區(qū)段分配串列中的下一個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列;以及重復(fù)進(jìn)行「判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn)」的步驟。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)該第五實(shí)體區(qū)段上的資料復(fù)制至其他該多個媒體區(qū)的其中之一后,則到該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的一第六實(shí)體區(qū)段;以及進(jìn)行「判斷是否已到目前進(jìn)行確認(rèn)的該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的該區(qū)段分配串列的終點(diǎn)」的步驟。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,在「復(fù)制該第五實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一」的步驟前,還包含下列步驟增加該將被移除的媒體區(qū)所具有的一有效性檢查序號(VCSN),并通知該至少一將被移除的媒體區(qū)所系屬的一VCSN代理人其增加后的該有效性檢查序號。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟接收一新增媒體區(qū)的一新增訊息;根據(jù)該新增訊息,找出該新增媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn);當(dāng)該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列尚有未完成確認(rèn)者時,選擇一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列進(jìn)行確認(rèn);判斷該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中目前進(jìn)行確認(rèn)的一第五實(shí)體區(qū)段所關(guān)聯(lián)的一媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)是否大于該新增媒體區(qū)的一實(shí)體區(qū)段數(shù)目;當(dāng)該第五實(shí)體區(qū)段所關(guān)聯(lián)的該媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)大于新增媒體區(qū)的該實(shí)體區(qū)段數(shù)時,復(fù)制該第五實(shí)體區(qū)段上的資料至該至少一新增媒體區(qū);以及當(dāng)該所關(guān)聯(lián)的該媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)不大于新增媒體區(qū)的該實(shí)體區(qū)段數(shù)時,則到該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的下一個實(shí)體區(qū)段。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)所有該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列已完成確認(rèn)時,則結(jié)束此增加流程。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)判斷已到目前進(jìn)行確認(rèn)的該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列的終點(diǎn)時,則到該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的下一個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列;以及重復(fù)進(jìn)行「判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn)」的步驟。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含下列步驟當(dāng)該第五實(shí)體區(qū)段上的資料復(fù)制至其他該多個媒體區(qū)的其中之一后,則到該區(qū)段分配串列中的下一個實(shí)體區(qū)段;以及進(jìn)行「判斷是否已到目前進(jìn)行確認(rèn)的該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列的終點(diǎn)」的步驟。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,在「復(fù)制該第五實(shí)體區(qū)段上的資料至該至少一新增媒體區(qū)」的步驟前,還包含下列步驟增加處理中的該媒體區(qū)其中的一有效性檢查序號(VCSN),并通知處理中的該媒體區(qū)所系屬的一VCSN代理人其增加后的該有效性檢查序號。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,還包含索引該區(qū)塊關(guān)聯(lián)集中的一區(qū)塊關(guān)聯(lián)表(BAT),以使該區(qū)塊關(guān)聯(lián)表指向該虛擬對實(shí)體映射表。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,該區(qū)段分配系統(tǒng)還包含一實(shí)體區(qū)段索引對實(shí)體邏輯IKJatEf^Mlil^(physicallocationindextoLBAmappingfunction),iM^WiK^M引表用以記載該第一實(shí)體區(qū)段及該第二實(shí)體區(qū)段的資訊。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,該實(shí)體區(qū)段索引表包含一實(shí)體區(qū)段索引(physicalsectionindex,PSI)、一媒體區(qū)識別碼、一邏輯區(qū)塊位址(logicalblockaddress,LBA)以及一分區(qū)數(shù)(sectioncount)。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,該實(shí)體位置索引對實(shí)體邏輯區(qū)塊位址映射函數(shù)為一實(shí)體區(qū)段索引對實(shí)體邏輯區(qū)塊位址映射表。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,該至少一磁碟陣列子系統(tǒng)包含多個實(shí)體儲存元件(physicalstoragedevice,PSD)0依據(jù)本發(fā)明的另一實(shí)施例,提出一種存取一資料儲存系統(tǒng)架構(gòu)中的資料的方法,該資料儲存系統(tǒng)架構(gòu)包含至少一磁碟陣列子系統(tǒng),該方法包含下列步驟提供一區(qū)段分配系統(tǒng)于該至少一磁碟陣列子系統(tǒng)中的一主控子系統(tǒng)中,用以管理一虛擬池,該虛擬池中包含有該磁碟陣列子系統(tǒng)中所映射出的一第一媒體區(qū)及一第二媒體區(qū);提供一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列于該區(qū)段分配系統(tǒng)中,用以管理一提供一P2V/V2P區(qū)段分配串列于該區(qū)段分配系統(tǒng)中,用以產(chǎn)生一P2V表;虛擬卷,該虛擬卷被呈現(xiàn)給一主機(jī)以供其存取資料;收到一第一主機(jī)命令,該第一主機(jī)命令中帶有一要被轉(zhuǎn)換(convert)的一主機(jī)LBA;利用與該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列關(guān)聯(lián)的一區(qū)塊關(guān)聯(lián)表及與該P(yáng)2V/V2P區(qū)段分配串列關(guān)聯(lián)的一P2V表而將要被轉(zhuǎn)換的該主機(jī)LBA轉(zhuǎn)換而得到一實(shí)體區(qū)段索引;利用一實(shí)體區(qū)段索引對實(shí)體區(qū)段LBA映射函數(shù)將該實(shí)體區(qū)段索引轉(zhuǎn)換成為位于該第一媒體區(qū)中的一第一實(shí)體區(qū)段的一第一實(shí)體LBA;收到一第二主機(jī)命令,為一IO存取命令且?guī)в性撝鳈C(jī)LBA;以及利用該第一實(shí)體LBA存取位于該第一媒體區(qū)中的該第一實(shí)體區(qū)段中的資料。依據(jù)本發(fā)明的一實(shí)施態(tài)樣,更包含以下的步驟進(jìn)行資料遷徙而將該第一實(shí)體區(qū)段中的一資料復(fù)制或搬移至位于該第二媒體區(qū)中的一第二實(shí)體區(qū)段中,并將該資料遷徙的位置相關(guān)資訊更改至該P(yáng)2V表中,其中該第二實(shí)體區(qū)段具有一第二實(shí)體LBA;收到一第二主機(jī)命令,為一IO存取命令且?guī)в性撝鳈C(jī)LBA;以及利用該第二實(shí)體LBA存取位于該第二媒體區(qū)中的該第二實(shí)體區(qū)段中的資料。依據(jù)本發(fā)明的實(shí)施例再提出一種存取磁碟陣列子系統(tǒng)架構(gòu)中的資料的方法,該磁碟陣列子系統(tǒng)架構(gòu)包含至少一磁碟陣列子系統(tǒng),該至少一磁碟陣列子系統(tǒng)包含的至少一第一媒體區(qū),該至少一第一媒體區(qū)包含多個邏輯區(qū)塊位址,該方法包含下列步驟提供一區(qū)段分配系統(tǒng)用以管理該至少一第一媒體區(qū),該區(qū)段分配系統(tǒng)中包含有利用一區(qū)塊關(guān)聯(lián)表(blockassociationtable,BAT)、一實(shí)體對虛擬索引映射表(P2Vindexmappingtable)以及一實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù)(physicallocationindextophyLBAmappingfunction);接收來自一主機(jī)的一輸入/輸出請求,該輸入/輸出請求包含一主機(jī)LBA;利用該區(qū)塊關(guān)聯(lián)表(blockassociationtable,BAT)、該P(yáng)2V表及一由該P(yáng)2V表所產(chǎn)生的V2P表兩者之一、及該實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù)從該主機(jī)LBA得到一第一實(shí)體邏輯區(qū)塊位址(LBA);以及利用該第一實(shí)體邏輯區(qū)塊位址針對一第一媒體區(qū)進(jìn)行輸入/輸出存取。依據(jù)本發(fā)明的一實(shí)施態(tài)樣,更包含以下的步驟將該輸入/輸出請求轉(zhuǎn)換出一卷區(qū)塊索引(VolumeBlockIndex,VBI);利用該區(qū)塊關(guān)聯(lián)表(blockassociationtable,BAT)由該VBI得到一虛擬索引(virtualindex);利用該P(yáng)2V表及一由該P(yáng)2V表所產(chǎn)生的V2P表兩者之一,由該虛擬索引得到一實(shí)體索引(physicallocationindex);以及利用該實(shí)體索引以及該實(shí)體位置索引對實(shí)體邏輯區(qū)塊位址映射函數(shù)得到一實(shí)體邏輯區(qū)塊位址(LBA)。依據(jù)本發(fā)明的另一實(shí)施態(tài)樣,更包含以下的步驟進(jìn)行資料遷徙而將該第一實(shí)體區(qū)段中的一資料復(fù)制或搬移至位于該第二媒體區(qū)中的一第二實(shí)體區(qū)段中,并將該資料遷徙的位置相關(guān)資訊更改至該P(yáng)2V表及/或該V2P表中,其中該第二實(shí)體區(qū)段具有一第二實(shí)體LBA;接收來自一主機(jī)的一輸入/輸出請求,該輸入/輸出請求包含一主機(jī)LBA;利用該區(qū)塊關(guān)聯(lián)表(blockassociationtable,BAT)、該P(yáng)2V表及一由該P(yáng)2V表所產(chǎn)生的V2P表兩者之一、及該實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù)從該主機(jī)LBA得到一第一實(shí)體邏輯區(qū)塊位址(LBA);以及利用該第一實(shí)體邏輯區(qū)塊位址針對一第一媒體區(qū)進(jìn)行輸入/輸出存取。依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,更包含以下的步驟將該輸入/輸出請求轉(zhuǎn)換出一卷區(qū)塊索引(VolumeBlockIndex,VBI);利用該區(qū)塊關(guān)聯(lián)表(blockassociationtable,BAT)由該VBI得到一虛擬索引(virtualindex);利用該P(yáng)2V表及一由該P(yáng)2V表所產(chǎn)生的V2P表兩者之一,由該虛擬索引得到一實(shí)體索引(physicallocationindex);以及利用該實(shí)體索引以及該實(shí)體位置索引對實(shí)體邏輯區(qū)塊位址映射函數(shù)得到一實(shí)體邏輯區(qū)塊位址(LBA)ο依據(jù)本發(fā)明的再一實(shí)施態(tài)樣,更包含以下的步驟進(jìn)行資料遷徙而將該第一實(shí)體區(qū)段中的一資料復(fù)制或搬移至位于該第二媒體區(qū)中的一第二實(shí)體區(qū)段中,并將該資料遷徙的位置相關(guān)資訊更改至該P(yáng)2V表及/或該V2P表中,其中該第二實(shí)體區(qū)段具有一第二實(shí)體LBA;收到一第二主機(jī)命令,為一IO存取命令且?guī)в性撝鳈C(jī)LBA;以及利用該第二實(shí)體LBA存取位于該第二媒體區(qū)中的該第二實(shí)體區(qū)段中的資料。依據(jù)本發(fā)明的再一實(shí)施例,提出一種在儲存系統(tǒng)架構(gòu)中產(chǎn)生虛擬卷的方法,該架構(gòu)包含一主機(jī)及一或多個儲存子系統(tǒng),每一子系統(tǒng)包含一或多個儲存控制器及一實(shí)體儲存裝置陣列,該方法包含以下的步驟將該實(shí)體儲存裝置陣列映射成為一或多個媒體區(qū)(ME),每一該媒體區(qū)包含多個實(shí)體區(qū)段,每一該實(shí)體區(qū)段具有一實(shí)體邏輯區(qū)塊位址(LBA);產(chǎn)生一區(qū)段分配系統(tǒng)(SAS)用于管理該至少一媒體區(qū),該區(qū)段分配系統(tǒng)包含至少一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列(BASSAL),每一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列用于將該一或多個媒體區(qū)的多個實(shí)體區(qū)段映射成為一虛擬卷,每一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列為其所對應(yīng)的虛擬卷記錄一區(qū)塊關(guān)聯(lián)表(BAT)及一卷容量,該區(qū)塊關(guān)聯(lián)表可用于將一主機(jī)LBA轉(zhuǎn)換成為一位置索引及至少一虛擬對實(shí)體表(V2P表)記錄有該位置索引與該實(shí)體LBA間的交互參照資訊;以及將該虛擬卷呈現(xiàn)給該主機(jī)。依據(jù)本發(fā)明的一實(shí)施態(tài)樣,該虛擬對實(shí)體表可用以從該位置索引得到一實(shí)體索弓丨,且該區(qū)段分配系統(tǒng)更包含一實(shí)體索引對實(shí)體邏輯區(qū)塊位址映射函數(shù),可藉以由該實(shí)體索引來該得到一實(shí)體邏輯區(qū)塊位址(LBA)。依據(jù)本發(fā)明的另一實(shí)施態(tài)樣,該方法更包含接收來自一主機(jī)的一輸入/輸出請求,該輸入/輸出請求包含一主機(jī)LBA;利用該區(qū)塊關(guān)聯(lián)表(blockassociationtable,BAT)、該P(yáng)2V表及一由該P(yáng)2V表所產(chǎn)生的V2P表兩者之一、及該實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù)從該主機(jī)LBA得到一第一實(shí)體邏輯區(qū)塊位址(LBA);以及利用該第一實(shí)體邏輯區(qū)塊位址針對一第一媒體區(qū)進(jìn)行輸入/輸出存取。依據(jù)本發(fā)明的另再一實(shí)施態(tài)樣,該方法更包含提供一虛擬卷快照功能性,該快照功能性的資料結(jié)構(gòu)包含一第二BASSAL,且由該第二BASSAL產(chǎn)生一或多個BAT,每一該BAT具有一位置索引欄位用以索引該P(yáng)2V或V2P中的虛擬索引,藉以執(zhí)行虛擬卷快照功能。借由上述技術(shù)方案,本發(fā)明執(zhí)行儲存虛擬化的儲存子系統(tǒng)及儲存系統(tǒng)架構(gòu)及其方法至少具有下列優(yōu)點(diǎn)及有益效果本發(fā)明能增加磁碟陣列子系統(tǒng)在儲存資源上更有彈性以避免資源浪費(fèi)問題。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉較佳實(shí)施例,并配合附圖,詳細(xì)說明如下。圖IA為依據(jù)本發(fā)明的一實(shí)施例的包含一個獨(dú)立冗余磁碟陣列子系統(tǒng)的儲存系統(tǒng)架構(gòu)1。圖IB為依據(jù)本發(fā)明的一實(shí)施例的RAID層204所映射出的邏輯磁碟機(jī)(logicaldrive,LD)與實(shí)體卷(physicalvolume)的關(guān)系。圖IC為依據(jù)本發(fā)明的一實(shí)施例的實(shí)體卷與其中的媒體區(qū)與分區(qū)(sector)的關(guān)系。圖ID為依據(jù)本發(fā)明的一實(shí)施例的實(shí)體卷與其中的媒體區(qū)與實(shí)體區(qū)段(section)的關(guān)系。圖2A為依據(jù)本發(fā)明的另一實(shí)施例的儲存系統(tǒng)架構(gòu)30。圖2B為圖2A實(shí)施例的儲存系統(tǒng)架構(gòu)30中,依據(jù)本發(fā)明的一實(shí)施例的虛擬池與媒體區(qū)及虛擬卷關(guān)系的示意圖。圖2C,為依據(jù)本發(fā)明的一實(shí)施例的用于虛擬池的一區(qū)段分配系統(tǒng)的資料結(jié)構(gòu)的示意圖。圖3A,其為依據(jù)本發(fā)明的一實(shí)施例的由多個RAID子系統(tǒng)中的媒體區(qū)所形成的虛擬池的示意圖。圖3B為依據(jù)本發(fā)明圖3A的虛擬池中所包含的實(shí)體區(qū)段的資料結(jié)構(gòu)的一實(shí)施例示意圖。圖3C為依據(jù)本發(fā)明圖3A的虛擬池中所包含的實(shí)體區(qū)段的資料結(jié)構(gòu)的另一實(shí)施例示意圖。圖3D為依據(jù)本發(fā)圖3A的虛擬池中所包含的實(shí)體區(qū)段的資料結(jié)構(gòu)的又一實(shí)施例示意圖。圖4A為依據(jù)本發(fā)明的一實(shí)施例的BAT2137的示意圖。圖4B為依據(jù)本發(fā)明的另一實(shí)施例的BAT2137的示意圖。圖4C及圖4D為依據(jù)本發(fā)明的一實(shí)施例的『分散式資料』功能的示意圖。圖5為依據(jù)本發(fā)明的一實(shí)施例的用于虛擬池的一區(qū)段分配系統(tǒng)的V2P表與P2V表的資料結(jié)構(gòu)的示意圖。圖6A為依據(jù)本發(fā)明的一實(shí)施例的P2VTable5137表的示意圖。圖6B為依據(jù)本發(fā)明的另一實(shí)施例的P2VTable5137表的示意圖。圖7A為依據(jù)本發(fā)明的一實(shí)施例的V2PTable5135表的示意圖。圖7B為依據(jù)本發(fā)明的另一實(shí)施例的V2PTable5135表的示意圖。圖8A為當(dāng)具有V2P表時的VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的示意圖。圖8B為當(dāng)發(fā)生資料區(qū)段遷徙時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的變化的示意圖。圖8C為當(dāng)只有P2V表而無V2P表時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的示意圖。圖8D為當(dāng)只有P2V表而無V2P表時,當(dāng)發(fā)生資料區(qū)段遷徙時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的變化的示意圖。圖9為依據(jù)本發(fā)明的另一實(shí)施例的儲存系統(tǒng)架構(gòu)90的示意圖。圖10為依據(jù)本發(fā)明的又一實(shí)施例的儲存系統(tǒng)架構(gòu)92的示意圖。圖11,其為本發(fā)明圖10的實(shí)施例的儲存系統(tǒng)架構(gòu)92指定媒體區(qū)的示意圖。圖12A為當(dāng)沒有V2P表及P2V表時的VBI與其所對應(yīng)的實(shí)體區(qū)段起始位置的映射關(guān)系的示意圖。圖12B為當(dāng)沒有V2P表及P2V表時,若發(fā)生資料區(qū)段遷徙時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的變化的示意圖。圖13為依據(jù)本發(fā)明的一實(shí)施例的因移除ME而引發(fā)的遷徙作業(yè)的流程圖。圖14為依據(jù)本發(fā)明的一實(shí)施例的因增加ME而引發(fā)的遷徙作業(yè)的流程圖。圖15為依據(jù)本發(fā)明的另一實(shí)施例的因移除ME而引發(fā)的遷徙作業(yè)的流程圖。圖16為依據(jù)本發(fā)明的另一實(shí)施例的因增加ME而引發(fā)的遷徙作業(yè)的流程圖。圖17為依據(jù)本發(fā)明的一實(shí)施例的主機(jī)10或主機(jī)代理人110向主控子系統(tǒng)20A的虛擬化層202A詢問VCSN的流程圖。圖18為依據(jù)本發(fā)明的一實(shí)施例的接受IO請求的VCSN代理人確認(rèn)其所攜帶VCSN的有效性的流程圖。圖19繪示依據(jù)本發(fā)明的一資料儲存架構(gòu)中的直接媒體區(qū)存取功能的一實(shí)施例的流程圖。圖20A及圖20B繪示依據(jù)本發(fā)明的一資料儲存架構(gòu)中的直接媒體區(qū)存取功能的另一實(shí)施例的流程圖。圖21為依據(jù)本發(fā)明的虛擬卷快照(virtualvolumesnapshot)的一資料結(jié)構(gòu)的一實(shí)施例。1,30,90,92儲存系統(tǒng)架構(gòu)10:主機(jī)110:代理人20,20A,20B,20C獨(dú)立冗余磁碟陣列子系統(tǒng)(RAID子系統(tǒng))200儲存虛擬化控制器202,202A,202B,202C虛擬化層203A,203B,203CME服務(wù)器層204,204A,204B,204CRAID層205A,205B,205C=VCSN代理人211,51區(qū)段分配系統(tǒng)(SAS)215,515:節(jié)點(diǎn)表213a,213b區(qū)塊關(guān)聯(lián)集區(qū)段分配串列2131,5131屬性區(qū)塊2133,5133:目錄2135:日志2137:區(qū)塊關(guān)聯(lián)表2139資料區(qū)域400PSD陣列41:卷區(qū)塊索引42:位置索引43:區(qū)塊索引位元映像(BAB)410實(shí)體儲存媒體513a:P2V/V2PSAL5135V2P表5137:P2V表61:虛擬索引63:實(shí)體索引8實(shí)體區(qū)段索引對實(shí)體邏輯區(qū)段位址映射函數(shù)81實(shí)體區(qū)段索引82=MEID83:起始位址84:分區(qū)數(shù)量W:虛擬卷VP:虛擬池具體實(shí)施例方式為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對依據(jù)本發(fā)明提出的執(zhí)行儲存虛擬化的儲存子系統(tǒng)及儲存系統(tǒng)架構(gòu)及其方法其具體實(shí)施方式、結(jié)構(gòu)、方法、步驟、特征及其功效,詳細(xì)說明如后。請參閱圖1A,為依據(jù)本發(fā)明的一實(shí)施例的一個資料儲存系統(tǒng)架構(gòu)(簡稱儲存系統(tǒng)架構(gòu))1。該儲存系統(tǒng)架構(gòu)1由一主機(jī)10與一個獨(dú)立冗余磁碟陣列子系統(tǒng)(redundantarrayofindependentdiskssubsystem,RAIDsubsystem,以下稱為RAID子系統(tǒng))20通過溝通管道(communicationchannel)而連接在一起而組成。該RAID子系統(tǒng)20包含一個儲存虛擬化控制器(storagevisualizationcontroller,SVC)200及一具有多個個實(shí)體儲存媒體(physicalstoragedevice,PSD)410的PSD陣列400。其中該些PSD410可以為HDD、CD、VCD、DVD、TAPE、SSD、FlashMemory、EEPROM等儲存媒體。此外,依據(jù)本發(fā)明的另一實(shí)施例,一個RAID子系統(tǒng)亦可包含多個個設(shè)定為冗余組態(tài)的儲存虛擬化控制器200,以當(dāng)一個儲存虛擬化控制器200失效時,另一個儲存虛擬化控制器200仍能正常運(yùn)作而接管失效控制器的工作。依據(jù)本發(fā)明的一實(shí)施例,在一個RAID子系統(tǒng)20中,通過儲存虛擬化控制器200及應(yīng)用程序的操作,在RAID層204之前加入一虛擬化層(visualizationlayer)202,也就是在主機(jī)10與RAID層204之間加入該虛擬化層202,而使得來自主機(jī)10而欲存取PSD陣列400中的資料的10請求(Input/Outputrequest)均會先為該虛擬化層202所處理,再由該RAID層204來處理。需說明的是,該虛擬化層202及該RAID層204包含于儲存虛擬化控制器200中。此外,在后文中,該虛擬化層亦被稱為虛擬化模塊,而該RAID層亦被稱為RAID模塊。請參閱圖1B、圖IC及圖1D,其中圖IB為依據(jù)本發(fā)明的一實(shí)施例的RAID層204所映射出的邏輯磁碟機(jī)(logicaldrive,LD)與實(shí)體卷(physicalvolume,PV)的關(guān)系,圖IC為依據(jù)本發(fā)明的一實(shí)施例的實(shí)體卷與其中的媒體區(qū)與分區(qū)(sector)的關(guān)系,及圖ID為依據(jù)本發(fā)明的一實(shí)施例的實(shí)體卷與其中的媒體區(qū)與實(shí)體區(qū)段(section)的關(guān)系。圖IB中顯示,在RAID層204中,一個或多個PSDs的各分區(qū)區(qū)塊(block)(或稱為“分區(qū)(sector)”)組成一個或多個邏輯磁碟機(jī)(logicaldrive,LD),每一個LD也可以被進(jìn)一步切割成一個或多個分割區(qū)(partition),每一個LD或分割區(qū)包含多個分區(qū)區(qū)塊,且每個分區(qū)區(qū)塊對應(yīng)到一邏輯區(qū)塊位址(logicalblockaddress,LBA),在此亦稱為實(shí)體LBA(physicalLBA,phyLBA),該些PhyLBA為連續(xù)定址,例如圖IC所示的PhyLBAl、PhyLBA2與PhyLBA3...等。每一個LD或分割區(qū)對應(yīng)到一個實(shí)體卷(physicalvolume,PV),每個實(shí)體卷可切割成一個或多個實(shí)體媒體區(qū)(physicalmediaextent,physicalME,后簡稱媒體區(qū),ME)而被提供給虛擬化層202使用。每個媒體區(qū)以一個實(shí)體區(qū)段(physicalsection)(或稱為“區(qū)段(section)”)為單位儲存資料,一個實(shí)體區(qū)段(section)可以包含有一個至多個分區(qū)區(qū)塊。以上所稱的分區(qū)區(qū)塊在儲存媒體(例如硬盤)的觀點(diǎn)來看,相當(dāng)于一個分區(qū)(sector)的單位。媒體區(qū)中的每個實(shí)體區(qū)段(section)皆對應(yīng)到一個表示實(shí)體區(qū)段起始位置的LBA以及一個表示實(shí)體區(qū)段長度的“分區(qū)數(shù)(sectorcount)”,由此可知,圖ID所示的LBA1、LBA2與LBA3...等并不一定是連續(xù)的位址。在虛擬化層202中,對RAID層204所呈現(xiàn)出來的媒體區(qū)進(jìn)行管理以產(chǎn)生一個虛擬池(virtualpool,VP)(圖未示),包含有一或多個媒體區(qū),并由該虛擬池VP中產(chǎn)生一或多個虛擬卷(virtualvolume,W)(圖未示),擬化層202A并將該些虛擬卷呈現(xiàn)給主機(jī)10供其進(jìn)行IO請求存取資料。該虛擬池VP及該虛擬卷將于下文中借由圖2A的實(shí)施例加以說明。請參閱圖2A,其為依據(jù)本發(fā)明的另一實(shí)施例的儲存系統(tǒng)架構(gòu)30。儲存系統(tǒng)架構(gòu)30由多個RAID子系統(tǒng)20通過溝通管道(communicationchannel)而連接在一起而組成,該溝通管道可以是一局域網(wǎng)(LAN)、廣域網(wǎng)路(WAN)、儲存局域網(wǎng)(SAN)、網(wǎng)際網(wǎng)絡(luò)(Internet)、聯(lián)機(jī)通訊(communicationinterconnect)、或其他任何可以讓RAID子系統(tǒng)20間互相傳遞訊息的溝通管道。在儲存系統(tǒng)架構(gòu)30中,只需要有一個RAID子系統(tǒng)20A中設(shè)置有虛擬化層202k,即可將所有RAID子系統(tǒng)20中的儲存空間加以虛擬化成為一或多個虛擬卷VV給主機(jī)10存取。其中,設(shè)置有虛擬化層202A的RAID子系統(tǒng)稱為主控(master)RAID子系統(tǒng)20A,簡稱主控子系統(tǒng)(mastersubsystem)20A,被主控子系統(tǒng)20A管理的其他RAID子系統(tǒng)20稱為從屬(slave)RAID子系統(tǒng)20B、20C,簡稱從屬子系統(tǒng)(slavesubsystem)20B、20C。在每一子系統(tǒng)20A、20B、20C中,分別建置有一媒體區(qū)服務(wù)器層(MEServerLayer)203A、203B、203C于各RAID層204A、204B、204C之上,以將各該RAID層204A、204B、204C中的媒體區(qū)呈現(xiàn)出來,供主控子系統(tǒng)20A的虛擬化層202A或其他裝置(例如主機(jī)10等)管理使用。于本實(shí)施例中,該媒體區(qū)服務(wù)器層203A可建置于主控子系統(tǒng)20A的虛擬化層202A中或獨(dú)立于虛擬化層202A之外(圖未示),而RAID子系統(tǒng)20B及20C則無虛擬化層而為從屬子系統(tǒng)。在此儲存系統(tǒng)架構(gòu)30中,該主機(jī)10可僅與RAID子系統(tǒng)20A聯(lián)系,而該RAID子系統(tǒng)20A與該RAID子系統(tǒng)20B及RAID子系統(tǒng)20C聯(lián)系,所有來自主機(jī)10進(jìn)入儲存系統(tǒng)架構(gòu)30中的10請求進(jìn)入RAID子系統(tǒng)20A并為其虛擬化層202A所接收,虛擬化層202A則檢查該10請求所系屬的(associated)資料是屬于哪些RAID子系統(tǒng)20A、20B、20C,而對那些RAID子系統(tǒng)的RAID層204A、204B、204C發(fā)出對應(yīng)的10請求以進(jìn)行資料存取,并由該虛擬化層202A將結(jié)果回報給主機(jī)10。依據(jù)本發(fā)明的另一實(shí)施例,主控子系統(tǒng)可以是一個RAIDHEAD而無任何PSD于其中;在此種情況下,該主控子系統(tǒng)的儲存空間僅能由其從屬子系統(tǒng)中提供。為更清楚說明本發(fā)明圖2A的實(shí)施例詳?shù)募?xì)運(yùn)作方式,請參閱圖2B。圖2B為圖2A實(shí)施例的儲存系統(tǒng)架構(gòu)30中,依據(jù)本發(fā)明的一實(shí)施例的虛擬池與媒體區(qū)及虛擬卷關(guān)系的示意圖。儲存系統(tǒng)架構(gòu)30分配媒體區(qū)的示意圖顯示出RAID子系統(tǒng)20A、20B及20C各自包含有媒體區(qū)MEl至MEn,且經(jīng)過虛擬化層202A的管理后產(chǎn)生一個虛擬池(virtualpool,以下稱VP),包含有一個或多個媒體區(qū)(例如RA-MEl至RA-ME5、RB-ME1至RB_ME5、RC_ME1至RC-ME5,其中RA、RB及RC分別表示RAID子系統(tǒng)20A、20B及20C),并由該虛擬池VP中產(chǎn)生一個或多個虛擬卷(virtualvolume,以下稱VV),例如VV1、VV2、VV3至VVm等m個虛擬卷,虛擬化層202A將該些虛擬卷VV呈現(xiàn)給主機(jī)10供其進(jìn)行IO請求存取。依據(jù)本發(fā)明的一實(shí)施例,當(dāng)儲存系統(tǒng)架構(gòu)30被建立好之后,該些VV被呈報給主機(jī)10的卷容量為一虛擬卷容量,儲存為該VV的一區(qū)塊關(guān)聯(lián)集(BlockAssociationSet,BAS)屬性,但并未真正被分配或指定給該些W,而是等到有主機(jī)10寫入IO請求發(fā)生時,才會有儲存空間從VP中分配給相關(guān)的VV,這稱為低額容量提供(thinprovisioning)。依據(jù)本發(fā)明的另一實(shí)施例,當(dāng)儲存系統(tǒng)架構(gòu)30被建立好之后,該些VV被呈報給主機(jī)10的卷容量為一實(shí)際卷容量,這稱為全額容量提供(fullprovisioning)。從VP中分配給VV的儲存空間是以實(shí)體區(qū)段(section)為最小單位,每一個區(qū)段可以包含一個或多個區(qū)塊(block)(或稱為“分區(qū)(sector)”)。此外,依據(jù)本發(fā)明的一實(shí)施例,當(dāng)原先產(chǎn)生的VV已經(jīng)呈現(xiàn)給主機(jī)10進(jìn)行10請求存取之后,在VP的資源尚足夠時,仍可俟后新增VV以供主機(jī)10的其他用途。又且,依據(jù)本發(fā)明的又一實(shí)施例,當(dāng)原先產(chǎn)生的VV已經(jīng)呈現(xiàn)給主機(jī)10進(jìn)行10請求存取之后,若有一VV的原有用途已不存在而使該VV無繼續(xù)存在的必要時,亦可將其自VP中移除,并將其中的容量釋出至該VP中供其他VV利用。另外,依據(jù)本發(fā)明的又一實(shí)施例,當(dāng)VP的容量已經(jīng)不夠其中的VV使用時,如果在該儲存系統(tǒng)架構(gòu)30中尚存有可用的ME的話,亦可新增ME至VP中而讓該VP的容量增加以供其W使用。又且,依據(jù)本發(fā)明的再一實(shí)施例,在一個VP中的ME,若是未被任何VV所使用時,亦可自VP中移除。如果在VP中的一個ME(例如MEl)上的被使用容量小于該VV中另一個ME(例如ME2)上的未使用容量的話,則可將該個ME(即MEl)上的有效資料遷徙至該另一個ME(即ME2)上,并將該個ME(即MEl)移除。請參閱圖2C,為依據(jù)本發(fā)明的一實(shí)施例的用于虛擬池的一區(qū)段分配系統(tǒng)的資料結(jié)構(gòu)的示意圖。主控RAID子系統(tǒng)20A于虛擬化層202A產(chǎn)生一或多個個虛擬池(VP),一虛擬池設(shè)置有一區(qū)段分配系統(tǒng)(section&110(站1011巧計(jì)_,后簡稱545)211來進(jìn)行虛擬卷VV的管理操作。亦請參閱圖2B的實(shí)施例,當(dāng)主控RAID子系統(tǒng)20A管理RAID子系統(tǒng)20A、20B及20C中的媒體區(qū)RA-MEl至RA-ME5、RB-MEl至RB-ME5、RC-MEl至RC-ME5時,稱該些媒體區(qū)RA-MEl至RA-ME5、RB-MEl至RB-ME5、RC-MEl至RC-ME5系屬(associated)于虛擬化層202A或主控RAID子系統(tǒng)20A。依據(jù)本發(fā)明的一實(shí)施例,該SAS211為一類似檔案系統(tǒng)(file-system-like)結(jié)構(gòu),可包含一個或多個媒體區(qū),這些媒體區(qū)由一或多個作為媒體區(qū)段供應(yīng)者(mediasectionproviders)的實(shí)體卷(physicalvolume)經(jīng)過切割所形成。SAS211可以包含一個或多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列(blockassociationsetsectionallocationlist,BASSAL)213a、213b及一節(jié)點(diǎn)表(InodeTable)215。節(jié)點(diǎn)表215用以記錄區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b內(nèi)容存放位置的資訊,即區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b內(nèi)容的指標(biāo)(pointer),使系統(tǒng)可以通過節(jié)點(diǎn)表215正確取得區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b的內(nèi)容。此SAS211和與其關(guān)聯(lián)的每個ME皆有一唯一識別碼(identity,ID)。關(guān)于區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b,以一種比喻的說法是區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b可以視作是SAS211中的檔案,檔案可以分做許多種,區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b則是其中一種用作特定用途的檔案。依據(jù)本發(fā)明的一實(shí)施例,該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列,為VV的資料結(jié)構(gòu),每個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b映射出一個VV,包含有一屬性區(qū)塊(AttributeBlock)2131,用以記載此區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b的ID、大小以及相關(guān)設(shè)定等資訊;一目錄(directory)欄位2133,記載指引、管理該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b中各實(shí)體區(qū)段的資訊;一日志(Journal)欄位2135,用以存放運(yùn)作日志,以供系統(tǒng)發(fā)生錯誤或斷電情事時可供恢復(fù)(recovery)之用;一區(qū)塊關(guān)聯(lián)表(BlockAssociationTable,以下稱BAT)欄位2137,用以儲存指向資料區(qū)(DataArea)2139的參考資訊;以及資料區(qū)2139,用以存放主機(jī)所發(fā)出的IO請求的資料,并且所存放資料的位置將記錄于區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b分別所包含的BAT2137中。依據(jù)本發(fā)明的另一實(shí)施例,該SAS也可以包含其他種類的SAL,而非一定要使用前述的BASSAL。依據(jù)本發(fā)明的一實(shí)施例,建立一VV的第一步驟即是建置一個虛擬池,此借由建置一SAS與虛擬池對應(yīng)而達(dá)成。接著,BASSAL與BAT應(yīng)被建置并將其所對應(yīng)的W映射至一主機(jī)通道上的CH/ID/LUN。最后,當(dāng)主機(jī)寫入IO請求發(fā)生之時,虛擬化層會向SAS取得足夠的空間以存放IO請求資料,并將該些IO請求資料的存放位置記錄于該BAT中。當(dāng)一個虛擬池建立時,必須指定一個或多個媒體區(qū)給此虛擬池,并將這些媒體區(qū)及其所對應(yīng)的實(shí)體LBA(phyLBA)儲存于SAS的描述資料欄位中。請參閱圖3A,其為依據(jù)本發(fā)明的一實(shí)施例的由多個RAID子系統(tǒng)中的媒體區(qū)所形成的虛擬池的示意圖。圖3A中為儲存系統(tǒng)架構(gòu)30中具有3個子系統(tǒng)RA20A、RB20B及RC20C,各被對應(yīng)到MEl至ME5,每個ME具有10000個實(shí)體區(qū)段,且每個實(shí)體區(qū)段對應(yīng)一LBA,稱之為實(shí)體LBA(phyLBA),故每個ME均對應(yīng)10000個實(shí)體LBA。例如RAMEl對應(yīng)RA-ME1-00001至RA-ME1-10000,RBME3對應(yīng)RB-ME3-00001至RA-ME1-10000,RCME4對應(yīng)RC-ME4-00001至RA-ME1-10000等等。在ME中的各實(shí)體區(qū)段的LBA被稱為實(shí)體LBA,是因?yàn)樵诠夹g(shù)中沒有虛擬化層202A的情況下,子系統(tǒng)RA20A、RB20B及RC20C將其LD/分割區(qū)呈現(xiàn)為實(shí)體卷給主機(jī)10后,主機(jī)10是以該LBA對實(shí)體卷進(jìn)行10存??;也因?yàn)樵揕BA被稱為實(shí)體LBA,故其所構(gòu)成的區(qū)段稱為實(shí)體區(qū)段(physicalsection)。假設(shè)當(dāng)一個虛擬池(即VPl)建立之時,VPl中被組態(tài)設(shè)定(configure)成包含有RA的MEl、RB的MEl、以及RC的MEl,則在SAS211的METADATA(圖未示)中會將這些ME以及其所包含的實(shí)體區(qū)段記錄起來,例如以一實(shí)體LBA清單的方式來記錄,如圖3B所示;或是以一實(shí)體區(qū)段索引(physicalsectionindex,PSI)對實(shí)體LBA表的方式來記錄,如圖3C及圖3D所示。圖3B為依據(jù)本發(fā)明圖3A的虛擬池中所包含的實(shí)體區(qū)段的資料結(jié)構(gòu)的一實(shí)施例示意圖。在圖3B的實(shí)施例中,實(shí)體LBA清單中的每一個項(xiàng)目具有三個欄位,第一個欄位(field)為該ME的ID或索引,第二個欄位表示該ME的起始位址(startaddress)(或稱為基礎(chǔ)區(qū)塊位址(baseblockaddress)),指向該ME的起始LBA;第三個欄位表示該ME的實(shí)體區(qū)塊數(shù)量(sectioncount)。借由實(shí)體LBA清單中各個ME的先后順序(sequence)與各區(qū)塊在各個ME中的先后順序,可得到各區(qū)塊在VP中的先后順序,再利用每一實(shí)體區(qū)段所包含的分區(qū)數(shù)量,可以算出每一實(shí)體區(qū)段的先后順序及其起始位址,其中每一區(qū)段的先后順序在此定義為該VP中各區(qū)段的實(shí)體區(qū)段索引(physicalsectionindex,PSI)。圖3C及圖3D為依據(jù)本發(fā)明圖3A的虛擬池中所包含的實(shí)體區(qū)段的資料結(jié)構(gòu)的另兩個實(shí)施例的示意圖,其中以實(shí)體區(qū)段索引(PSI)對實(shí)體區(qū)段表(physicalsectionindextophysicalsectiontable,PSI2PStable)來儲存PSI與實(shí)體區(qū)段的對照資訊(cross-referencinginformation)。該表中具有四個欄位PSI81、MEID82、起始位址(startaddress)83(或稱為基礎(chǔ)區(qū)塊位址)、分區(qū)數(shù)量(sectorcount)84,分別表示該P(yáng)SI81、該P(yáng)SI81所對應(yīng)實(shí)體區(qū)段的MEID82、該實(shí)體區(qū)段的起始位址(LBA)83、及該實(shí)體區(qū)段所包含的分區(qū)數(shù)量84。具體而言,圖3C的實(shí)施例中,假設(shè)每個實(shí)體區(qū)段包含一個分區(qū)(sector),該第一個項(xiàng)目(entry)表示PSI=00001的實(shí)體區(qū)段對應(yīng)至RA-ME1-00001開始的1個分區(qū)(sector);則最后一個項(xiàng)目中表示PSI=30000的實(shí)體區(qū)段對應(yīng)至RC-ME1-10000開始的1個分區(qū)。圖3D的實(shí)施例中,假設(shè)每個區(qū)段包含100個分區(qū),該第一個項(xiàng)目表示PSI=001的實(shí)體區(qū)段對應(yīng)至RA-ME1-00001開始的100個分區(qū);該第二個項(xiàng)目表示PSI=002的實(shí)體區(qū)段對應(yīng)至RA-ME1-00101開始的100個分區(qū);最后一個項(xiàng)目表示PSI=300的實(shí)體區(qū)段對應(yīng)至RC-ME1-09901開始的100個分區(qū)。在圖3C與圖3D中,在每一記錄中儲存有一實(shí)體區(qū)段索引(PSI)與其所對應(yīng)的實(shí)體媒體區(qū)的實(shí)體區(qū)段LBA。實(shí)施本發(fā)明時,圖3C與圖3D亦可用其他方式儲存并經(jīng)由計(jì)算而得到對應(yīng)關(guān)系,例如圖3B所示者。除了圖3B、圖3C及圖3D的方式之外,只要能找出PSI與其所對應(yīng)的實(shí)體媒體區(qū)的實(shí)體LBA的映射關(guān)系的函數(shù)或方法,例如利用特定的運(yùn)算關(guān)系或公式,皆可用于本發(fā)明中。雖然在圖3A的實(shí)施例中以該3個子系統(tǒng)RA20A、RB20B及RC20C的各自第一個ME構(gòu)成一個VP1,但是依據(jù)本發(fā)明的另一實(shí)施例,VP的ME數(shù)量亦可以是其他數(shù)目,例如4個、5個等等,且其不必在3個子系統(tǒng)中輪流加入ME至VPl中,亦不必依照每個子系統(tǒng)中ME的先后順序?qū)E加入VPl中。例如,VPl中若有5個ME時,其先后順序可為RAMEURBMEURAME3、RBME2、RAME2。雖然在圖3A與圖3D的實(shí)施例中設(shè)定該些子系統(tǒng)RA20A、RB20B及RC20C的ME數(shù)量皆為5個,且該些ME的區(qū)段數(shù)量相同,皆為100,但是依據(jù)本發(fā)明的又一實(shí)施例,每個子系統(tǒng)RA20A、RB20B及RC20C的ME數(shù)量可以不同,且每個ME的區(qū)段數(shù)量也可以不同,又且該每個子系統(tǒng)RA20A、RB20B及RC20C的總實(shí)體區(qū)段數(shù)量也可以互不相同,例如該RA具有5個ME,其中RAMEl的實(shí)體區(qū)段數(shù)量為100且RAME2-ME5的實(shí)體區(qū)段數(shù)量為50,該RB具有4個ME,其中RBME1-ME2的實(shí)體區(qū)段數(shù)量為60且該RBME3-ME4的實(shí)體區(qū)段數(shù)量為80,該RC具有6個ME,其中RCME1-ME6的實(shí)體區(qū)段數(shù)量皆為50。關(guān)于BAT2137,再請參閱圖4A。圖4A為依據(jù)本發(fā)明的一實(shí)施例的BAT2137的示意圖。該BAT2137的每一個項(xiàng)目(entry)具有3個欄位一卷區(qū)塊索引(VolumeBlockIndex,VBI)欄位41、一位置索引(locationindex)欄位42及一區(qū)塊索引位元映像(blockassociationbitmap,BAB)欄位43,分別儲存有VBI、區(qū)段索引(sectionindex,以下稱Si)及BAB。該VBI為虛擬卷VVl所使用的卷區(qū)塊(volumeblock)的順序。該位置索引為該卷區(qū)塊所對應(yīng)的該Si,依據(jù)本發(fā)明的一實(shí)施例,該位置索引指向該卷區(qū)塊所對應(yīng)的實(shí)體區(qū)段的起始PSI(startPSI),此為在沒有V2P映射表的情況下;依據(jù)本發(fā)明的另一實(shí)施例,該位置索引指向該卷區(qū)塊所對應(yīng)的虛擬區(qū)段的起始虛擬索引(virtualindex,VI),此為在有V2P映射表的情況下;其中V2P映射表將于稍后詳細(xì)說明。該BAB用以判斷該P(yáng)SI所對應(yīng)的實(shí)體區(qū)段是否為VVl所使用。卷區(qū)塊的大小可為一個或多個區(qū)段大小,而當(dāng)一個VVl的大小固定時,卷區(qū)塊愈大則卷區(qū)塊數(shù)量愈少,其所對應(yīng)的VBI數(shù)量也愈少,因而項(xiàng)目也愈少,使得整個BAT2137的大小也變少;反之,當(dāng)卷區(qū)塊愈小則VBI愈多,使得整個BAT2137的大小也變大。當(dāng)一個卷區(qū)塊只包含一個區(qū)段時,則一個VBI所對應(yīng)到的起始SI即是該卷區(qū)塊所對應(yīng)的區(qū)段的SI;當(dāng)一個卷區(qū)塊對應(yīng)多個區(qū)段時,則一個VBI所對應(yīng)到的起始SI只是該卷區(qū)塊所對應(yīng)的多個區(qū)段中的第一個區(qū)段的Si,而該卷區(qū)塊所對應(yīng)的其他區(qū)段則可利用該SI而得到。舉例來說,在圖4A中所顯示者是一個卷區(qū)塊對應(yīng)一個區(qū)段的情形。在第1到第4個項(xiàng)目及第7個項(xiàng)目中,若BAB欄位43為1,則表示這5個項(xiàng)目的位置索引欄位42中(locationindex)001、002、101、201及299所對應(yīng)的區(qū)段已經(jīng)被VVl所使用,且其所對應(yīng)的VBI欄位41分別為001、002、003、004及007。在第5個項(xiàng)目與第6個項(xiàng)目中,其BAB為0,表示第5個與第6個位置索引欄位42尚未對應(yīng)到區(qū)段因而未被VVl所使用。若是VVl對主機(jī)10宣告具有10個VBI,但是位置索引欄位42中的008、009及010均未被使用,則依據(jù)本發(fā)明的第一種實(shí)施方式,BAT2137可以具有10個項(xiàng)目,但位置索引欄位42中的008、009及010對應(yīng)的BAB欄位43均為0;而依據(jù)本發(fā)明的第二種實(shí)施方式,倘若BAT2137只具有7個項(xiàng)目,惟需記載項(xiàng)目7已為最后一個項(xiàng)目。必須說明的是,上述具有BAB的資料結(jié)構(gòu)僅是本發(fā)明的一實(shí)施例;依據(jù)本發(fā)明的另一實(shí)施例,當(dāng)亦可以僅將BAT存放于快取緩沖記憶體(cachebuffer)中而不使用BAB。請參圖4B,為依據(jù)本發(fā)明的另一實(shí)施例的BAT2137的示意圖。BAT2137的每一個項(xiàng)目(entry)具有2個欄位一位置索引欄位42及一區(qū)塊索引位元映像(blockassociationbitmap,BAB)欄位43,分別儲存有PSI及BAB,而該些項(xiàng)目的順序即可對應(yīng)出VBI0舉例來說,若VVl對主機(jī)10宣告具有10個VBI,則位置索引及BAB的數(shù)量均需要有10個以與該10個VBI對應(yīng),不論其實(shí)際上是否已為VVl所使用(亦即BAB為1)。此種實(shí)施方式的好處在于可省去VBI欄位41所占據(jù)的空間。由于一個卷區(qū)塊包含一或多個實(shí)體區(qū)段(例如為m個),且一個實(shí)體區(qū)段包含一或多個分區(qū)(例如為η個),故一個卷區(qū)塊包含m乘η個(mχη)分區(qū)。而主機(jī)端所使用的LBA為連續(xù)定址的且每一LBA所對應(yīng)的儲存空間大小為一分區(qū)的大小,故主機(jī)端10請求的LBA所對應(yīng)的VBI的關(guān)系為VBI=主機(jī)LBA/(mχη)。雖然以上以圖4Α及圖4Β說明一ΒΑΤ2137的資料結(jié)構(gòu),但是只要是能找出VBI與VVl中實(shí)際使用的區(qū)段的位置索引(亦即BAB為1的位置索引欄位41)的映射關(guān)系(mapping)的方法,皆為本發(fā)明的范疇。依據(jù)本發(fā)明的一低額容量提供(thinprovisioning)實(shí)施例,當(dāng)一虛擬卷VV建立好并呈現(xiàn)給主機(jī)10后,但尚未收到主機(jī)10寫入10請求之前,沒有被分配任何實(shí)際的容量,因?yàn)樵谠撎摂M卷VV中并無資料,故其BAT中的BAB均為零,沒有任何PSI被用于該虛擬卷VV中;然而,一虛擬卷容量被儲存為一個BAS屬性并呈報給主機(jī)10,主機(jī)10因而會認(rèn)為此一虛擬卷的容量為該虛擬卷容量。依據(jù)本發(fā)明的一實(shí)施例,若是在虛擬化層202A中有足夠的快取緩沖(cachebuffer)(圖未示)的話,可將虛擬卷VV(含VVl)中的全部的MATADATA及區(qū)塊關(guān)聯(lián)集區(qū)段分配串列213a、213b以及虛擬池VP(含VPl)中的一實(shí)體對虛擬區(qū)段索引映射(physical-to-virtualsectionindexmappingtable,簡禾爾physical-to-virtualmappingtable,P2Vtable,或P2V表)5135,其儲存于V2P及一虛擬對實(shí)體區(qū)段索引映射(virtual-to-physicalsectionindexmappingtable,簡禾爾virtual-to-physicalmappingtable,V2Ptable,或V2P表)5137存入該快取緩沖中,則IO處理的延遲(latency)將很小,因而降低儲存虛擬化的時間成本(overhead)。P2V表與V2P表將于后文中說明。依據(jù)本發(fā)明的另一實(shí)施例,一虛擬卷VV在建立時亦可設(shè)定一保留容量(reservedcapacity),以確保該虛擬卷VV可具有一最小容量。舉例而言,若該虛擬卷VV的虛擬卷容量為400GB,但是其保留容量(reservedcapacity)設(shè)定為100GB,則其最小容量將會是100GB。此可利用SAS區(qū)段保留機(jī)制(sectionreservationmechanism)而達(dá)成。當(dāng)該虛擬卷VV的實(shí)際容量尚不足該保留容量時,該SAS區(qū)段保留機(jī)制會將該保留容量與實(shí)際容量差額的容量保留起來,并隨著實(shí)際容量的增加而減小所保留的容量,直到實(shí)際容量已達(dá)到該保留容量為止。依據(jù)本發(fā)明的一實(shí)施例的全額容量提供(fullprovisioning)實(shí)施例,在儲存系統(tǒng)架構(gòu)30建立之時,即會將卷容量的空間分配給該虛擬卷VV,故該虛擬卷VV中呈報給主機(jī)10的卷容量為一實(shí)際卷容量,此可確保此VV—定可以用到呈報給主機(jī)10的卷容量。依據(jù)本發(fā)明的容量提供(provisioning)實(shí)施例,其具有以下三種實(shí)施樣態(tài)第一、利用上述SAS區(qū)段保留機(jī)制(sectionreservationmechanism)而達(dá)成;第二、利用區(qū)段分配機(jī)制(sectionallocationmechanism)而達(dá)成;第三、利用區(qū)段指定機(jī)制(sectionassignmentmechanism)而達(dá)成。依據(jù)第一種實(shí)施樣態(tài)的「區(qū)段保留機(jī)制」進(jìn)行無容量提供(noprovisioning)時,虛擬卷VV的虛擬容量只是借由一個數(shù)值的設(shè)定而被保留起來,并未被真正地分配(allocate)或指定(assign)給虛擬卷VV,故此一操作非??焖伲臻g的實(shí)際分配與指定則是等到主機(jī)的10請求發(fā)生時才進(jìn)行。若是有空間需要從虛擬卷VV中釋放出來,則也只要更改虛擬容量的設(shè)定值即可。因此虛擬卷VV要更改其虛擬容量將會具有很大的彈性而非常容易進(jìn)行且快速。依據(jù)第二種實(shí)施樣態(tài)的「區(qū)段分配機(jī)制」進(jìn)行全額容量提供(fullprovisioning)時,虛擬卷VV的虛擬容量只是先被分配(allocate),并未被真正地指定(assign)給他們,故此一操作會較慢于第一種實(shí)施樣態(tài)的區(qū)段保留機(jī)制,而空間的實(shí)際指定則是等到主機(jī)的10請求發(fā)生時才進(jìn)行。如果虛擬卷VV要更改其虛擬容量將會較難于第一種實(shí)施樣態(tài)的區(qū)段保留機(jī)制。依據(jù)本發(fā)明的一實(shí)施例,當(dāng)進(jìn)該區(qū)段分配機(jī)制利用一已分配區(qū)段串列(allocatedsectionlist)將已分配的區(qū)段記錄下來。之后,當(dāng)收到主機(jī)的10請求且需要已指定給該至少一虛擬卷使用的儲存空間外的儲存空間時,會從該已分配區(qū)段串列中提供資料區(qū)段指定給虛擬卷VV使用。依據(jù)第三種實(shí)施樣態(tài)的「區(qū)段指定機(jī)制」進(jìn)行預(yù)先容量提供(pre-provisioning)時,虛擬卷VV的虛擬容量已被實(shí)際地指定(assign)給他們,故此一操作會較慢于第一種實(shí)施樣態(tài)的區(qū)段保留機(jī)制及第二種實(shí)施樣態(tài)的區(qū)段分配機(jī)制,但主機(jī)的10請求進(jìn)行時可將循序的(sequential)資料連續(xù)地(contiguously)排列,可得到較佳的循序讀取效能。依據(jù)本發(fā)明的一實(shí)施例,區(qū)段的指定借由將位置索引(locationindex)填入虛擬卷VV的BAT中而達(dá)成,其實(shí)施例請見圖4A及圖4B的相關(guān)說明。由于虛擬容量已經(jīng)實(shí)際指定(assign)給某一虛擬卷VV,因此無法將已經(jīng)指定的空間釋放出來。除非利用其他機(jī)制(例如BAB等)記錄被指定給虛擬卷VV的容量中,實(shí)際被主機(jī)的IO請求所使用掉的空間才有可能將其釋放(例如利用遷徙功能等)。依據(jù)本發(fā)明的一實(shí)施例,一虛擬池VP可對于其中所用掉的容量或所剩余的容量進(jìn)行事件通知(eventnotification),此事件通知門檻(threshold)可依容量水準(zhǔn)(capacitylevel)而設(shè)或是容量百分比(capacitypercentage)而設(shè)。例如假設(shè)一虛擬池VP的總?cè)萘繛?00GB,可設(shè)定當(dāng)用掉的容量達(dá)到700GB時發(fā)出事件通知,當(dāng)用掉的容量達(dá)到80%(560GB)時發(fā)出事件通知,或是兩者皆設(shè)任一達(dá)到即發(fā)出事件通知。依據(jù)本發(fā)明的另一實(shí)施例,該此事件通知門檻亦可依特定虛擬卷VV容量占虛擬池VP總?cè)萘堪俜直榷O(shè)。例如,當(dāng)一個虛擬池VP中提供有10個虛擬卷VV時,平均一個虛擬卷VV的容量占虛擬池VP總?cè)萘堪俜直葹?0%,故可設(shè)定當(dāng)一虛擬卷VV的容量占虛擬池VP總?cè)萘堪俜直冗_(dá)20%或30%(意味著為預(yù)估平均值的兩倍或三倍)時即發(fā)出事件通知。又如,當(dāng)一虛擬卷W的容量占虛擬池VP總?cè)萘堪俜直冗_(dá)50%(意味著為已達(dá)虛擬池VP總?cè)萘康囊话?時即發(fā)出事件通知。又或,當(dāng)某特定的虛擬卷VV的容量占虛擬池VP總?cè)萘堪俜直冗_(dá)特定值時(意味著為已達(dá)到某一預(yù)估值)時即發(fā)出事件通知。依據(jù)本發(fā)明的一實(shí)施例,該儲存系統(tǒng)架構(gòu)30可以利用單一管理窗口來管理多個子系統(tǒng)或多個卷的容量分配及利用,具有容量管理方便的優(yōu)點(diǎn)。該儲存系統(tǒng)架構(gòu)30,依據(jù)本發(fā)明的一實(shí)施例,在VV空間不敷使用時,可以加大其呈報給主機(jī)10的卷容量(無論其為虛擬卷容量或?qū)嶓w卷容量);依據(jù)本發(fā)明的一實(shí)施例,當(dāng)VP空間不敷使用時,可以向ME提供者取得可用的ME容量來使用。依據(jù)本發(fā)明的一實(shí)施例,當(dāng)一個VP中的(例如VPl)的空間不敷使用而另一個VP中的(例如VP2)的空間尚有可利用的空間時,可將另一個VP(即VP2)的可利用空間釋出并將的提供給該個VP(即VPl)使用。例如,當(dāng)VPl的空間不敷使用,則VP2可利用遷徙功能將某一ME移除再將該ME新增入VPl,而使得VPl增加可用的ME空間。依據(jù)本發(fā)明的一實(shí)施例,當(dāng)整個儲存系統(tǒng)架構(gòu)30中的儲存空間不敷使用時,可以經(jīng)過簡單的組態(tài)設(shè)定(configure),即可將一新的RAID子系統(tǒng)加入儲存系統(tǒng)架構(gòu)30中,并為各個VP及VV所使用。利用本發(fā)明的低額容量提供(thinprovisioning)功能,一個VP可以映射出多個VV,這些VV的各別虛擬卷容量總合可以超過該VP的總?cè)萘?,如此可以使子系統(tǒng)或儲存系統(tǒng)架構(gòu)30在儲存空間的運(yùn)用上具有很大的彈性。舉例而言,當(dāng)一個VP(例如圖2B中的VP)的總?cè)萘繛?00GB時,可以映射出多個VV(例如VV1、VV2及VV3),每個VV均有一虛擬卷容量呈報給主機(jī)10(例如VVl的虛擬卷容量為400GB、VV2的虛擬卷容量為500GB、VV3的虛擬卷容量為700GB),所有VV的虛擬卷容量的總合(1600GB)可以超過該總?cè)萘浚菍?shí)際使用時則視寫入各個VV中的實(shí)際10請求的資料量來決定各個VV中的實(shí)際使用容量。例如,當(dāng)使用的時判斷VVl需要200G、VV2需要250G、VV3需要350G,故將其各自的虛擬卷容量為以上的設(shè)定結(jié)果在使用一陣子后發(fā)現(xiàn)VVl的用途只會用到100GB,但是VV2的用途所需要的空間一直增加,可能會用到500GB,而VV3的容量卻因?yàn)镮T預(yù)算的改變而根本從未使用,結(jié)果當(dāng)時真正的使用空間是VVl為80GB、VV2為470GB、VV3為0GB。此時,由于800GB的VP只用掉了550GB,尚有250GB的空間可以使用,若是還有需求,仍可以產(chǎn)生新的VV,如VVm等。因此,由以上所述可知,儲存虛擬化的優(yōu)點(diǎn)在于其儲存系統(tǒng)的管理方便及系統(tǒng)的擴(kuò)充性。關(guān)于媒體區(qū)服務(wù)器層(MEserverlayer)203A、203B及203C,依據(jù)本發(fā)明的一實(shí)施例,一個ME僅可系屬(associated)于一個主控子系統(tǒng)20A的虛擬化層202A而為其管理及使用。依據(jù)本發(fā)明的一實(shí)施例,每一子系統(tǒng)20A、20B、20C分別建置有一ME服務(wù)器層203A、203B及203C于RAID層204A、204B及204C之上,以將該RAID層204A、204B及204C中的ME呈現(xiàn)出來供所系屬的虛擬化層202A管理使用,并為其本身所在的子系統(tǒng)20A、20B、20C的虛擬化層202A找到所系屬的ME供其管理使用。該ME服務(wù)器層203A、203B及203C會將其所在的子系統(tǒng)20A、20B、20C的每一個ME所系屬的主控子系統(tǒng)20A加以記錄。依據(jù)本發(fā)明的一實(shí)施例,在圖IA中的實(shí)施例中亦有媒體區(qū)服務(wù)器層,雖然于圖IA中并未繪示。依據(jù)本發(fā)明的一實(shí)施例,可自虛擬池中移除媒體區(qū),茲說明如下。首先,在媒體區(qū)的區(qū)段中的資料被遷徙至其他媒體區(qū)的區(qū)段中。遷徙目的地由該區(qū)段相關(guān)的(associated)虛擬卷的『分散式資料』屬性所決定(亦請參閱與『區(qū)段遷徙(SectionMigration)』及『分散式資料(DistributedData)』等主題)。其次,被清空的區(qū)^i^Mi^hKifi^^^iBASSAL中才由胃。{Then,theemptiedsectionsarethenswappedoutoftheBASSALstowhichtheyarelinked.}最后,當(dāng)要被移除的媒體區(qū)中的所有區(qū)段以此種方式被釋出后,該媒體區(qū)自該SAS中移除。請參閱圖9,其為依據(jù)本發(fā)明的又一實(shí)施例的儲存系統(tǒng)架構(gòu)90的示意圖。該儲存系統(tǒng)架構(gòu)90不論其架構(gòu)、運(yùn)作方式或資料結(jié)構(gòu),大致上與圖2A的實(shí)施例相同,相同之處于此不予贅述,并僅就差異之處做說明。儲存系統(tǒng)架構(gòu)90,為多個RAID子系統(tǒng)(RA20A、RB20B、RC20C)及一主機(jī)10與其相連而成。圖9的實(shí)施例與圖2A的實(shí)施例相較之下,圖9的實(shí)施例增設(shè)一主機(jī)代理人(AgentorHostAgent)110于主機(jī)10中,且主機(jī)10可通過該主機(jī)代理人110的協(xié)助而直接與所有的子系統(tǒng)20A、20B、20C聯(lián)以存取其資料。藉此,藉此改善單一主控子系統(tǒng)20可能會成為系統(tǒng)效能的瓶頸的問題。于本發(fā)明第二實(shí)施例中,從屬子系統(tǒng)20B、20C與主控子系統(tǒng)20A的聯(lián)系可在主機(jī)代理人110及該ME服務(wù)器層203A、203B及203C的協(xié)助下而進(jìn)行,其細(xì)節(jié)將于下文中說明。在具有主機(jī)代理人110的架構(gòu)下,每一個從屬子系統(tǒng)20B、20C必須將它的實(shí)體媒體區(qū)呈現(xiàn)給有權(quán)限存取該媒體區(qū)所屬的虛擬卷的主機(jī)代理人110以供其使用,而主機(jī)代理人110必須將這些媒體區(qū)遮蔽起來而不為主機(jī)上層所見,且亦不為其他主機(jī)所見。此一功能由媒體區(qū)服務(wù)器所執(zhí)行。主機(jī)代理人110會使用一資料位置詢問命令發(fā)送給主控子系統(tǒng)20A的虛擬化層202A向其詢問主機(jī)10欲存取資料的位置。依據(jù)本發(fā)明的一實(shí)施例,該資料位置詢問命令可為自定的資料分布詢問SCSI命令(proprietarydatadistributionquerySCSIcommand)發(fā)送給主控子系統(tǒng)20A的虛擬化層202A向其詢問主機(jī)10欲存取資料的位置,然后根據(jù)主控子系統(tǒng)20A的虛擬化層202A的回復(fù)資訊直接在資料實(shí)體所在的子系統(tǒng)20A、20B、20C上進(jìn)行資料存取,詳細(xì)說明如后。在主機(jī)代理人110的資料分布詢問SCSI命令的10請求中,提供了定義要存取的虛擬范圍的邏輯區(qū)塊位址/區(qū)塊數(shù)量(LBA/Block-Coimtdefiningvirtualrangetobeaccessed)。子系統(tǒng)20A、20B、20C在收到詢問命令后,則回應(yīng)以一實(shí)體媒體識別碼/邏輯區(qū)塊位址/區(qū)塊數(shù)量/有效性檢查序號的清單(listofphysicalME-ID/LBA/Block-Count/VCSN),該清單含括了所詢問的范圍。另一方面,主機(jī)代理人110進(jìn)一步與各個子系統(tǒng)20A、20B、20C的ME服務(wù)器層203A、203B、203C溝通,以得知各個子系統(tǒng)20A、20B、20C所呈現(xiàn)出來可供存取的ME的相關(guān)資訊,據(jù)以判斷上述清單中所記載的MEID是屬于哪一個子系統(tǒng)20A、20B、20C。然后,主機(jī)代理人110便可以根據(jù)以上資訊,使用自定的讀/寫SCSI命令(proprietaryRead/WriteSCSIcommands)直接對該MEID所屬的子系統(tǒng)發(fā)出資料讀取或?qū)懭氲腎O請求(或稱為輸出入存取命令(10accesscommand)).除了邏輯區(qū)塊位址/區(qū)塊數(shù)量之外,該些自定的讀/寫SCSI命令另包含了一有效性檢查序號(ValidityCheckSequenceNumber,VCSN)胃HiffiiS石馬IK^i(commanddescriptorblock,CDB)(圖未示)中,用以供接受命令的子系統(tǒng)驗(yàn)證該命令的有效性,其中當(dāng)該10請求為有效命令,則依據(jù)該10請求存取RAID子系統(tǒng)20A、20B、20C,而當(dāng)該10請求非為有效命令,則拒絕該10請求。依據(jù)本發(fā)明的另一實(shí)施例,該資料位置詢問命令可為依據(jù)其他通訊協(xié)定所定義的資料位置詢問命令。依據(jù)本發(fā)明的一實(shí)施例,各子系統(tǒng)20A、20B、20C的RAID層204A、204B、204C之上更設(shè)有一有效性檢查模塊,以本實(shí)施例而言,分別為一「有效性檢查序號代理人」(ValidityCheckSequenceNumberAgent,以下稱VCSN代理人)205A、205B、205C,做為在主機(jī)代理人110與RAID層204A、204B、204C之間處理讀取/寫入輸出入要求(Read/Write10request)(或稱為輸出入存取命令(10accesscommand))的橋梁,其工作之一便是驗(yàn)證由主機(jī)代理人110所發(fā)出的自定的讀/寫SCSI命令所攜帶的VCSN的有效性,藉以判斷該輸出入存取命令位址的正確性。于主控子系統(tǒng)20A中,VCSN代理人205A可以獨(dú)立設(shè)置于虛擬化層202之外,抑或是設(shè)置于虛擬化層202A之內(nèi)(圖未示)。于各子系統(tǒng)20A、20B、20C中,VCSN代理人205A、205B、205C可分別與ME服務(wù)器層203A、203B、203C分開獨(dú)立設(shè)置,或是兩者整合在一起(圖未示)。依據(jù)本發(fā)明的一實(shí)施例,更可于具有資料遷徙功能時對每一ME增設(shè)一VCSN參數(shù)。該VCSN值是由主控子系統(tǒng)20A的虛擬化層202A決定并告知ME所在的子系統(tǒng)20A、20B、20C的VCSN代理人205A、205B、205C,而由VCSN代理人205A、205B、205C實(shí)際使用VCSN值以決定其所接收的10請求(或稱為輸出入存取命令(10accesscommand))的有效性。舉例來說,每當(dāng)執(zhí)行一次遷徙操作時,主控子系統(tǒng)20A的虛擬化層202A便進(jìn)行遷徙操作的ME的VCSN加1(incremented),并通知該ME所屬的子系統(tǒng)的VCSN代理人205A、205B、205C,讓該VCSN代理人205A、205B、205C可以根據(jù)新VCSN值驗(yàn)證資料存取的有效性,其詳細(xì)內(nèi)容將于后文中說明。依據(jù)本發(fā)明的一實(shí)施例,一次遷徙操作可以針對一實(shí)體區(qū)段進(jìn)行遷徙操作。若是某一位置的資料在被主機(jī)10或代理人110詢問之時到該主機(jī)10或代理人110真正發(fā)出10請求之前已經(jīng)發(fā)生改變,借由VCSN代理人205A、205B、205C的設(shè)置可以確認(rèn)從屬子系統(tǒng)偵測到此改變并拒絕該10請求,以迫使主機(jī)10或代理人110再次向主控子系統(tǒng)20A詢問相關(guān)資訊。此外,于本實(shí)施例中,主控子系統(tǒng)20A可以以一特殊VCSN,(或稱為保留(reserved)VCSN),例如「0」,但不以此限制本發(fā)明,以回應(yīng)主機(jī)10或代理人110的詢問,該特殊VCSN表示該主機(jī)10或代理人110所發(fā)出的10請求必須都通過主控子系統(tǒng)20A來處理。于本實(shí)施例中,更可在主控子系統(tǒng)20A需要主機(jī)10或代理人110先向主控子系統(tǒng)20A詢問再決定如何進(jìn)行主機(jī)的IO請求時將該VCSN改變。例如,主控子系統(tǒng)20A要主機(jī)10或代理人110更改IO請求位址時,或是主控子系統(tǒng)20A在主機(jī)10或代理人110發(fā)出IO請求前要先進(jìn)行其他資料操作時,或是資料要被寫至好幾個位址時,或是IO請求由主控子系統(tǒng)20A來處理時,將該VCSN改變。依據(jù)實(shí)施本發(fā)明的一實(shí)施例,主控子系統(tǒng)清除(purge)從屬子系統(tǒng)20B、20C的VCSN快取(cache),由于此時的從屬子系統(tǒng)20B、20C的VCSN快取(cache)已沒有任何資料,則主機(jī)10或主機(jī)代理人110所發(fā)出的IO請求所攜帶的VCSN便無法通過一致性檢查,如此可使所有的IO請求都被拒絕。依據(jù)本發(fā)明的一實(shí)施例的有效性檢查序號的建制重點(diǎn)說明如下(1)在主控子系統(tǒng)把有效性檢查序號加1,但是在真正服務(wù)讀/寫請求的從屬子系統(tǒng)檢查序號。(2)依據(jù)本發(fā)明的一實(shí)施例,每執(zhí)行一次遷徙操作時,有效性檢查序號被加1且通過自定帶內(nèi)SCSI命令送至從屬端子系統(tǒng)。依據(jù)本發(fā)明的另一實(shí)施例,每當(dāng)主控子系統(tǒng)需要主機(jī)代理人先向其詢問再決定如何進(jìn)行主機(jī)IO請求時,則將該VCSN改變。(3)回應(yīng)于資料分布詢問SCSI命令,將該有效性檢查序號與實(shí)體媒體識別碼/邏輯區(qū)塊位址/區(qū)塊數(shù)量一起回復(fù)給主機(jī)代理人。(4)主機(jī)代理人在其發(fā)給媒體ID所在的子系統(tǒng)的自定讀/寫SCSI命令中,包含有該有效性檢查序號。(5)從屬子系統(tǒng)檢查在⑶B中的有效性檢查序號,以之與自主控子系統(tǒng)所接收到的最新有效性檢查序號相比。如果兩者不同,則從屬端將拒絕請求,并附帶以意涵說明資料(sensedata)以指出原因。(6)然后主機(jī)代理人必須再度詢問以更新映射。(7)依據(jù)本發(fā)明的一實(shí)施例,有效性檢查序號具有一有效壽命與其系屬,該有效壽命與其位元數(shù)量相依。舉例而言,如果假設(shè)每秒有100個遷徙操作及用16元位長度來記錄序號,則序號的有效壽命為小于2**16/100秒的某一值。(8)如果主機(jī)代理人利用快取暫存映射關(guān)系資料的話,則其必須監(jiān)控有效性檢查序號的壽命。有效性檢查序號的壽命的開始時點(diǎn)必須自詢問被發(fā)出之時開始起算,而非從回應(yīng)收到時起算。(9)如果已經(jīng)超過有效壽命的話,主機(jī)代理人必須將其映射快取清空并再度詢問。如果在一個IO請求的執(zhí)行期間中可能會發(fā)生超過有效壽命的情形的話,則主機(jī)代理人應(yīng)于發(fā)出該IO請求之前再度詢問。依據(jù)本發(fā)明的另一實(shí)施例,亦可不建置該VCSN機(jī)制,例如,當(dāng)儲存系統(tǒng)架構(gòu)不執(zhí)行遷徙操作時。此時,在圖6中亦可不在各子系統(tǒng)20A、20B、20C的RAIDLayer204A、204B、204C之上設(shè)置VCSNAgent205A、205B、205C。又例如,當(dāng)儲存系統(tǒng)架構(gòu)通過主控子系統(tǒng)執(zhí)行遷徙操作時;這是因?yàn)樵撝骺刈酉到y(tǒng)知道其所系屬的資料的實(shí)體區(qū)段所在的實(shí)際位置之故。依據(jù)本發(fā)明的又一實(shí)施例,亦可當(dāng)儲存系統(tǒng)架構(gòu)不執(zhí)行遷徙操作時建置該VCSN機(jī)制,例如每當(dāng)主控子系統(tǒng)需要主機(jī)代理人先向其詢問再決定如何進(jìn)行主機(jī)IO請求時,則將該VCSN改變,而當(dāng)主機(jī)IO向主控子系統(tǒng)詢問時(可能是因IO請求被從屬子系統(tǒng)拒絕,也可能是直接詢問),以保留VCSN回復(fù)主機(jī),則主機(jī)將會因而直接向主機(jī)代理人發(fā)出IO請求。請參閱圖10,其為依據(jù)本發(fā)明的再一實(shí)施例的儲存系統(tǒng)架構(gòu)92的示意圖。第三實(shí)施例與第二實(shí)施例大致上相同,相同之處于此不予贅述,并僅就差異之處做說明。儲存系統(tǒng)架構(gòu)92為多個RAID子系統(tǒng)(RA20A、RB20B、RC20C)及一主機(jī)10與其相連而成,且在主機(jī)10中亦設(shè)有一主機(jī)代理人110。圖10的實(shí)施例與圖9的實(shí)施例相較之下,圖10的實(shí)施例主機(jī)10在主機(jī)代理人110的協(xié)助下不僅與所有的子系統(tǒng)20A、20B、20C均有聯(lián)系,而且每個子系統(tǒng)20A、20B、20C中分別設(shè)有虛擬化層202A、202B、202C,即他們各自可做為主控子系統(tǒng)。藉此,主機(jī)10可以在代理人110的協(xié)助下直接對各子系統(tǒng)20A、20B、20C進(jìn)行存取,以改善了儲存系統(tǒng)架構(gòu)90的主控子系統(tǒng)20A可能會成為系統(tǒng)效能的瓶頸的問題,且提高了系統(tǒng)資源運(yùn)用上的彈性。請參閱圖11,其為本發(fā)明圖10的實(shí)施例的儲存系統(tǒng)架構(gòu)92指定媒體區(qū)的示意圖。儲存系統(tǒng)架構(gòu)92中的子系統(tǒng)20A、20B、20C分別產(chǎn)生一VP-A100A、VP-B100B、VP-C100C,除了各自擁有的ME之外,其他的ME皆可被指派給VP-A100A、VP-B100B、VP_CIOOC的其中任一而供其使用。依據(jù)本發(fā)明的一實(shí)施例,該些儲存系統(tǒng)架構(gòu)可設(shè)置『分散式資料(DistributedData)』屬性,則在某些情況下會啟動一分散式資料功能而使得儲存系統(tǒng)架構(gòu)中的資料以分散的方式儲存(attribute)。依據(jù)本發(fā)明的一實(shí)施例,該『分散式資料』屬性可針對每一虛擬卷各另lJ設(shè)定(The“distributeddata,,attributesupportedperVirtualVolume.)0依據(jù)本發(fā)明的另一實(shí)施例,該『分散式資料』屬性可針對一個虛擬池設(shè)定因而其中的每一虛擬卷均具有該『分散式資料』屬性或均不具有該『分散式資料』功能性。依據(jù)本發(fā)明的一實(shí)施例,各個實(shí)體區(qū)段自不同的媒體區(qū)以輪流的方式被分配給一個BASSAL。舉例而言,假設(shè)在圖3A及圖3D的實(shí)施例中,當(dāng)一個VVl向VP要空間時,其方式是利用圖4C及圖4D說明如下。當(dāng)?shù)谝淮螌懭隝O發(fā)生時,虛擬化層會輪流向RA-ME1、RB-ME1、RC-MEl取得其中的可用區(qū)段。假設(shè)該IO只需要使用到2個區(qū)段的空間,則PSI為001及101的區(qū)段將會被指定給VV1,如圖4C所示。當(dāng)使用一陣子之后,在另一次收到主機(jī)寫入IO時,VVl的空間已不足夠,假設(shè)此時VVl總共實(shí)際會用到5個區(qū)段的空間,則其PSI依序?yàn)?01、002、102,如圖4D所示。由于VV中所使用的區(qū)段對于各ME而言大體上是均勻分布的,故主機(jī)IO存取會被分散到各ME上進(jìn)行,對于子系統(tǒng)而言主機(jī)IO存取也較為分散,故各子系統(tǒng)的工作負(fù)荷較為平衡,因而此功能性具有負(fù)荷平衡(loadbalance)的功能。依據(jù)本發(fā)明的另一實(shí)施例,當(dāng)『分散式資料』屬性被設(shè)定給一個虛擬卷且媒體區(qū)被增加至該虛擬卷所在的池中的話,則增加媒體區(qū)至池中會啟動遷徙操作而將在該BASSAL中的某些資料遷徙至新增加的媒體區(qū)的實(shí)體區(qū)段中。有關(guān)資料遷徙功能的細(xì)節(jié)將于下文中說明。當(dāng)媒體區(qū)的實(shí)體區(qū)段中的資料被遷徙至其他媒體區(qū)的實(shí)體區(qū)段中時,遷徙目的地由該實(shí)體區(qū)段相關(guān)的虛擬卷的『分散式資料』屬性所決定。有關(guān)資料遷徙功能的細(xì)節(jié)將于下文中說明。依據(jù)本發(fā)明的一實(shí)施例,該些儲存系統(tǒng)架構(gòu)可設(shè)置區(qū)段遷徙(SectionMigration)功能,則在某些情況下會啟動此區(qū)段遷徙功能。依據(jù)本發(fā)明的一實(shí)施例,當(dāng)增加媒體區(qū)至虛擬池中且『分散式資料』屬性被設(shè)定給任一個虛擬卷時,會啟動資料區(qū)段遷徙操作。依據(jù)本發(fā)明的又一實(shí)施例,當(dāng)進(jìn)行媒體區(qū)自虛擬池中移除操作以釋放屬于要被移除的媒體區(qū)的資料區(qū)段時,會啟動區(qū)段遷徙操作。依據(jù)本發(fā)明的一實(shí)施例,資料遷徙功能的建制重點(diǎn)如下;(1)在SAS中為資料遷徙功能而設(shè)置一實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制(physicalsectionversusvirtualsectioncross-referencingmechanism)。依據(jù)本發(fā)明的一實(shí)施方式,實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制的實(shí)施可借由設(shè)置一實(shí)體到虛擬區(qū)段索引映射表(P2V表)而達(dá)成。依據(jù)本發(fā)明的一實(shí)施方式,實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制的實(shí)施可借由,設(shè)置一實(shí)體到虛擬區(qū)段索引映射表(P2V表)及一虛擬到實(shí)體區(qū)段索引映射表(V2P表)而達(dá)成。其中該(P2V表)及/或(V2P表)由SAS中的區(qū)段分配串列(SAL)所構(gòu)成,稱為P2V/V2PSAL。(2)介于BASSAL及SAS管理層間的界面借由虛擬區(qū)段索引(而非實(shí)體區(qū)段索引)所完成,此一虛擬區(qū)段索引在區(qū)段遷徙的過程中將不會改變。(3)虛擬對實(shí)體區(qū)段索引映射表用以加速虛擬區(qū)段索引轉(zhuǎn)換成為實(shí)體區(qū)段索引。每一個存取一BASSAL(或虛擬卷)的資料區(qū)段的主機(jī)IO請求必須參考虛擬對實(shí)體區(qū)段索引映射表以找到實(shí)際資料所在位置的實(shí)體區(qū)段索引。(4)在區(qū)段遷徙過程中,所有的SAS區(qū)段資料更新被暫停。此借由鎖定機(jī)制而達(dá)成。同樣的,在獲得鎖定之前,遷徙程序(migrationdeamon)不能進(jìn)行遷徙。(5)將虛擬區(qū)段索引轉(zhuǎn)換成為實(shí)體區(qū)段索引需要讀取描述資料,因而成為一凍結(jié)操作(blockingoperation)。(6)在所建置的虛擬區(qū)段索引中,SAS提供客戶端使用不變的虛擬區(qū)段索引(VSI)而非會遷徙的實(shí)體區(qū)段索引。(7)實(shí)體對虛擬映射資料儲存于每個媒體區(qū)的SAT中或是另一個類似于SAT的表中。維護(hù)實(shí)體對虛擬映射表的目的為在遷徙以及其他維護(hù)操作的過程中加速交互參照。(8)虛擬對實(shí)體映射表儲存于該SAS的一個保留的SAL中。虛擬區(qū)段索引基于在該虛擬對實(shí)體映射表中的可用的項(xiàng)目而分配。在遷徙中,僅修改該區(qū)段索引映射項(xiàng)目,不須修改區(qū)段索引,因?yàn)镾AS對其客戶端使用不變的虛擬索引。(9)依據(jù)本發(fā)明的一實(shí)施方式,虛擬對實(shí)體及實(shí)體對虛擬映射表以具有復(fù)本的方式儲存,以確保媒體錯誤(mediaerrors)將不致造成映射資料無可挽回的遺失(fatalloss)。依據(jù)本發(fā)明的另一實(shí)施方式,虛擬對實(shí)體及實(shí)體對虛擬映射表可以不具復(fù)本的方式儲存。(10)依據(jù)本發(fā)明的一實(shí)施方式,SAS日志功能也將P2V/V2P映射表SAL納入其中。依據(jù)本發(fā)明的另一實(shí)施方式,SAS日志功能也可不將P2V/V2P映射表SAL納入其中。根據(jù)本發(fā)明的一實(shí)施例,若是有新的ME加入某一VP且該VP中設(shè)定有「分散式資料」屬性,或VP中有ME需要移除,則會啟動一區(qū)段遷徙(SectionMigration)作業(yè)。為使區(qū)段遷徙前后,ME中各卷區(qū)塊(VolumeBlock)的VBI與其位置索引(LocationIndex)之間的虛擬對應(yīng)關(guān)系不變(請參考圖4A與圖4B),因此,于本發(fā)明的一實(shí)施例中,采用一虛擬對實(shí)體區(qū)段索引映射表(Virtual-to-Physical(V2P)sectionindexmappingtable,以下簡稱V2PTable)以及一實(shí)體對虛擬區(qū)段索引映射表(Physical-to-Virtual(P2V)sectionindexmappingtable,以下簡稱P2VTable)各自記錄虛擬索引(VirtualIndex)對實(shí)體索引(PhysicalIndex)與實(shí)體索引(PhysicalIndex)對虛擬索引(VirtualIndex)的對應(yīng)關(guān)系。請參照圖5,在SAS中V2PTable與P2VTable以區(qū)段分配表(sectionallocationlist,SAL)的型式儲存,其對應(yīng)有一節(jié)點(diǎn)表(InodeTable)。此儲存有V2PTable與P2VTable的SAL專供SAS本身管理使用,而不呈現(xiàn)出去供主機(jī)存取資料之用。該SAL有一屬性區(qū)塊(AttributeBlock),用以記載此SASID以及相關(guān)設(shè)定等資訊;有一目錄(directory)欄位,用以記載指引、管理該SAL中各區(qū)段(section)的資訊;有一儲存V2PTable的欄位、以及有一儲存P2VTable的欄位。根據(jù)本發(fā)明的一實(shí)施例,P2VTable5137的資料格式可如圖6A圖與圖6B所示,兩者同樣是記載實(shí)體索引(PhysicalIndex)對虛擬索引(VirtualIndex)的對應(yīng)關(guān)系。不同的是,圖6B并不如圖6A般有記錄實(shí)體索引(PhysicalIndex)的欄位,而是依照記錄虛擬索引(VirtualIndex)的各項(xiàng)目(entry)的先后順序而推知其對應(yīng)的實(shí)體索引(PhysicalIndex)。根據(jù)本發(fā)明的一實(shí)施例,V2PTable5135的資料格式可如圖7A與圖7B所示,兩者同樣是記載虛擬索引(VirtualIndex)對實(shí)體索引(Physicallndex)的對應(yīng)關(guān)系。不同的是,圖7B并不如7A般有記錄虛擬索引(VirtualIndex)的欄位,而是依照記錄實(shí)體索引(PhysicalIndex)的各項(xiàng)目(entry)的先后順序而推知其對應(yīng)的虛擬索引(VirtualIndex)。舉例來說,本發(fā)明利用V2PTable5135與P2VTable5137而使得區(qū)段遷徙前后虛擬卷(VV)中各卷區(qū)塊索引欄位41中的VBI對位置索引欄位42中的位置索引(locationindex)的虛擬對應(yīng)關(guān)系不變,而不使資料區(qū)段遷徙作業(yè)影響到上層應(yīng)用端的區(qū)塊索引資訊。以下舉一實(shí)例說明如何應(yīng)用V2PTable5135與P2VTable5137使得虛擬對應(yīng)關(guān)系不變。假設(shè)主機(jī)10發(fā)出一10請求給虛擬化層202A欲對VBI=001的卷區(qū)塊存取資料,請參照圖4A及圖4B。首先于虛擬化層202A內(nèi)找到VBI=001所對應(yīng)的BAB項(xiàng)目(entry),得知該VBI=001的卷區(qū)塊有被其VVl所使用,然后找VBI=001所對應(yīng)的位置索引為001。在有V2PTable5135的情況下,圖4A及圖4B中所示的位置索引對應(yīng)到圖6A及圖6B中的虛擬索引(virtualindeX)61,據(jù)此,可以找到虛擬索引=001(圖中繪示為“1”)所對應(yīng)的實(shí)體索引(phySicalindex)63為002。有了實(shí)體索引之后,可以查詢一如圖3C或圖3D的記錄表或經(jīng)由一特定的運(yùn)算規(guī)則或公式,而得知實(shí)體索引=002時所對應(yīng)到的實(shí)體區(qū)段位置。若以圖3D為例,實(shí)體索引=002便對應(yīng)到PSI81,然后查詢該表(或以一特定的運(yùn)算規(guī)則或公式取代)便可以得知PSI=002時的實(shí)體區(qū)段位置是在MEID為RA-ME1、起始位址(LBA)為101的連續(xù)100個分區(qū)之處。假設(shè)主控子系統(tǒng)20A將資料遷徙至另一ME(例如,RB-ME1),則V2PTable5135中的實(shí)體索引63會根據(jù)資料的遷徙而改變,例如虛擬索引=001(圖中繪示為“1”)所對應(yīng)的實(shí)體索引63由002改為對應(yīng)PSI=101。如此一來,VBI對位置索引的虛擬對應(yīng)關(guān)系可以不用改變,通過V2PTable5135的轉(zhuǎn)換仍然可以順利對應(yīng)到遷徙后新的資料位置,例如MEID為RB-ME1、起始位址(LBA)為001的連續(xù)100個分區(qū)。請參閱圖8A,為當(dāng)具有V2P表時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的示意圖。在一個具有V2P表的主控子系統(tǒng)中,虛擬化層可利用該區(qū)塊關(guān)聯(lián)表(BAT)、該V2P表、及該實(shí)體區(qū)段索引對實(shí)體區(qū)段LBA映射函數(shù)(或表)8得到VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系。當(dāng)一VBI為已知時,可利用該區(qū)塊關(guān)聯(lián)表找到其所對應(yīng)的位置索引,再以該位置索引找到該V2P表的虛擬索引而找到其所對應(yīng)的實(shí)體索引,再以該實(shí)體索引作為該實(shí)體區(qū)段索引并利用該實(shí)體區(qū)段索引對實(shí)體區(qū)段LBA映射函數(shù)而找到其所對應(yīng)的實(shí)體區(qū)段位址。以下說明如何利用上述的VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系得到一主機(jī)命令中的LBA與其所對應(yīng)的實(shí)體區(qū)段LBA及分區(qū)位址。當(dāng)一個主控子系統(tǒng)收到一個來自主機(jī)的命令時,該命令中所帶的LBA(例如一IO存取命令的LBA或一資料位址查詢命令中所欲查詢的LBA)被轉(zhuǎn)換成其所對應(yīng)的VBI及位址相關(guān)資訊(例如區(qū)段資訊及/或分區(qū)資訊),接著可以利用上述方式找該VBI到所對應(yīng)的實(shí)體區(qū)段LBA,再利用該些位址相關(guān)資訊(例如區(qū)段資訊及/或分區(qū)資訊)找到所對應(yīng)的分區(qū)位址。請參閱圖8B,為當(dāng)發(fā)生資料區(qū)段遷徙時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的變化的示意圖。在圖8A的時間的后,當(dāng)一個虛擬池中發(fā)生資料區(qū)段遷徙時,若該資料所在實(shí)體區(qū)段從RA-MEl中PSI=002的一分區(qū)處遷徙到RB-MEl中PSI=101另一分區(qū)處時,則該V2P表中的PI由002改變成101,而該區(qū)塊關(guān)聯(lián)表(BAT)則并未發(fā)生改變。請參閱圖8C,為當(dāng)只有P2V表而無V2P表時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的示意圖。在一個具有P2V表的主控子系統(tǒng)中,虛擬化層可利用該區(qū)塊關(guān)聯(lián)表(BAT)、該P(yáng)2V表、及該實(shí)體索引對實(shí)體區(qū)段LBA映射函數(shù)得到VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系。當(dāng)一VBI為已知時,可利用該區(qū)塊關(guān)聯(lián)表找到其所對應(yīng)的位置索引,再以該位置索引找到該P(yáng)2V表的虛擬索引而找到其所對應(yīng)的實(shí)體索引,再以該實(shí)體索引利用該實(shí)體索引對實(shí)體區(qū)段LBA映射函數(shù)而找到其所對應(yīng)的實(shí)體區(qū)段LBA。其中,由于P2V表中是以實(shí)體索引次序存放虛擬索引(VI)值,在尋找該P(yáng)2V表中的虛擬索引(VI)與該位置索引(Li)相同者時,無法直接找到虛擬索引(VI)值,而必須對實(shí)體索引內(nèi)容一一擷取出再與位置索引(Li)比較。請參閱圖8D,為當(dāng)只有P2V表而無V2P表時,當(dāng)發(fā)生資料區(qū)段遷徙時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的變化的示意圖。當(dāng)該資料所在實(shí)體區(qū)段從RA-MEl中PSI=002的一分區(qū)處遷徙到RB-MEl中PSI=101另一分區(qū)處時,則該P(yáng)2V表中的由原本的PI=002對應(yīng)至VI=001改變成PI=101對應(yīng)至VI=001,而該區(qū)塊關(guān)聯(lián)表(BAT)則并未發(fā)生改變。由圖8C及圖8D中可以得知,若從PI=001開始檢索VI=001時的PI值,當(dāng)PI=002時可以較快找到VI=001,而當(dāng)PI=101時則較慢找到VI=001。由于在圖8C及圖8D中的P2V表中的VI值為不規(guī)則排列而必須對實(shí)體索引內(nèi)容一一擷取出再與位置索引(Li)比較,故較為費(fèi)時。值得注意的是,于本發(fā)明的一實(shí)施例中,若是不考慮遷徙作業(yè),且沒有V2PTable5135與P2VTable5137,圖4A、圖4B中所示的位置索引(Li)為實(shí)體區(qū)段索引(PSI),即對應(yīng)至圖3C或圖3D中所示的PSI。請參閱圖12A,為當(dāng)沒有V2P表及P2V表時,VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系的示意圖。在一個沒有V2P表及P2V表的主控子系統(tǒng)中,虛擬化層可利用該區(qū)塊關(guān)聯(lián)表(BAT)及該實(shí)體索引對實(shí)體區(qū)段LBA映射函數(shù)得到VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系。當(dāng)一VBI為已知時,可利用該區(qū)塊關(guān)聯(lián)表找到其所對應(yīng)的位置索引,再以該位置索引利用該實(shí)體索引對實(shí)體區(qū)段LBA映射函數(shù)而找到其所對應(yīng)的實(shí)體區(qū)段LBA。以下說明如何利用上述的VBI與其所對應(yīng)的實(shí)體區(qū)段LBA的映射關(guān)系得到一主機(jī)命令中的LBA與其所對應(yīng)的實(shí)體區(qū)段LBA及分區(qū)位址。當(dāng)一個主控子系統(tǒng)收到一個來自主機(jī)的命令時,該命令中所帶的LBA(例如一IO存取命令的LBA或一資料位址查詢命令中所欲查詢的LBA)被轉(zhuǎn)換成其所對應(yīng)的VBI及位址相關(guān)資訊(例如區(qū)段資訊及/或分區(qū)資訊),接著可以利用上述方式找該VBI到所對應(yīng)的實(shí)體區(qū)段LBA,再利用該些位址相關(guān)資訊(例如區(qū)段資訊及/或分區(qū)資訊)找到所對應(yīng)的分區(qū)位址。在發(fā)生資料區(qū)段遷徙而需變更卷區(qū)塊索引(VBI)與實(shí)體區(qū)段LBA的映射關(guān)系時,若有P2V表及/或V2P表的話,僅需變更P2V表及V2P表中虛擬索引與實(shí)體索引的映射關(guān)系,即便是在SAS中尚具有其他資料結(jié)構(gòu)會使用位置索引來映射實(shí)體區(qū)段LBA時亦是如此,而如圖8B及圖8D所示。在發(fā)生資料區(qū)段遷徙而需變更VBI與實(shí)體區(qū)段LBA的映射關(guān)系時,若無P2V表及V2P表的話,則需變更BAT表中的卷區(qū)塊索引與位置索引的映射關(guān)系,而如圖12B所示。惟,若SAS中尚具有其他資料結(jié)構(gòu)會使用卷區(qū)塊索引與位置索引來映射實(shí)體區(qū)段位置時(例如另一BAT表),則需變更所有資料結(jié)構(gòu)中卷區(qū)塊索引與位置索引的映射關(guān)系。此時,由于沒有特定資料結(jié)構(gòu)記錄需變更的位置索引用于哪些資料結(jié)構(gòu)中(例如一BAT表),SAS須將所有具有位置索引的資料結(jié)構(gòu)(例如所有的BAT表)掃描一次,以找出是否其中具有該需變更的位置索引,并于找出后針對每一資料結(jié)構(gòu)中的位置索引進(jìn)行變更,系統(tǒng)效能會因而大幅降低,甚至于低到令人無法接受的程度。請參閱圖21,其中顯示有依據(jù)本發(fā)明的虛擬卷快照(virtualvolumesnapshot)功能性的一資料結(jié)構(gòu)的一實(shí)施例。在本實(shí)施例中,該SAS211中另可包含用于虛擬卷快照功能性的資料結(jié)構(gòu)。SAS211可以包含一或多個個用于區(qū)塊關(guān)聯(lián)集區(qū)段分配串列BASSAL#1、BASSAL#2等及一節(jié)點(diǎn)表,用以記錄進(jìn)行時間點(diǎn)(point-in-time;簡寫為PIT)備份(backup)的基礎(chǔ)。區(qū)塊關(guān)聯(lián)表(BlockAssociationTables),以下簡稱BAT,儲存在此BAS之中。BAT用以儲存交互參考資訊以與具有原始儲存位置(LBA)的備份資料相對應(yīng),亦即每個BAT內(nèi)記錄有指向其所對應(yīng)的PIT快照影像(SnapshotImage)的資訊。而備份資料(快照影像)亦儲存于此BAS之中。依據(jù)本發(fā)明的一實(shí)施例,該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列另包含有一屬性區(qū)塊(AttributeBlock),用以記載此區(qū)塊關(guān)聯(lián)集區(qū)段分配串列的ID、大小以及相關(guān)設(shè)定等資訊;一目錄(directory)欄位,記載指引、管理該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中各實(shí)體區(qū)段的資訊;一日志(Journal)欄位,用以存放運(yùn)作日志,以供系統(tǒng)發(fā)生錯誤或斷電情事時可供恢復(fù)(recovery)之用。由于該虛擬卷快照功能亦利用BAT表來記錄卷區(qū)塊索引與位置索引的映射關(guān)系,一旦發(fā)生資料區(qū)段遷徙而需變更卷區(qū)塊索引與實(shí)體區(qū)段LBA的映射關(guān)系時,亦須將所有的BAT表掃描一次,以找出是否其中具有該需變更的位置索引,并于找出后針對每一BAT表中的位置索引進(jìn)行變更。由于圖10的實(shí)施例中的該些子系統(tǒng)20A、20B及20C均是主控子系統(tǒng),子系統(tǒng)20A、20B及20C也均是從屬子系統(tǒng),則各子系統(tǒng)的ME服務(wù)器層203A、203B、203C會將其自身的RAID層204A、204B及204C中的每一個ME記錄其各自所系屬的主控子系統(tǒng)20A、20B、20C并將其呈現(xiàn)出來,且主控子系統(tǒng)20A、20B、20C的ME服務(wù)器層203A、203B、203C會將自身的虛擬化層202A、202B、202C所系屬的ME找到供其管理使用。假設(shè)虛擬化層202A產(chǎn)生一VP-A100A、虛擬化層202B產(chǎn)生一VP-B100B、虛擬化層202C產(chǎn)生一VP-C100C,則ME服務(wù)器層203A會記錄RA-MEl系屬于子系統(tǒng)20A,RA-ME2、RA_ME3、RA_ME4系屬于子系統(tǒng)20C;ME服務(wù)器層203B會記錄RB-MEl系屬于子系統(tǒng)20A,RB-ME5、RB-ME6系屬于子系統(tǒng)20C;ME服務(wù)器層203C會記錄RC-MEl系屬于子系統(tǒng)20A,RC-ME2、RC-ME3、RC-ME6系屬于子系統(tǒng)20B。以上所述的各儲存系統(tǒng)架構(gòu)實(shí)施例為本發(fā)明對于儲存虛擬化的應(yīng)用。更甚者,依據(jù)本發(fā)明的一實(shí)施例,在該些儲存系統(tǒng)架構(gòu)實(shí)施例中可建制資料遷徙功能性。以下為本發(fā)明在資料遷徙上功能性的說明。雖然在前述的例子中,僅例示有一個主機(jī)10連接于一主控子系統(tǒng)20A上,但是依據(jù)本發(fā)明的其他實(shí)施例,可以有多個個主機(jī)10連接于一主控子系統(tǒng)20A上。圖13為依據(jù)本發(fā)明的一實(shí)施例的因移除ME而引發(fā)的遷徙作業(yè)的流程圖。在本實(shí)施例中,當(dāng)主控子系統(tǒng)20A的虛擬化層202A接到一將被移除的ME所對應(yīng)的一移除時,首先,于步驟501,根據(jù)該移除訊息,找出該將被移除的ME所系屬的SAS(VP)。步驟501的尋找過程可以從任一SAS(VP)開始,如果判斷結(jié)果不是,再尋找另一個SAS(VP)來加以判斷;或者是可以多個個SAS(VP)同時進(jìn)行判斷。于步驟502,找到與該將被移除的ME所系屬的SAS(VP)后,則從該SAS(VP)的SAT中取得與將被移除的ME關(guān)聯(lián)的實(shí)體區(qū)段資訊。于步驟503,根據(jù)所取得的實(shí)體區(qū)段資訊,從第一個區(qū)段開始。于步驟504,在進(jìn)行該區(qū)段的遷徙作業(yè)之前,虛擬化層先將該將被移除的ME的VCSN加1、且通知該ME所系屬的子系統(tǒng)的VCSN代理人其加1后的VCSN。于步驟505,更改VCSN的相關(guān)作業(yè)完成后,開始復(fù)制(Copy)或搬移(Move)該將被移除的ME所包含的實(shí)體區(qū)段的資料到另一個ME。于步驟506,然后判斷該將被移除的ME上所包含的實(shí)體區(qū)段資料是否皆已復(fù)制或移動到另一或多個ME;當(dāng)判斷該將被移除的ME上的所有實(shí)體區(qū)段上的資料已完成復(fù)制或移動至其他該多個媒體區(qū)其中的一個或多個時,則移除該將被移除的媒體區(qū),此流程完成。否則,于步驟506,當(dāng)判斷該將被移除的ME上尚有實(shí)體區(qū)段未完成復(fù)制或移動至其他ME其中的一個或多個時,則執(zhí)行步驟507,取得下一個實(shí)體區(qū)段的資訊,然后重復(fù)進(jìn)行步驟504到步驟506的流程。圖14為依據(jù)本發(fā)明的一實(shí)施例的因增加ME而引發(fā)的遷徙作業(yè)的流程圖。在本實(shí)施例中,當(dāng)主控子系統(tǒng)20A的虛擬化層202A接到一新增訊息得知有新的ME加入某一SAS(VP)時,首先,于步驟601,根據(jù)該新增訊息,找出該新增ME所系屬的SAS;接著,計(jì)算該SAS(VP)中所有ME已經(jīng)使用的實(shí)體區(qū)段的總實(shí)體區(qū)段數(shù),此資訊可以由該SAS(VP)的SAT中獲得。于步驟602,利用該總實(shí)體區(qū)段數(shù)及ME數(shù)(亦包含該新增的ME),以計(jì)算出每一個系屬于該SAS(VP)的ME的一平衡后的實(shí)體區(qū)段數(shù)(balancedsectioncount)。于步驟603,選取一來源ME(SourceME)開始進(jìn)行處理,其中來源ME指SAS(VP)中原有的所有ME為。于步驟604,判斷是否所有的來源ME皆已處理過。若步驟604的判斷結(jié)果為「是」,則結(jié)束此流程。若步驟604的判斷結(jié)果為「否」,則至步驟605。于步驟605,判斷正在處理中的來源ME的實(shí)體區(qū)段數(shù)是否大于該平衡后的實(shí)體區(qū)段數(shù)。若步驟605判斷為「是」,則至步驟606進(jìn)行該來源ME的VCSN更改程序,包括將該來源ME的VCSN加1、且通知該來源ME所系屬的子系統(tǒng)的VCSN代理人其加1后的VCSN(st印606),然后至步驟607將該來源ME的區(qū)段資料復(fù)制或搬移到新增的ME(目標(biāo)ME)。以上作業(yè)完成后,來源ME的實(shí)體區(qū)段數(shù)將因移出資料而減少,因此回到step605,繼續(xù)比較已使用區(qū)段的實(shí)體區(qū)段數(shù)是否大于計(jì)算出來的平衡后的實(shí)體區(qū)段數(shù),如果判斷結(jié)果為「是」,重復(fù)st印606與st印607。若步驟605判斷為「否」,即正在處理中的ME的實(shí)體區(qū)段數(shù)不大于該平衡后的實(shí)體區(qū)段數(shù)時,則進(jìn)行步驟608以取得下一ME進(jìn)行處理,然后再回到步驟604判斷所有的ME是否已處理完成,重復(fù)進(jìn)行之后的判斷與處理。圖13與圖14所描述的流程處理只有1個ME移除與1個新ME加入的情況。若是移除或加入第1個ME之后且圖13或圖14的流程還在進(jìn)行中,又移除或加入第2個MEJg據(jù)本發(fā)明的一實(shí)施例,圖13或圖14的流程將因移除或加入第2個ME而重新開始。于圖14的流程,因?yàn)榈?個加入的ME已經(jīng)接收了一些搬移進(jìn)去的實(shí)體區(qū)段上的資料,因此第1個加入的ME相對于第2個加入的ME而言,亦可能扮演傳遞資料的來源ME角色。以上圖13與圖14為以ME為基礎(chǔ)而進(jìn)行的遷徙作業(yè)。接下來的圖15與圖16為以SAL為基礎(chǔ)而進(jìn)行的遷徙作業(yè)。請參照圖15,為依據(jù)本發(fā)明的另一實(shí)施例的因移除ME而引發(fā)的遷徙作業(yè)的流程圖。當(dāng)主控子系統(tǒng)20A的虛擬化層202A接到一將被移除的ME所對應(yīng)的一移除訊息時,首先,于步驟701,根據(jù)該移除訊息,找出該將被移除的ME所系屬的SAS(VP)。步驟701的尋找過程可以從任一SAS(VP)開始,如果判斷結(jié)果不是,再尋找另一個SAS(VP)來加以判斷;或者是可以多個個SAS(VP)同時進(jìn)行判斷。接著,于步驟702,找到與該將被移除的ME所系屬的SAS(VP)后,判斷所系屬的該SAS(VP)中的所包含的所有區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否已確認(rèn)。若步驟702的判斷為「是」,則移除該將被移除的媒體區(qū),此一流程結(jié)束。若步驟702的判斷結(jié)果為「否」,則進(jìn)行步驟703,亦即,當(dāng)該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列尚有未完成確認(rèn)者時,選擇一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列進(jìn)行確認(rèn)。若步驟703的判斷結(jié)果為「是」,則進(jìn)行步驟704,取得另一個SAL的資訊,并回到步驟702。若步驟703的判斷結(jié)果為「否」,則進(jìn)行步驟705,判斷該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中目前進(jìn)行處理的實(shí)體區(qū)段是否關(guān)聯(lián)于該將被移除的媒體區(qū)。當(dāng)步驟705的判斷結(jié)果為「是」時,表示該目前進(jìn)行處理的實(shí)體區(qū)段是關(guān)聯(lián)于該將被移除的媒體區(qū),此時進(jìn)行步驟706,虛擬化層202先將該將被移除的ME的VCSN加1、且通知該ME所系屬的子系統(tǒng)的VCSNAgent其加1后的VCSN。于更改VCSN的相關(guān)作業(yè)完成后,進(jìn)行步驟707,復(fù)制(Copy)或搬移(Move)該目前進(jìn)行處理的實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一。然后取得下一個區(qū)段的資訊(st印708),并回到步驟703,重復(fù)進(jìn)行步驟703到步驟708的流程。當(dāng)步驟705的判斷結(jié)果為「否」時,表示該目前進(jìn)行處理的實(shí)體區(qū)段并非關(guān)聯(lián)于該將被移除的媒體區(qū),此時進(jìn)行步驟708,到step708取得下一個區(qū)段的資訊,并重復(fù)之后的流程。請參照圖16,為依據(jù)本發(fā)明的另一實(shí)施例的因增加ME而引發(fā)的遷徙作業(yè)的流程圖。當(dāng)主控子系統(tǒng)20A的虛擬化層202A接到一新增ME的新增訊息時,首先,找出該新增ME所系屬的SAS(VP),尋找過程可以從任一SAS(VP)開始,如果判斷結(jié)果不是,再尋找另一個SAS(VP)來加以判斷;或者是可以多個個SAS(VP)同時進(jìn)行判斷。于步驟801中,根據(jù)該新增訊息,找出該新增媒體區(qū)所系屬的該區(qū)段分配系統(tǒng)。于步驟802,判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn)。當(dāng)步驟802的判斷結(jié)果為「是」時,表示所有該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列已完成確認(rèn),則此流程結(jié)束。然而,當(dāng)步驟802的判斷結(jié)果為「否」時,表示該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列尚有未完成確認(rèn)者,則進(jìn)行步驟803。于步驟803,選擇一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列進(jìn)行確認(rèn),判斷是否已經(jīng)到了目前進(jìn)行確認(rèn)的SAL的終點(diǎn)(endoflist,EOL)。若步驟803的判斷結(jié)果為「是」,則進(jìn)行步驟804,取得另一個BASSAL的資訊,并回到步驟802。若步驟803的判斷結(jié)果為「否」,則進(jìn)行步驟805,進(jìn)一步判斷該BASSAL在與目前進(jìn)行確認(rèn)的區(qū)段關(guān)聯(lián)的ME中是否有較多的區(qū)段數(shù)。若step805的判斷結(jié)果為「是」,表示該目前進(jìn)行確認(rèn)的實(shí)體區(qū)段所關(guān)聯(lián)的該媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)大于新增媒體區(qū)的該實(shí)體區(qū)段數(shù),則進(jìn)行步驟806,虛擬化層202先將該新增的ME的VCSN加1、且通知該ME所系屬的子系統(tǒng)的VCSN代理人其加1后的VCSN。更改VCSN的相關(guān)作業(yè)完成后,進(jìn)行步驟807,開始復(fù)制(copy)或搬移(Move)該區(qū)段的資料到新增的ME。然后進(jìn)行步驟808,取得下一個區(qū)段的資訊,并回到步驟803,重復(fù)進(jìn)行步驟803到步驟807的流程。如果步驟805的判斷結(jié)果為“否”,表示該所關(guān)聯(lián)的該媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)不大于新增媒體區(qū)的該實(shí)體區(qū)段數(shù),則到步驟808取得下一個區(qū)段的資訊,并重復(fù)之后的流程。以上圖15與圖16所描述的流程處理只有1個ME移除與1個新ME加入的情況。若是移除或加入第1個ME之后,且圖15或圖16的流程還在進(jìn)行中,又移除或加入第2個ME,根據(jù)本發(fā)明的一實(shí)施例,圖15或圖16的流程將因移除或加入第2個ME而重新開始,也就是該SAS(VP)中的所有SAL需要重新進(jìn)行確認(rèn)。在進(jìn)行遷徙作業(yè)的過程中,主機(jī)仍可能隨時對進(jìn)行遷徙作業(yè)的ME發(fā)出讀取/寫入資料的IO請求。為避免在遷徙作業(yè)的過程中存取到錯誤的資料,于本發(fā)明的一實(shí)施例中,每一ME設(shè)定一有效性檢查序號(VCSN),每當(dāng)ME中的一個實(shí)體區(qū)段上的資料要遷徙之前,主控子系統(tǒng)的虛擬化層必須先更改該ME的VCSN,并通知該ME系屬的子系統(tǒng)的VCSN代理人,使得VCSN代理人可以根據(jù)VCSN來判斷IO請求的有效性。圖17為依據(jù)本發(fā)明的一實(shí)施例的主機(jī)10或主機(jī)代理人110向主控子系統(tǒng)20A的虛擬化層202A詢問VCSN的流程圖。圖18為依據(jù)本發(fā)明的一實(shí)施例的接受IO請求的VCSN代理人確認(rèn)其所攜帶VCSN的有效性的流程圖。需說明的是,IO請求可由主機(jī)10或主機(jī)10內(nèi)所包含的代理人110所發(fā)出,而以下為簡化說明,僅以代理人110發(fā)出IO請求做為說明,熟悉該
技術(shù)領(lǐng)域:
的人士應(yīng)當(dāng)可輕易推得,主機(jī)10亦可取代代理人110而發(fā)出IO請求,或是以RAID子系統(tǒng)觀之,該IO請求由該主機(jī)10所發(fā)出。請同時參照圖17與圖9。于步驟901,代理人110發(fā)出包含一自定的資料分布詢問SCSI命令的IO請求向主控子系統(tǒng)20A的虛擬化層202A詢問欲存取的目標(biāo)資料(targetdata)的實(shí)體位置資訊。于步驟902,主控子系統(tǒng)20A的虛擬化層202A在收到詢問命令后,則回應(yīng)代理人110—實(shí)體媒體識別碼/邏輯區(qū)塊位址/區(qū)塊數(shù)量/有效性檢查序號的清單(listofphysicalME-ID/LBA/Block-Count/VCSN),該清單含括了所詢問的范圍,然后結(jié)束此一詢問流程。于本發(fā)明的一實(shí)施例中,步驟902在進(jìn)行回應(yīng)之前,必須先確認(rèn)代理人110所詢問的目標(biāo)資料所在的ME是否正在實(shí)體區(qū)段上的資料進(jìn)行區(qū)段遷徙作業(yè)的過程中。如果確認(rèn)結(jié)果為「是」,則主控子系統(tǒng)20A可能延遲回應(yīng)直到實(shí)體區(qū)段上的資料區(qū)段遷徙作業(yè)結(jié)束,或是回應(yīng)一個「Busy」的訊息給代理人110指示它等一下再試一次,或是回復(fù)一個指示(例如reservedVCSN)要求代理人110所發(fā)出的IO請求必須發(fā)送至主控子系統(tǒng)20A。請同時參照圖18與圖6。于步驟903,代理人110根據(jù)該清單的資訊對目標(biāo)資料所在的目標(biāo)RAID子系統(tǒng)發(fā)出IO請求。于步驟904,該IO請求由目標(biāo)RAID子系統(tǒng)中的VCSN代理人所接收。于步驟905,VCSN代理人將該IO請求中所攜帶的VCSN與虛擬化層202A通知的VCSN做比較,看兩者是否一致,若是一致,表示該IO請求中所攜帶的VCSN是有效的,反之則是無效。于步驟907,若是步驟905的比較結(jié)果是該IO請求中所攜帶的VCSN是有效的,則VCSN代理人將該IO請求轉(zhuǎn)移給RAID層。于步驟908,RAID層處理完該IO請求后,將處理的結(jié)果經(jīng)由VCSN代理人回復(fù)給代理人110。于步驟906,若是步驟905的比較結(jié)果是該IO請求中所攜帶的VCSN不是有效的,則VCSN代理人拒絕該IO請求并結(jié)束此一確認(rèn)流程。綜上所述,代理人110被拒絕存取后,可能會有兩種做法第一種做法,再向主控子系統(tǒng)20A的虛擬化層202A詢問正確的VCSN,然后再根據(jù)正確的VCSN發(fā)出另一IO請求以存取資料,也就是再重復(fù)進(jìn)行一次圖17與圖18的流程。第二種做法,代理人110放棄直接向ME所在的子系統(tǒng)發(fā)出IO請求,而是轉(zhuǎn)而尋求主控子系統(tǒng)20A的虛擬化層202A協(xié)助存取資料。值得注意的是,圖17所描述的詢問VCSN的流程可能發(fā)生在發(fā)出IO請求之前或之后,端視代理人110在何時有此需求。舉例來說,如果之前已經(jīng)有IO請求存取過相同區(qū)塊的資料,則代理人110會有與該資料區(qū)塊對應(yīng)的VCSN的記錄,此時代理人110可以不要進(jìn)行圖17的詢問流程,而是直接根據(jù)之前的記錄向目標(biāo)RAID子系統(tǒng)發(fā)出IO請求,也就是直接進(jìn)行圖18的流程。若是此IO請求所攜帶的VCSN為無效而被拒絕,則代理人110可能馬上或在下次發(fā)出IO請求前,進(jìn)行圖17的詢問流程。請參閱圖19,圖19繪示依據(jù)本發(fā)明的一儲存系統(tǒng)架構(gòu)中的直接媒體區(qū)存取功能的一實(shí)施例的流程圖。于此,主機(jī)通過一主機(jī)代理人(hostagent)來處理IO存取等事項(xiàng)。因此,主機(jī)代理人先掃描該些ME來以便得知與該些ME相關(guān)的ME組態(tài)/位置(configuration/location)等資訊,并據(jù)以產(chǎn)生一份清單用以記錄ME屬性及他們位于哪一個ME服務(wù)器之下,如媒體區(qū)識別碼對儲存節(jié)點(diǎn)交互參照表(ME-identifier-to-storage-nodecross-referencetable)(步驟2100);然后,主機(jī)代理人接收到來自于主機(jī)的一10請求(步驟2102);接著,主機(jī)代理人傳送一資料位置詢問命令(datalocationquerycommand)給一虛擬池主控者(VPM)來得到被定址資料的實(shí)體位置(步驟2104),其中,該資料位置詢問命令由一命令碼、一虛擬卷識別碼/代號(handle)及欲存取的區(qū)塊范圍(基礎(chǔ)區(qū)塊位址(baseblockaddress)與區(qū)塊數(shù)(blockcount))所構(gòu)成。該虛擬池主控者在接收到該資料位置詢問命令后,會發(fā)送一資料位置描述碼(datalocationdescriptor)給主機(jī)代理人,其中,該資料位置識別碼包含有一資料位置資訊(datalocationinformation)(步驟2106);再者,主機(jī)代理人依據(jù)該資料位置資訊產(chǎn)生一10請求(步驟2108),其中,于圖19中所示,10請求又稱作為10存取命令(10accesscommand);接著,主機(jī)代理人使用媒體區(qū)識別碼(MEID)及該媒體區(qū)識別碼對儲存節(jié)點(diǎn)交互參照表來確定所要存取的目標(biāo)儲存節(jié)點(diǎn)后,就發(fā)送出一10請求給該目標(biāo)儲存節(jié)點(diǎn),其中,媒體區(qū)識別碼被包含于該資料位置資訊中(步驟2110)。該目標(biāo)儲存節(jié)點(diǎn)的媒體區(qū)服務(wù)器查驗(yàn)該10請求中的有效性檢查資訊(ValidityCheckInformation,VCI)是否與來自該虛擬卷主控者中的有效性檢查資訊(步驟2112及步驟2114)—致;若該IO請求中的有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊一致,則該目標(biāo)儲存節(jié)點(diǎn)的該媒體區(qū)服務(wù)器執(zhí)行該IO請求(步驟2116);而若該IO請求中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊不一致,則該目標(biāo)儲存節(jié)點(diǎn)的該媒體區(qū)服務(wù)器回復(fù)一錯誤指示信號(errorindication)給該主機(jī)代理人,且該主機(jī)代理人再次執(zhí)行上述的步驟2104(步驟2118)。在本實(shí)施例中,該主機(jī)代理人并不需要將來自該虛擬卷主控者中的有效性檢查資訊儲存起來,但是必須于每次發(fā)出IO請求之前,先向該虛擬卷主控者發(fā)出一資料位置詢問命令后,才能向目標(biāo)ME發(fā)出IO請求。請參閱圖20A及圖20B,圖20A及圖20B繪示依據(jù)本發(fā)明的一儲存統(tǒng)架構(gòu)中的直接媒體區(qū)存取機(jī)制的另一實(shí)施例的流程圖。于此,主機(jī)代理人先掃描該些ME來以便得知與該些ME相關(guān)的ME組態(tài)/位置(configuration/location)等資訊,并據(jù)以產(chǎn)生一份清單用以記錄ME屬性及他們位于哪一個ME服務(wù)器之下,如媒體區(qū)識別碼對儲存節(jié)點(diǎn)交互參照表(ME-identifier-to-storage-nodecross-referencetable)(步驟2202);然后,主機(jī)代理人接收到來自于主機(jī)的一10請求(步驟2204)。然后,主機(jī)代理人在發(fā)送一10請求給一儲存節(jié)點(diǎn)前,會先檢查該資料位置資訊是否存在于其快取記憶體中(步驟2206及步驟2208);若該資料位置資訊不存在于主機(jī)代理人的快取記憶體中,主機(jī)代理人傳送一資料位置詢問命令(datalocationquerycommand)給一虛擬池主控者(VPM)來得到被定址資料的實(shí)體位置(步驟2210),其中,該資料位置詢問命令由一命令碼、一虛擬卷識別碼/代號(handle)及欲存取的區(qū)塊范圍(基礎(chǔ)區(qū)塊位址(baseblockaddress)與區(qū)塊數(shù)(blockcount))所構(gòu)成。該虛擬池主控者在接收到該資料位置詢問命令后,會發(fā)送一資料位置描述碼給主機(jī)代理人,其中,該資料位置識別碼包含有一資料位置資訊(datalocationinformation)(步驟2212);接著,主機(jī)代理人會將該資料位置資訊儲存在其快取記憶體中(步驟2214)并決定是否檢查該有效性檢查資訊的壽命(步驟2216)。承上步驟2206及步驟2208,若該資料位置資訊存在于主機(jī)代理人的快取記憶體中,主機(jī)代理人決定是否檢查該有效性檢查資訊的壽命(步驟2216)。承上述的步驟2216,若決定不檢查該有效性檢查資訊的壽命,該主機(jī)代理人依據(jù)該資料位置資訊產(chǎn)生一10請求(步驟2230);接著,主機(jī)代理人使用媒體區(qū)識別碼及該媒體區(qū)識別碼對儲存節(jié)點(diǎn)交互參照表來確定所要存取的目標(biāo)儲存節(jié)點(diǎn)后,就發(fā)送出一10請求給該目標(biāo)儲存節(jié)點(diǎn),其中,媒體區(qū)識別碼被包含于該資料位置資訊(步驟2232);然后,該目標(biāo)儲存節(jié)點(diǎn)的媒體區(qū)服務(wù)器檢查該10請求中的有效性檢查資訊(VCI)是否與來自該虛擬卷主控者中的有效性檢查資訊(步驟2234及步驟2236)—致。承上述的步驟2236,若該10請求中的有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊一致,則該目標(biāo)儲存節(jié)點(diǎn)的該媒體區(qū)服務(wù)器執(zhí)行該10請求(步驟2238);而若該10請求中的有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊不一致,則該目標(biāo)儲存節(jié)點(diǎn)的該媒體區(qū)服務(wù)器回復(fù)一錯誤指示信號(errorindication)給該主機(jī)代理人(步驟2240),且該主機(jī)代理人再次將其所屬的快取記憶體中的特定資料位置資訊或全部資料位置資訊視為無效(步驟2242),并再次執(zhí)行步驟2210。承上述的步驟2216,當(dāng)決定檢查該有效性檢查資訊的壽命,則該主機(jī)代理人判定該資料位置資訊的壽命是否已過完(elapsed)(步驟2218);若該資料位置資訊的壽命已過完(即已超過其有效壽命),則該主機(jī)代理人將其所屬的快取記憶體中的特定資料位置資訊或全部資料位置資訊視為無效(步驟2220),并再次執(zhí)行步驟2210;若該資料位置資訊的壽命尚未過完(即尚未超過其有效壽命),則執(zhí)行步驟2230。在本實(shí)施例中,該主機(jī)代理人必須將得自該虛擬卷主控者中的有效性檢查資訊儲存于一儲存裝置中,例如一快取記憶體中,而于每次欲向目標(biāo)ME發(fā)出IO請求之前,先檢查該IO請求的資料位置資訊已儲存于該儲存裝置中,若該資料位置資訊已儲存于該儲存裝置中時,可以直接向目標(biāo)ME發(fā)出IO請求而不必向該虛擬卷主控者發(fā)出一資料位置詢問命令。于此,針對上述實(shí)施例中的有效性檢查資訊的查驗(yàn)(步驟2112及步驟2114)作一細(xì)部說明。于本發(fā)明的有效性檢查資訊的查驗(yàn)的一實(shí)施例中,該目標(biāo)儲存節(jié)點(diǎn)更包含有一有效性檢查單元,用以執(zhí)行下列步驟來檢查源自該主機(jī)代理人的每一IO請求的有效性。承上所述,該些步驟包含有首先,該有效性檢查單元接收到來自該主機(jī)代理人的一IO請求后,會依據(jù)該IO請求所欲存取的ME來選擇對應(yīng)的一MEserver,其中,該IO請求包含有一有效性檢查資訊,且該有效性檢查資訊更包含有一有效性檢查序號;此外,每一MEserver包含有一或多個清單,該些清單記錄有ME的區(qū)段及其所對應(yīng)的VCSN值。接著,該有效性檢查單元擷取與該IO請求相關(guān)的ME的該清單中的一個或多個有效性序號中的一最新有效性檢查序號,并將該最新有效性檢查序號與該IO請求中的一有效性檢查序號進(jìn)行比對;當(dāng)該IO請求中的有效性檢查序號大于該最新有效性檢查序號時,則該有效性檢查單元不將該IO請求視一有效的IO請求,并執(zhí)行上述實(shí)施例中的步驟2118;而當(dāng)該IO請求中的有效性檢查序號不大于(i.e.小于或等于)該最新有效性檢查序號時,則該有效性檢查單元依據(jù)該IO請求所欲存取的位址來擷取一有效性檢查序號(后稱“對應(yīng)于該位址的該有效性檢查序號”),并比對該IO請求中的該有效性檢查序號與對應(yīng)于該位址的該有效性檢查序號。若對應(yīng)于該位址的該有效性檢查序號大于該IO請求中的該有效性檢查序號,則該有效性檢查單元不將該IO請求視為一有效的IO請求,并執(zhí)行上述實(shí)施例中的步驟2118;而若對應(yīng)于該位址的該有效性檢查序號不大于(i.e.小于或等于)該IO請求中的該有效性檢查序號,則該有效性檢查單元將該IO請求視為一有效的IO請求,并執(zhí)行上述實(shí)施例中的步驟2116。于本實(shí)施例中所述的步驟2112、2114、2116及2118,在說明圖19時,已有說明,故于此不予贅述。在上述有主機(jī)代理人的情況下,于該主機(jī)向主控子統(tǒng)發(fā)出資料位置詢問命令以取得資料位置資訊時,該主控子系統(tǒng)以資料位置詢問命令中的主機(jī)LBA利用圖8A及圖8C中的方式而得到資料位置資訊。雖然前述的各實(shí)施例以RAID子系統(tǒng)來說明,惟,依據(jù)本發(fā)明的一實(shí)施例,該RAID子統(tǒng)亦可以由沒有RAID功能的磁碟陣列子統(tǒng)(diskarraysubsystem)替代而不影響發(fā)明實(shí)質(zhì)。在此情形下,該實(shí)體卷通過該儲存虛擬化控制器200而由沒有RAID功能的磁碟陣列子系統(tǒng)所直接映射而成。直接媒體區(qū)存取功能的一實(shí)施例的詳細(xì)說明一種克服某些傳統(tǒng)儲存系統(tǒng)架構(gòu)的效能瓶頸的方法是,使主機(jī)(包含設(shè)置其中的主機(jī)代理人,以下同)可以直接發(fā)出IO至一儲存節(jié)點(diǎn)(storagenode),且該儲存節(jié)點(diǎn)(storagenode)中包含資料所在的ME,而非間接地通過一虛擬卷主控者。以上的方法,統(tǒng)稱為「直接媒體區(qū)存取(DirectMEAccess)」功能。其中,作為該虛擬池主控者的儲存節(jié)點(diǎn)即為前述的其中設(shè)置有虛擬化層202的儲存虛擬化控制器200。為了實(shí)施「直接媒體區(qū)存取」功能,主機(jī)首先必須記錄一ME的清單以決定該些ME的屬性且找出它們在哪一媒體區(qū)服務(wù)器(MEServer)之下。這通常是借由一掃描操作而達(dá)成,該掃描操作搜集關(guān)于ME組態(tài)/位置(configuration/location)的資訊。若是系統(tǒng)中ME組態(tài)/位置是固定的,主機(jī)只需要在初始化程序時掃描ME組態(tài)/位置一次。然而,若是系統(tǒng)中ME組態(tài)/位置可能動態(tài)地改變,例如一ME的所有權(quán)可能由一儲存節(jié)點(diǎn)轉(zhuǎn)移至另一儲存節(jié)點(diǎn),則需要一個機(jī)制通知主機(jī)(host)有一個改變發(fā)生,以便主機(jī)可以再做一次掃描。僅在改變后單純地回復(fù)一錯誤條件(例如a"UnitAttention")以回應(yīng)從主機(jī)接收的第一命令,可能不足以避免基于改變前的狀態(tài)而產(chǎn)生的輸出入存取命令被執(zhí)行,因?yàn)槟壳鞍l(fā)出的輸出入存取命令可能在主機(jī)接收到錯誤通知之前已經(jīng)前往媒體區(qū)服務(wù)器了(說明在本實(shí)施例中,此媒體區(qū)服務(wù)器本身包含有VCSN代理人的功能,以下同)。比較傾向的做法是讓媒體區(qū)服務(wù)器拒絕所有的輸出入存取命令直到它從主機(jī)收到狀態(tài)改變的確認(rèn)回應(yīng)。其中一種此類機(jī)制是,要求主機(jī)在對某一目標(biāo)ME發(fā)出任何輸出入存取命令之前須先要到該ME的存取許可(accesspermission)0若是ME組態(tài)/位置發(fā)生改變,存取許可便會從所有的主機(jī)清除掉,如此將導(dǎo)致所有以該ME作為目標(biāo)的輸出入存取命令會隨著「存取許可未要求(AccessPermissionsNotRequested)」錯誤資訊而失敗。在偵測到此錯誤條件之時,主機(jī)將清除所有與該特定ME關(guān)聯(lián)的狀態(tài)資訊,不只包括ME組態(tài)/位置資訊,亦包括主機(jī)快取中所有與該ME關(guān)聯(lián)的資料位置資訊(datalocationinformation)0然后主機(jī)將重新掃描以得到更新的ME資訊,且向管理該ME的新媒體區(qū)服務(wù)器重新要求存取許可,得到存取許可之后,輸出入存取命令便可重新發(fā)出至該新媒體區(qū)服務(wù)器。主機(jī)與媒體區(qū)服務(wù)器有效性確認(rèn)程序與資訊快取儲存的一實(shí)施例的詳細(xì)說明「直接媒體區(qū)存取」功能需要建制一通訊協(xié)定,讓主機(jī)可以借由該協(xié)定判定輸出入存取命令的目標(biāo)資料的目前位置。此通訊協(xié)定,以下稱為「資料位置詢問(DataLocationQuery)」通訊協(xié)定,包含發(fā)出一詢問命令(即「資料位置詢問命令」),該詢問命令由一命令碼、虛擬卷識別碼或代號(handle)、以及欲存取的區(qū)塊范圍(基礎(chǔ)區(qū)塊位址(baseblockaddress)與區(qū)塊數(shù)(blockcount))所構(gòu)成。該詢問命令由主機(jī)發(fā)送至「虛擬池主控者(VirtualPoolMaster,以下簡稱為VPMaster或VPM)」以得到被定址資料范圍的實(shí)體位置?;貞?yīng)該詢問命令的是一組涵蓋全部范圍的「資料位置描述碼(DataLocationDescriptor)」,每一該描述碼由一ME識別碼、基礎(chǔ)區(qū)塊位址、區(qū)塊數(shù)與有效性檢查資訊(validitycheckinformation,VCI)所組成。主機(jī)維持一「ME識別碼對儲存節(jié)點(diǎn)交互參照表(ME-identifier-to-storage-nodecross-referencetable)」,i亥表<吏主機(jī)可以決定經(jīng)由哪一儲存節(jié)點(diǎn)(storagenode)可以存取到「資料位置描述碼」中所定義的ME。當(dāng)接收到回應(yīng)該「資料位置詢問」的「資料位置描述碼」之后,主機(jī)發(fā)出一或多個輸出入請求(10requests,或簡稱為IOs)至儲存節(jié)點(diǎn)(storagenodes),此通過「ME識別碼對儲存節(jié)點(diǎn)交互參照表」,借由交互參照包含于「資料位置碼描述碼」中的ME識別碼對照儲存節(jié)點(diǎn)識別碼(storagenodeidentifiers)而確認(rèn)。一般來說,一個「資料位置描述碼」對應(yīng)一個10。如果一組識別碼(identifier)識別出相同的ME且其包含的區(qū)塊范圍是連續(xù)的,則可以使用單一IO去存取該組識別碼所涵蓋的所有資料,而不是根據(jù)每個識別碼都發(fā)出一個10,藉此可以減少存取資料的時間成本(overhead)?!纲Y料位置描述碼」中的有效性確認(rèn)資訊用以供「媒體區(qū)服務(wù)器(MediaExtentserver,以下簡稱為MEServer)」判斷輸出入存取命令中包含的資料位置資訊(ME識別碼與區(qū)塊范圍)是否是最新的,其中該輸出入存取命令由主機(jī)根據(jù)從虛擬池主控者(VPM)回復(fù)的「資料位置描述碼」中的資訊產(chǎn)生。資料的位置可能因?yàn)槟承┎僮鞫淖?,例如資料位置遷徙,此改變可能發(fā)生在虛擬池主控者因回應(yīng)「資料位置詢問」而回復(fù)主機(jī)資料位置資訊之時至輸出入存取命令被媒體區(qū)服務(wù)器接收到的時間點(diǎn)之間。在此一情況下,假如IO真的為媒體區(qū)服務(wù)器所執(zhí)行的話,則可能發(fā)生資料損壞,因?yàn)檩敵鋈氪嫒∶钏嫒〉奈恢貌皇侵鳈C(jī)想要存取資料的實(shí)際位置。雖然假如主機(jī)快取儲存資料位置資訊以試圖減少其發(fā)出至虛擬池主控者的「資料位置詢問」命令的數(shù)量時,非常有可能經(jīng)常遭遇到上述輸出入存取命令存取位置錯誤而導(dǎo)致資料損壞的事件,但是即使主機(jī)在接收到資料位置資訊后立即產(chǎn)生并發(fā)出與「資料位置詢問」命令的結(jié)果關(guān)聯(lián)的輸出入存取命令,仍有可能發(fā)生此類事件。「有效性檢查資訊」典型地包含與一虛擬池的成員ME關(guān)聯(lián)的一有效性檢查序號(ValidityCheckSequenceNumber,以下簡稱為VCSN)。每次當(dāng)ME有任何資料的實(shí)際位置改變,或是一虛擬卷(W)在虛擬池主控者的資料發(fā)生改變或操作狀態(tài)發(fā)生改變,或虛擬池(virtualpool)本身的操作狀態(tài)發(fā)生改變,且此改變需要主機(jī)在發(fā)出輸出入存取命令之前再次詢問虛擬池主控者之時,虛擬池主控者就會將VCSN加1。如果VCSN可能會發(fā)生繞回(wraparound)的情形而使得VCSN在增加足夠次數(shù)后可能會再發(fā)生相同的值,則虛擬池主控者可以實(shí)施一由主機(jī)監(jiān)視的VCI有效壽命。如果當(dāng)主機(jī)發(fā)出一資料位置詢問命令(datalocationquerycommand)之時與目前時間之間,已經(jīng)過一段大于VCI有效壽命的時間時,主機(jī)將先主動地使VCI失效且再次詢問虛擬池主控者與欲存取資料范圍關(guān)聯(lián)的最新VCI。此有效壽命資訊可以是一個事先定義的值,由主機(jī)借由一單獨(dú)命令或一組命令向虛擬池主控者詢問,或者由「資料位置描述碼」本身中的VCI回復(fù)。「直接媒體區(qū)存取」功能,以最簡單的實(shí)施來說,每執(zhí)行一次10存取,至少需要發(fā)出兩個命令到儲存節(jié)點(diǎn)群(storagenodegroup)。首先發(fā)出的命令是資料位置詢問命令,其被發(fā)送至扮演虛擬池主控者角色的儲存節(jié)點(diǎn)以決定資料位于哪一個ME。然后,一組包含一至多個實(shí)際的讀/寫命令(actualread/writecommand)被發(fā)至作為特定媒體區(qū)服務(wù)器的儲存節(jié)點(diǎn)。典型地,實(shí)際的讀/寫命令會被分發(fā)給儲存節(jié)點(diǎn)群(storagenodegroup)中的數(shù)個儲存節(jié)點(diǎn),而資料位置詢問命令一定是都發(fā)送至虛擬池主控者。如此的結(jié)果是,如果虛擬池主控者處理資料位置詢問命令的能力已經(jīng)到了所能負(fù)擔(dān)的極限的話,則可能終將成為效能瓶頸的所在。為了減少一定要發(fā)出的資料位置詢問命令的數(shù)量,以減少虛擬池主控者的負(fù)擔(dān),主機(jī)可以將資料位置詢問命令的回應(yīng)結(jié)果儲存于快取(cache)中,以備未來可能的參照之用。若是采用這種做法,主機(jī)將先檢查其快取中的資料位置資訊,以確認(rèn)將要發(fā)送的10所欲存取的區(qū)塊位址范圍所對應(yīng)的資料位置資訊是否已出現(xiàn)在快取之中。如果該區(qū)塊位址范圍所對應(yīng)的資料位置資訊已出現(xiàn)在快取中,則主機(jī)不須發(fā)出資料位置詢問命令至虛擬池主控者,因?yàn)闆Q定資料位置的資訊已經(jīng)存在于主機(jī)的快取之中。在這種情況下,主機(jī)將根據(jù)其快取的位置資訊直接產(chǎn)生一或多個輸出入存取命令并且直接發(fā)送至個別媒體區(qū)服務(wù)器所在的個別的儲存子系統(tǒng)。如果一個媒體區(qū)服務(wù)器偵查到輸出入存取命令中的資訊與其從虛擬池主控者接收到的資訊并不一致,該媒體區(qū)服務(wù)器將會回復(fù)一個錯誤發(fā)生指示(errorindication)給主機(jī)。根據(jù)此錯誤資訊,主機(jī)可能使其資料位置資訊快取(datalocationinformationcache)中的某些特定資訊失效,其中該定資訊為與導(dǎo)致錯誤回復(fù)的區(qū)塊位址為相關(guān)聯(lián)的(associated);或者,它可能使快取中的所有資訊都失效,無論其區(qū)塊位址為何。無論是哪一種情況,主機(jī)都必須再發(fā)出資料位置詢問命令至虛擬池主控者以得到最新的資料位置資訊,該最新的資料位置資訊于是可以儲存于主機(jī)的快取之中,然后根據(jù)此更新后的資訊發(fā)出一或多個輸出入存取命令至個別的媒體區(qū)服務(wù)器。典型地,當(dāng)輸出入存取命令中攜帶的有效性檢查資訊與從虛擬池主控者接收到的有效性檢查資訊(VCI)之間的不一致被偵測到時,媒體區(qū)服務(wù)器將回復(fù)一錯誤資訊,該錯誤資訊指示主機(jī)只需要使儲存于快取中且與輸出入存取命令所攜帶的一或多個區(qū)塊位址關(guān)聯(lián)的資料位置資訊失效即可??赡艿那樾问?,例如,在主機(jī)由虛擬池主控者取得資料位置資訊之時至輸出入存取命令被發(fā)出的時間點(diǎn)之間,輸出入存取命令所定址的資料中的某些的位置已經(jīng)改變(例如起因于遷徙操作)。然而,在有些情況下,可能有必要使快取中所有的資料位置資訊皆失效。舉例來說,假如媒體區(qū)服務(wù)器無法判斷輸出入存取命令所攜帶的VCI是否有效,因?yàn)樵撁襟w區(qū)服務(wù)器不再有該特定VCI的記錄,則媒體區(qū)服務(wù)器可能會回復(fù)主機(jī)一個錯誤資訊,指出與引發(fā)此錯誤資訊的VCI符合的VCI資料所屬的所有快取資料資訊應(yīng)該都使其失效。另一種情況是,假如虛擬池主控者重設(shè)(reset)或電源關(guān)后重開(power-cycled),虛擬池主控者可能會遺失所有之前產(chǎn)生的VCI的記錄。在這種情況下,虛擬池主控者必須通知所有的媒體區(qū)服務(wù)器之前由其得到的所有有效性檢查資訊都須使其失效,并且主機(jī)任何嘗試發(fā)出的輸出入存取命令都須拒絕,直到主機(jī)已經(jīng)執(zhí)行一個程序,該程序包含使所有快取儲存的資料位置資訊皆無效。除了從媒體區(qū)服務(wù)器接收到錯誤發(fā)生指示時使已快取儲存的關(guān)聯(lián)的資料位置資訊失效之外,主機(jī)典型地將再發(fā)送出一資料位置詢問命令至虛擬池主控者以得到輸出入存取命令所涵蓋區(qū)塊位址范圍的最新資料位置資訊。假如所回復(fù)的任何資料位置描述碼中的VCI中的VCSN等同于在媒體區(qū)服務(wù)器中產(chǎn)生錯誤的VCI的VCSN,由于主機(jī)知道媒體區(qū)服務(wù)器并不認(rèn)為該VCSN是有效的,主機(jī)可以發(fā)出一指示(indication)給虛擬池主控者表示其可能發(fā)現(xiàn)在虛擬池主控者與媒體區(qū)服務(wù)器之間有一關(guān)于該特定區(qū)塊位址范圍的不一致現(xiàn)象。收到此指示(indication)之后,虛擬池主控者將典型地進(jìn)行一與媒體區(qū)服務(wù)器的再同步程序。該再同步程序的一可能實(shí)施例可能包含發(fā)出一命令至媒體區(qū)服務(wù)器以清除其VCI快取,并且,可以在同一命令中執(zhí)行或是在隨后的命令執(zhí)行,設(shè)立包含最新VCSN的最新VCI至媒體區(qū)服務(wù)器使得媒體區(qū)服務(wù)器可以更新其快取中的資訊。以上所述的再同步程序,稱為「有效性檢查資訊再同步程序(ValidityCheckInformationRe-synchronizationProcedure)J,服務(wù)器的VCI不與之同步,也會隨時進(jìn)行。舉例來說,當(dāng)虛擬池主控者開機(jī)(poweron)、重設(shè)(reset)或電源關(guān)后重開(powercycled)之時,因?yàn)槠洳恢撔┯谐尸F(xiàn)媒體區(qū)(ME)供其管理的媒體區(qū)服務(wù)器的目前狀態(tài),虛擬池主控者一般會進(jìn)行此再同步程序以確認(rèn)媒體區(qū)服務(wù)器的VSI有重設(shè)回與虛擬池主控者的初始狀態(tài)相同。在一冗余控制器對的組態(tài)下,若是失效轉(zhuǎn)移(failover)程序發(fā)生,須讓第二控制器接管原本做為虛擬池主控者的主要控制器的工作,則亦會因相同的原因而進(jìn)行此一再同步程序。以下兩件事是重要的媒體區(qū)服務(wù)器發(fā)出訊息給所有主機(jī)要求其清除與目標(biāo)ME關(guān)聯(lián)的存取許可做為「有效性檢查資訊再同步程序」的一部分,以及主機(jī)在偵測到「存取許可未要求」錯誤資訊時會清除(purge)所有快取儲存中關(guān)于該特定ME的資料位置資訊。這至少需要涵蓋到以下的情形虛擬池主控者由一儲存節(jié)點(diǎn)變換至另一個,此可能發(fā)生在一冗余控制器儲存子系統(tǒng)中,當(dāng)原本做為虛擬池主控者的控制器失效而導(dǎo)致另一個控制器接管其角色之時。因?yàn)榱硪粋€控制器可能沒有與該特定ME關(guān)聯(lián)的任何VCI狀態(tài)的記錄,它可能會開始由VCI初始狀態(tài)來更新該ME的VCI。在虛擬池初始化作業(yè)期間,新的虛擬池主控者將與該特定ME關(guān)聯(lián)的媒體區(qū)服務(wù)器進(jìn)行上述的再同步程序,以確定該媒體區(qū)服務(wù)器上快取儲存的VCI與新虛擬池主控者記錄的VCI是同步的。然而,如果主機(jī)持續(xù)發(fā)出輸出入存取命令,且該些輸出入存取命令包含由原本虛擬池主控者得到的VCI,則可能該些資訊對媒體區(qū)服務(wù)器而言似乎是有效的,因此即使用來產(chǎn)生輸出入存取命令的資料位置資訊可能已經(jīng)過時了,該些輸出入存取命令亦可能會不慎地被接受。為避免此種可能導(dǎo)致嚴(yán)重資料損壞的情況,媒體區(qū)服務(wù)器可以要求所有主機(jī)清除與該特定ME相關(guān)的存取許可做為「有效性檢查資訊再同步程序」的一部分。同時,在偵測到「存取許可未要求」錯誤資訊時,其中該錯誤資訊是因接收到來自主機(jī)的任何以該特定ME為目標(biāo)的輸出入存取命令而傳遞出去,主機(jī)會清除快取儲存中所有與該ME關(guān)聯(lián)的資料位置資訊,且再發(fā)出資料位置詢問命令至虛擬池主控者并于俟后才再發(fā)出以該ME為目標(biāo)的任何輸出入存取命令。在虛擬池主控者的角色由一儲存節(jié)點(diǎn)轉(zhuǎn)移至另一儲存節(jié)點(diǎn)之后,此將確定輸出入存取命令是依據(jù)最新的資料位置資訊而再發(fā)送至該媒體區(qū)服務(wù)器。為簡化實(shí)施內(nèi)容,一般來說虛擬池主控者總是在「資料位置描述碼」中回復(fù)VCI的VCSN的目前值,而不是要改變之前的最后的VCSN的值。當(dāng)虛擬池主控者因一關(guān)聯(lián)的特定區(qū)塊范圍的改變發(fā)生而增加VCSN的值時,其發(fā)送該區(qū)塊范圍的更新的VCI至該區(qū)塊范圍所在的ME的媒體區(qū)服務(wù)器。該媒體區(qū)服務(wù)器記錄該區(qū)塊范圍的更新的VCI。在由主機(jī)接收到一輸出入存取命令時,媒體區(qū)服務(wù)器比較該輸出入存取命令中的VCI對照它自己記錄的VCI。包含于該輸出入存取命令的VCI中的VCSN被拿來與從虛擬池主控者接收到的最新VCSN做比較。假如前者比后者大,表示不在有效的范圍內(nèi)且該輸出入存取命令會被拒絕。假如前者小于或等于后者,表示其被視為在有效范圍之內(nèi),然后該輸出入存取命令的VCI中的VCSN更被拿來與媒體區(qū)服務(wù)器中為該特定區(qū)塊范圍記錄的VCSN做比較。如果前者小于后者,則表示該區(qū)塊范圍在主機(jī)由虛擬池主控者得到該VCI之后有發(fā)生改變,因而使得該VCI無效,所以拒絕該輸出入存取命令。另一方面,如果前者大于或等于后者,則表示該輸出入存取命令的VCI—定是在該區(qū)塊范圍發(fā)生改變之后得到,此意謂著VCI有效,且該輸出入存取命令可以被接受且正常處理。典型地,由于資源有限,一個媒體區(qū)服務(wù)器只能夠保有從虛擬池主控者接收到的有限數(shù)量的有效性檢查資訊。由于這樣的原因,媒體區(qū)服務(wù)器可能會采取一快取機(jī)制(cachingmechanism),以試圖并最大化可以正確地決定一由主機(jī)接收到的輸出入存取命令的有效性的可能性。其中一此類快取機(jī)制是單純地保持最近由虛擬池主控者接收到的有效性檢查資訊。如果有新資訊進(jìn)來,且沒有足夠的資源可以儲存該新資訊,則目前儲存的最舊的資訊會被從快取中清除(purge),以空出足夠的空間儲存該新資訊。由于從虛擬池主控者接收到的有效性檢查資訊所包含的VCSN是循序增加,儲存于此快取中的VCI會包含一特定范圍中的所有VCSN。就其而論,在檢查包含于主機(jī)輸出入存取命令的有效性檢查資訊時,只有三種可能的狀況需要處理,各別是在輸出入存取命令中的有效性檢查資訊的VCSN小于媒體區(qū)服務(wù)器快取儲存的有效性檢查資訊的VCSN的最小值、介于媒體區(qū)服務(wù)器快取儲存的有效性檢查資訊的VCSN的最小值與最大值之間、以及大于媒體區(qū)服務(wù)器快取儲存的有效性檢查資訊的VCSN的最大值。如果在輸出入存取命令中的有效性檢查資訊的VCSN是介于媒體區(qū)服務(wù)器快取儲存的有效性檢查資訊的VCSN的最小值與最大值之間,則媒體區(qū)服務(wù)器檢查輸出入存取命令所涵蓋的區(qū)塊位址是否出現(xiàn)在其VCI快取之中。假如輸出入存取命令所涵蓋的區(qū)塊位址都出現(xiàn)在媒體區(qū)服務(wù)器的VCI快取之中,并且媒體區(qū)服務(wù)器記錄的關(guān)聯(lián)的VCSN也都小于或等于包含于輸出入存取命令的有效性檢查資訊的對應(yīng)VCSN,則該輸出入存取命令會被視為有效且被接受。然而,若是有任何輸出入存取命令涵蓋的區(qū)塊位址沒有出現(xiàn)在媒體區(qū)服務(wù)器的VCI快取之中,或者有任何記錄在媒體區(qū)服務(wù)器的VCI快取的VCSN,該些VCSN與輸出入存取命令涵蓋的該些區(qū)塊位址有關(guān)聯(lián),且該些VCSN中的任一大于輸出入存取命令中包含的有效性檢查資訊的對應(yīng)VCSN,則該特定的VCSN會被判定為失效(stale)或無效(invalid)。在此情形下,媒體區(qū)服務(wù)器會典型地回復(fù)『無效的有效性檢查資訊("InvalidValidityCheckInformation”)』錯誤資訊,指出與該特定區(qū)塊位址關(guān)聯(lián)的資料位置資訊是無效的,因此主機(jī)只需要使該特定資訊無效。須注意的是,可能在媒體區(qū)服務(wù)器的VCI快取中儲存有多組的有效性檢查資訊皆對應(yīng)到同一特定區(qū)塊范圍??赡艿脑蚴牵搮^(qū)塊范圍的位置可能已經(jīng)有多于一次的改變。因此,在執(zhí)行上述的檢查作業(yè)時,若是媒體區(qū)服務(wù)器的VCI快取中出現(xiàn)一定址的區(qū)塊范圍對應(yīng)有多組的有效性檢查資訊,則包含于輸出入存取命令中的有效性檢查資訊的VCSN將被拿來與媒體區(qū)服務(wù)器的VCI快取中該些有相同區(qū)塊范圍的項(xiàng)目中VCSN為最大者的項(xiàng)目(entry)做比較。為最佳化資源的使用效率,媒體區(qū)服務(wù)器可能會使其VCI快取中的某一或某些項(xiàng)目失效并再利用其儲存空間,該某一或某些項(xiàng)目的區(qū)塊范圍有被其他具有更大VCSN的項(xiàng)目涵蓋到。此再利用功能將導(dǎo)致一個結(jié)果,媒體區(qū)服務(wù)器的VCI快取中可能有些介于最大與最小VCSN之間的項(xiàng)目不會出現(xiàn)在快取之中。如果任何與輸出入存取命令中的有效性檢查資訊的任何區(qū)塊位址關(guān)聯(lián)的VCSN小于媒體區(qū)服務(wù)器快取儲存的有效性檢查資訊的VCSN的最小值,則媒體區(qū)服務(wù)器無法判定輸出入存取命令中的有效性檢查資訊的有效性,因此,媒體區(qū)服務(wù)器將典型地回復(fù)『有效性檢查資訊有效性無法決定(“ValidityCheckInformationvalidityundetermined,,)』錯誤資訊,指出所有主機(jī)端快取儲存的資料位置資訊,且該資料位置資訊有一關(guān)聯(lián)的VCSN等于考慮中的VCSN,皆都應(yīng)使其失效。如果任何與輸出入存取命令中的有效性檢查資訊的任何區(qū)塊位址關(guān)聯(lián)的VCSN大于媒體區(qū)服務(wù)器快取儲存的有效性檢查資訊的VCSN的最大值,媒體區(qū)服務(wù)器將典型地回復(fù)『有效性檢查資訊超出范圍(“ValidityCheckInformationout-of-range”)』錯誤資訊,指出所有主機(jī)端快取儲存的資料位置資訊都應(yīng)使其失效,因?yàn)樵谥鳈C(jī)和媒體區(qū)服務(wù)器之間出現(xiàn)嚴(yán)重的不一致,此不一致可能表示主機(jī)和儲存子系統(tǒng)之間嚴(yán)重缺乏同步。以上后兩種狀況的一或兩者,媒體區(qū)服務(wù)器可能選擇簡單地回應(yīng)『無效的有效性檢查資訊』錯誤資訊,指出與該特定區(qū)塊位址關(guān)聯(lián)的資料位置資訊是無效的,以求減少主機(jī)必須處理的事件數(shù)量,從而簡化技術(shù)的實(shí)施內(nèi)容。另一方面,主機(jī)也可以簡單地不去分辨不同的錯誤條件,直接對與該特定區(qū)塊位址關(guān)聯(lián)的資料位置資訊使其失效,并不去理會媒體區(qū)服務(wù)器回復(fù)的是那一種錯誤資訊。然而另一個在第二種狀況的可能實(shí)施例是媒體區(qū)服務(wù)器回復(fù)『有效性檢查資訊超出范圍』錯誤資訊,指出所有快取儲存的資料位置資訊,無論其關(guān)聯(lián)的VCSN為何,都應(yīng)使其失效,或者主機(jī)從媒體區(qū)服務(wù)器接收到『有效性檢查資訊有效性無法決定』錯誤資訊時使所有快取儲存的資料位置資訊都失效。橫跨媒體區(qū)的資料分布的一實(shí)施例的詳細(xì)說明當(dāng)主機(jī)發(fā)出一輸出入存取命令以寫入資料至一虛擬卷(VV)且還沒有實(shí)體區(qū)塊被分配去容置該資料范圍時,虛擬池主控者必須在一或多個組成該虛擬池的ME上配置實(shí)體區(qū)塊??赡苁亲詈唵蔚呐渲糜?jì)畫是,首先由一個ME配置區(qū)塊,當(dāng)該ME滿了之后再開始由第二個ME配置,以此類推。然而由效能的觀點(diǎn)來看,讓輸出入存取命令存取的資料散布于多個ME以分散負(fù)擔(dān)至多個媒體區(qū)服務(wù)器與ME是較有利的。具有將資料散布于多個媒體區(qū)服務(wù)器且/或ME的特性的虛擬池或虛擬卷,具有一「分散式資料(DistributedData)」的屬性。典型地,當(dāng)一虛擬池或虛擬卷具有一「分散式資料(DistributedData)」的屬性時,虛擬池主控者將以平均分散資料在虛擬池的所有的MEs且/或媒體區(qū)服務(wù)器的方式,配置實(shí)體空間給被寫入的虛擬卷(VV)以容置資料。在大部分的情況中,資料分布得越平均,則MEs且/或媒體區(qū)服務(wù)器所分?jǐn)偟呢?fù)擔(dān)越平均,也因此效能越好?!群唵斡挚勺孖O存取在大部分的IO負(fù)擔(dān)條件下可以均勻分散的資料分布方案是,單純地將資料分段(striping)儲存于所有的MEs,以下稱為「分段資料分布(StripedDataDistribution)J0虛擬卷(VV)的可定址空間被劃分為固定長度的區(qū)塊,其中第一個區(qū)塊位于第一個ME、第二個區(qū)塊位于第二個ME,以下以此類推,直到抵達(dá)最后一個ME,則下一個區(qū)塊又回去設(shè)置在第一個ME、再下一個區(qū)塊設(shè)置在第二個ME,以下以此類推。在這種分布之下,存取范圍小于一個區(qū)塊的輸出入存取命令將只在一個ME、或者最多在二個ME存取資料(如果資料范圍剛好跨越兩個區(qū)塊)。在這些情況之下,以多個同時發(fā)生的獨(dú)立的IO存取負(fù)擔(dān),虛擬池中所有的MEs將近乎平均地被存取,因而改善了效能。對于那些一次橫跨多個區(qū)塊而存取大資料的輸出入存取命令,每一此命令將導(dǎo)致同時存取多個MEs,由于同時存取與資料傳輸,此將減少完成該命令所需的時間,從而改善效能。當(dāng)一新的ME增加至一虛擬池中,需要進(jìn)行資料遷徙以實(shí)施「分段資料分布」,以便將一些資料分散至新的ME。此資料遷徙可能不只需要由現(xiàn)存的MEs移動資料至新的ME,亦可能需要重新分配資料至所有現(xiàn)存的MEs,以便維持虛擬池中所有MEs的資料分布的分段(striped)特性。因此,「分段資料分布」的實(shí)施不只在當(dāng)ME成員被移出虛擬池時需要做資料遷徙,當(dāng)有新MEs加入虛擬池時亦需要做資料遷徙。以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的方法及技術(shù)內(nèi)容作出些許的更動或修飾為等同變化的等效實(shí)施例,但凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。權(quán)利要求一種存取資料的方法,用于存取一儲存系統(tǒng)架構(gòu)中的資料,該儲存系統(tǒng)架構(gòu)包含至少一磁碟陣列子系統(tǒng),其特征在于,該方法包含下列步驟提供一區(qū)段分配系統(tǒng)用以管理該至少一磁碟陣列子系統(tǒng)中的一第一媒體區(qū)及一第二媒體區(qū);借由一區(qū)塊關(guān)聯(lián)表得到一主機(jī)邏輯區(qū)塊位址所對應(yīng)的一位置索引;借由一實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制得到該位置索引所對應(yīng)的位于該第一媒體區(qū)中的一第一實(shí)體區(qū)段的一位置資訊;將該第一實(shí)體區(qū)段中的資料復(fù)制或搬移至在該第二媒體區(qū)中的一第二實(shí)體區(qū)段中;更新該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制中的一交互參照,以使得借由該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制所得到的該位置索引所對應(yīng)的位置資訊為該第二實(shí)體區(qū)段的位置資訊;以及一定址于該主機(jī)邏輯區(qū)塊位址的一主機(jī)輸入/輸出請求利用該第二實(shí)體區(qū)段的位置資訊存取該第二實(shí)體區(qū)段中的資料。2.如權(quán)利要求1所述的方法,其特征在于,還包含下列步驟提供一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列及一實(shí)體對虛擬/虛擬對實(shí)體區(qū)段分配串列于該區(qū)段分配系統(tǒng)中;利用該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列產(chǎn)生該區(qū)塊關(guān)聯(lián)表;以及利用該實(shí)體對虛擬/虛擬對實(shí)體區(qū)段分配串列產(chǎn)生該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制。3.如權(quán)利要求1所述的方法,其特征在于,還包含下列步驟提供一實(shí)體對虛擬映射表于該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制中,以借由該實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制得到該位置索引所對應(yīng)的該第一實(shí)體區(qū)段的該位置資訊。4.如權(quán)利要求3所述的方法,其特征在于,還包含下列步驟產(chǎn)生一虛擬對實(shí)體映射表于該實(shí)體對虛擬/虛擬對實(shí)體區(qū)段分配串列中,用以輔助該實(shí)體對虛擬映射表以加速索引到該第二實(shí)體區(qū)段。5.如權(quán)利要求1所述的方法,其特征在于,其中還包含一節(jié)點(diǎn)表索引該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列。6.如權(quán)利要求3所述的方法,其特征在于,其中該實(shí)體對虛擬/虛擬對實(shí)體區(qū)段分配串列包含一屬性區(qū)塊,用以記載該區(qū)段分配系統(tǒng)的一區(qū)段分配系統(tǒng)識別碼及其相關(guān)設(shè)定資訊;一目錄,用以記載指引、管理該多個媒體區(qū)所含的多個實(shí)體區(qū)段上的資訊;一虛擬對實(shí)體映射表欄位,用以儲存一虛擬對實(shí)體映射表;以及一實(shí)體對虛擬映射表欄位,用以儲存一實(shí)體對虛擬映射表。7.如權(quán)利要求1所述的方法,其特征在于,還包含下列步驟接收該多個媒體區(qū)中的一將被移除的媒體區(qū)所對應(yīng)的一移除訊息;根據(jù)該移除訊息,找出該將被移除的媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);取得來自該區(qū)段分配系統(tǒng)所系屬的該將被移除的媒體區(qū)的一實(shí)體區(qū)段資訊;根據(jù)所取得的該實(shí)體區(qū)段資訊,復(fù)制或搬移該將被移除的媒體區(qū)所包含多個實(shí)體區(qū)段中的一第三實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一;以及判斷該將被移除的媒體區(qū)上所包含的所有該多個實(shí)體區(qū)段上的資料是否已復(fù)制或搬移至其他該多個媒體區(qū)其中的一個或多個媒體區(qū)中。8.如權(quán)利要求7所述的方法,其特征在于,還包含下列步驟當(dāng)判斷該將被移除的媒體區(qū)上的所有該多個實(shí)體區(qū)段上的資料尚有實(shí)體區(qū)段未完成復(fù)制或搬移至其他該多個媒體區(qū)其中的一個或多個時,則到該多個實(shí)體區(qū)段中的一第四實(shí)體區(qū)段;以及進(jìn)行「復(fù)制或搬移該將被移除的媒體區(qū)所包含多個實(shí)體區(qū)段中的該第四實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一」的步驟。9.如權(quán)利要求7所述的方法,其特征在于,還包含下列步驟當(dāng)判斷該將被移除的媒體區(qū)上的所有該多個實(shí)體區(qū)段上的資料已完成復(fù)制或搬移至其他該多個媒體區(qū)其中的一個或多個時,則移除該將被移除的媒體區(qū)。10.如權(quán)利要求7所述的方法,其特征在于,其中在該「復(fù)制或搬移該將被移除的媒體區(qū)所包含多個實(shí)體區(qū)段中的一第三實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一」步驟之后還包含下列步驟根據(jù)所取得的該媒體區(qū)的該實(shí)體區(qū)段資訊,增加該將被移除的媒體區(qū)所具有的一有效性檢查序號,并通知該將被移除的媒體區(qū)所系屬的一有效性檢查序號代理人其增加后的該有效性檢查序號。11.如權(quán)利要求1所述的方法,其特征在于,還包含下列步驟接收一新增媒體區(qū)的一新增訊息;根據(jù)該新增訊息,找出該新增媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);計(jì)算該區(qū)段分配系統(tǒng)中所有的該多個媒體區(qū)中已使用的多個實(shí)體區(qū)段的一總實(shí)體區(qū)段數(shù);考慮該新增媒體區(qū)所包含的一實(shí)體區(qū)段數(shù)及該總實(shí)體區(qū)段數(shù),以計(jì)算出各該多個媒體區(qū)的一平衡后的實(shí)體區(qū)段數(shù);處理該多個媒體區(qū)的其中之一;判斷正在處理中的該媒體區(qū)的該實(shí)體區(qū)段數(shù)是否大于該平衡后的實(shí)體區(qū)段數(shù);當(dāng)該正在處理中的多個媒體區(qū)的實(shí)體區(qū)段數(shù)大于該平衡后的實(shí)體區(qū)段數(shù)時,復(fù)制該多個媒體區(qū)中已使用的多個實(shí)體區(qū)段上的資料至該新增媒體區(qū);以及重復(fù)進(jìn)行該「判斷正在處理中的該媒體區(qū)的實(shí)體區(qū)段數(shù)是否大于該平衡后的實(shí)體區(qū)段數(shù)」的步驟。12.如權(quán)利要求11所述的方法,其特征在于,還包含下列步驟當(dāng)所有的該多個媒體區(qū)已處理完成時,結(jié)束該增加流程。13.如權(quán)利要求11所述的方法,其特征在于,還包含下列步驟當(dāng)該總實(shí)體區(qū)段數(shù)不大于該平衡后的實(shí)體區(qū)段數(shù)時,則取得該多個媒體區(qū)中的下一個媒體區(qū)進(jìn)行處理;以及判斷所有的該多個媒體區(qū)是否處理完成。14.如權(quán)利要求11所述的方法,其特征在于,其中在「復(fù)制該多個媒體區(qū)中已使用的多個實(shí)體區(qū)段上的資料至該新增媒體區(qū)」的步驟前,還包含下列步驟增加處理中的該媒體區(qū)的一有效性檢查序號,并通知處理中的該媒體區(qū)所系屬的一有效性檢查序號代理人其增加后的該有效性檢查序號。15.如權(quán)利要求1所述的方法,其特征在于,還包含下列步驟接收該多個媒體區(qū)中的一將被移除的媒體區(qū)所對應(yīng)的一移除訊息;根據(jù)該移除訊息,找出該將被移除的媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn);當(dāng)該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列尚有未完成確認(rèn)者時,選擇一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列進(jìn)行確認(rèn);判斷該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中目前進(jìn)行處理的一第五實(shí)體區(qū)段是否關(guān)聯(lián)于該將被移除的媒體區(qū);當(dāng)該第五實(shí)體區(qū)段是關(guān)聯(lián)于該將被移除的媒體區(qū)時,復(fù)制該第五實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一;以及當(dāng)該第五實(shí)體區(qū)段并非關(guān)聯(lián)于該將被移除的媒體區(qū)時,則到該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的下一個實(shí)體區(qū)段。16.如權(quán)利要求15所述的方法,其特征在于,還包含下列步驟當(dāng)所有該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列已完成確認(rèn)時,則移除該將被移除的媒體區(qū)。17.如權(quán)利要求15所述的方法,其特征在于,還包含下列步驟當(dāng)判斷已到目前進(jìn)行確認(rèn)的該區(qū)段分配串列的終點(diǎn)時,則到該多個區(qū)段分配串列中的下一個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列;以及重復(fù)進(jìn)行「判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn)」的步驟。18.如權(quán)利要求15所述的方法,其特征在于,還包含下列步驟當(dāng)該第五實(shí)體區(qū)段上的資料復(fù)制至其他該多個媒體區(qū)的其中之一后,則到該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的一第六實(shí)體區(qū)段;以及進(jìn)行「判斷是否已到目前進(jìn)行確認(rèn)的該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的該區(qū)段分配串列的終點(diǎn)」的步驟。19.如權(quán)利要求15所述的方法,其特征在于,其中在「復(fù)制該第五實(shí)體區(qū)段上的資料至其他該多個媒體區(qū)的其中之一」的步驟前,還包含下列步驟增加該將被移除的媒體區(qū)所具有的一有效性檢查序號,并通知該至少一將被移除的媒體區(qū)所系屬的一有效性檢查序號代理人其增加后的該有效性檢查序號。20.如權(quán)利要求1所述的方法,其特征在于,還包含下列步驟接收一新增媒體區(qū)的一新增訊息;根據(jù)該新增訊息,找出該新增媒體區(qū)所系屬的該區(qū)段分配系統(tǒng);判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn);當(dāng)該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列尚有未完成確認(rèn)者時,選擇一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列進(jìn)行確認(rèn);判斷該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中目前進(jìn)行確認(rèn)的一第五實(shí)體區(qū)段所關(guān)聯(lián)的一媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)是否大于該新增媒體區(qū)的一實(shí)體區(qū)段數(shù)目;當(dāng)該第五實(shí)體區(qū)段所關(guān)聯(lián)的該媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)大于新增媒體區(qū)的該實(shí)體區(qū)段數(shù)時,復(fù)制該第五實(shí)體區(qū)段上的資料至該至少一新增媒體區(qū);以及當(dāng)該所關(guān)聯(lián)的該媒體區(qū)中已使用的實(shí)體區(qū)段數(shù)不大于新增媒體區(qū)的該實(shí)體區(qū)段數(shù)時,則到該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的下一個實(shí)體區(qū)段。21.如權(quán)利要求20所述的方法,其特征在于,還包含下列步驟當(dāng)所有該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列已完成確認(rèn)時,則結(jié)束該增加流程。22.如權(quán)利要求20所述的方法,其特征在于,還包含下列步驟當(dāng)判斷已到目前進(jìn)行確認(rèn)的該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列的終點(diǎn)時,則到該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的下一個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列;以及重復(fù)進(jìn)行「判斷所系屬的該區(qū)段分配系統(tǒng)中所包含的所有多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列是否皆已確認(rèn)」的步驟。23.如權(quán)利要求20所述的方法,其特征在于,還包含下列步驟當(dāng)該第五實(shí)體區(qū)段上的資料復(fù)制至其他該多個媒體區(qū)的其中之一后,則到該區(qū)段分配串列中的下一個實(shí)體區(qū)段;以及進(jìn)行「判斷是否已到目前進(jìn)行確認(rèn)的該多個區(qū)塊關(guān)聯(lián)集區(qū)段分配串列中的該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列的終點(diǎn)」的步驟。24.如權(quán)利要求20所述的方法,其特征在于,其中在「復(fù)制該第五實(shí)體區(qū)段上的資料至該至少一新增媒體區(qū)」的步驟前,還包含下列步驟增加處理中的該媒體區(qū)其中的一有效性檢查序號,并通知處理中的該媒體區(qū)所系屬一有效性檢查序號代理人其增加后的該有效性檢查序號。25.如權(quán)利要求1所述的方法,其特征在于,還包含索引該區(qū)塊關(guān)聯(lián)集中的一區(qū)塊關(guān)聯(lián)表,以使該區(qū)塊關(guān)聯(lián)表指向該虛擬對實(shí)體映射表。26.如權(quán)利要求1所述的方法,其特征在于,其中該區(qū)段分配系統(tǒng)還包含一實(shí)體區(qū)段索引對實(shí)體邏輯區(qū)塊位址映射函數(shù),該實(shí)體區(qū)段索引表用以記載該第一實(shí)體區(qū)段及該第二實(shí)體區(qū)段的資訊。27.如權(quán)利要求26所述的方法,其特征在于,其中該實(shí)體區(qū)段索引表包含一實(shí)體區(qū)段索引、一媒體區(qū)識別碼、一邏輯區(qū)塊位址以及一分區(qū)數(shù)。28.如權(quán)利要求26所述的方法,其特征在于,其中該實(shí)體位置索引對實(shí)體邏輯區(qū)塊位址映射函數(shù)為一實(shí)體區(qū)段索引對實(shí)體邏輯區(qū)塊位址映射表。29.如權(quán)利要求1所述的方法,其特征在于,其中該至少一磁碟陣列子系統(tǒng)包含多個實(shí)體儲存元件。30.一種存取一資料儲存系統(tǒng)架構(gòu)中的資料的方法,該資料儲存系統(tǒng)架構(gòu)包含至少一磁碟陣列子系統(tǒng),其特征在于,該方法包含下列步驟提供一區(qū)段分配系統(tǒng)于該至少一磁碟陣列子系統(tǒng)中的一主控子系統(tǒng)中,用以管理一虛擬池,該虛擬池中包含有該磁碟陣列子系統(tǒng)中所映射出的一第一媒體區(qū)及一第二媒體區(qū);提供一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列于該區(qū)段分配系統(tǒng)中,用以管理一虛擬卷,該虛擬卷被呈現(xiàn)給一主機(jī)以供其存取資料;提供一實(shí)體對虛擬/虛擬對實(shí)體區(qū)段分配串列于該區(qū)段分配系統(tǒng)中,用以產(chǎn)生一實(shí)體對虛擬表;收到一第一主機(jī)命令,該第一主機(jī)命令中帶有一要被轉(zhuǎn)換的一主機(jī)邏輯區(qū)塊位址;利用與該區(qū)塊關(guān)聯(lián)集區(qū)段分配串列關(guān)聯(lián)的一區(qū)塊關(guān)聯(lián)表及與該實(shí)體對虛擬/虛擬對實(shí)體區(qū)段分配串列關(guān)聯(lián)的一實(shí)體對虛擬表而將要被轉(zhuǎn)換的該主機(jī)邏輯區(qū)塊位址轉(zhuǎn)換而得到一實(shí)體區(qū)段索引;利用一實(shí)體區(qū)段索引對實(shí)體區(qū)段邏輯區(qū)塊位址映射函數(shù)將該實(shí)體區(qū)段索引轉(zhuǎn)換成為位于該第一媒體區(qū)中的一第一實(shí)體區(qū)段的一第一實(shí)體邏輯區(qū)塊位址;收到一第二主機(jī)命令,為一IO存取命令且?guī)в性撝鳈C(jī)邏輯區(qū)塊位址;以及利用該第一實(shí)體邏輯區(qū)塊位址存取位于該第一媒體區(qū)中的該第一實(shí)體區(qū)段中的資料。31.如權(quán)利要求30所述的方法,其特征在于,還包含以下的步驟進(jìn)行資料遷徙而將該第一實(shí)體區(qū)段中的一資料復(fù)制或搬移至位于該第二媒體區(qū)中的一第二實(shí)體區(qū)段中,并將該資料遷徙的位置相關(guān)資訊更改至該實(shí)體對虛擬表中,其中該第二實(shí)體區(qū)段具有一第二實(shí)體邏輯區(qū)塊位址;收到一第二主機(jī)命令,為一IO存取命令且?guī)в性撝鳈C(jī)邏輯區(qū)塊位址;以及利用該第二實(shí)體邏輯區(qū)塊位址存取位于該第二媒體區(qū)中的該第二實(shí)體區(qū)段中的資料。32.—種存取磁碟陣列子系統(tǒng)架構(gòu)中的資料的方法,該磁碟陣列子系統(tǒng)架構(gòu)包含至少一磁碟陣列子系統(tǒng),該至少一磁碟陣列子系統(tǒng)包含至少一第一媒體區(qū),該至少一第一媒體區(qū)包含多個邏輯區(qū)塊位址,其特征在于,該方法包含下列步驟提供一區(qū)段分配系統(tǒng)用以管理該至少一第一媒體區(qū),該區(qū)段分配系統(tǒng)中包含有利用一區(qū)塊關(guān)聯(lián)表、一實(shí)體對虛擬索引映射表以及一實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù);接收來自一主機(jī)的一輸入/輸出請求,該輸入/輸出請求包含一主機(jī)邏輯區(qū)塊位址;利用該區(qū)塊關(guān)聯(lián)表、該實(shí)體對虛擬表及一由該實(shí)體對虛擬表所產(chǎn)生的虛擬對實(shí)體表兩者之一、及該實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù)從該主機(jī)邏輯區(qū)塊位址得到一第一實(shí)體邏輯區(qū)塊位址;以及利用該第一實(shí)體邏輯區(qū)塊位址針對一第一媒體區(qū)進(jìn)行輸入/輸出存取。33.如權(quán)利要求32所述的方法,其特征在于,還包含以下的步驟將該輸入/輸出請求轉(zhuǎn)換出一卷區(qū)塊索引;利用該區(qū)塊關(guān)聯(lián)表由該卷區(qū)塊索引得到一虛擬索引;利用該實(shí)體對虛擬表及一由該實(shí)體對虛擬表所產(chǎn)生的虛擬對實(shí)體表兩者之一,由該虛擬索引得到一實(shí)體索引;以及利用該實(shí)體索引以及該實(shí)體位置索引對實(shí)體邏輯區(qū)塊位址映射函數(shù)得到一實(shí)體邏輯區(qū)塊位址。34.如權(quán)利要求32所述的方法,其特征在于,還包含以下的步驟進(jìn)行資料遷徙而將該第一實(shí)體區(qū)段中的一資料復(fù)制或搬移至位于該第二媒體區(qū)中的一第二實(shí)體區(qū)段中,并將該資料遷徙的位置相關(guān)資訊更改至該實(shí)體對虛擬表及/或該虛擬對實(shí)體表中,其中該第二實(shí)體區(qū)段具有一第二實(shí)體邏輯區(qū)塊位址;收到一第二主機(jī)命令,為一IO存取命令且?guī)в性撝鳈C(jī)邏輯區(qū)塊位址;以及利用該第二實(shí)體邏輯區(qū)塊位址存取位于該第二媒體區(qū)中的該第二實(shí)體區(qū)段中的資料。35.一種在儲存系統(tǒng)架構(gòu)中產(chǎn)生虛擬卷的方法,該架構(gòu)包含一主機(jī)及一個或多個儲存子系統(tǒng),每一子系統(tǒng)包含一個或多個儲存控制器及一實(shí)體儲存裝置陣列,其特征在于,該方法包含以下的步驟將該實(shí)體儲存裝置陣列映射成為一個或多個媒體區(qū),每一該媒體區(qū)包含多個實(shí)體區(qū)段,每一該實(shí)體區(qū)段具有一實(shí)體邏輯區(qū)塊位址;產(chǎn)生一區(qū)段分配系統(tǒng)用于管理該至少一媒體區(qū),該區(qū)段分配系統(tǒng)包含至少一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列,每一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列用于將該一個或多個媒體區(qū)的多個實(shí)體區(qū)段映射成為一虛擬卷,每一區(qū)塊關(guān)聯(lián)集區(qū)段分配串列為其所對應(yīng)的虛擬卷記錄一區(qū)塊關(guān)聯(lián)表及一卷容量,該區(qū)塊關(guān)聯(lián)表用于將一主機(jī)邏輯區(qū)塊位址轉(zhuǎn)換成為一位置索引;以及至少一虛擬對實(shí)體表記錄有該位置索引與該實(shí)體邏輯區(qū)塊位址間的交互參照資訊;及將該虛擬卷呈現(xiàn)給該主機(jī)。36.如權(quán)利要求35所述的方法,其特征在于,其中該虛擬對實(shí)體表可用以從該位置索引得到一實(shí)體索引,且該區(qū)段分配系統(tǒng)還包含一實(shí)體索引對實(shí)體邏輯區(qū)塊位址映射函數(shù),可藉以由該實(shí)體索引來該得到一實(shí)體邏輯區(qū)塊位址。37.如權(quán)利要求36所述的方法,其特征在于,該方法還包含接收來自一主機(jī)的一輸入/輸出請求,該輸入/輸出請求包含一主機(jī)邏輯區(qū)塊位址;利用該區(qū)塊關(guān)聯(lián)表、該實(shí)體對虛擬表及一由該實(shí)體對虛擬表所產(chǎn)生的虛擬對實(shí)體表兩者之一、及該實(shí)體位置索引與實(shí)體邏輯區(qū)塊位址映射函數(shù)從該主機(jī)邏輯區(qū)塊位址得到一第一實(shí)體邏輯區(qū)塊位址;以及利用該第一實(shí)體邏輯區(qū)塊位址針對一第一媒體區(qū)進(jìn)行輸入/輸出存取。38.如權(quán)利要求36所述的方法,其特征在于,該方法還包含提供一虛擬卷快照功能性,該快照功能性的資料結(jié)構(gòu)包含一第二區(qū)塊關(guān)聯(lián)集區(qū)段分配串列,且由該第二區(qū)塊關(guān)聯(lián)集區(qū)段分配串列產(chǎn)生一個或多個區(qū)塊關(guān)聯(lián)表,每一該區(qū)塊關(guān)聯(lián)表具有一位置索引欄位用以索引該實(shí)體對虛擬或虛擬對實(shí)體中的虛擬索引,藉以執(zhí)行虛擬卷快照功能。全文摘要一種執(zhí)行儲存虛擬化的儲存子系統(tǒng)及儲存系統(tǒng)架構(gòu)及其方法。該方法包含提供區(qū)段分配系統(tǒng)用以管理至少一磁碟陣列子系統(tǒng)中的第一媒體區(qū)及第二媒體區(qū);借由區(qū)塊關(guān)聯(lián)表得到主機(jī)邏輯區(qū)塊位址所對應(yīng)的位置索引;借由實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制得到位置索引所對應(yīng)的位于第一媒體區(qū)中的第一實(shí)體區(qū)段的位置資訊;將第一實(shí)體區(qū)段中的資料復(fù)制或搬移至在第二媒體區(qū)中的第二實(shí)體區(qū)段中;更新實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制中的交互參照,以使得借由實(shí)體區(qū)段對虛擬區(qū)段交互參照機(jī)制所得到的位置索引所對應(yīng)的位置資訊為第二實(shí)體區(qū)段的位置資訊;及定址于主機(jī)邏輯區(qū)塊位址的主機(jī)輸入/輸出請求利用第二實(shí)體區(qū)段的位置資訊存取第二實(shí)體區(qū)段中的資料。文檔編號G06F3/06GK101819506SQ20101011823公開日2010年9月1日申請日期2010年1月23日優(yōu)先權(quán)日2009年1月23日發(fā)明者周家圣,方慶華,施明文申請人:普安科技股份有限公司