專利名稱:計算機系統(tǒng)及其控制方法
技術領域:
本發(fā)明涉及計算機系統(tǒng),尤其涉及對主機裝置動態(tài)地分配存儲容量的計算機系統(tǒng)。
背景技術:
目前,存在對主機裝置提供大規(guī)模的數(shù)據(jù)存儲服務的計算機系統(tǒng)。已知該系統(tǒng)具備主機裝置、主機裝置連接的存儲裝置、以及存儲裝置的管理裝置。存儲裝置以 RAID (Redundant Array of Independent/Inexpensive Disks)方式管理多個硬盤。并且將大量硬盤所具有的物理的存儲區(qū)域邏輯化,將其作為邏輯卷來提供給主機裝置。主機裝置訪問邏輯卷來請求數(shù)據(jù)的讀/寫。作為這種邏輯化技術之一,具有被稱為自動精簡配置(thin provisioning)的技術。存儲裝置對主機裝置設定不具有物理存儲區(qū)域的虛擬卷。與主機裝置對虛擬卷進行寫訪問相配合,存儲裝置對虛擬卷依次分配存儲區(qū)域。因此,與從最初對邏輯卷分配大容量的存儲區(qū)域的方式相比,該技術具有可以有效地利用存儲資源的效果。該技術被記載在日本特愿2003-15915號公報以及日本特開 2006-338341號公報中。用于向虛擬卷提供存儲區(qū)域的單元,由把分別被分配了實際存儲區(qū)域的多個邏輯卷匯總成被稱為池的邏輯組而構成。多個邏輯卷分別被稱為池卷。當從主機裝置對虛擬卷進行寫訪問時,對于虛擬卷的訪問目的地分配池卷的對應區(qū)域的存儲區(qū)域。存儲裝置使從主機裝置針對虛擬卷的訪問區(qū)域與對池卷分配了存儲容量的區(qū)域對應,由此可以保存來自主機裝置的寫數(shù)據(jù)。存儲裝置使得向多個池卷的存儲區(qū)域的分配變得均等,但是在經過長時間的過程中存在該均等被打破的問題。因此,日本特開2008-234158號公開了使存儲區(qū)域在多個池卷間移動,來使存儲區(qū)域的容量針對多個池卷變得均等的技術?,F(xiàn)有技術文獻專利文獻1專利文獻1 日本特愿2003-015915號公報專利文獻2 日本特開2006-338341號公報專利文獻3 日本特開2008-2;34158號公報
發(fā)明內容
發(fā)明要解決的課題日本特開2008-234158號公開了通過外部操作使存儲區(qū)域移動的內容,但是未提出針對多個池卷迅速且可靠地執(zhí)行存儲容量的均等化的方案。因此,本發(fā)明的目的在于,提供對于向虛擬邏輯區(qū)域動態(tài)地提供存儲容量的多個實際邏輯區(qū)域,迅速且可靠地執(zhí)行存儲容量的均等化的計算機系統(tǒng)及其控制方法。
用于解決課題的手段為了達成該目的,本發(fā)明的特征為,在針對來自上位裝置的訪問,執(zhí)行向虛擬卷動態(tài)地分配存儲區(qū)域的運用的過程中,在池中追加了池卷時,使存儲區(qū)域在多個池卷間移動來維持存儲容量的平衡的計算機系統(tǒng)及其控制方法。發(fā)明效果根據(jù)本發(fā)明,可以提供對于向虛擬邏輯區(qū)域動態(tài)地提供存儲容量的多個實際邏輯區(qū)域,迅速且可靠地執(zhí)行存儲容量的均等化的計算機系統(tǒng)及其控制方法。
圖1是表示本發(fā)明的計算機系統(tǒng)的實施方式的硬件框圖。圖2是表示在圖1所示的計算機系統(tǒng)中,存儲裝置進行的存儲區(qū)域的動態(tài)分配的動作的功能框圖。圖3是存儲裝置的存儲器框圖。圖4是說明VDEV管理信息的框圖。圖5是說明LDEV管理信息的框圖。圖6是說明地址管理表的框圖。圖7是池管理信息的框圖。圖8是VVOL-DIR以及PSCB的框圖。圖9是表示目標設備、LDEV、PDEV的映射關系的框圖。圖10是表示在虛擬卷和池卷之間均等地分配了頁的情形的框圖。圖11是表示此時的空閑隊列的構造的框圖。圖12是表示頁的分配集中于在池中追加的池卷的情形的框圖。圖13是表示此時的空閑隊列的構造的框圖。圖14是頁再平衡前的虛擬卷以及池卷的框圖。圖15是頁再平衡后的虛擬卷以及池卷的框圖。圖16是表示在多個池卷間考慮池卷的容量比來進行再平衡的情形的虛擬卷以及池卷的框圖。圖17A是管理池的表,圖17B是管理池卷的表,圖17C是管理空閑隊列單位的表。圖18是表示針對從主機裝置向虛擬卷的寫訪問,從屬于池的池卷向虛擬卷分配頁的順序的框圖。圖19是管理該分配順序的表。圖20是說明當存儲裝置將池卷追加到池中時進行再平衡的處理的流程圖。圖21是表示再平衡的流程圖。圖22是表示在多個池卷間遷移的頁數(shù)的計算處理的流程圖。圖23是表示計算出的頁數(shù)和頁的移動的情形的虛擬卷和池卷的框圖。圖M是用于實現(xiàn)圖23所示的頁的移動形態(tài)的管理表。圖25是表示遷移處理的細節(jié)的流程圖。圖沈是表示遷移處理的更詳細的內容的流程圖。
圖27是進行遷移處理的高速緩沖存儲器的框圖。圖觀是說明相對于頁遷移,優(yōu)先從主機裝置進行I/O處理的流程圖。圖四是表示隊列構造的再設定的過程的框圖。圖31是說明隊列構造的再設定的第一流程圖。圖32是說明隊列構造的再設定的第二流程圖。圖33是說明在多個池卷間進行頁遷移的情形的框圖,為圖34的前提。圖34是說明實現(xiàn)頁的遷移的空閑隊列處理的框圖。圖35是成為圖36的前提的框圖。圖36是說明發(fā)生了遷移中斷的情況下的空閑隊列處理的框圖。圖37A 圖37F是遷移的進度管理畫面,是針對每個池卷匯集了頁的使用狀況的畫面。圖38A 圖38B是以虛擬卷為單位匯集了頁數(shù)的畫面。
具體實施例方式接著,說明本發(fā)明的實施方式。圖1是表示本發(fā)明的計算機系統(tǒng)的第一例的硬件框圖。計算機系統(tǒng)具備主計算機10、管理裝置20、它們所連接的存儲裝置30。存儲裝置也被稱為存儲系統(tǒng),或者存儲子系統(tǒng)。主計算機10訪問存儲裝置30的邏輯存儲資源。管理裝置20管理存儲裝置30的存儲區(qū)域的結構。存儲裝置30在設定在物理設備34中的存儲區(qū)域中存儲數(shù)據(jù)。主計算機10具備輸入單元110、輸出單元120、CPU130、存儲器140、盤適配器150、 網絡適配器160以及盤驅動器170。輸入單元110是從操作主計算機10的管理者等接受輸入的單元。輸入單元110例如由鍵盤構成。輸出單元120是顯示主計算機10的狀態(tài)或設定項目的單元。輸出單元120例如由顯示器裝置構成。CPU130將存儲在盤驅動器170中的程序讀入存儲器140,執(zhí)行由該程序規(guī)定的處理。存儲器140例如由RAM等構成,存儲程序或數(shù)據(jù)等。盤適配器150經由存儲網絡50與存儲裝置30連接,與存儲裝置30收發(fā)數(shù)據(jù)。存儲網絡50由適合于數(shù)據(jù)傳輸?shù)膮f(xié)議(例如Fibre Channel)構成。網絡適配器160經由管理網絡40與存儲系統(tǒng)管理裝置20或存儲裝置30收發(fā)數(shù)據(jù)。管理網絡40例如由Khernet構成。盤驅動器170例如由硬盤裝置構成,存儲數(shù)據(jù)或程序。管理裝置20具備輸入單元210、輸出單元220、CPU230、存儲器對0、網絡適配器 250以及盤驅動器沈0。輸入單元210是接受操作管理裝置20的管理者等的輸入的單元。輸入單元210 例如由鍵盤構成。輸出單元220是顯示管理裝置20的狀態(tài)或設定項目的單元。輸出單元 220例如由顯示器裝置構成。CPU230將存儲在盤驅動器沈0中的管理程序讀入到存儲器對0,基于該程序執(zhí)行對存儲裝置的管理處理。存儲器240例如由RAM等構成,存儲程序或數(shù)據(jù)等。網絡適配器250經由管理網絡40與主計算機10或存儲裝置30收發(fā)數(shù)據(jù)。盤驅動器260例如由硬盤裝置構成,存儲數(shù)據(jù)或程序。
存儲裝置30具備控制器31、存儲高速緩沖存儲器32、共享存儲器33、物理設備 (PDEV) 34、電源開關35以及電源36??刂破?1控制向在PDEV中構成的存儲區(qū)域進行的數(shù)據(jù)存儲。存儲高速緩沖存儲器32臨時存儲在PDEV34中讀寫的數(shù)據(jù)。共享存儲器33存儲控制器31或PDEV34的結構信息。PDEV34由多個盤裝置構成。電源36向存儲裝置30的各部供給電力。電源開關35是接通/斷開(0N/0FF)來自電源36的電力供給的開關。盤裝置(存儲設備)例如由硬盤驅動器構成,主要存儲用戶數(shù)據(jù)。作為存儲設備,也可以是由閃速存儲器等半導體存儲器構成的驅動器??刂破?1由主機適配器310、網絡適配器320、非易失性存儲器330、電源控制部 ;340、存儲器350、處理器360、存儲適配器370以及共享存儲器適配器380構成。主機適配器310經由存儲網絡50與主計算機10之間收發(fā)數(shù)據(jù)。網絡適配器320 經由管理網絡40與主計算機10或管理裝置20之間收發(fā)數(shù)據(jù)。非易失性存儲器330由硬盤或閃速存儲器構成,存儲在控制器31中運行的程序或結構信息等。電源控制部340控制從電源36供給的電力。存儲器350例如由RAM等構成,存儲程序或數(shù)據(jù)等。處理器360將存儲在非易失性存儲器330中的程序讀入存儲器350,執(zhí)行由該程序規(guī)定的處理。存儲適配器370與PDEV34以及存儲高速緩沖存儲器32之間收發(fā)數(shù)據(jù)。共享存儲器適配器380在與共享存儲器33之間收發(fā)數(shù)據(jù)。圖2是表示在圖1所示的計算機系統(tǒng)中由存儲裝置30進行的存儲區(qū)域的動態(tài)分配的動作的功能框圖。由PDEV34通過RAID結構構成RADI組。由該RAID組構成虛擬設備(VDEV) 400 (SlOl)。VDEV400被分割為作為存儲區(qū)域的多個邏輯設備(LDEV)500。把由 PDEV34構成的VDEV稱為“第一種VDEV”。將該第一種VDEV中包含的LDEV稱為“第一種 LDEV0主計算機10訪問存儲裝置30的卷(邏輯區(qū)域)。把從主計算機10能看到的卷稱為“目標設備”。在包含第一種LDEV500的卷中定義向主計算機10的路徑,來設定了目標設備 700(S102)。也可以與PDEV34同樣地對在存儲裝置30的外部連接的外部物理設備600進行處理。即,通過RAID結構由多個外部物理設備(EDEV) 600構成多個第一種VDEV400(S103)。 第一種VDEV400被分割為一個以上的存儲區(qū)域、即第一種LDEV500。在該第一種LDEV500中設定向主計算機10的路徑,設定了目標設備700(S104)。另外,在存儲裝置30中可以設定第二種VDEV401。所謂第二種VDEV,與由PDEV34 構成的第一種VDEV不同,是具有地址和區(qū)域但不具有與PDEV34對應的區(qū)域的虛擬設備。能夠設定與第二種VDEV對應的高速緩沖存儲器的區(qū)域。在該第二種VDEV401中構成一個以上的LDEV。將該LDEV稱為第二種LDEV501。在該第二種LDEV501中設定向主計算機10的路徑,設定目標設備701 (SllO)。該目標設備對應于虛擬卷。第二種VDEV以及第二種LDEV沒有被從PDEV分配物理存儲區(qū)域(不具有存儲區(qū)域)。為了主計算機10對其進行使用,需要使第二種LDEV與存儲池(或者簡稱為“池”)60
相關聯(lián)。存儲池60是按照存儲池的屬性匯集一個或多個第一種LDEV500而得的組合。第一種LDEV500被分配給存儲池(SlU)。第一種LDEV是池卷。使用地址使在該存儲池中設定的第一種LDEV500與第二種LDEV501進行關聯(lián) (Slll)。將該關聯(lián)稱為“映射”或者“分配”。由此,主計算機10能夠對虛擬卷進行寫/讀訪問。另外,通過變更第一種LDEV和第二種LDEV的映射,可以變更虛擬卷的存儲區(qū)域。圖3是存儲裝置30的存儲器350的框圖。在存儲器350中存儲通過處理器360 讀入并執(zhí)行的各種程序、與LDEV的設定相關的結構信息351以及與存儲池的設定相關的池 fn肩、352 ο命令控制程序3501解釋來自主計算機10或管理裝置20的命令,執(zhí)行由該命令規(guī)定的處理。結構控制程序3503控制存儲裝置30的結構。盤I/O程序3505控制對PDEV34 的訪問。池控制程序3507設定存儲池。結構信息351存儲與存儲裝置30的VDEV以及LDEV相關的設定。池信息352存儲與存儲池相關的設定。結構信息351包含地址管理表3511、LDEV管理信息3512、VDEV管理信息3514。地址管理表3511存儲目標設備、LDEV、VDEV與物理設備的地址的映射信息。地址管理表3511包含目標設備-LDEV映射信息35111、LDEV-VDEV映射信息35112、以及 VDEV-PDEV映射信息35113。LDEV管理信息3512存儲與LDEV相關的信息。VDEV管理信息 3514存儲與虛擬邏輯卷相關的信息。池信息352包含池管理信息;3512、池卷管理信息3522、VV0L-DIR3523, PSCB35240 池管理信息3521存儲存儲池的設定。池卷管理信息3522存儲存儲池的卷的信息。 VV0L-DIR3523存儲存儲池的LDEV的地址的分配。PSCB信息存儲存儲池的LDEV的地址的
fn息ο而且,存儲器350具有用于從PDEV對屬于存儲池的多個LDEV (池卷)500均等地分配存儲區(qū)域的分配處理程序3508 ;用于使存儲區(qū)域在多個池卷間移動來使多個池卷的存儲容量均等化的再平衡處理程序3509。而且,存儲器350具備可以針對每個池或者每個虛擬卷設定是否執(zhí)行再平衡的標志fn息ο圖4是VDEV管理信息的說明圖。VDEV管理信息由VDEV固有信息35141構成。 VDEV固有信息35141由VDEV號碼(VDEV#)35142、仿真類型35143、總大小35144、剩余大小 35145、設備屬性35146、設備狀態(tài)35147、設定LDEV數(shù)35148、LDEV號碼35149、先頭VDEV槽 #35150以及結束VDEV槽#35151構成。VDEV#35142是VDEV的識別符。仿真類型35143是VDEV的仿真類型的識別符??偞笮?5144是在VDEV中設定的總大小。剩余大小35145是VDEV的未使用的區(qū)域的大小。設備屬性35146是在VDEV中定義的屬性的識別符。當該VDEV為第一種VDEV時存儲表示第一種VDEV的識別符,當該VDEV為第二種VDEV,被設定為虛擬卷時,存儲表示第二種VDEV的識別符。設備狀態(tài)35147是表示VDEV的狀態(tài)的識別符。VDEV的狀態(tài)有正常、閉塞、故障閉塞等。閉塞表示punk閉塞等,由于意外發(fā)生故障的原因而被閉塞。故障閉塞表示設備的某處發(fā)生故障,因此被閉塞。
設定LDEV數(shù)35148是在VDEV中設定的LDEV的總數(shù)。LDEV號碼35149存儲在VDEV 中設定的LDEV的號碼。先頭VDEV槽#35150是設定的LDEV的物理的先頭的槽號碼的識別符。結束VDEV槽#35151是所設定的LDEV的物理的最終的槽號碼。針對每個LDEV號碼,設定與LDEV數(shù)量相同數(shù)量的該LDEV號碼35149、先頭VDEV槽#35150以及結束VDEV槽 #;35151。圖5是LDEV管理信息的說明圖。LDEV管理信息由VDEV固有信息35121構成。 LDEV固有信息35121由LDEV號碼(LDEV#) 35122、仿真類型35123、大小35124、先頭槽號碼 35125、結束槽號碼35126、路徑定義信息35127、設備屬性35128、設備狀態(tài)35129、程序使用狀況351300以及池ID351301構成。LDEV#35122是LDEV的識別符。仿真類型35123是LDEV的仿真類型的識別符。大小35124是在LDEV中設定的總大小。先頭槽號碼35125是所設定的LDEV的先頭的槽號碼的識別符。結束槽號碼35126 是所設定的LDEV的最終的槽號碼。路徑定義信息35127是在主計算機10中定義的路徑的識別符。設備屬性351 是LDEV的屬性的識別符。當LDEV為第一種LDEV時存儲表示第一種LDEV的識別符,當LDEV為第二種LDEV時存儲表示第二種LDEV的識別符。另外,當LDEV 被設定為存儲池時,存儲表示池屬性的識別符。設備狀態(tài)351 是表示該LDEV所屬的VDEV的狀態(tài)的識別符。VDEV的狀態(tài)有正常、閉塞、故障閉塞等。閉塞表示PUNK閉塞等由于意外發(fā)生故障的原因而被閉塞。故障閉塞表示設備的某處發(fā)生了故障,因此被閉塞。程序使用狀況351300,當LDEV正通過某個程序被處理時存儲該程序的識別符。池 ID351301,當LDEV被設定為存儲池時存儲其識別符。圖6是地址管理表的說明圖。地址管理表3511存儲目標設備、LDEV、VDEV與物理設備的地址的映射信息。地址管理表3511包含目標設備-LDEV映射信息35111、LDEV-VDEV 映射信息35112以及VDEV-PDEV映射信息35113。目標設備-LDEV映射信息35111存儲目標設備的地址與LDEV的地址的對應。 LDEV-VDEV映射信息35112存儲LDEV的地址與VDEV的地址。VDEV-PDEV映射信息35113存儲VDEV的地址與其RAID組號碼(或奇偶校驗組) 和PDEV的地址。存儲裝置30通過參照該地址管理表可以知道目標設備的地址與哪個LDEV的哪個地址對應。另外可以知道LDEV的地址與哪個VDEV的哪個地址對應。另外可以知道VDEV 的地址屬于哪個RAID組,與哪個PDEV的哪個地址對應。圖7是池管理信息的說明圖。池管理信息3521由池固有信息35211構成。池固有信息35211由池ID35212、屬性/用途35213、仿真類型35214、容量35215、空閑容量 35216、閾值35217、狀態(tài)35218、池卷數(shù)35219、池卷設備號碼列表35220、正在利用池的設備數(shù)35221以及正在利用池的設備號碼35222構成。池ID35212是池的識別符。屬性/用途35213是表示該存儲池的屬性以及用途的識別符。用途例如是快照或SYS區(qū)域等運用形態(tài)的用途。
9
仿真類型35214是存儲池的仿真類型的識別符。容量35215是存儲池的總容量, 空閑容量35216是存儲池的未使用的區(qū)域的大小。閾值35217是存儲池所允許的最大的數(shù)據(jù)存儲容量。狀態(tài)35218是存儲池的當前狀態(tài)。例如定義中、擴展中、有效等。池卷數(shù)35219是被設定為存儲池的LDEV的總數(shù)。池卷設備號碼列表35220是被設定為存儲池的LDEV號碼的一覽。正在利用池的設備數(shù)35221是與存儲池的LDEV關聯(lián)的第二種LDEV的數(shù)量。正在利用池的設備號碼35222 是與存儲池的LDEV關聯(lián)的第二種LDEV號碼的一覽。圖8是VV0L-DIR;3523以及PSCB!35M的說明圖。VVOL_DIR;3523是虛擬卷的存儲區(qū)域、即第二種LDEV的結構的信息。PSCB(P00L Slot Control Brock) 35 是被設定為存儲池的第一種LDEV的結構的信息。如前所述,存儲裝置30由PDEV34通過RAID結構而構成第一種VDEV。將該第一種 VDEV分割為作為存儲區(qū)域的第一種LDEV。第一種LDEV被設定為存儲池。把該被設定為存儲池的第一種LDEV所構成的卷設為池卷900。另外,存儲裝置30設定虛擬卷(VVOL),構成第二種VDEV。將該第二種VDEV分割為作為存儲區(qū)域的第二種LDEV。存儲裝置30將VV0L800的第二種LDEV分配給池卷900的第一種LDEV。由此,將主計算機10訪問的虛擬卷的存儲區(qū)域設定為由作為物理設備的PDEV34構成的第一種LDEV。VVOL 的結構被存儲在 VVOL-DIR;3523 中。VVOL-DIR;3523 由 LDEV 號碼(LDEV#) 35231 以及條目35232構成。LDEV號碼(LDEV#) 35231是第二種LDEV的識別符。條目35232是第二種LDEV的結構信息。該條目35232由第二種LDEV地址;35322以及PSCB指針352;34構成。第二種LDEV地址35233存儲VVOL的第二種LDEV的地址。當?shù)诙NLDEV被分配給池卷900的第一種LDEV時,PSCB指針35234存儲該第一種LDEV的區(qū)域的指針。此外,在初始狀態(tài)下,第二種LDEV未被分配給第一種LDEV,因此在 PSCB指針35234中存儲"NULL(空)”。PSCB (POOL Slot Control Brock) 35 是被設定為存儲池的第一種 LDEV 的信息。針對被設定為存儲池的第一種LDEV的每個槽設定該PSCB35M。PSCB3524 由 LDEV 號碼(LDEV#) ;35241、池卷地址!35242、PSCB 前方指針 35243 以及 PSCB后方指針35244構成。LDEV號碼(LDEV#) 35241是池卷中的第一種LDEV的識別符。池卷地址35242是池卷900中的第一種LDEV的地址。PSCB前方指針35M3以及PSCB后方指針35244是池卷900內的第一種LDEV的前后的槽的識別符。另外,池卷900的區(qū)域中未使用的區(qū)域,其先頭用空閑PSCB隊列35240表示??臻ePSCB隊列35240包含向表示下一槽的PSCB35M的指針。存儲裝置30參照空閑PSCB隊列35240所示的指針,得到下一 PSCB3524。進而,參照下一 PSCB35M的PSCB后方指針35M5,分階段地搜索PSCB35M。然后,得到與該未使用的區(qū)域的最終槽對應的PSCB35M。該最后的PSCB35M的PSCB后方指針35244是空閑PSCB隊列35M0。存儲裝置30搜索空閑PSCB隊列35M0,根據(jù)通過PSCB35M的指針而連接的集合,可以得知存儲池的池卷900的未使用的區(qū)域。存儲裝置30設定與被設定為存儲池的第一種LDEV對應的PSCB35M。具體來說, 設定與被設定為存儲池的第一種LDEV的各槽對應的PSCB35M,進而設定空閑PSCB隊列 35240.在初始狀態(tài)下存儲池完全未使用,因此,通過空閑PSCB隊列35240連接的集合對應于被設定為存儲池的第一種LDEV的全部區(qū)域。然后,存儲裝置30在使用該存儲池的區(qū)域時,通過將必要的槽數(shù)的PSCB35M分配給作為第二種LDEV的VVOL-D頂3523,能夠使用該區(qū)域。多個槽的集合相當于頁。根據(jù)多個 PSCB來確定頁。以頁為單位來執(zhí)行從主機裝置向VV0L800的訪問、從池卷對VV0L800的訪問區(qū)域的存儲區(qū)域的分配。具體來說,存儲裝置30參照空閑PSCB隊列35M0。并且,取得向第二種LDEV分配的必要的區(qū)域量(頁)的PSCB35M。將該取得的PSCB35M分別分配給VV0L-DIR3523的條目。即,在VV0L-DIR3523的各條目的PSCB 指針35234中存儲表示對應的PSCB35M的指針。此外,將已分配的PSCB35M從空閑PSCB隊列25240的連接中排除。由此,把第二種LDEV的各頁(槽)分配給用VV0L-WR3523的各條目的PSCB指針 35234表示的PSCB34M。PSCB3524對應于第一種LDEV的槽,因此,作為結果,把第二種LDEV 分配給第一種LDEV,作為主計算機10的訪問對象的虛擬卷能夠作為物理設備來使用。圖9是目標設備和LDEV以及PDEV的說明圖。主計算機10訪問在存儲裝置30中設定的目標設備700。目標設備700的存儲區(qū)域是第一種LDEV500。第一種LDEV500是由物理卷通過RAID結構構成的第一種VDEV400的區(qū)域。第一種VDEV400被分割為一個以上的第一種LDEV500。另外,主計算機10將在存儲裝置30中設定的虛擬卷作為目標設備701來訪問。該目標設備701的虛擬存儲區(qū)域是第二種LDEV501。第二種LDEV501與被設定為存儲池的第一種LDEV500相關聯(lián)。主計算機10訪問作為虛擬卷的目標設備701。該虛擬卷的存儲區(qū)域是第二種 LDEV501。存儲裝置30當接受對第二種LDEV501的訪問時,將與第二種LDEV501關聯(lián)的第一種LDEV500變換為訪問目的地。圖10表示在虛擬卷(第二種LDEV)和多個池卷(第一種LDEV)之間均等地分配作為訪問對象以及存儲區(qū)域的單位的頁的情形。在圖10中,針對從主計算機對虛擬卷(HDP-Vol) #0和虛擬卷#1的訪問,處理器 (MP) #0從池卷(Pool-Vol) #0 #2將頁分配給虛擬卷#0、#1。針對從主計算機對虛擬卷#2和虛擬卷#3的訪問,處理器#1從池卷#0 #2將頁分配給虛擬卷#2、#3。對于虛擬卷#0 #3,如WRl WR5那樣依次執(zhí)行來自主計算機的訪問。ΜΡ#0對于虛擬卷#0的從主計算機訪問過的頁(WRl)分配池卷#0的頁(WRl),對于虛擬卷#1的從主計算機訪問過的頁(WR2)分配池卷#1的頁(WR2)。接著,MP#1對于虛擬卷#2的從主計算機訪問過的頁(WR;3)分配池卷#0的頁 (WR3),對于虛擬卷#3的從主計算機訪問過的頁(WR4)分配池卷#1的頁(WR4)。
接著,ΜΡ#0對于虛擬卷#0的從主計算機訪問過的頁(評肪)分配池卷#0的頁 (WR5)。通過所述圖8的隊列構造來實現(xiàn)該分配。圖11是現(xiàn)有的空閑隊列構造的一例。 各池卷的未分配頁的地址(freeM-N =M表示屬于池卷#M。N表示是池卷M的第N個未分配頁。)依次與空閑隊列(0) (1)連接。各MP依次訪問空閑隊列(0) (1),將池卷的未分配區(qū)域分配給虛擬卷。ΜΡ#0訪問空閑隊列(0)。在空閑隊列(0)上首先連接了 freeO-Ι,因此,將池卷#0 的未分配頁中的第一頁分配給虛擬卷#0的頁WRl。該未分配頁成為已分配(已使用)的頁 (WRl)。接著,ΜΡ#0訪問空閑隊列(1)。在空閑隊列(1)上最初連接了 freel-2,因此,將池卷#1的未分配頁中的第二頁分配給虛擬卷#1的頁WR2。該未分配頁成為已分配(已使用)的頁(WR2)。接著,MP#1訪問空閑隊列(0)??臻e隊列(0)的freeO-Ι在分配中被使用,因此選擇接下來的freeO-4,將其分配給虛擬卷的頁WR3。在分配中使用的頁從空閑隊列中被釋放。接著,MP#1訪問空閑隊列(1)??臻e隊列(1)的freel-2在分配中使用,因此選擇下一個freel-5,將其分配給虛擬卷的頁WR4。接著,ΜΡ#0訪問空閑隊列⑵。在空閑隊列(2)上最初連接了 free2_3,因此將池卷#2的第三個未分配頁分配給虛擬卷#0的頁WR5。如圖11所示,為了對于多個池卷均等地存在分配頁,與空閑隊列有關的空閑區(qū)域所屬的池卷,針對每個空閑隊列各移動一個。另外,與來自主計算機的訪問對應的頁的分配順序、空閑隊列#0 — #1 — #2 — #0 — #1......作為頁分配順序管理表存儲在存儲器350中。處理器始終參照該順序表來進行頁的分配。處理器在分配給虛擬卷的頁中存儲來自主機裝置的寫數(shù)據(jù)。圖12表示從屬于池的池卷#0到#2的未分配頁減少時。追加了池卷#3的情形。 圖13表示對追加的池卷的空閑區(qū)域進行管理的隊列構造。由于在池中新追加了池卷#3,因此在各空閑隊列上數(shù)量較多地連接了池卷#3的空閑區(qū)域。在圖10的形態(tài)中設置多個處理器,為使來自主計算機的訪問處理的負荷分散,對各處理器分配了不同的虛擬卷。從主計算機對虛擬卷的訪問在多個虛擬卷間變得不均等, 因此當經過長時間時,多個池卷中的已使用頁的比例的平衡被打破。另外,在圖13的形態(tài)中,來自處理器的訪問集中于存在較多空閑區(qū)域的池卷#3 中,因此,針對來自主計算機的I/O的處理性能有可能降低。因此,如圖14 圖15所示,處理器使已分配頁從已有的池卷移動(遷移)到在池中追加的池卷中,使得分配頁的比例在已有的池卷和追加的池卷之間變得均等。圖14表示該處理的狀態(tài),圖15表示該處理后的狀態(tài)。在圖14中,1400是執(zhí)行了頁的分配的已使用區(qū)域,1402是未使用區(qū)域。如圖15所示,池卷#0的已使用頁的一部分頁的數(shù)據(jù)被復制到追加的池卷#2的未使用頁中(S1404),進而,池卷#1的已使用頁的一部分頁數(shù)據(jù)被復制到池卷#2的未使用頁中(S1406)。
12
然后,處理器將從虛擬卷#0向池卷#1的分配(S100)變更為池卷#2(S104),將從虛擬卷#2向池卷#0的分配610 變更為池卷#2(S106)。將這一系列過程稱為頁的移動 (遷移)。
從圖14到圖15的過程表示已使用的多個頁在多個池卷間被再配置,從而變得均等,即達成了頁的再平衡。實施均等分配程序3508的處理器在池內的多個卷中均等地進行頁的分配。處理器實施再平衡程序3509來進行再平衡處理。
作為這些處理的結果,針對多個池卷全體的頁的分配均等,因此對于多個池卷的各個池卷的I/O率變?yōu)橄嗤潭?,在追加池卷后也良好地維持了存儲裝置針對從主機裝置的訪問的處理性能。
此外,根據(jù)移動源頁的數(shù)據(jù)的更新日期時間,更新日期時間越近的數(shù)據(jù),在向移動目的地頁遷移時被復制到硬盤的越外周部。
在使分配頁在多個池卷間變得均等方面,考慮池卷的容量是重要的。S卩,在多個池卷間使全部頁數(shù)(可分配的全部頁數(shù)相當于池卷的容量)中在分配中已使用的頁的比例 (頁使用率)均等是重要的。即使代替頁數(shù)而用存儲容量來計算也相同。
圖16是表示該情況的框圖。符號1300是分配給各卷的頁的全部容量,1302是在卷間遷移的頁的容量。關于池卷的容量比,池卷#0 #1 #2為1 3 2。
因此,從池卷#1以及#3向池卷#2分別遷移頁,以使頁的使用率變?yōu)橄嗤壤?br>
圖17A是管理池的表,圖17B是管理池卷的表。這些表作為池信息352 (圖3)的一部分,被記錄在存儲器350中。這些表根據(jù)管理信息而生成。存儲系統(tǒng)的再平衡處理程序3509參照這些表,構建在圖15中說明的再平衡處理系統(tǒng)。
圖17C是管理空閑隊列單位的表。對于虛擬卷的訪問區(qū)域進行的未使用頁的分配,如前所述,通過空閑隊列來管理。針對每個池卷設定了空閑隊列。在空閑隊列上以FIFO 構造連接了池卷的多個未使用頁。在向虛擬卷分配未使用頁時,未使用頁依次從空閑隊列中釋放,作為數(shù)據(jù)復制目的地處理來自虛擬卷的映射。
該表由空閑隊列的識別號碼(#)、空閑隊列成為管理空閑區(qū)域的對象的池卷#、與空閑隊列連接的空閑區(qū)域的個數(shù)、空閑隊列所屬的池#構成。該表還作為池信息的一部分, 被記錄在存儲器350中。
圖18是表示針對從主機裝置向虛擬卷的寫訪問,從屬于池的池卷向虛擬卷分配頁的順序的說明圖。此處的說明以具有存儲容量的比為2 3 2的多個池卷的池作為前提。
為了對池卷均等地分配虛擬卷的頁,需要包含在池卷中追加的卷,來對卷決定頁的分配順序。該分配順序作為管理信息被登錄在存儲器中(參照圖19)。
分配處理程序3508參照該管理信息,從多個空閑隊列中計算出目標空閑隊列的地址,取得與空閑隊列相關的未使用頁的地址(指針信息PSCB),在此存儲對虛擬地址的頁發(fā)送的、來自主機裝置的寫數(shù)據(jù)。
為了使其成為可能,空閑隊列的地址與池卷的識別信息1 1對應。例如,空閑隊列#0管理池卷#0的空閑區(qū)域,空閑隊列#1管理池卷#1的空閑區(qū)域,空閑隊列#2管理池卷#2的空閑區(qū)域。
圖18表示向池卷#0連續(xù)兩次分配頁,接著向池卷#1連續(xù)三次分配頁,而且向池13卷#2連續(xù)兩次分配頁,以后重復該處理。
圖19是管理該分配順序的表,登錄了圖18所示的分配方式。該表還作為池信息被記錄在存儲器中。分配處理程序3508參照該管理表,管理針對池卷的頁的分配的依次控制處理。
該程序具備軟件計數(shù)器,管理將頁分配到了哪個池卷。計數(shù)器每當分配頁時被增加1,因此根據(jù)計數(shù)器的位置知道成為當前的頁分配對象的池卷。圖19表示計數(shù)器位于池卷#1(空閑隊列#1)的位置。
如圖20所示,存儲裝置的再平衡處理程序3509以執(zhí)行頁的再配置為契機,檢測出將池卷追加到池中。
在圖20中,存儲裝置的再平衡處理程序3509以一定時間監(jiān)視池的空閑容量 (S33001, S33002)。判定池全體的使用量(在分配中使用的全部頁的容量)是否超過閾值 (S33003)。
當超過閾值時,管理裝置20或維護終端進行在池中新追加池卷的處理。存儲裝置與池卷的追加相配合地更新圖5至圖7所示的管理信息(S33004)。此后,轉移到再平衡處理(S33020)。
根據(jù)圖21說明再平衡處理的細節(jié)。再平衡處理程序關于成為再平衡的對象的池, 判定可否再平衡(S7007)。參照圖3的池信息352來進行該判定。
被判定為成為再平衡的對象的池無法再平衡的情況,例如是如下情況。
池狀態(tài)池閉塞
池內的卷數(shù)在預定(8)以上
池卷狀態(tài)格式化中
退化中
閉塞
虛擬卷閉塞
此外,當存儲裝置的硬件資源(處理器、共享存儲器、高速緩沖存儲器、PDEV)的故障時,還根據(jù)故障的程度判定為無法再平衡。
另外,處理器在對成為再平衡的對象的池設定了再平衡關閉(OFF)標志的情況下,判定為無法再平衡??梢葬槍γ總€池、每個虛擬卷來設定再平衡開啟/關閉(0N/0FF) 設定信息。
當判定為能夠再平衡時,再平衡處理程序進行預處理(S7010)。例如,決定頁遷移 (頁的分配的變更或移動)移動源的池卷和移動目的地的池卷、決定應用頁遷移處理的池卷的選擇順序、模擬頁遷移后的池卷的容量等。
接著,再平衡處理程序計算在池內應該遷移的頁數(shù)(S7011)。此后,進行頁的遷移處理(S7012)。此時,在后面進行描述,當遷移時同時進行用于舍棄在多個池卷中存在的固定模式(例如頁的全體數(shù)據(jù)為“0”的模式)來縮小池卷的容量的處理。
在頁遷移時,再平衡處理程序判定是否發(fā)生再平衡處理的中斷條件。例如,當存在從主計算機對成為再平衡的對象的頁的I/O時,中斷再平衡。當再平衡的中斷的原因消除后,可以重新啟動再平衡處理。
接著,再平衡處理程序管理頁遷移的進度(S7013)。通過該管理,再平衡處理程序可以使管理用戶看到再平衡的進度狀況。
圖22是表示圖21的遷移的頁數(shù)的計算(S7011)的細節(jié)的流程圖。這里的頁數(shù)的計算方式為,將多個池卷間達到平衡的頁數(shù)設為理想的頁,彌補其與當前使用的頁數(shù)的差。 再平衡處理程序檢索分配給HDP VOL(虛擬卷)的各池卷中的頁的使用量。
在圖22的說明中以如下情況為前提。
HDP V0L#i的池使用量全體(在屬于池的全部卷中被分配的(被使用的)頁的總數(shù))A[i]
HDP V0L#i的池卷#j使用量全體(使用的頁的總數(shù))B[i] [j]
池卷的#j的容量(總頁數(shù)):C[j]
池全體的容量(總頁數(shù))D
追加池VOL全體的容量(總頁數(shù))E
首先,再平衡處理程序在追加池卷前使用被分配給HDP V0L[i]的池V0L[j]來計算頁數(shù),將其存儲在B[i][j]中(S1900)。B[i][j]被設定為存儲器350的工作區(qū)域。
接著,在將池卷追加到池中后,如下那樣求出HDP V0L[i]應該使用池卷[j]的頁數(shù)(S1902)。
HDP V0L#i的池使用量全體X池卷[j]的理想的使用率=A[i] XC[j]/(D+E)
池卷的理想的使用率,是分配給池卷的頁數(shù)相對于可存儲在池卷中的總頁數(shù)的比例,是以在多個池卷間均等地分配了頁作為前提的值。
關于池卷[j],移動所涉及的頁數(shù)是池卷追加前和追加后的差,如下求出 (S1904)。
頁數(shù)=B[i][j]-A[i] XC[j]/(D+E)
當上述計算值為正(+)值時,池卷[j]成為移動源卷,當計算值為負(_)值時,池卷[j]成為移動目的地卷。
再平衡處理程序在計算出移動頁數(shù)后,針對每個池號碼將移動頁數(shù)、池卷為移動源還是移動目的地登錄在專用的表中。
圖23是表示通過圖22的處理計算出的頁數(shù)和頁的移動的情形的框圖。在屬于一個存儲池組的多個池卷和與其對應的多個虛擬卷中,根據(jù)關于各虛擬卷計算頁的移動所得的結果,來進行頁的移動。池卷的符號中的數(shù)值表示在池卷中被用于分配的頁數(shù)。
如圖23所示,關于虛擬卷#0,在多個池卷間沒有頁的移動。關于虛擬卷#1、#2,在圖23所示的箭頭的方向上遷移在箭頭上表示的數(shù)量的頁。再平衡處理程序以池為單位來進行頁的移動。即,進行圖23所示的全部頁移動。此外,可以以虛擬卷為單位進行頁的移動。例如,關于虛擬卷#1,可以在多個池卷間進行頁的移動,關于虛擬卷#2,不執(zhí)行頁的移動。
圖M是用于實現(xiàn)圖23所示的頁的移動形態(tài)的管理表。該管理表被存儲在存儲器 350的預定區(qū)域中。管理表針對每個虛擬卷而存在,基于圖22的步驟S 1906的處理而生成。在每個虛擬卷中,登錄了各池卷成為移動源還是成為移動目的地,從移動源池卷向移動目的地池卷移動的頁數(shù),被分別登錄在移動源以及移動目的地的池卷中。
再平衡處理程序通過S7011(圖21)的處理生成/登錄該表,在S7012中參照該表來執(zhí)行遷移。15
圖25是表示圖21的遷移處理(S7012)的細節(jié)的流程圖。當存在多個虛擬卷的情況下,針對各虛擬卷進行該處理。
再平衡處理程序從虛擬卷中檢測關聯(lián)頁。成為移動對象的頁是池卷的頁,但是通過參照地址管理表3511,可以從虛擬卷的全部頁中確定與成為移動對象的頁對應的關聯(lián)頁。
再平衡處理程序針對虛擬卷中的從先頭開始的全部頁中的各個頁,判定是否是關聯(lián)頁。為了管理已檢查到哪個頁而使用軟件計數(shù)器。每當頁的檢查進展到下一頁時,將計數(shù)器增加1。因此,再平衡處理程序進行計數(shù)器的初始化(S2300)。
接著,再平衡處理程序從先頭頁開始選擇虛擬卷中的頁(S2302)。接著,判定是否對所選擇的頁分配了池卷的移動對象頁(S2304)。
再平衡處理程序當肯定該判定時,基于地址管理表3511檢測移動對象頁所屬的池卷的識別信息(S2306)。
接著,參照圖M的表,判定池卷是移動源還是移動目的地(S2306)。再平衡處理程序,當池卷為移動目的地時,在移動目的地池卷中確保用于從移動源池卷進行頁移動的空閑區(qū)域(S2310)。
作為頁被移動的池卷,選擇分配平衡低的池卷,但是當多個池卷作為移動目的地產生競爭時,從所追加的池卷、然后從成為移動目的地方面優(yōu)先度高的池卷開始依次選擇。 在移動目的地優(yōu)先度表中,關于各池卷登錄了成為移動目的地的優(yōu)先度。
再平衡處理程序,當決定了移動目的地池卷、移動源池卷、移動對象頁數(shù)時,決定頁的移動的調度,將其登錄在存儲器350的遷移執(zhí)行任務中(S2U)。該調度,例如在伴隨多個頁的移動時,用于決定以怎樣的順序來進行頁的移動。在每次存在在S2302中依次選擇出的頁時,每次決定新的移動目的地卷等時更新登錄該調度。
接著,再平衡處理程序將計數(shù)器的計數(shù)值增加1(S2316),判定是否還存在在 S2302中沒有選擇的頁(S2318)。當存在未檢查的頁時返回步驟S2302,而且,在不存在頁的時,按照在S2312中依次更新后的調度執(zhí)行遷移(S2320)。此外,也可以在S2312后執(zhí)行遷移處理(S2320)。
圖沈表示圖25的遷移處理(S2320)。存儲適配器370按照再平衡處理程序,以槽為單位將移動源頁的全部數(shù)據(jù)從移動源池卷升級(staging)到高速緩沖存儲器32中 (S2400)。
圖27表示該情形。池卷#1為移動源,池卷#2為移動目的地。S^OO表示移動源頁被升級到高速緩沖存儲器的第一區(qū)域32A的情形。符號沈01是槽。以槽為單位執(zhí)行升級。符號260IA是移動源頁,符號^OlB是移動目的地頁。
存儲適配器370內的DRR電路(Data Recover and Reconstruct電路)以槽為單位檢查移動源頁2601A的數(shù)據(jù),檢查數(shù)據(jù)是否為“0” (圖26 :S2402-S2404,圖27 :S2602)。
該判定用于判定移動源頁的數(shù)據(jù)是否是固定模式之一(全部數(shù)據(jù)為“0”)。當數(shù)據(jù)為固定模式時不進行頁的遷移,將與虛擬卷的移動對象頁對應的映射變更為存儲了固定模式數(shù)據(jù)的專用區(qū)域。
當DRR檢測出“ 1 ”的存在時,轉移到步驟M14,高速緩沖存儲器內的存儲控制器將移動源頁數(shù)據(jù)從第一區(qū)域32A向第二區(qū)域32B進行高速緩沖存儲器間復制(圖沈:S2414,圖27 :S2604)。然后,存儲適配器370清除移動源高速緩沖存儲器32A(圖27 :S2416)。
接著,將第二區(qū)域32B的數(shù)據(jù)降級(destage)到移動目的地池卷#2的移動目的地頁沈0讓(圖27 :S^06),進行將移動源頁^OlA變更為未使用頁,而且將對于虛擬卷的頁的分配從移動源頁變更為移動目的地頁等遷移處理(圖沈:S2418)。
當DDR所判定的槽的數(shù)據(jù)為“0”時,存儲適配器370判定以槽為單位的全部數(shù)據(jù)的檢查是否結束(S2406),當對其進行否定判定時返回步驟S2402,針對同一槽的其它數(shù)據(jù)檢查是否為“0”。當針對槽的全部數(shù)據(jù)結束檢查時,轉移到步驟S2410,檢查在移動源頁中是否有剩余的槽,當對其進行肯定判定時,針對下一槽進行上述檢查。
當針對屬于頁的全部槽結束判定時,轉移到步驟S2412,全部數(shù)據(jù)由“0”組成的移動源頁不需要遷移,變更為未使用頁。
存儲裝置通過執(zhí)行圖沈所示的處理對頁進行再配置時,從已使用的管理中釋放具有固定模式數(shù)據(jù)的頁,消除了將固定模式數(shù)據(jù)重復分配給虛擬卷的情況,而且,主機裝置可以高效率地利用池卷的存儲區(qū)域。
在圖沈中說明的遷移的過程中,當從主計算機對移動源的頁發(fā)行了 I/O或者存儲裝置內復制I/O時,存儲裝置使I/O處理優(yōu)先,中止頁遷移。
S卩,如圖觀所示,當向虛擬卷提供讀或寫I/O時,處理器檢查是否包含針對移動源頁的邏輯地址(S2500)。
包含針對移動源頁的邏輯地址,意味著虛擬卷和移動源頁之間的路徑未被切斷, 頁遷移處理并未結束,因此,處理器清除存儲有移動源頁的數(shù)據(jù)的、高速緩沖存儲器的第二區(qū)域(圖27的32B)的數(shù)據(jù),進而對移動目的地頁進行清除處理(S2504)。
此處的清除處理是在映射到虛擬卷時刪除映射管理信息,另外,如果移動目的地頁作為使用頁被管理,則刪除該管理信息。
接著,處理器在S2506中跳過(結束)圖沈的遷移處理。此外,在讀I/O的情況下,在該處理結束前,可以臨時停止遷移處理,此后重新啟動。
如圖27中所說明的那樣,高速緩沖存儲器32有第一區(qū)域(移動源用的高速緩沖區(qū)域)32A和第二區(qū)域(移動目的地用的高速緩沖區(qū)域)32B,直到兩者的差消除為止,不從第二區(qū)域向移動目的地頁2601B復制移動源頁的數(shù)據(jù),因此,在對移動源頁輸入了 I/O的時刻,可以中止頁的移動處理。
空閑隊列的構造為圖11所示的方式的構造,在一個空閑隊列上連接了多個池卷的空閑頁信息(PSCB)。由此,當向虛擬卷分配頁時,處理器向虛擬卷分配哪個池卷的空閑頁都沒有區(qū)別。
在再平衡處理中,已分配頁從已分配的頁的比例多的池卷向已分配的頁的比例少的池卷移動,因此需要區(qū)別移動目的地的頁屬于哪個池卷。因此,處理器需要將空閑隊列的構造變更為對一個空閑隊列分配了一個池卷的構造。
圖四是表示變更隊列構造的過程的框圖。處理器將與空閑隊列#0相關的未使用區(qū)域的信息從空閑隊列#0中釋放,然后與工作隊列2700的#1關聯(lián)((1) — O))。以使空閑隊列#0與池卷#1對應的方式,構建空閑隊列((3))。將屬于池卷#1的空閑區(qū)域(1-1, 1-2)的信息從工作隊列#1中釋放,然后與空閑隊列#0連接((3))。
圖30表示工作隊列的構造。通過將與空閑隊列相關的空閑頁的信息的鏈接從空17閑隊列中釋放并與工作隊列連接,在隊列構造的重組過程中不向空閑隊列提供來自主計算機的I/O。
接著,處理器將未使用頁的信息從空閑隊列#1釋放,與工作隊列#2連接((4))。 使空閑隊列#1與池卷#2對應。接著,將屬于池卷#1的未使用的區(qū)域(1-3,1-4)從工作隊列#2釋放,并與空閑隊列#0連接(⑷—(5))。
接著,處理器將未使用頁的信息從空閑隊列#2釋放,并與工作隊列#3連接。使空閑隊列#2與池卷#3對應。接著,從工作隊列#2中將屬于池卷#1的未使用的區(qū)域(1-5, 1-6)從工作隊列#3釋放,與空閑隊列#0連接。
以上的結果為,向池卷#1分配了空閑隊列#0,全部池卷1的空閑頁信息(1-1 1-6)與池卷#1連接。
另外,將與工作隊列#1的最初連接的池卷#2的空閑頁信息從工作隊列#1釋放, 與池卷#2連接。針對工作隊列#2,然后針對工作隊列#3執(zhí)行同樣的處理。其結果,在被分配給池卷#2的空閑隊列#1上連接池卷#2的空閑頁信息。
而且,將與工作隊列#1的最初連接的池卷#3的空閑頁信息從工作隊列#1釋放并與池卷#3連接。針對工作隊列#2,然后針對工作隊列#3執(zhí)行同樣的處理。其結果,在被分配給池卷#3的空閑隊列#2上連接了池卷#3的空閑頁信息。
圖31是表示用于變換空閑隊列構造的流程圖。處理器當變換隊列構造時,在向空閑隊列請求了主機I/O時鎖定空閑隊列,使隊列構造的變換待機,直到I/O處理結束為止。
處理器檢查作為I/O對象的空閑隊列是否在鎖定中Q900)。當判定為在鎖定中時,判定是否存在成為I/O對象的下一空閑隊列(四02),當對其肯定時,參照下一空閑隊列 (四04),返回步驟2900。
當所選擇的空閑隊列并非鎖定中時,將其鎖定來確??臻e隊列Q906J908),從空閑隊列中將未使用頁分配給I/O。此后,解除空閑隊列的鎖定0910)。
在步驟四02中,在沒有下一空閑隊列時向主機I/O通知鎖定忙(lock busy) (2912)。
圖32是用于實施隊列構造的變換的流程圖。處理器檢查作為向工作隊列移動的對象的空閑隊列是否在鎖定中,在鎖定中的情況下重復步驟3000的處理,直到結束針對空閑隊列的I/O處理為止(3002)。
在未鎖定的情況下,鎖定對象空閑隊列(3004),將其與工作隊列連接(3006)。然后,當從工作隊列將空閑頁信息與其它空閑隊列重新連接時,檢查連接目的地空閑隊列是否在鎖定中(3008)。在鎖定中的情況下待機,直到針對連接目的地空閑隊列的I/O處理結束為止(3010)。
在未鎖定的情況下,鎖定連接目的地空閑隊列(3012),對其連接從工作隊列中釋放的空閑頁信息(PSCB) (3014),解除對象隊列以及連接目的地隊列的鎖定(3016)。
接著,判定是否存在從工作隊列向其它空閑隊列重新連接的下一連接目的地隊列 (3018),當對其肯定時返回步驟3008,當對其肯定時結束隊列構造的變換處理。
接著,與空閑隊列相關聯(lián)地說明圖沈的S2418的頁遷移處理。為了進行該說明, 以圖33所示的遷移為前提。即,使用圖34說明池卷#0的頁#1000的數(shù)據(jù)被復制到池卷#3 的頁#2000中,虛擬卷(DHP Vol#0)的針對前者的頁的映射被變更為針對后者的頁的映射18的過程。
再平衡處理程序3509確保移動中隊列,將其與空閑隊列#3連接,然后,從與被分配給池卷#3的空閑隊列#3連接的空閑區(qū)域中選擇成為移動目的地頁的對象區(qū)域3302,將該指針信息(池卷#3, #2000) 3303連接在移動中隊列(隊列#0)3300的最后(S3300)。通過與空閑隊列不同的隊列管理成為移動目的地頁的區(qū)域,這是為了不把成為移動目的地頁的區(qū)域分配給虛擬卷。
當再平衡處理程序從復制任務接收到頁數(shù)據(jù)的遷移已正常結束的通知時,清除向 VVOL WR中的頁(池卷#0,頁#1000)的映射3306的信息、即指針信息3304,將其變更為向移動目的地頁的地址(池卷#3,#2000)的指針信息(S3302),將移動源頁的地址插入到空閑隊列#的隊列構造的適當位置。而且,從移動中隊列中釋放移動目的地頁。
如圖35所示,當從移動源頁向移動目的地頁的數(shù)據(jù)遷移的過程通過來自主機裝置的I/O等而被中斷(3400)時,如圖36所示,再平衡處理程序確保移動中隊列,并清除對移動目的地隊列設定的指針信息3304,恢復為變更前的信息。
而且,確保成為移動目的地的頁3303原本存在的池卷的空閑隊列#3,檢索移動目的地頁3303作為空閑區(qū)域而插入該空閑隊列的位置。
再平衡處理程序將移動中隊列3300與空閑隊列(隊列#3)連接,將移動目的地頁 3303從移動中隊列3300釋放,而且將移動目的地頁與空閑隊列(隊列#3)連接。
如上所述,存儲裝置通過利用與空閑隊列不同的隊列、即移動中隊列,能夠進行頁的再配置,并且,即使將與頁再配置競爭的主機I/O等原因施加給存儲裝置,也可以使I/O 的處理優(yōu)先。
圖37A 圖37F是遷移的進度管理畫面,提供給管理用戶。基于上述的移動頁的計算結果,表示了頁的移動的進度。圖37A 圖37F是針對每個池卷匯集了移動前的頁的使用狀況的畫面。圖37A表示頁的移動前,圖37F表示頁的移動后。畫面中的數(shù)字表示頁數(shù)。
圖38A是以虛擬卷為單位匯集了頁移動前的頁數(shù)的畫面。圖38B是以虛擬卷為單位匯集了頁移動后的頁數(shù)的畫面。
因此,通過管理畫面向管理用戶提示了遷移的進度狀況。
在上述實施方式中,頁再平衡契機的判定、可否實施再平衡的判定由存儲裝置進行,但是也可以由管理裝置進行。在前者的情況下,存儲裝置成為本發(fā)明的計算機系統(tǒng),在后者的情況下,管理裝置和存儲裝置的組合成為計算機系統(tǒng)。
另外,在上述實施方式中說明了當頁遷移時計算移動頁數(shù)的情況,但是也可以由管理用戶每次輸入移動頁數(shù)。19
權利要求
1.一種計算機系統(tǒng),其特征在于, 具備具有存儲區(qū)域的存儲設備;允許來自上位裝置的訪問的虛擬邏輯區(qū)域; 具有所述存儲區(qū)域的多個實際邏輯區(qū)域;以及控制從所述實際邏輯存儲區(qū)域對所述虛擬邏輯區(qū)域的所述存儲區(qū)域的分配的控制器, 所述控制器,將多個實際邏輯區(qū)域作為組來分配給所述虛擬區(qū)域,對應于從所述上位裝置訪問所述虛擬邏輯區(qū)域,從屬于所述組的實際邏輯區(qū)域對所述虛擬邏輯區(qū)域依次分配具有成為基準的容量的存儲單位,當在所述組中追加了所述實際邏輯區(qū)域時,在所述組內的多個實際邏輯區(qū)域間變更所述存儲單位的分配,以使存儲容量在屬于所述組的多個實際邏輯區(qū)域間變得均等。
2.根據(jù)權利要求1所述的計算機系統(tǒng),其特征在于,所述控制器,在對空閑隊列連接未分配的存儲單位,并將所述存儲單位分配給所述虛擬卷時,從所述空閑隊列中釋放該存儲單位,將所釋放的存儲單位分配給所述虛擬卷, 針對每個池卷設定有多個所述空閑隊列, 具備登錄了選擇多個空閑隊列的順序的存儲器,所述控制器按照所述順序訪問所述多個空閑隊列,從所述空閑隊列中釋放與所述訪問的空閑隊列連接的未分配的所述存儲單位,并將所釋放的存儲單位分配給虛擬卷,具備第一實際邏輯區(qū)域、第二實際邏輯區(qū)域、屬于所述第一實際邏輯區(qū)域的第一存儲單位、和屬于所述第二實際邏輯區(qū)域的第二存儲單位,所述控制器從對所述第二實際邏輯區(qū)域分配的所述空閑隊列中釋放所述第二存儲單位,將所述第二存儲單位與作為數(shù)據(jù)轉移目的地而管理的特殊隊列連接,將所述第一存儲單位的數(shù)據(jù)復制到所述第二存儲單位,釋放所述第一存儲單位對于虛擬卷的分配,將所述第二存儲單位分配給所述虛擬卷,將所述第一存儲單位與針對所述第一實際邏輯存儲區(qū)域的空閑隊列連接,在被分配了所述第一存儲單位的所述虛擬卷的區(qū)域中存在來自所述上位裝置的訪問,并且在所述第一和第二實際存儲區(qū)域與所述虛擬卷之間中斷所述第一以及第二存儲單位的分配的變更時,從所述特殊隊列釋放所述第二存儲單位。
3.根據(jù)權利要求1所述的計算機系統(tǒng),其特征在于,所述控制器考慮所述多個實際邏輯區(qū)域的容量比,在所述多個實際邏輯區(qū)域間變更所述存儲單位的分配,以使所述存儲單位的分配比變得均等。
4.根據(jù)權利要求3所述的計算機系統(tǒng),其特征在于,所述控制器,對于所述多個實際邏輯存儲區(qū)域中的、所述存儲單位的分配比多的第一實際存儲區(qū)域,釋放所述存儲單位對于所述虛擬卷的分配,將該分配設定為所述存儲單位的分配比少于所述第一實際存儲區(qū)域的第二實際存儲區(qū)域的所述存儲單位。
5.根據(jù)權利要求4所述的計算機系統(tǒng),其特征在于,所述控制器將釋放了所述第一實際邏輯區(qū)域對于所述虛擬卷的分配的存儲單位的屬性變更為未分配。
6.根據(jù)權利要求1所述的計算機系統(tǒng),其特征在于,所述控制器,在被分配了所述存儲單位的所述虛擬卷的區(qū)域中存在來自所述上位裝置的訪問時,在所述多個實際存儲區(qū)域間中斷所述存儲單位的分配的變更。
7.根據(jù)權利要求1所述的計算機系統(tǒng),其特征在于,所述控制器在空閑隊列上連接未分配的存儲單位,在將所述存儲單位分配給所述虛擬卷時,從所述空閑隊列中釋放該存儲單位,將所釋放的存儲單位分配給虛擬卷。
8.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于, 針對每個池卷設定了多個所述空閑隊列。
9.根據(jù)權利要求8所述的計算機系統(tǒng),其特征在于, 具備登錄了選擇多個空閑隊列的順序的存儲器,所述控制器按照所述順序訪問所述多個空閑隊列,從所述空閑隊列中釋放與所述訪問的空閑隊列連接的未分配的所述存儲單位,并將釋放的存儲單位分配給虛擬卷。
10.根據(jù)權利要求8所述的計算機系統(tǒng),其特征在于, 具備第一實際邏輯區(qū)域; 第二實際邏輯區(qū)域;屬于所述第一實際邏輯區(qū)域的第一存儲單位;以及屬于所述第二實際邏輯區(qū)域的第二存儲單位, 所述控制器執(zhí)行如下處理從對于所述第二實際邏輯區(qū)域分配的所述空閑隊列中釋放所述第二存儲單位,將所述第二存儲單位與作為數(shù)據(jù)轉移目的地而管理的特殊隊列連接, 將所述第一存儲單位的數(shù)據(jù)復制到所述第二存儲單位, 釋放所述第一存儲單位對于虛擬卷的分配, 將所述第二存儲單位分配給所述虛擬卷,將所述第一存儲單位與針對所述第一實際邏輯存儲區(qū)域的空閑隊列連接。
11.根據(jù)權利要求10所述的計算機系統(tǒng),其特征在于,所述控制器,當在被分配了所述第一存儲單位的所述虛擬卷的區(qū)域中存在來自所述上位裝置的訪問,在所述第一和第二實際存儲區(qū)域和所述虛擬卷間中斷所述第一以及第二存儲單位的分配的變更時,從所述特殊隊列釋放所述第二存儲單位。
12.—種計算機系統(tǒng)的控制方法,其特征在于,在針對來自上位裝置的訪問,執(zhí)行向虛擬卷動態(tài)地分配存儲區(qū)域的運用的過程中,在池中追加了池卷時,使存儲區(qū)域在多個池卷間移動來維持存儲容量的平衡。
全文摘要
本發(fā)明的目的在于提供一種計算機系統(tǒng),其用于針對向虛擬邏輯區(qū)域動態(tài)地提供存儲容量的多個實際邏輯區(qū)域,迅速并且可靠地執(zhí)行存儲容量的均等化。本發(fā)明的計算機系統(tǒng),在針對來自上位裝置的訪問,執(zhí)行向虛擬卷動態(tài)地分配存儲區(qū)域的運用的過程中,在向池中追加了池卷時,使存儲區(qū)域在多個池卷間移動來維持存儲容量的平衡。
文檔編號G06F3/06GK102511030SQ20098015768
公開日2012年6月20日 申請日期2009年4月23日 優(yōu)先權日2009年4月23日
發(fā)明者井上信太郎, 井上浩伸, 高田豐 申請人:株式會社日立制作所