專利名稱:邏輯磁盤管理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于管理邏輯磁盤的邏輯磁盤管理方法和裝置,所述邏輯磁盤利用磁盤驅(qū)動器的存儲區(qū)域,并被主計算機(主機)識別為單個磁盤區(qū)域(磁盤卷)。
背景技術(shù):
通常,磁盤陣列裝置包括多個磁盤驅(qū)動器,諸如硬盤驅(qū)動器(HDDs)和被連接到所述HDDs的陣列控制器。陣列控制器通過使用普遍公知的RAID(獨立磁盤冗余陣列;或廉價磁盤冗余陣列)技術(shù)來管理HDDs。響應(yīng)由主機(主計算機)產(chǎn)生的數(shù)據(jù)讀/寫請求,陣列控制器以這樣的方式并行地控制HDDs,以分布式的方式履行所述的數(shù)據(jù)讀/寫請求。這使得磁盤陣列裝置能夠高速執(zhí)行由主機請求的數(shù)據(jù)訪問。磁盤陣列裝置還增強了它的冗余磁盤配置的可靠性。
在傳統(tǒng)的磁盤陣列裝置中,由主機識別的邏輯磁盤的物理布置是靜態(tài)的。由于這個原因,傳統(tǒng)的磁盤陣列裝置在這樣的方面是不利的,即,邏輯磁盤的塊地址和相應(yīng)的陣列配置之間的關(guān)系原則上不會改變。同樣地,邏輯磁盤的塊地址和HDDs的相應(yīng)的塊地址之間的關(guān)系原則上不會改變。
在磁盤陣列裝置運行之后,有時候會發(fā)生施加在邏輯磁盤的訪問負載數(shù)量與最初估計值不同的情況。有時候還會發(fā)生訪問負載隨時間變化的情況。在這種情況下,傳統(tǒng)的磁盤陣列裝置不能容易地排除可能發(fā)生在邏輯磁盤的陣列內(nèi)的或所述HDDs中的瓶頸或熱點。這是因為邏輯磁盤和所述陣列之間以及邏輯磁盤和所述HDDs之間的對應(yīng)關(guān)系是靜態(tài)的。為了解決瓶頸和熱點的問題,被存儲在邏輯磁盤中的數(shù)據(jù)必須被在磁帶上備份,例如,必須從頭重建一個新的邏輯磁盤。另外,備份數(shù)據(jù)必須被從磁帶中恢復(fù)到重建的邏輯磁盤中。應(yīng)該注意的是,這里使用的“熱點”指訪問負載被集中地施加在所述HDDs的特定區(qū)域的狀態(tài)。
近幾年來,許多情況下是多個主機共享同樣的磁盤陣列裝置。在這種情況下,被連接到一個磁盤陣列裝置的主機的數(shù)目的增加可能會改變所述的訪問負載,導(dǎo)致了瓶頸或熱點。然而,在傳統(tǒng)的磁盤陣列裝置中邏輯磁盤的物理布置是靜態(tài)的。一旦傳統(tǒng)的磁盤陣列裝置被投入使用,處理訪問負載的變化就不容易了。
在解決上述問題的努力中,日本專利申請公開號2003-5920提出了用于以這樣一種最佳方式重布置邏輯磁盤的技術(shù),通過使用代表HDDs(物理磁盤)的輸入/輸出處理性能(I/O性能)的值,使得物理磁盤的I/O特性一致。在下文中公開號2003-5920中提出的技術(shù)將被稱為現(xiàn)有技術(shù)。在現(xiàn)有技術(shù)中,每個HDD的繁忙率被控制為是一個最佳的繁忙率。
如果從整個的邏輯磁盤來看,現(xiàn)有技術(shù)提出的邏輯磁盤的重布置可以減少訪問負載。然而,現(xiàn)有技術(shù)以一個邏輯磁盤為單位重布置邏輯磁盤。如果瓶頸和熱點發(fā)生在構(gòu)成一個邏輯磁盤的陣列中或HDDs中,現(xiàn)有技術(shù)不能消除這樣的瓶頸或熱點。
發(fā)明內(nèi)容
本發(fā)明的一個目的是通過將陣列的整個存儲區(qū)域劃分為預(yù)定大小的片段,并組合任意一些所述的片段形成邏輯磁盤來提高訪問性能。
根據(jù)本發(fā)明的實施例,提供了一種用于管理邏輯磁盤的方法。邏輯磁盤被通過使用磁盤驅(qū)動器的存儲區(qū)域構(gòu)成,并被主機識別為單個磁盤卷。該方法包括構(gòu)成陣列,通過將磁盤驅(qū)動器的存儲區(qū)域定義為所述陣列的物理陣列區(qū)域構(gòu)成該陣列,所述陣列由一組片段構(gòu)成,所述物理陣列區(qū)域被劃分為具有某種容量的多個區(qū)域,被劃分的區(qū)域被定義為片段;通過組合被包含在所述陣列中的任意多個的片段構(gòu)成邏輯磁盤;以及交換被加入所述邏輯磁盤的任意的第一片段與未被加入包括該邏輯磁盤在內(nèi)的任意一個邏輯磁盤的第二片段。
被結(jié)合在說明書中并構(gòu)成說明書的一部分的附圖示出了本發(fā)明的實施例,并且與以上給出的總體說明和以下給出的實施例的詳細說明一起,用來解釋本發(fā)明的原理。
附圖1是一個方框圖,示出了具有根據(jù)本發(fā)明的一個實施例的磁盤陣列裝置的計算機系統(tǒng);附圖2A和2B示出了適用于該實施例的陣列和片段的定義;附圖3示出了適用于該實施例的邏輯磁盤的定義;附圖4示出了圖1中示出的映射表122的數(shù)據(jù)結(jié)構(gòu)的例子;附圖5A是示出了在該實施例中片段移動如何被開始的流程圖;附圖5B是示出了在該實施例中片段移動如何被結(jié)束的流程圖;附圖6是示出了在該實施例中數(shù)據(jù)寫處理如何被執(zhí)行的流程圖;附圖7示出了在該實施例中如何存儲映射表122;附圖8示出了該實施例用來減少HDD查找操作的方法;附圖9示出了該實施例用來消除陣列中的熱點的方法;附圖10示出了該實施例用來優(yōu)化RAID等級的方法;附圖11示出了該實施例用來擴展邏輯磁盤的存儲容量的方法;附圖12是一個方框圖,示出了根據(jù)該實施例的第一修改的計算機系統(tǒng);附圖13是一個方框圖,示出了具有根據(jù)該實施例的第二修改的磁盤陣列裝置的計算機系統(tǒng);附圖14示出了第二修改用來消除邏輯磁盤的讀性能降低的方法;附圖15示出了第二修改用來消除邏輯磁盤的寫性能降低的方法;附圖16示出了第二修改用來改善磁盤陣列裝置的成本性能的方法;附圖17示出了該實施例的第三修改用來構(gòu)造陣列的方法。
具體實施例方式
現(xiàn)在將參考附圖描述本發(fā)明的實施例。附圖1是一個方框圖,示出了具有根據(jù)本發(fā)明的一個實施例的磁盤陣列裝置的計算機系統(tǒng)。該計算機系統(tǒng)包括磁盤陣列裝置10和主機(主計算機)20。借助于主機接口HI,例如小型計算機系統(tǒng)接口(SCSI)或光纖通道,主機20被連接到磁盤陣列裝置10。主機20使用磁盤陣列裝置10作為外部存儲。
磁盤陣列裝置10包括至少一個陣列(物理陣列)和至少一個陣列控制器。根據(jù)該實施例,磁盤陣列裝置10包括四個陣列11a(#a)、11b(#b)、11c(#c)和11d(#d),以及由陣列控制器12-1和陣列控制器12-2組成的雙重類型控制器。通過將至少一個磁盤驅(qū)動器的存儲區(qū)域定義為陣列11i(i=1、b、c、d)的物理區(qū)域(陣列區(qū)域)構(gòu)成每個陣列11i(i=1、b、c、d)。在這個實施例的情況下,通過將多個硬盤驅(qū)動器(HDDs)的存儲區(qū)域定義為陣列11i的物理陣列區(qū)域構(gòu)成每個陣列11i。
借助于存儲接口SI,諸如SCSI或光纖通道,陣列控制器12-1和12-2被連接到陣列11i中的每一個(也就是,它們被連接到構(gòu)成陣列11i的HDDs)。響應(yīng)主機20產(chǎn)生的數(shù)據(jù)讀/寫請求,陣列控制器12-1和12-2并行地操作陣列11i的HDDs,并以分布式的方式執(zhí)行數(shù)據(jù)讀/寫操作。陣列控制器12-1和12-2通過相互通信被同步并保持為相同的狀態(tài)。
陣列控制器12-1和12-2分別包括虛擬單元120-1和120-2。虛擬單元120-1和120-2組合任意陣列11i的任意片段,并將它們提供為由主機20識別的至少一個邏輯磁盤?!捌巍钡募毠?jié)將在以后說明。虛擬單元120-1包括邏輯磁盤配置單元121和映射表122。邏輯磁盤配置單元121包括陣列/片段定義單元121a、邏輯磁盤定義單元121b、片段移動單元121c、數(shù)據(jù)讀/寫單元121d和統(tǒng)計信息獲取單元121e。盡管未被示出,虛擬單元120-2具有與虛擬單元120-1相似的配置。
通過使得陣列控制器12-1的處理器(未示出)讀和執(zhí)行安裝在這個控制器12-1中的特定軟件程序來實現(xiàn)邏輯磁盤配置單元121。所述程序可以計算機可讀記錄介質(zhì)的形式被獲得,并可以從網(wǎng)絡(luò)下載。
陣列/片段定義單元121a定義陣列和片段。將參考附圖2A和2B描述由陣列/片段定義單元121a確定的“陣列”和“片段”的定義。陣列/片段定義單元121a以這樣的方式定義至少一個組(例如,它定義多個HDD),所述的組(每個組)包括至少一個HDD(例如,多個HDD)。陣列/片段定義單元121a為每個組定義陣列。每個陣列被作為根據(jù)RAID技術(shù)確定的陣列被定義(和被管理)。換句話說,相應(yīng)組的HDDs的存儲區(qū)域被用作物理區(qū)域(陣列區(qū)域)。
如附圖2A中所示,讓我們假定附圖1中示出的陣列11a由四個HDD組成,并且是一個按照(RAID1+0)等級被管理的陣列。如附圖2A中所示,讓我們同樣假定附圖1中示出的陣列11b由五個陣列組成,并且是一個按照RAID5等級被管理的陣列。為了簡單起見,假定沒有HDD被共同用于構(gòu)成陣列11a和11b的兩個組。在這種情況下,陣列11a的物理區(qū)域(陣列區(qū)域)的存儲容量與所述的四個HDD的總存儲容量相同,并且陣列11b的物理區(qū)域(陣列區(qū)域)的存儲容量與所述的五個HDD的總存儲容量相同。
陣列/片段定義單元121a將陣列11a、11b、11c和11d的存儲區(qū)域劃分為預(yù)定存儲容量的區(qū)域(如1GB)。陣列/片段定義單元121a將每個被劃分的區(qū)域定義為一個片段。換句話說,陣列/片段定義單元121a將陣列11a、11b、11c和11d的存儲區(qū)域劃分為每個都具有預(yù)定存儲容量的多個片段。也就是,磁盤陣列裝置10的任意陣列的任意片段具有相同的存儲容量。如下所述,這個特征對于使得片段移動單元121c能夠移動片段是重要的。被包括在陣列11a、11b、11c和11d中的片段被分配有被用作所述片段的ID(識別信息)的號(片段號)。以所述陣列的地址升序順序分配所述片段的片段號。這意味著所述陣列的片段的片段號還表示所述片段在相應(yīng)陣列中的物理位置。
邏輯磁盤定義單元121b定義了被主機20識別為單個磁盤(磁盤卷)的邏輯磁盤。將參考附圖3描述邏輯磁盤定義單元121b如何確定邏輯磁盤的定義。邏輯磁盤定義單元121b將被包括在至少一個任意的陣列中的多個任意的片段連接(組合)到另一個(和另一個結(jié)合在一起)。邏輯磁盤定義單元121b定義邏輯磁盤,在該邏輯磁盤中,所述被連接的(被組合)任意的片段被作為邏輯存儲區(qū)域管理。在附圖3示出的例子中,包括陣列11a的片段#a0、陣列11c的片段#c0、陣列11a的片段#a1和陣列11d的片段#d0的一組片段被組合(被連接)在一起,并且所述片段的結(jié)果組合被定義為邏輯磁盤31-0(#0)。同樣,包括陣列11a的片段#a2、陣列11b的片段#b0、陣列11b的片段#b1和陣列11c的片段#c0的一組片段被組合在一起,并且所述片段的結(jié)果組合被定義為邏輯磁盤31-1(#1)。
以這種方式,邏輯磁盤的存儲區(qū)域在相應(yīng)于片段之間的邊界的位置處不連續(xù),并且由(一個片段的存儲容量)×(片段的數(shù)目)代表邏輯磁盤的存儲容量。邏輯磁盤構(gòu)成了被主機20識別為單個磁盤區(qū)域(磁盤卷)的單元。換句話說,主機20識別邏輯磁盤,如同它是單個HDD一樣。所述邏輯磁盤的片段被以該邏輯磁盤的邏輯地址升序順序分配片段號。從這里可以看出,基于兩個片段號管理邏輯磁盤的每個片段一個是代表該片段在所述邏輯磁盤中的邏輯位置的片段號,以及另一個是代表該片段在相應(yīng)陣列中的物理位置的片段號。
映射表122存儲了代表邏輯磁盤如何被與陣列相關(guān)聯(lián)的映射信息。附圖4示出了映射表122的數(shù)據(jù)結(jié)構(gòu)的例子。在附圖4示出的例子中,片段上的信息被以這樣的方式存儲在映射表122的行方向上,即,相應(yīng)于該邏輯磁盤的最小地址的片段居先,并且其余的片段以該邏輯磁盤的地址的升序順序跟隨在其后。在本實施例的情況中,被包括在邏輯磁盤的每個片段上的信息包括被存儲在字段(條目)41到48中的信息。在字段41中存儲了邏輯磁盤號。邏輯磁盤號是片段被分配到的邏輯磁盤的標識(ID)信息。在字段42中,存儲了表示片段在該邏輯磁盤中處于何處的片段號。在字段43中,存儲了陣列號。所述陣列號是表示片段屬于哪個陣列的陣列ID。在字段44中,存儲了表示片段在陣列中處于何處的片段號。在字段45中,存儲了一個拷貝標記。該拷貝標記指出片段中的數(shù)據(jù)是否將被拷貝到另一個片段。在字段46中,存儲了陣列號。這個陣列號指出片段中的數(shù)據(jù)將被拷貝到的陣列。在字段47中,存儲了片段號。這個片段號指出片段中的數(shù)據(jù)將被拷貝到目的地陣列的哪個片段中。在字段48中,存儲了大小信息。該大小信息表示已經(jīng)對其完成拷貝的數(shù)據(jù)的大小。應(yīng)該注意的是,映射表122不包括表示每個片段在相應(yīng)的陣列中的位置和每個片段在相應(yīng)的HDD中的位置之間的關(guān)系的位置信息。其原因是所述陣列的每個片段位于相應(yīng)的HDD中的哪個位置可以被基于所述片段的片段號(也就是說,表示所述片段位于所述陣列中何處的片段號)和所述片段的大小確定。不需要的說是,上述的位置信息可以被存儲在映射表122中。
片段移動單元121c移動所述邏輯磁盤的任意片段的數(shù)據(jù)。片段的數(shù)據(jù)被如下移動。首先,片段移動單元121c生成任意邏輯磁盤的任意片段(第一片段)的數(shù)據(jù)的拷貝,并將該拷貝提供給沒有被分配給或被包括在所述邏輯磁盤的片段(第二片段)。然后,片段移動單元121c用所述片段彼此替代。更詳細地,片段移動單元121c將前面的片段(第一片段)作為沒有被包括在所述邏輯磁盤中的片段(也就是,未用的片段)處理,并將后面的片段(第二片段)作為被包括在所述邏輯磁盤中的片段(也就是說,作為被分配到所述邏輯磁盤的片段)處理。
根據(jù)這個實施例,僅通過替代將要被加入(被分配)到邏輯磁盤的片段,可以容易地重構(gòu)造邏輯磁盤。因此,即使在操作開始后,也可以容易地滿足訪問負載的變化,而不用停止所述邏輯磁盤的使用(也就是,在線地),從而改善了訪問性能。
參考附圖4中示出的映射表122,將給出由片段移動單元121c執(zhí)行的片段移動的詳細描述。讓我們假定具有片段號3并被包括在邏輯磁盤號0的邏輯磁盤中的片段將被移動。具有片段號3的片段相應(yīng)于具有片段號10的片段,具有片段號10的片段被包括在陣列號2中的陣列中。片段號3的片段的數(shù)據(jù)將被拷貝到片段號5的片段,片段號5的片段被包括在陣列號1的陣列中??截惒僮鞯倪M展(所述數(shù)據(jù)已經(jīng)被拷貝到片段號5的片段的點)被由存儲在字段48中的大小信息指出。
在被存儲在片段號3的片段中的所有數(shù)據(jù)拷貝完后,片段移動單元121c使得拷貝源片段和拷貝目的地片段彼此替換。以這種方式,片段移動單元121c將被包括在邏輯磁盤號0的邏輯磁盤中的片段號為3的片段從被包括在陣列號2的陣列中的片段號10的片段轉(zhuǎn)換到被包括在陣列號1的陣列中的片段號5的片段。結(jié)果,被包括在邏輯磁盤號0的邏輯磁盤中的片段號3的片段的物理分配被從被包括在陣列號2的陣列中的片段號10的片段移動或改變到被包括在陣列號1的陣列中的片段號5的片段。正在完成了所述拷貝操作后,拷貝標記被清除(“0”清除),并且指明數(shù)據(jù)被拷貝到的陣列和片段的陣列號和片段號也被清除(“0”清除)。
現(xiàn)在將給出片段移動單元121c如何開始和結(jié)束片段移動的說明。首先,將參考附圖5A中示出的流程圖描述如何開始片段移動。首先,片段移動單元121c暫時禁止陣列控制器12-1對將被執(zhí)行片段移動的邏輯磁盤執(zhí)行I/O處理(數(shù)據(jù)讀/寫操作)(步驟S11)。這里假定與將被執(zhí)行移動(或拷貝)的片段有關(guān)的映射表122的行被稱為映射表122的行X。在執(zhí)行步驟S11后,片段移動單元121c進入到步驟S12。在步驟S12中,片段移動單元121c分別設(shè)置映射表122的行X的字段46和47中的陣列號和片段號。所述的陣列號指出拷貝目的地片段所屬的陣列,并且所述片段號指出是拷貝目的地的片段。
接著,片段移動單元121c在映射表122的行X的字段48中設(shè)置拷貝完成大小“0”(步驟S13)。在步驟S13中,片段移動單元121c在映射表122的行X的字段45中設(shè)置拷貝標記。接著,片段移動單元121c保存映射表122的內(nèi)容(步驟S14),包括在步驟S12和S13中更新的行信息。映射表122被保存在管理信息區(qū)域內(nèi),所述的管理信息區(qū)域被提供在磁盤陣列裝置10的每個HDDs中。稍后將說明管理信息區(qū)域。片段移動單元121c允許陣列控制器12-1恢復(fù)被執(zhí)行片段移動的邏輯磁盤的I/O處理(數(shù)據(jù)讀/寫操作)(步驟S15)。
參考附圖5B所示的流程圖,將描述如何結(jié)束片段移動。在結(jié)束片段拷貝(移動)操作之后,片段移動單元121c臨時禁止陣列控制器12-1對被執(zhí)行片段移動的邏輯磁盤執(zhí)行I/O處理(步驟S21)。接著,片段移動單元121c在映射表122的行X的字段43和44中分別設(shè)置陣列號和片段號。所述陣列號指出拷貝目的地片段屬于哪個陣列,并且所述片段號指出是拷貝目的地的片段。
接著,片段移動單元121c從映射表122的行X的字段46和47清除所述的陣列號(指出拷貝目的地片段屬于哪個陣列)和片段號(指出拷貝目的地片段)(步驟S23)。在步驟S23,片段移動單元121c還從映射表122的行X的字段45清除拷貝標記。接著,片段移動單元121c保存映射表122的內(nèi)容(步驟S24),包括在步驟S22和S23中更新的行信息。映射表122被保存在管理信息區(qū)域內(nèi),所述管理信息區(qū)域被提供在磁盤陣列裝置10的每個HDDs中。片段移動單元121c允許陣列控制器12-1恢復(fù)被執(zhí)行片段移動的邏輯磁盤的I/O處理(步驟S25)。
在本實施例中,上述的片段拷貝(移動)操作可以在該片段被分配到的邏輯磁盤在線時(也就是,當(dāng)邏輯磁盤在操作中時)被執(zhí)行。為了使之得以實現(xiàn),數(shù)據(jù)讀/寫單元121d必須根據(jù)附圖6中示出的流程圖執(zhí)行數(shù)據(jù)寫操作(所述的數(shù)據(jù)寫操作遵從主機20提供給磁盤陣列裝置10的數(shù)據(jù)寫請求)。將參考附圖6給出如何執(zhí)行數(shù)據(jù)寫處理的描述,其中主機20提供給磁盤陣列裝置10的數(shù)據(jù)寫請求與拷貝操作所涉及的片段有關(guān)。這里假定與將被執(zhí)行寫操作的片段有關(guān)的映射表122的行被稱為映射表122的行Y。
首先,讀/寫單元121d確定是否在映射表122的行Y的字段45中設(shè)置了拷貝標記(步驟S31)。在這個例子中設(shè)置了拷貝標記。在拷貝標記被設(shè)置的情況下,意味著將被執(zhí)行寫操作的片段將被用作拷貝源片段。在這種情況下,數(shù)據(jù)讀/寫單元121d確定是否對將被用于所述寫操作的片段區(qū)域執(zhí)行了拷貝操作(步驟S32)。步驟S32的確定是根據(jù)存儲在映射表122的行Y的字段48中的大小信息做出的。
讓我們假定已經(jīng)對將被用于寫操作的片段區(qū)域執(zhí)行了拷貝操作(步驟S32)。在這種情況下,數(shù)據(jù)讀/寫單元121d在拷貝源片段(數(shù)據(jù)將被從其中移動)和拷貝目的地片段(數(shù)據(jù)將被移動到其中)的區(qū)域中寫數(shù)據(jù)(步驟S33)??截惒僮骺赡苡捎谀撤N原因或其他原因不能成功地結(jié)束。為了解決這個問題,希望被寫的數(shù)據(jù)不僅在拷貝目的地片段中,也在拷貝源片段中(雙重寫)。
可能出現(xiàn)將被用于所述寫操作的片段沒有被拷貝的情況(步驟S31),或是對將被用于所述寫操作的片段區(qū)域的拷貝操作還沒有被完成的情況(步驟S32)。在這些情況下,數(shù)據(jù)讀/寫單元121d僅在必須對其執(zhí)行寫操作并且被包括在拷貝源片段內(nèi)的區(qū)域中寫數(shù)據(jù)(步驟S34)。
現(xiàn)在將參考附圖7描述如何保存映射表122。映射表122是一張重要的表,它將邏輯磁盤與構(gòu)成所述邏輯磁盤的片段的物理分配關(guān)聯(lián)在一起。如果存儲在映射表122中的信息(映射信息)丟失了,這可能會引起數(shù)據(jù)丟失。因此,即使陣列控制器12-1和12-2兩者同時出現(xiàn)故障,或即使出現(xiàn)電源故障,映射表122中的信息必須不被丟失。本實施例使用了一種保存方法,它對于陣列控制器或HDD的故障或替換實現(xiàn)足夠的冗余,并且有效地防止了數(shù)據(jù)丟失。另外,本實施例遵從即使在附圖5A和5B示出的流程圖中也防止映射表中的信息被丟失的程序。也就是,本實施例允許在根據(jù)所述片段移動被更新的映射表122中的信息被保存之后,繼續(xù)由主機請求的I/O處理。
讓我們假定附圖7中示出的(n+1)個HDDs70-0到70-n被連接到附圖1中示出的磁盤陣列裝置10的陣列控制器12-1和12-2。本實施例以下面所述的方式使用這些HDDs70-0到70-n,以便可靠地保持在映射表122中的信息。HDDs70-0到70-n的存儲區(qū)域被部分地被用作管理信息區(qū)域71。每個管理信息區(qū)域71是一個特定的區(qū)域,它存儲著陣列控制器12-1和12-2用于磁盤陣列管理的管理信息。管理信息區(qū)域71不被用作片段。換句話說,管理信息區(qū)域71不能被用作用戶可以自由地讀或?qū)懶畔⒌膮^(qū)域(用戶卷)。
在附圖5A和5B的流程圖的步驟S14和S24中,被更新的映射表122的信息(映射信息)如附圖7中的箭頭72所指示的被冗余地存儲在HDDs70-0到70-n的管理信息區(qū)域中。結(jié)果,映射表122被倍增為(n+1)份。如附圖7中箭頭73所示,對映射表122的讀被在HDDs70-0到70-n的所有的管理信息區(qū)域71中執(zhí)行。這里,n+1份映射表122的信息(映射信息)被比較,并且根據(jù),例如,多數(shù)操作(majority operation)確定正確的信息。結(jié)果,該系統(tǒng)可以抵抗HDD或陣列控制器中的故障。
附圖1中示出的統(tǒng)計信息獲取單元121e為每個片段獲取與關(guān)于片段的I/O處理(訪問處理)有關(guān)的統(tǒng)計信息(此后被稱為I/O統(tǒng)計信息)。為每個片段獲取的I/O統(tǒng)計信息被存儲在陣列控制器12-1的存儲器(未示出)的預(yù)定區(qū)域內(nèi),例如,隨機訪問存儲器(RAM)的預(yù)定區(qū)域內(nèi)。所述I/O統(tǒng)計信息包括,例如,單位時間的寫次數(shù)、單位時間的讀次數(shù)、每單位時間的傳輸大小和I/O處理時間。一般來說,按照上面提到的日本專利申請公開號2003-5920中所述,為每個邏輯磁盤或每個HDD獲取這種類型的I/O統(tǒng)計信息。然而,根據(jù)本實施例,應(yīng)該注意的是,為了通過移動片段來調(diào)整陣列或HDD的訪問負載,每個片段的I/O統(tǒng)計信息被用于確定所述的負載調(diào)整。當(dāng)然,每個邏輯磁盤或陣列內(nèi)的I/O處理的統(tǒng)計值還可以通過使用每個片段的統(tǒng)計信息所指出的值來計算(例如,累加)。
根據(jù)本實施例,使用了為每個片段獲取的I/O統(tǒng)計信息。在這種情況下,片段移動單元121c檢查I/O統(tǒng)計信息,從而確定由所述I/O統(tǒng)計信息指出的統(tǒng)計值是否超過了一個預(yù)定的閾值。如果所述統(tǒng)計值超過了該閾值,片段移動單元121c按照預(yù)定的策略自動地移動片段。結(jié)果,當(dāng)對陣列的訪問負載超過了該陣列的性能的某個比率(N%)時,片段移動單元121c可以自動以具有最低負載的陣列的片段代替指定數(shù)目的片段。另外,通過在每個預(yù)定的周期檢查片段的分配,可以替換所述片段,從而具有RAID1+0等級的片段被用于具有高訪問負載的片段,并且具有RAID5等級的片段被用于具有低訪問負載的片段。
下面,將給出通過使用由統(tǒng)計信息獲取單元121e獲取的I/O統(tǒng)計信息,通過移動片段調(diào)整陣列或HDD的訪問負載的方法的說明。此處,將連續(xù)描述以下四種訪問負載調(diào)整方法;(1)減少HDD中的查找時間的方法(2)消除在陣列中的熱點的方法(3)優(yōu)化RAID等級的方法
(4)擴展邏輯磁盤的容量的方法(1)減少HDD中的查找時間的方法首先,參考附圖8描述減少HDD中的查找時間的方法。通常,對于在HDD中從某個柱面到另一個柱面移動磁頭的查找操作,兩個柱面之間的距離越長,查找操作所用的時間(查找時間)越長。因此,當(dāng)具有高訪問頻率(訪問負載)的區(qū)域(地址)彼此接近時,減少了查找時間從而提高了性能。
附圖8示出了附圖1所示的陣列11a(#a)內(nèi)的片段被替換之前的狀態(tài),以及所述片段被通過比較替換后的狀態(tài)。在陣列11a(#a)中在片段被替換之前,具有高訪問頻率的區(qū)域111和113存在于小地址(附圖中的上部)和大地址(附圖中的下部)兩端。具有低訪問頻率的區(qū)域112存在于區(qū)域111和113之間。在這種情況下,構(gòu)成陣列11a(#a)的HDDs也轉(zhuǎn)變?yōu)榕c陣列11a相同的狀態(tài),并且具有低訪問頻率的區(qū)域存在于具有高訪問頻率的兩個區(qū)域之間。因此,在構(gòu)成陣列11a的HDDs中,移動磁頭的查找操作頻繁地發(fā)生在具有高訪問頻率的兩個區(qū)域之間。在這種情況下,增加了查找時間,從而HDD的訪問性能,也就是陣列11a的訪問性能降低了。
通過交換處于這種狀態(tài)的陣列11a中的片段,具有高訪問頻率的區(qū)域被聚集在陣列11a的一側(cè)。結(jié)果,訪問陣列11a的查找時間被減少,從而陣列11a的訪問性能被改善。陣列11a(#a)中的具有高訪問頻率的區(qū)域是指這樣的區(qū)域,在該區(qū)域內(nèi),由統(tǒng)計信息過去單元121e獲取的I/O統(tǒng)計信息指示的訪問負載(例如,每秒輸入/輸出的次數(shù))超過了一個預(yù)定閾值的片段是連續(xù)的。陣列11a(#a)中的具有低訪問頻率的區(qū)域是指陣列11a(#a)中除了具有高訪問頻率的區(qū)域之外的區(qū)域。沒有被加入(未被分配到)該邏輯磁盤的未使用的片段屬于具有低訪問頻率的區(qū)域。
現(xiàn)在,假定具有低訪問頻率的區(qū)域112的大小比具有高訪問頻率的區(qū)域(第二區(qū)域)113大。根據(jù)本實施例,如附圖8的箭頭81所指示的,片段移動單元121c將屬于具有高訪問頻率的區(qū)域113的片段的數(shù)據(jù)移動到具有高訪問頻率的區(qū)域(第一區(qū)域)111之后的具有低訪問頻率的區(qū)域112中的與區(qū)域113相同大小的區(qū)域112a。與此并行地,如附圖8中箭頭82中指示的,片段移動單元121c將屬于區(qū)域112a的片段的數(shù)據(jù)移動到具有高訪問頻率的區(qū)域113。片段移動單元121c以屬于區(qū)域112a的片段替換屬于區(qū)域113的片段。以這種方式,所述片段被交換,使得在區(qū)域11a(#a)中在交換之后,區(qū)域111和區(qū)域111之后的區(qū)域112轉(zhuǎn)變?yōu)榫哂懈咴L問頻率的區(qū)域,同時保持連續(xù)的區(qū)域112b和113轉(zhuǎn)變?yōu)榫哂械驮L問頻率的區(qū)域。也就是,具有高訪問頻率的區(qū)域可以被聚集在陣列11a(#a)的一側(cè)。
在使用所述邏輯磁盤的同時,可以下面的程序執(zhí)行片段移動單元121c對片段的交換。首先,片段移動單元121c將要被交換的片段指定為片段(第一片段)#x和片段(第三片段)#y。假定片段#x、#y分別是區(qū)域113和112a中的第i個片段。此外,片段移動單元121c準備沒有被加入任意的邏輯磁盤的工作片段(第二片段)#z。接著,片段移動單元121c將片段#x的數(shù)據(jù)拷貝到片段#z,并交換片段#x和片段#z。接著,片段移動單元121c使片段#z被加入到所述的邏輯磁盤。接著,片段移動單元121c將片段#y的數(shù)據(jù)拷貝到片段#x,并交換片段#y和片段#x。接著,片段移動單元121c將片段#z的數(shù)據(jù)拷貝到片段#y,并交換片段#z和片段#y。結(jié)果,區(qū)域113中的第i個片段#x與區(qū)域112a中的第i個片段#y的交換被完成。片段移動單元121c重復(fù)區(qū)域113中的各個片段和與前面的片段一樣處于相同相對位置的區(qū)域112a中的各個片段之間的交換處理。
(2)消除陣列中的熱點的方法根據(jù)這個實施例,通過消除對特定陣列的集中訪問以便平衡陣列之間的訪問,可以消除熱點。將參考附圖9描述消除熱點的方法。附圖9指出了三個陣列11a(#a)、11b(#b)和11c(#c)。各個陣列的能力取決于構(gòu)成陣列的HDDs的類型和數(shù)目、在陣列的管理中使用的RAID等級等而不同。陣列11a、11b和11c的能力以每秒輸入/輸出的次數(shù)來表示,也就是被稱作IOPS的值,并且這些分別是900、700和800。另一方面,由統(tǒng)計信息獲取單元121e獲取的統(tǒng)計信息包括陣列11a、11b和11c的片段的IOPS值,并且陣列11a、11b和11c的片段的IOPS總值分別是880、650和220。
在上述例子中,從主機20接近陣列11a和11b的性能的上限地訪問陣列11a和11b。與此相反,存在未用的若干片段,也就是,陣列11c中沒有被分配到任何邏輯磁盤的片段。因此,陣列11c在其處理性能中具有余量。接著,片段移動單元121c基于每個片段的IOPS值(統(tǒng)計信息)將陣列11a和11b的部分的片段的數(shù)據(jù)(具有高訪問頻率的片段)移動到陣列11c中的未使用片段。以這種方式,可以給陣列11a和11b的處理性能提供余量。
在附圖9示出的例子中,IOPS值分別是90和54的陣列11a內(nèi)的片段91和92中的數(shù)據(jù),以及IOPS值是155的陣列11b內(nèi)的片段93的數(shù)據(jù)被移動到陣列11c的未用片段94、95和96。接著,數(shù)據(jù)移動目的地片段94、95和96被代替數(shù)據(jù)移動源片段91、92和93分配到相應(yīng)的邏輯磁盤(被加入)。數(shù)據(jù)移動目的地片段91、92和93從被分配到邏輯磁盤的狀態(tài)中釋放,并轉(zhuǎn)變?yōu)槲词褂玫钠?。結(jié)果,陣列11a和11b的IOPS的總值分別從880和650減到736和495。其間,移動片段(交換)的方法與以上所述的相同。
如上所述,方法(2)通過從具有高訪問頻率的片段將數(shù)據(jù)移動到未使用片段解決陣列的“熱點”問題。然而不用說的是,如以上方法(1)所述,通過交換具有高訪問頻率的片段與具有低訪問頻率的片段,可以控制被施加到陣列的負載。
(3)優(yōu)化RAID等級的方法接著,將參考附圖10描述優(yōu)化RAID等級的方法。根據(jù)這個實施例,與附圖8中的陣列11a類似,邏輯磁盤中的區(qū)域可以被劃分為(分類為)具有高訪問頻率的區(qū)域和具有低訪問頻率的區(qū)域。由統(tǒng)計信息獲取單元121e獲取的統(tǒng)計信息被用于該劃分。附圖10示出了邏輯磁盤100被劃分為具有高訪問頻率的區(qū)域100、具有低訪問頻率的區(qū)域102和具有高訪問頻率的區(qū)域103的狀態(tài)。
如附圖10中所示,邏輯磁盤定義單元121b在邏輯磁盤100中以采用RAID等級1+0的陣列片段重構(gòu)具有高訪問頻率的區(qū)域101和103,RAID等級1+0被公知為具有極好的性能。此外,如附圖10中所示,邏輯磁盤定義單元121b在邏輯磁盤100中以采用RAID5的陣列片段重構(gòu)具有低訪問頻率的區(qū)域102,RAID5被公知為具有極好的成本性能。根據(jù)這個實施例,這樣的調(diào)整可以在使用邏輯磁盤的同時被執(zhí)行。
根據(jù)上述方法,通過在所述陣列中以采用目標RAID等級的陣列中的未使用片段替換被分配給所述陣列的片段,實現(xiàn)區(qū)域101、102和103的重構(gòu)。如果交換構(gòu)成區(qū)域101和103的片段的RAID等級和構(gòu)成區(qū)域102的片段的RAID等級滿足這個目的,具有相同大小的區(qū)域之間的片段僅僅被以與減少HDD中的查找時間的方法相同的方式交換。
(4)擴展邏輯磁盤容量的方法根據(jù)這個實施例,由具有小容量的單元構(gòu)成所述邏輯磁盤,所述的單元是一個片段。因此,當(dāng)邏輯磁盤的容量短缺時,通過將附加的片段連接到所述邏輯磁盤,可以靈活地擴展邏輯磁盤的容量。將參考附圖11描述擴展邏輯磁盤容量的方法。附圖11示出了容量為X的邏輯磁盤。如附圖11所示,當(dāng)邏輯磁盤110的容量需要從X擴展到X+Y時,邏輯磁盤定義單元121b將相應(yīng)于容量Y的數(shù)目的片段連接到邏輯磁盤110。
附圖1僅示出了主機20作為使用磁盤陣列裝置10的主機。然而,通過連接包括主機20的多個主機和磁盤陣列裝置10,多個主機可以共享磁盤陣列裝置10。
接著,將參考附圖12描述上述實施例的第一修改。根據(jù)上述實施例,磁盤陣列裝置10和主機20被直接連接。然而近來,已經(jīng)出現(xiàn)了這樣的計算機系統(tǒng),其中有至少一個磁盤陣列裝置,例如,多個磁盤陣列裝置和至少一個主機,例如,多個主機被連接到被稱作存儲區(qū)域網(wǎng)絡(luò)(SAN)的網(wǎng)絡(luò)。
附圖12示出了這種計算機系統(tǒng)的一個例子。在附圖12中,磁盤陣列裝置10-0和10-1和主機20-0和20-1被諸如SAN的網(wǎng)絡(luò)N連接。主機20-0和20-1共享磁盤陣列裝置10-0和10-1作為它們的外部存儲單元。然而,磁盤陣列裝置10-0和10-1不被主機20-0和20-1所識別。也就是,磁盤陣列裝置10-0和10-1被主機20-0和20-1識別為通過使用由磁盤陣列裝置10-0和10-1擁有的HDDs的存儲區(qū)域而實現(xiàn)的邏輯磁盤。
在附圖12示出的系統(tǒng)中,類似于附圖1中示出的虛擬單元120-1和120-2的虛擬裝置120,被獨立地提供給磁盤陣列裝置10-0和10-1的陣列控制器(未示出)。虛擬裝置120被連接到網(wǎng)絡(luò)N。虛擬裝置120通過在使用由磁盤陣列裝置10-0和10-1擁有的HDDs的存儲區(qū)域而實現(xiàn)的陣列中連接多個片段定義(構(gòu)造)邏輯磁盤。邏輯磁盤被主機20-0和20-1識別為單個磁盤(磁盤卷)。
接著,將參考附圖13描述以上實施例的第二修改。附圖13是示出了具有根據(jù)本發(fā)明的實施例的第二修改的磁盤陣列裝置的計算機系統(tǒng)的配置的方框圖。在附圖13中,類似的標號被附于與附圖1示出的元件相同的組件。附圖13的計算機系統(tǒng)包括磁盤陣列裝置130和主機20。磁盤陣列裝置130與附圖1所示的磁盤陣列裝置10不同,其中磁盤陣列裝置130具有硅盤(silicon disk)設(shè)備131。硅盤設(shè)備131是諸如電池備份型RAM盤設(shè)備的存儲設(shè)備,它由多個存儲器設(shè)備諸如動態(tài)RAM(DRAMs)構(gòu)成。硅盤設(shè)備131被這樣設(shè)計,從而可以從主機使用與用于HDD的相同的訪問方法(接口)訪問設(shè)備131。因為硅盤設(shè)備131由存儲器設(shè)備構(gòu)成,盡管與HDD相比貴且具有小的容量,它可以獲得非??斓脑L問。
磁盤陣列裝置130具有HDD 132A(#A)、132B(#B)、132C(#C)和132D(#D)。盡管HDD 132A和132B的性能低,HDD 132A和132B是便宜并且容量大的HDD,并被用于構(gòu)成陣列。盡管HDD 132C和132D的性能高,HDD 132C和132D是貴且小容量的HDD,并被用于構(gòu)成陣列。HDD 132A、132B、132C和132D與硅盤設(shè)備131一起被通過存儲接口SI連接到陣列控制器12-1和12-2。
將參考附圖14描述消除用于第二修改的邏輯磁盤的讀訪問性能(讀性能)的降低的方法。附圖14示出了由多個片段構(gòu)成的邏輯磁盤141。邏輯磁盤141包括區(qū)域141a(#m)和141b(#n)。通過組合構(gòu)成陣列142-0(#0)的區(qū)域142a(#m)和142b(#n)的物理上連續(xù)的片段構(gòu)成邏輯磁盤141的區(qū)域141a(#m)和141b(#n)。這里,假定請求對邏輯磁盤141的區(qū)域141a(#m)或141b(#n)中的片段進行訪問。在這種情況下,在陣列142-0(#0)的區(qū)域142a(#m)或142b(#n)中的相應(yīng)片段被物理地訪問。
假定構(gòu)成邏輯磁盤141的區(qū)域141b(#n)的每個片段的單位時間的讀次數(shù)超過了預(yù)定的閾值。另一方面,假定構(gòu)成邏輯磁盤141的區(qū)域141a(#m)的每個片段的單位時間的讀次數(shù)沒有超過前述的閾值。也就是,假定對邏輯磁盤141的區(qū)域141b(#n)的讀訪問的負載(讀負載)高,而對邏輯磁盤141的區(qū)域141a(#m)的讀負載低。在這種情況下,對于對邏輯磁盤141的讀訪問,相應(yīng)于邏輯磁盤141的區(qū)域141b(#n)的陣列142-0的區(qū)域142b(#n)成為瓶頸。結(jié)果,邏輯磁盤141的讀訪問性能降低了。
片段移動單元121能夠根據(jù)由統(tǒng)計信息獲取單元121e獲取的每個片段的I/O統(tǒng)計信息指示的單位時間讀取次數(shù),將邏輯磁盤141的區(qū)域(其中的片段具有連續(xù)的高的讀負載)檢測為具有高的讀負載的區(qū)域。這里,片段移動單元121將邏輯磁盤141的區(qū)域141b(#n)檢測為具有高的讀訪問負載的區(qū)域。接著,陣列/片段定義單元121a定義附圖14中所示的新的陣列142-1(#1)。根據(jù)這個定義,如附圖14中的箭頭144指示的,片段移動單元121將區(qū)域143b(#n)分配給陣列142-1(#1),作為陣列142-0(#0)中的區(qū)域142b(#n)的復(fù)制品(鏡像)。被包括在陣列142-1的區(qū)域143b(#n)中的片段成為被包括在陣列142-0(#0)的區(qū)域142b(#n)中的片段的復(fù)制品。如上所述,陣列142-0(#0)的區(qū)域142b(#n)相應(yīng)于邏輯磁盤141的區(qū)域141b(#n)。
假定在這種狀態(tài)下,被寫到被包括在邏輯磁盤141的區(qū)域141b(#n)中的片段的數(shù)據(jù)被從主機20請求到磁盤陣列裝置130。在這種情況下,如附圖14中箭頭145所表示的,數(shù)據(jù)讀/寫單元121d將相同的數(shù)據(jù)寫到陣列142-0(#0)的區(qū)域142b(#n)和陣列142-1(#1)的區(qū)域143b(#n)中。也就是,數(shù)據(jù)讀/寫單元121d將數(shù)據(jù)寫到被包含在陣列142-0(#0)的區(qū)域142b中的相應(yīng)片段。同時,數(shù)據(jù)讀/寫單元121d還將相同的數(shù)據(jù)寫(鏡像寫)到被包括在陣列142-1(#1)的區(qū)域143b(#n)中的相應(yīng)片段內(nèi)。
另一方面,當(dāng)從主機20請求對被包括在邏輯磁盤141的區(qū)域141b(#n)內(nèi)的片段的數(shù)據(jù)讀取時,數(shù)據(jù)讀/寫單元121d如下讀取所述數(shù)據(jù)。也就是如附圖14中箭頭146-0或146-1所指示的,數(shù)據(jù)讀/寫單元121d從被包括在陣列142-0(#0)的區(qū)域142b(#n)中的相應(yīng)片段和被包括在陣列142-1(#1)的區(qū)域143b(#n)中的相應(yīng)片段的任意一個讀取數(shù)據(jù)。此處,數(shù)據(jù)讀/寫單元121d從區(qū)域142b(#n)或區(qū)域143b(#n)讀取數(shù)據(jù),從而它的讀訪問被分散到陣列142-0(#0)的區(qū)域142b(#n)和陣列142-1(#1)的區(qū)域143b(#n)中。例如,當(dāng)從主機20請求對邏輯磁盤141的區(qū)域141b(#n)的數(shù)據(jù)讀取時,數(shù)據(jù)讀/寫單元121d每次交替地從陣列142-0(#0)的區(qū)域142b(#n)和陣列142-1(#1)的區(qū)域143b(#n)讀取數(shù)據(jù)。
以這種方式,根據(jù)該第二修改,區(qū)域143b(#n)(它是陣列142-0(#0)中包含具有高的讀負載的片段的區(qū)域142b的復(fù)制品)被分配到其他的陣列142-1(#1)而不是陣列142-0(#0)。結(jié)果,對區(qū)域142b(#n)的讀訪問可以被分散到區(qū)域143b(#n)。通過這種讀訪問的分散,對陣列142-0(#0)的區(qū)域142b(#n)的讀訪問的瓶頸被消除了,由此提高了邏輯磁盤141內(nèi)的區(qū)域141b(#n)的讀性能。
接著,假定對被包括在邏輯磁盤141的區(qū)域141b(#n)中的片段的讀訪問頻率減少了,從而區(qū)域141b(#n)的讀負載降低了。在這種情況下,片段移動單元121釋放陣列142-0(#0)中的區(qū)域(復(fù)制品區(qū)域)142b(#n)。也就是,片段移動單元121將相應(yīng)于邏輯磁盤141的區(qū)域141b(#n)的陣列中的區(qū)域的分配還原為它的原始狀態(tài)。結(jié)果,通過很好地使用物理磁盤的有限的容量,所述邏輯磁盤的讀訪問性能可以被提高。
接著,將參考附圖15描述消除第二修改采用的邏輯磁盤的寫訪問性能(寫性能)的降低的方法。附圖15示出了由多個片段構(gòu)成的邏輯磁盤151。邏輯磁盤151包括區(qū)域151a(#m)和151b(#n)。邏輯磁盤151的區(qū)域151a(#m)和151b(#n)是通過分別組合構(gòu)成陣列152的152a(#m)和152b(#n)的物理上連續(xù)的片段構(gòu)成的。
對于附圖15所示的例子,假定對構(gòu)成邏輯磁盤151的區(qū)域151b(#n)的每個片段的單位時間的寫次數(shù)超過了預(yù)定的閾值。另一方面,假定對構(gòu)成邏輯磁盤151的區(qū)域151a(#m)的每個片段的單位時間的寫次數(shù)沒有超過前述的閾值。在這種情況下,根據(jù)由統(tǒng)計信息獲取單元121e獲取的每個片段的I/O統(tǒng)計信息指示的單位時間寫次數(shù),片段移動單元121將邏輯磁盤151的區(qū)域151b(#n)檢測為具有高的寫訪問負載(寫負載)的區(qū)域。同樣,片段移動單元121將邏輯磁盤151的區(qū)域151a(#m)檢測為具有低的寫負載的區(qū)域。
接著,如附圖15中箭頭154b所示,陣列/片段定義單元121a在硅盤設(shè)備131的存儲區(qū)域中定義相應(yīng)于的邏輯磁盤151的區(qū)域151b(#n)的區(qū)域153b(#n)。根據(jù)這種定義,片段移動單元121將構(gòu)成邏輯磁盤151的區(qū)域151b(#n)的片段從陣列152的區(qū)域152b(#n)重新定位到硅盤設(shè)備131的區(qū)域153b(#n)。硅盤設(shè)備131產(chǎn)生比構(gòu)成陣列152的HDDs更快的訪問。因此,作為重新定位的結(jié)果,邏輯磁盤151中的區(qū)域151b(#n)的寫性能被改善了。
硅盤設(shè)備131與所述的HDDs相比是非常貴的。因此,從成本性能的角度來看,將構(gòu)成邏輯磁盤151的所有片段分配到硅盤設(shè)備131是不利的。然而,根據(jù)第二修改,僅有邏輯磁盤151中的構(gòu)成具有高的寫負載區(qū)域151b的片段被分配到硅盤設(shè)備131。結(jié)果,可以有效地使用昂貴的硅盤設(shè)備131的小的存儲區(qū)域。
接著假定構(gòu)成邏輯磁盤151的區(qū)域151b(#n)的片段的寫訪問頻率降低了,從而區(qū)域151b(#n)的寫負載降低了。在這種情況下,片段移動單元121將被包括在邏輯磁盤151的區(qū)域151b(#n)的片段從硅盤設(shè)備131重新布置到構(gòu)成HDDs的陣列,例如,原始的陣列152。結(jié)果,通過更有效地使用昂貴的硅盤設(shè)備131的有限的容量,邏輯磁盤的寫訪問性能可以被改善。
根據(jù)第二修改,磁盤陣列裝置130具有HDD 132A(#A)、132B(#B)和HDD 132C和132D,HDD 132C和132D與HDD 132A(#A)和132B(#B)的類型不同。然后,將參考附圖16描述第二修改采用的,通過使用不同類型的HDDs改善邏輯磁盤的訪問性能的方法。附圖16示出了由多個片段構(gòu)成的邏輯磁盤161。邏輯磁盤161包括區(qū)域161a(#m)和161b(#n)。假定邏輯磁盤161的區(qū)域161b(#n)是由訪問頻率高于其閾值的片段構(gòu)成的。另一方面,假定邏輯磁盤161的區(qū)域161a(#m)是由訪問頻率低于所述閾值的片段構(gòu)成的。在這種情況下,片段移動單元121將邏輯磁盤161的區(qū)域161b(#n)檢測為具有高訪問頻率的區(qū)域。
附圖16示出了多個陣列,例如,兩個陣列162和163。如箭頭164所指示的,通過使用便宜并且大容量的HDD 132A(#A)和132B(#B)的存儲區(qū)域構(gòu)成陣列162,盡管它們的性能低。與此相反,通過使用昂貴并且小容量的HDD 132C(#C)和132D(#D)構(gòu)成陣列163,盡管它們的性能高。以這種方式,以容量和成本為重點構(gòu)成陣列162,并且以性能為重點構(gòu)成陣列163。
如附圖16中的箭頭166所指示的,片段移動單元21將被包括在邏輯磁盤161的具有低的訪問頻率的區(qū)域161a(#m)中的片段分配到,例如,陣列162的區(qū)域162a。此外,如附圖16中的箭頭167所指示的,片段移動單元21將被包括在邏輯磁盤161的區(qū)域161b(#n)中的片段分配到,例如,陣列163的區(qū)域163b。如果邏輯磁盤161的區(qū)域161a(#m)或161b(#n)的訪問頻率在這種分配后被改變,片段移動單元121將改變被包括在區(qū)域161a(#m)或161b(#n)內(nèi)的片段應(yīng)當(dāng)被分配到的陣列。根據(jù)第二修改,準備了具有不同特性(類型)的陣列162和163,并且取決于邏輯磁盤161中具有的不同訪問性能(訪問頻率)的各個區(qū)域,交換構(gòu)成所述區(qū)域的片段將被分配到的陣列。結(jié)果,根據(jù)第二修改,可以改善磁盤陣列裝置130的成本性能。
根據(jù)以上實施例,其第一修改和第二修改,在構(gòu)造邏輯磁盤的一個時刻,構(gòu)成所述邏輯磁盤的片段被分配到一個陣列。然而,當(dāng)從主機向所述磁盤陣列裝置請求對所述邏輯磁盤中的片段的第一訪問時,那些片段可以被分配在所述陣列的存儲區(qū)域中。
根據(jù)第三修改,當(dāng)所述邏輯磁盤中的片段被首次使用時,也就是,所述片段被從未使用片段變?yōu)橐延闷危瑧?yīng)用了一種用于將所述片段分配到所述陣列的存儲區(qū)域的陣列構(gòu)成方法。將參考附圖17描述第三修改采用的陣列構(gòu)成方法。第三修改被應(yīng)用到與第二修改類似的附圖13中示出的磁盤陣列裝置130。
附圖17示出了邏輯磁盤171和陣列172(#0)。邏輯磁盤171包括片段171a、171b、171c、171d、171e、171f和171g。根據(jù)第三修改,在邏輯磁盤被生成(定義)時的一個時間點,構(gòu)成邏輯磁盤171的任何片段(也就是,包括片段171a到171g的未使用的片段)沒有被分配到陣列172(#0)。假定在此之后,在時刻t1發(fā)生從主機20對片段171a的第一訪問,并且在在時刻t1之后的時刻t2,發(fā)生從主機20對片段171d、171e和171f的第一訪問。
在時刻t1當(dāng)發(fā)生對片段171a的第一訪問時,如附圖17中的箭頭173a所指示的,陣列/片段定義單元121a實際上將陣列172的區(qū)域分配到片段171a。此后,片段171a到陣列172的分配被完成,從而它被從未使用片段變?yōu)橐延闷?。同樣,在時刻t2,當(dāng)發(fā)生對片段171d、171e和171f的第一訪問時,如附圖17中的箭頭173d、173e和173f所指示的,陣列/片段定義單元121a實際上將陣列172的區(qū)域分配到片段171d、171e和171f,。此后,片段171d、171e和171f到陣列172的分配被完成,從而它被從未使用片段變?yōu)橐延闷巍?br>
陣列/片段定義單元121a管理構(gòu)成邏輯磁盤171的片段,以便以從首先被訪問的片段開始的順序連續(xù)地分配陣列172的物理的實際區(qū)域。使用該管理方法的磁盤陣列裝置130對于這樣的系統(tǒng)是最佳的,在所述的系統(tǒng)中由于在操作繼續(xù)時用戶、數(shù)據(jù)庫和內(nèi)容的數(shù)目的增加,實際被使用的磁盤容量逐漸地增加。其原因是當(dāng)系統(tǒng)被構(gòu)成時,可以產(chǎn)生最終將必需的估計容量的邏輯磁盤,而不管實際陣列的容量如何。此處,在所述邏輯磁盤的所有片段中,僅有實際被使用的片段被分配給該陣列。因此,當(dāng)當(dāng)前使用的磁盤容量逐漸增加時,可以根據(jù)增加的容量增加陣列。
結(jié)果,根據(jù)第三修改,對構(gòu)造所述系統(tǒng)的最初投資可以被壓低到一個低的值。此外,因為沒有所述陣列的區(qū)域被浪費在所述邏輯磁盤中的未使用的區(qū)域上,增加了物理磁盤容量的有效性。此外,根據(jù)第三實施例,由于系統(tǒng)操作被開始之后物理磁盤容量的不足,增加了陣列,并且被增加的陣列的實際區(qū)域被分配給所述邏輯磁盤最近被使用的片段。此處,所述邏輯磁盤本身是以最終必需的容量被產(chǎn)生(定義)的。因此,即使增加了任何的陣列,并且分配了所述陣列的真實區(qū)域,也不必檢查由主計算機識別的配置諸如邏輯磁盤的容量,因此簡便了所述系統(tǒng)的操作。
其他的優(yōu)點和修改對于本領(lǐng)域的技術(shù)人員而言是容易產(chǎn)生的。因此,本發(fā)明在廣泛的方面不局限于此處示出和描述的特定的細節(jié)和典型實施例。因此,可以進行各種修改而不脫離由附加的權(quán)利要求和其等同物定義的總的發(fā)明概念的精神和范圍。
權(quán)利要求
1.一種管理邏輯磁盤的方法,所述邏輯磁盤利用磁盤驅(qū)動器的存儲區(qū)域構(gòu)成,并被主機識別為單個磁盤卷,該方法的特征在于包括構(gòu)成陣列,通過將磁盤驅(qū)動器的存儲區(qū)域定義為所述陣列的物理陣列區(qū)域構(gòu)成該陣列,所述陣列由一組片段構(gòu)成,所述物理陣列區(qū)域被劃分為多個具有一定的容量的區(qū)域,所述被劃分的區(qū)域被定義為片段;通過組合被包含在所述陣列中的片段的任意多個片段構(gòu)成邏輯磁盤;以及對被加入所述邏輯磁盤內(nèi)的任意的第一片段與未被加入包括所述邏輯磁盤在內(nèi)的任何邏輯磁盤的第二片段進行交換。
2.根據(jù)權(quán)利要求1的方法,其特征在于所述交換還包括將所述第一片段的數(shù)據(jù)拷貝到所述第二片段;以及在完成了將數(shù)據(jù)從所述第一片段拷貝到所述第二片段之后,交換所述第一片段和所述第二片段,并使所述第二片段加入所述邏輯磁盤。
3.根據(jù)權(quán)利要求1的方法,其特征在于還包括為構(gòu)成所述邏輯磁盤的每個片段獲取關(guān)于對片段的訪問的統(tǒng)計信息,并將所述信息保存在存儲設(shè)備內(nèi);根據(jù)為每個片段獲取的統(tǒng)計信息,檢測所述陣列中具有高的訪問負載的區(qū)域;以及以屬于具有高的訪問負載的被檢測區(qū)域的片段作為所述的第一片段,執(zhí)行所述交換。
4.根據(jù)權(quán)利要求1的方法,其特征在于還包括為構(gòu)成邏輯磁盤的每個片段獲取關(guān)于對片段的訪問的統(tǒng)計信息,并將所述信息保存在存儲設(shè)備中;基于為每個片段獲取的所述統(tǒng)計信息,根據(jù)訪問負載等級,將邏輯磁盤的整個區(qū)域劃分為多個區(qū)域;以及以所述陣列中被分配到所述被劃分的區(qū)域中的一個區(qū)域內(nèi)的片段作為第一片段,并且以位于另一陣列而不是所述陣列內(nèi)的沒有被加入所述邏輯磁盤的片段作為第二片段,以采用適合于所述區(qū)域的訪問負載等級的RAID等級的片段,執(zhí)行所述被劃分的區(qū)域的所述區(qū)域的交換和重建,所述另一陣列采用適合于被劃分的區(qū)域的所述區(qū)域的訪問負載等級的RAID等級。
5.根據(jù)權(quán)利要求1的方法,其特征在于所述交換還包括在交換所述第一片段與所述第二片段之后,交換被加入所述邏輯磁盤的任意的第三片段與所述的第一片段;以及在交換所述第三片段與所述第一片段之后,交換所述第二片段與所述第三片段。
6.根據(jù)權(quán)利要求5的方法,其特征在于還包括為構(gòu)成所述邏輯磁盤的每個片段獲取關(guān)于對片段的訪問的統(tǒng)計信息,并將所述信息保存在存儲設(shè)備內(nèi);基于為每個片段獲取的所述統(tǒng)計信息,檢測所述陣列中具有高的訪問負載的區(qū)域;以及當(dāng)具有高的訪問負載的第一和第二區(qū)域被在所述陣列中檢測到時,以屬于所述陣列中的第三區(qū)域的片段作為所述第三片段,并且以屬于所述第二區(qū)域的部分或全部的片段作為所述第一片段,執(zhí)行所述交換以便重新定位所述第二區(qū)域的部分或全部,使得它在所述陣列內(nèi)與所述第一區(qū)域連續(xù),與所述第二區(qū)域的部分或全部大小相同的所述第三區(qū)域在所述第一區(qū)域之后。
7.根據(jù)權(quán)利要求1的方法,其特征在于還包括為構(gòu)成所述邏輯磁盤的每個片段獲取關(guān)于對片段的訪問的統(tǒng)計信息,并將所述信息保存在存儲設(shè)備內(nèi);基于為每個片段獲取的所述統(tǒng)計信息,檢測具有高的讀訪問負載的片段,所述的片段在所述邏輯磁盤中是連續(xù)的;將第二區(qū)域分配到另一陣列而不是所述的陣列,所述第二區(qū)域被用于存儲所述陣列中并且位于第一區(qū)域內(nèi)的數(shù)據(jù)的復(fù)制品,所述檢測到的片段被分配到所述的第一區(qū)域;當(dāng)從主計算機請求讀取被包括在所述邏輯磁盤的第一區(qū)域中的片段的數(shù)據(jù)時,從相應(yīng)于所述陣列內(nèi)的所述第一區(qū)域和所述其它陣列內(nèi)的所述第二區(qū)域中的任意一個的片段讀取數(shù)據(jù);以及當(dāng)從主計算機請求將數(shù)據(jù)寫到被包括在所述邏輯磁盤的第一區(qū)域中的片段時,將相同的數(shù)據(jù)寫到相應(yīng)于所述陣列中的所述第一區(qū)域和所述其它陣列中的所述第二區(qū)域的片段。
8.用于管理邏輯磁盤的虛擬裝置,所述邏輯磁盤利用磁盤驅(qū)動器的存儲區(qū)域構(gòu)成,并被主機被識別為單個磁盤卷,所述虛擬裝置的特征在于包括構(gòu)建陣列的陣列/片段定義單元,通過將所述磁盤驅(qū)動器的存儲區(qū)域定義為所述陣列的物理陣列區(qū)域構(gòu)建所述陣列,所述陣列由一組片段構(gòu)成,所述物理陣列區(qū)域被以一定的容量劃分為多個區(qū)域,所述被劃分的區(qū)域被定義為片段;邏輯磁盤定義單元,它通過組合被包含在所述陣列中的片段的任意多個片段構(gòu)建邏輯磁盤;以及片段移動單元,它對被加入所述邏輯磁盤的任意的第一片段與未被加入包括所述邏輯磁盤在內(nèi)的任何邏輯磁盤的第二片段進行交換。
9.根據(jù)權(quán)利要求8的虛擬裝置,其特征在于還包括統(tǒng)計信息獲取單元,它為構(gòu)成所述邏輯磁盤的每個片段獲取關(guān)于對片段的訪問的統(tǒng)計信息,并且其特征在于所述片段移動單元基于通過所述統(tǒng)計信息獲取單元為每個片段獲取的所述統(tǒng)計信息,檢測所述陣列中具有高的訪問負載的區(qū)域,并將屬于所述被檢測區(qū)域的具有高的訪問負載的片段作為所述第一片段。
全文摘要
陣列/片段定義單元(121a)構(gòu)建由一組片段組成的陣列。通過將磁盤驅(qū)動器中的存儲區(qū)域定義為該陣列的單個物理陣列區(qū)域構(gòu)建該陣列。所述物理陣列區(qū)域被以一定的容量劃分為多個區(qū)域,并且被劃分的區(qū)域被定義為片段。邏輯磁盤定義單元(121b)通過組合被包括在所述陣列中的片段的任意多個片段構(gòu)建邏輯磁盤。片段移動單元(121c)對被加入所述邏輯磁盤的任意的第一片段和未被加入包括所述邏輯磁盤在內(nèi)的任何邏輯磁盤的第二片段進行交換。
文檔編號G06F12/00GK1728076SQ20051009226
公開日2006年2月1日 申請日期2005年7月8日 優(yōu)先權(quán)日2004年7月8日
發(fā)明者笹本享一 申請人:東芝解決方案株式會社, 株式會社東芝