用于在遷移操作期間利用多個存儲器池的方法和裝置制造方法
【專利摘要】本發明公開了一種用于在遷移操作期間利用多個存儲器池的方法和裝置。提供了一種數據處理系統中用于利用多條路徑執行邏輯分區遷移的機制。響應于虛擬機監視器發起邏輯遷移操作以將邏輯分區從源系統移動至目的地系統,該機制從移動者服務分區向虛擬機監視器分配多個存儲器池和多個線程。該虛擬機監視器利用多個線程中的每一個將該多個存儲器池中相對應的一個從源系統傳輸至目的地系統以實施邏輯分區遷移操作而執行邏輯分區遷移操作。
【專利說明】用于在遷移操作期間利用多個存儲器池的方法和裝置
【技術領域】
[0001] 本發明總體上涉及有所改進的數據處理裝置和方法,尤其涉及用于在遷移操作期 間利用多個存儲器池以提升性能并更好地利用系統資源的機制。
【背景技術】
[0002] 動態分區遷移(LPM)是p〇\VER6?和POWER7?.服務器的特征其允許正在 運行的邏輯分區(LPAR)從一個系統重新定位至另一系統。P0WER6和P0WER7是國際商業 機器公司在美國和其它國家的商標。源和目標系統必須對相同網來進行訪問,而存儲域網 絡(SAN)則無需為相同類型。雖然可能使用多路徑軟件在移動的持續時間內針對虛擬適配 器進行故障處理,但是有待重新定位的分區必須被完全虛擬化(即,沒有專用的輸入/輸出 (I/O)適配器)。
[0003] 能夠對任意大小的分區進行移動;實質上,存儲器被異步地從一個系統復制到另 一個系統而創建正在運行的分區的克隆,其具有在必要情況下被重復復制的"臟"頁面。當 達到閾值時(即,當高百分比的頁面已被成功跨越復制時),分區被遷移至目標機器并且任 何剩余頁面被同時跨越復制。執行存儲器復制的代理在每個機器上被命名為虛擬I/O服務 器(VIOS)。為了跨多個服務器的負載平衡以及節能,LPM被用來避免計劃服務器維護的中 斷。
【發明內容】
[0004] 在一個說明性實施例中,提供了一種數據處理系統中的方法,其包括:響應于虛擬 機監視器發起邏輯遷移操作以將邏輯分區從源系統移動至目的地系統,從移動者(mover) 服務分區向虛擬機監視器分配多個存儲器池和多個線程。該方法進一步包括:由虛擬機監 視器執行邏輯分區遷移操作。該虛擬機監視器使用該多個線程中的每一個將該多個存儲器 池中相對應的一個從源系統傳輸至目的地系統以實施邏輯分區遷移操作。
[0005] 在其它說明性實施例中,提供了 一種計算機程序產品,其包括具有計算機可讀程 序的計算機可用或可讀介質。當在計算設備上執行時,該計算機可讀程序使得該計算設備 執行以上關于方法說明性實施例所概述的各項操作及其組合。
[0006] 在又另一個說明性實施例中,提供了一種系統/裝置。該系統/裝置可以包括一 個或多個處理器以及耦合至該一個或多個處理器的存儲器。該存儲器可以包括指令,當被 該一個或多個處理器所執行時,該指令使得該一個或多個處理器執行以上關于方法說明性 實施例所概述的各項操作及其組合。
[0007] 本發明的這些和其它特征將在隨后對本發明的示例實施例的詳細描述中進行描 述,或者將在本領域技術人員考慮到上述描述時變得顯而易見。
【專利附圖】
【附圖說明】
[0008] 通過在結合附圖進行閱讀時參考以下對說明性實施例的詳細描述,將最佳地理解 本發明及其優選使用模式以及另外的目標和優勢,其中:
[0009] 圖1描繪了可以在其中實施說明性實施例的各方面的示例分布式數據處理系統 的圖形表示形式;
[0010] 圖2是可以在其中實施說明性實施例的各方面的示例數據處理系統的框圖;
[0011] 圖3是圖示依據一個實施例的利用單個存儲器池進行分區遷移的框圖;
[0012] 圖4是圖示依據說明性實施例的利用多個存儲器池和多線程分配進行分區遷移 的框圖;
[0013] 圖5是圖示依據說明性實施例的利用多條路徑進行分區遷移的框圖;
[0014] 圖6是圖示依據說明性實施例的利用多條路徑執行分區遷移的源系統的操作的 流程圖;和
[0015] 圖7是圖示依據說明性實施例的利用多條路徑執行分區遷移的目的地系統的操 作的流程圖。
【具體實施方式】
[0016] 說明性實施例提供了一種在遷移操作期間利用多個存儲器池以提升性能并更好 地利用系統資源的機制。動態分區遷移(LPM)提供了將正在運行的分區連同其操作系統 (OS)和應用一起從一個物理服務器(S卩,計算機電子綜合(CEC))移動至另一個而并不中斷 該分區的操作的能力。虛擬異步服務接口(VASI)虛擬機和虛擬I/O服務器(VIOS)分區上 的移動者內核擴展提供了將分區狀態從一個系統傳輸至另一個的功能。被配置為利用該功 能的VIOS被認為是移動者服務分區(MSP)。
[0017] POWER?管理程序(PHYP)是了解包括客戶端分區的存儲器在內的客戶端分 區狀態的瘦固件等級。管理程序一種數據處理系統的虛擬機監視器(VMM),其創建、運行并 管理虛擬機(邏輯分區)。管理程序或VMM還執行分配至邏輯分區的資源的虛擬化并且執 行用于運行和管理邏輯分區的其它功能。雖然這里所描述的示例實施例可以被稱作PHYP 或者更一般地被稱作管理程序,但是本發明的各方面應用于任意形式的虛擬化組件或VMM。
[0018] 在主動遷移期間,PHYP在每個遷移操作使用單個存儲器池以將源系統上的客戶端 存儲器發送至目的地系統,并且PHYP在每個遷移操作使用單個存儲器池以在目的地系統 上接收客戶端存儲器。這種往來于PHYP的發送和接收存儲器緩沖器的處理當前是單線程 的。所有緩沖器都必須以正確順序每次一個地進行發送和接收。這種方法的缺陷在于,其 并未充分利用系統資源和網絡帶寬。
[0019] 說明性實施例為PHYP提供了將該處理劃分為單獨線程以提高遷移性能并更好地 利用系統資源的機制,其中每個線程在不同存儲器上進行操作。說明性實施例創建往來于 PHYP的多條路徑。通過去除PHYP按順序發送存儲器頁面的要求,說明性實施例能夠得以被 建立以利用均連接至不同套接字(socket)的多個線程,由此創建在其自己的單獨存儲器 池上進行操作的獨立并行路徑,因此顯著提高LPM的性能。
[0020] 說明性實施例的機制減少了動態遷移操作運行的時間量,并且這些機制提供了一 種減少遷移操作所必須的VIOS資源數量的機制,其優勢在于允許整體系統利用并且可能 節約成本。說明性實施例的機制減少了移動操作對由VIOS服務的非遷移客戶端的影響。
[0021] 本發明的說明性實施例的以上方面和優勢將在下文中參考附圖進行更為詳細地 描述。應當意識到的是,附圖僅意在說明本發明的示例性實施例。本發明可以包含所描繪 的實施例并未在圖中明確示出但是將本領域技術人員在考慮到這里對說明性實施例的描 述時輕易變為顯而易見的方面、實施例和修改。
[0022] 如本領域技術人員將會意識到的,本發明的各方面可以被體現為系統、方法或計 算機程序產品。因此,本發明的各方面可以采取全硬件實施例、全軟件實施例(包括固件、 駐留軟件、微代碼等)或將軟件和硬件方面相結合的實施例的形式,它們全部在這里可以 被統稱為"電路"、"模塊"或"系統"。此外,本發明的各方面可以采取在具有記錄于其上的 計算機可用程序代碼的一個或多個計算機可讀介質中所體現的計算機程序產品的形式。
[0023] 可以利用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機 可讀信號介質或計算機可讀存儲介質。計算機可讀存儲介質可以是電子、磁性、光學、電磁 或半導體屬性的系統、裝置或設備,以上的任意組合或者其等同物。計算機可讀存儲介質的 更為具體的示例(非窮舉列舉)將包括以下:具有存儲能力的電子設備、便攜式計算機碟 片、硬盤、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM或閃 存)、基于光纖的設備、便攜式緊致盤只讀存儲器(CDROM)、光學存儲設備、磁性存儲設備, 或者以上的任意適當組合。在本文的上下文中,計算機可讀存儲介質可以是能夠包含或存 儲程序以便例如由指令執行系統、裝置或設備所使用或者結合其使用的任意有形介質。
[0024] 在一些說明性實施例中,計算機可讀介質是非瞬時計算機可讀介質。非瞬時計算 機可讀介質并非是無實質信號或傳播波形即單純的信號或傳播波形本身的任意介質。非瞬 時計算機可讀介質可以利用信號和傳播波形,但并非信號或傳播波形本身。因此,例如,以 任意方式對信號加以利用以例如保持其狀態的各種形式的存儲器設備和其它類型的系統、 設備或裝置都可以被認為是處于本描述范圍之內的計算機可讀介質。
[0025] 另一方面,計算機可讀信號介質可以包括具有例如在基帶中或者作為載波的一部 分而記錄于其中的計算機可讀程序代碼的傳播數據信號。這樣的傳播信號可以采取任何的 各種形式,包括但并不局限于電磁、光學或者其任意適當組合。計算機可讀信號介質可以是 并非計算機可讀存儲介質并且能夠傳輸、傳播或輸送程序以便由指令執行系統、裝置或設 備使用或者結合它們使用的任意計算機可讀介質。類似地,計算機可讀存儲介質是并非計 算機可讀信號介質的任意計算機可讀介質。
[0026] 記錄在計算機可讀介質上的程序代碼可以使用任意適當介質進行傳送,包括但并 不局限于無線、有線、光纖線纜、射頻(RF)等或者以上的任意適當組合。
[0027] 用于執行本發明各方面的計算機程序代碼可以以一種或多種編程語言的任意組 合進行編寫,包括諸如Java?、Smalltalk?、C++等的面向對象編程語言或諸如"C"編程語 言的常規過程編程語言或者類似的編程語言。程序代碼可以完全在用戶計算機上執行,作 為獨立軟件包部分地在用戶計算機上執行,部分地在用戶計算機上執行而部分地在遠程計 算機上執行,或者完全在遠程計算機上執行。在后者的情況下,遠程計算機可以通過任意類 型的網絡連接至用戶計算機,包括局域網(LAN)或廣域網(WAN),或者可以形成到外部計算 機的連接(例如,使用互聯網服務提供商而通過互聯網)。
[0028] 以下參考根據本發明實施例的方法、裝置(系統)和計算機程序產品的流程圖和 /或框圖對本發明的各方面進行描述。將要理解的是,流程圖和/或框圖中的每個框以及 流程圖和/或框圖中的框的組合能夠由計算機程序指令來實施。這些計算機程序指令可以 被提供至通用計算機、專用計算機或者其它可編程數據處理裝置的處理器以產生機器,而 使得經由計算機或其它可編程數據處理裝置的處理器執行的指令創建用于實施流程圖和/ 或框圖中的一個或多個框中所指定的功能/操作的器件。
[0029] 這些計算機程序指令還可以存儲在計算機可讀介質中,其能夠指示計算機、其它 可編程數據處理裝置或其它設備以特定方式進行工作,而使得計算機可讀介質中所存儲的 指令產生制品,其包括實施流程圖和/或框圖中的一個或多個框中所指定的功能/操作的 指令。
[0030] 計算機程序指令還可以被加載到計算機、其它可編程數據處理裝置或其它設備上 以使得一系列操作步驟得以在計算機、其它可編程裝置或其它設備上執行而產生計算機實 施的處理,從而使得在計算機或其它可編程裝置上執行的指令提供用于實施流程圖和/或 框圖中的一個或多個框中所指定的功能/操作的處理。
[0031] 附圖中的流程圖和框圖圖示了根據本發明各個實施例的系統、方法和計算機程序 產品的可能實施方式的架構、功能和操作。就此而言,流程圖或框圖中的每個框可以表示代 碼的模塊、分段或部分,其包括用于實施所指定的(多種)邏輯功能的一個或多個可執行指 令。還應當注意的是,在一些可替換實施方式中,框中所提到的功能可以以與不同與圖中所 提及的順序來執行。例如,根據所涉及的功能,連續示出的兩個框實際上可以基本上并行執 行,或者這些框有時可以以相反順序來執行。還將要注意到的是,框圖和/或流程圖圖示中 的每個框以及框圖和/或流程圖圖示中的框的組合可以由執行所指定功能或操作的專用 的基于硬件的系統來實施,或者由專用硬件和計算機指令的組合來實施。
[0032] 因此,說明性實施例可以在許多不同類型的數據處理環境中得以被利用。為了提 供說明性實施例的具體要素和功能的描述的背景,隨后提供圖1和2作為可以在其中實施 說明性實施例的各個方面的示例環境。應當意識到的是,圖1和2僅是示例而并非意在于 在可以在其中實施本發明實施例或各方面的環境方面聲明或暗示任何限制。可以針對所描 繪環境進行許多修改而并不背離本發明的精神和范圍。
[0033] 圖1描繪了可以在其中實施說明性實施例的各方面的示例分布式數據處理系統 的圖形表示形式。分布式數據處理系統100可以包括可以在其中實施說明性實施例的各方 面的計算機的網絡。分布式數據處理系統100包含至少一個網絡102,其是用來在分布式數 據處理系統100內連接在一起的各種設備和計算機之間提供通信鏈路的介質。網絡102可 以包括連接,諸如連線、無線通信鏈路或光纖線纜。
[0034] 在所描繪的實施例中,服務器104和服務器106連同存儲單元108 -起連接至網 絡102。此外,客戶端110、112和114也連接至網絡102。這些客戶端110、112和114例如 可以是個人計算機、網絡計算機等。在所描繪的示例中,服務器104向客戶端110U12和 114提供諸如引導文件、操作系統鏡像和應用之類的數據。客戶端110U12和114在所描繪 示例中是指向服務器104的客戶端。分布式數據處理系統可以包括另外的服務器、客戶端 以及沒有示出的其它設備。
[0035] 在所描繪的示例中,分布式數據處理系統100是互聯網,其中網絡102表示使用傳 輸控制協議/互聯網協議(TCP/IP)協議套接字以互相通信的網絡和網關的全球性集合。在 互聯網的核心處是主要節點或主機計算機之間的高速數據通信線路的骨干,其由路由數據 和消息的成千上萬個商業、政府、教育和其它計算機系統所組成。顯然,分布式數據處理系 統100還可以被實施為包括多種不同類型的網絡,例如企業內部網、局域網(LAN)、廣域網 (WAN)等。如以上所指出的,圖1意在作為本發明不同實施例的示例而非其架構限制,因此 圖1所示的特定部件并不應當被視為在可以在其中實施本發明的說明性實施例的環境方 面進行限制。
[0036] 圖2是可以在其中實施說明性實施例的各方面的示例數據處理系統的框圖。數據 處理系統200是諸如圖1的客戶端110的計算機的示例,實施本發明說明性實施例的處理 的計算機可用代碼或指令可以位于其中。
[0037] 在所描繪的示例中,數據處理系統200采用集線器架構,其包括北橋和存儲器控 制器集線器(NB/MCH)202以及南橋和輸入/輸出(I/O)控制器集線器(SB/ICH)204。處理 器單元206、主存儲器208和圖形處理器210連接至NB/MCH202。圖形處理器210可以通過 加速圖形端口(AGP)連接至NB/MCH202。
[0038] 在所描繪的示例中,局域網(LAN)適配器212連接至SB/ICH204。音頻適配器 216、鍵盤和鼠標適配器220、調制解調器222、只讀存儲器(ROM) 224、硬盤驅動器(HDD) 226、 ⑶-ROM驅動器230、通用串行總線(USB)端口和其它通信端口 232以及PCI/PCIe設備234 通過總線238和總線240連接至SB/ICH204。PCI/PCIe設備例如可以包括以太網適配器、 插卡以及用于筆記本計算機的PC卡。PCI使用卡總線控制器,而PCIe則并非如此。R0M224 例如可以是閃存基本輸入/輸出系統(BIOS)。
[0039] HDD226 和 CD-ROM 驅動器 230 通過總線 240 連接至 SB/ICH204。HDD226 和 CD-ROM 驅動器230例如可以使用集成驅動電子器件(IDE)或串行高級技術附件(SATA)接口。超 級I/0(SI0)設備236可以連接至SB/ICH204。
[0040] 操作系統在處理單元206上運行。操作系統協調并提供圖2中的數據處理系 統200內的各個組件的控制。作為客戶端,操作系統可以是可商業獲得的操作系統,諸如 Mierosoffv Windows 7?。諸如Java?編程系統之類的面向對象編程系統可以結合操 作系統運行并且從數據處理系統200上執行的Java?程序或應用向操作系統提供調用。
[0041] 作為服務器,數據處理系統200例如可以是丨BM_:l<:_eServer_'' System P?計算 機系統,其運行高級交互執行(AIX? )操作系統或LINUX?操作系統。數據處理系統 200可以是對稱多處理器(SMP)系統,其在處理單元206中包括多個處理器。可替換地,可 以采用單處理器系統。
[0042] 用于操作系統、面向對象編程系統以及應用或程序的指令位于諸如HDD226的存 儲設備上,并且可以被加載到主存儲器208中以便由處理單元206所執行。例如,本發明的 說明性實施例的處理可以由處理單元206使用計算機可用程序代碼來執行,后者可以被加 載到例如主存儲器208、R0M224或者一個或多個外圍設備226和230的存儲器中。
[0043] 諸如圖2所示的總線238或總線240的總線系統可以由一個或多個總線所組成。 顯然,該總線系統可以使用在接合至構造(fabric)或架構的不同組件或設備之間提供數 據傳輸的任意類型的通信構造或架構來實施。諸如圖2的調制解調器222或網絡適配器 212的通信單元可以包括用來傳送和接收數據的一個或多個設備。存儲器可以是例如主存 儲器208、R0M224或者諸如在圖2的NB/MCH202所找到的高速緩存。
[0044] 本領域技術人員將會意識到,圖1和2的硬件可以根據實施方式而有所變化。除 了圖1和2中所描繪的硬件之外或者作為其替代,可以使用諸如閃存、等同非易失性存儲器 或光盤驅動器等的其它內部硬件或外圍設備。而且,說明性實施例的處理可以被應用于多 處理器數據處理系統,而不是之前所提到的SMP系統,這并不背離本發明的精神和范圍。
[0045] 此外,數據處理系統200可以采取任意多種不同數據處理系統的形式,包括客戶 端計算設備、服務器計算設備、平板計算機、膝上計算機、電話或其它通信設備、個人數字助 理(PDA)等。例如,在一些說明性示例中,數據處理系統200可以是便攜式計算設備,其被 配置有閃存以提供用于存儲操作系統文件和/或用戶所生成數據的非易失性存儲器。實質 上,數據處理系統200可以是任意已知或后續研發的數據處理系統而并沒有架構限制。
[0046] 圖3是圖示依據一個實施例的利用單個存儲器池進行分區遷移的框圖。離開的移 動分區311正在從源系統310遷移至目的地系統320。在分區遷移操作中,虛擬機監視器 (VMM) 315提供支持以將離開的移動分區311的狀態和存儲器鏡像從原系統310中的移動者 服務分區(MSP)傳輸至目的地系統320中的MSP 321。VMM 325提供支持以使用目的地系 統320中的MSP321接收到達的移動分區322的狀態和存儲器鏡像。
[0047] MSP 312包括移動者/VASI設備驅動器313,并且MSP 321包括移動者/VASI設備 驅動器323。移動者/VASI設備驅動器313向VMM315分配線程和存儲器池,而移動者/VASI 設備驅動器323向VMM325分配線程和存儲器池以執行分區遷移操作。VMM315發送并追蹤 客戶端分區的存儲器并且潛在可能地在客戶端分區在幾乎所有遷移操作期間繼續運行時 重新發送臟頁面。
[0048] 客戶端的存儲器鏡像可能非常大,特別是在運行數據庫的客戶端中。此外,由于當 前采用LPM功能的速率,存在著朝向支持更高數量的并行遷移操作的持續推動力。然而,使 用單個線程和單個存儲器池發送和接收客戶端存儲器鏡像的處理并未充分利用系統資源 和網絡帶寬。
[0049] 圖4是圖示依據說明性實施例的利用多個存儲器池和多線程分配進行分區遷移 的框圖。離開的移動分區411正從源系統410遷移至目的地系統420。在分區遷移操作中, VMM 415提供支持以將離開的移動分區411的狀態和存儲器鏡像從源系統410中的移動者 服務分區(MSP) 412傳輸至目的地系統420中的MSP 422。VMM 425提供支持以使用目的地 系統420中的MSP 422接收到達的移動分區421狀態和存儲器鏡像。
[0050] MSP 412包括移動者/VASI設備驅動器413,而MSP 422包括移動者/VASI設備驅 動器423。移動者/VASI設備驅動器413向VMM415分配線程和存儲器池,而移動者/VASI 設備驅動器423向VMM425分配線程和存儲器池以執行分區遷移操作。VMM 415發送并追蹤 客戶端分區的存儲器并且潛在可能地在客戶端分區在幾乎所有遷移操作期間繼續運行時 重新發送臟頁面。
[0051] 依據該說明性實施例,MSP 412向VMM 415分配多個存儲器池和多個線程,而MSP 422向VMM 425分配多個存儲器池和多個線程。VMM 415、425在用于單個遷移操作的每個 MSP配對使用多個池和線程而使得離開的分區411的存儲器能夠在多個可用配對之間進行 劃分,因此潛在地以指數方式增加帶寬。將存儲器劃分為多個池能夠在不對諸如硬件管理 控制臺(HMC)(未示出)的LPM編制器(orchestrator)進行任何改變的情況下來實施,因 為遷移操作的數據通過單個流標識符(ID)進行追蹤。MSP412向VMM 415以及MSP 422向 VMM 425所分配的每個線程都向其流添加子ID以便在MSP 412、422之間以及在VMM 415、 425之間得以識別。HMC僅了解存在單個遷移而并不知道存在多個存儲器池、線程或套接字 (socket)〇
[0052] 圖5是圖示依據說明性實施例的利用多條路徑進行分區遷移的框圖。離開的移動 分區(未示出)正從源系統510遷移至目的地系統520。在分區遷移操作中,VMM 515提 供支持以將離開的移動分區511的狀態和存儲器鏡像從源系統510中的移動者服務分區 (MSP)傳輸至目的地系統520中的MSP 522。VMM 525提供支持以使用目的地系統520中的 MSP 522接收到達的移動分區521狀態和存儲器鏡像。
[0053] 依據該說明性實施例,MSP 512向VMM 515分配多個存儲器池531、532和多個線 程541、542以便進行分區遷移操作。作為移動操作的一部分,MSP 522向VMM525分配多個 存儲器池561、562和多個線程551、552以便進行分區遷移操作。VMM 515將離開的移動分 區511的存儲器鏡像劃分為存儲器池531、532。VMM 515將每個存儲器池531、532分割為 緩沖器。VMM 515去除存儲器池531、532之間的排序,但是保持每個存儲器池531、532內的 排序。在一個實施例中,VMM 515并不對存儲器頁面進行拆分,這導致存儲器池531、532內 的緩沖器被部分填充。
[0054] 線程1 541經由套接字1 571將存儲器池1 531的內容發送至目的地系統520上 的MSP 522。與之并行地,線程2 542經由套接字2 572將存儲器池2 532的內容發送至目 的地系統520的MSP 522。套接字571、572將流ID用于分區遷移操作。線程1 541將子 ID添加至套接字1 571,并且線程2542將不同的子ID添加至套接字2572。就涉及到硬件 管理控制臺(HMC)而言,存在一個利用單個流ID的分區遷移。
[0055] 線程1 551經由套接字1571接收到達分區521的內容并且將該內容存儲在存儲 器池1 561中。與之并行地,線程522經由套接字2 572接收到達分區521的內容并且將 該內容存儲在存儲器池2 562中。每個存儲器池561、562按順序到達。VMM 525將存儲器 池1 561和存儲器池2 562進行合并,保持離開分區511的存儲器鏡像的存儲器頁面的原 有順序,以形成到達分區521的存儲器頁面。
[0056] 雖然在圖5中所描繪的示例示出了兩個存儲器池和兩個線程,但是根據可用的系 統資源、所期望性能和其它考慮而可以使用任意數量的存儲器池和線程。例如,當管理員預 期大量分區遷移時,管理員可以向移動服務分區分配附加系統資源以便可用于分配給VMM 進行分區遷移操作。為分區遷移分配附加系統資源減少了分區遷移操作所需的時間量,為 到臟頁面的移動分區留下更少的時間并且最終減少遷移操作所必需的VIOS(MSP)資源的 數量。
[0057] 圖6是圖示依據說明性實施例的利用多條路徑執行分區遷移的源系統的操作的 流程圖。操作開始(框600),并且移動者服務分區(MSP)分配多個存儲器池和多個線程以 便由虛擬機管理器(VMM)用于分區遷移操作(框601)。VMM在多個存儲器池之間對離開分 區的存儲器鏡像進行劃分(框602)。VMM將每個存儲池分割為緩沖器。VMM去除存儲器池 之間的排序但是保持每個存儲器池內的排序。在一個實施例中,VMM并不拆分存儲器頁面, 使得存儲器池內的緩沖器被部分填充。
[0058] VMM隨后并行地使用多個流將存儲器池的內容發送至目的地系統(框603)。每個 線程經由個體套接字而將相對應存儲器池的內容發送至目的地系統的MSP。套接字將流ID 用于分區遷移操作。每個線程向其相對應的套接字添加唯一的子ID。就涉及到硬件管理控 制臺(HMC)而言,存在有一個利用單個流ID進行的分區遷移。隨后,操作結束(框604)。
[0059] 圖7是圖示依據說明性實施例的利用多條路徑執行分區遷移的目的地系統的操 作的流程圖。操作開始(框700),并且MSP分配多個存儲器池和多個線程以便由VMM用于 分區遷移(框701)。VMM經由多個線程從源系統并行接收多個流(框702)。
[0060] VMM按順序接收每個流并且將內容存儲到多個存儲器池中(框703)。每個線程經 由個體套接字接收相對應的流并且將內容存儲在相對應的存儲器池中。隨后,VMM將多個 存儲器池進行合并以形成到達分區的存儲器鏡像(框704)。隨后,操作結束(框705)。 [0061] 如以上所提到的,應當意識到的是,說明性實施例可以采取全硬件實施例、全軟件 實施例或包含軟件和硬件二者的實施例的形式。在一個示例實施例中,說明性實施例的機 制以軟件或程序代碼來實施,其包括但并不局限于固件、駐留軟件、微代碼等。
[0062] 適用于存儲和/或執行程序代碼的數據處理系統將包括至少一個處理器,其通過 系統總線直接或間接耦合至存儲器部件。該存儲器部件可以包括在程序代碼的實際執行期 間所采用的本地存儲器、分塊存儲,以及提供至少一些程序代碼的臨時存儲以便減少在執 行期間必須從分塊存儲獲取代碼的次數的高速緩存存儲器。
[0063] 輸入/輸出或I/O設備(包括但并不局限于鍵盤、顯示器、指示設備等)能夠直接 或者通過中間I/O控制器耦合至系統。網絡適配器也可以耦合至系統而使得數據處理系統 能夠變為通過中間的私有或公眾網絡而耦合至其它數據處理系統或遠程打印機或存儲設 備。調制解調器、有線調制解調器和以太網卡僅是幾種當前可用的網絡適配器類型。
[0064] 已經出于說明和描述的目的給出了本發明的描述,并且其并非意在是窮舉的或者 將本發明限制為所公開的形式。許多修改和變化對于本領域技術人員將是顯而易見的。實 施例被選擇并描述以便遍對本發明的原理、實際應用進行最佳解釋,并且使得本領域技術 人員能夠理解適用于所預期的特定用途的具有各種修改的各個實施例的本發明。
【權利要求】
1. 一種數據處理系統中的方法,包括: 響應于虛擬機監視器發起邏輯分區遷移操作W將邏輯分區從源系統移動至目的地系 統,從移動者服務分區向所述虛擬機監視器分配多個存儲器池和多個線程;并且 由虛擬機監視器執行所述邏輯分區遷移操作,其中所述虛擬機監視器使用所述多個線 程中的每一個將所述多個存儲器池中相對應的一個存儲器池從所述源系統傳輸至所述目 的地系統W實施所述邏輯分區遷移操作。
2. 根據權利要求1所述的方法,其中所述虛擬機監視器在所述源系統中執行,其中執 行所述邏輯分區遷移操作包括在所述多個存儲器池之間對所述邏輯分區的存儲器鏡像進 行拆分。
3. 根據權利要求2所述的方法,其中所述虛擬機監視器將每個存儲器池分割為多個緩 沖器并且按順序將整個存儲器頁面分配給所述多個緩沖器。
4. 根據權利要求2所述的方法,其中所述虛擬機監視器按順序傳輸每個存儲器池。
5. 根據權利要求2所述的方法,其中所述虛擬機監視器并行傳輸所述多個存儲器池。
6. 根據權利要求2所述的方法,其中所述多個線程中的每一個經由相應套接字傳輸 所述多個存儲器池中相對應的一個存儲器池,其中所述邏輯分區遷移操作與流標識符相關 聯,其中所述多個線程中的每一個添加子標識符,并且其中每個相應套接字與所述流標識 符和相對應的子標識符相關聯。
7. 根據權利要求1所述的方法,其中所述虛擬機監視器在所述目的地系統中執行,所 述方法進一步包括將所述多個存儲器池進行組合W在所述目的地系統形成所述邏輯分區 的存儲器鏡像。
8. 根據權利要求7所述的方法,其中所述多個線程中的每一個經由相應套接字接收流 并且將所述流存儲在所述多個存儲器池中相對應的一個存儲器池中。
9. 根據權利要求8所述的方法,其中所述邏輯分區遷移操作與流標識符相關聯,并且 其中每個相應套接字與所述流標識符和相對應的子標識符相關聯。
10. 根據權利要求8所述的方法,其中所述多個線程并行接收并存儲所述多個存儲器 池。
11. 一種裝置,包括: 處理器;和 禪合至所述處理器的存儲器,其中所述存儲器包括指令,當被所述處理器執行時,所述 指令使得所述處理器: 響應于虛擬機監視器發起邏輯遷移操作W將邏輯分區從源系統移動至目的地系統,從 移動者服務分區向所述虛擬機監視器分配多個存儲器池和多個線程;并且 由所述虛擬機監視器執行所述邏輯分區遷移操作,其中所述虛擬機監視器使用所述多 個線程中的每一個W將所述多個存儲器池中相對應的一個存儲器池從所述源系統傳輸至 所述目的地系統W實施所述邏輯分區遷移操作。
12. 根據權利要求11所述的裝置,其中所述虛擬機監視器在所述源系統中執行,其中 執行所述邏輯分區遷移操作包括在所述多個存儲器池之間對所述邏輯分區的存儲器鏡像 進行拆分。
13. 根據權利要求12所述的裝置,其中所述虛擬機監視器按順序傳輸每個存儲器池, 并且其中所述虛擬機監視器并行傳輸所述多個存儲器池。
14. 根據權利要求12所述的裝置,其中所述多個線程中的每一個經由相應套接字傳輸 所述多個存儲器池中相對應的一個存儲器池,其中所述邏輯分區遷移操作與流標識符相關 聯,其中所述多個線程中的每一個添加子標識符,并且其中每個相應套接字與所述流標識 符和相對應的子標識符相關聯。
15. 根據權利要求11所述的裝置,其中所述虛擬機監視器在所述目的地系統中執行, 所述方法進一步包括將所述多個存儲器池進行組合W在所述目的地系統形成所述邏輯分 區的存儲器鏡像。
16. 根據權利要求15所述的裝置,其中所述多個線程中的每一個經由相應套接字接收 流并且將所述流存儲在所述多個存儲器池中相對應的一個存儲器池,其中所述邏輯分區遷 移操作與流標識符相關聯,其中每個相應套接字與所述流標識符和相對應的子標識符相關 聯,并且其中所述多個線程并行接收并存儲所述多個存儲器池。
【文檔編號】G06F11/14GK104346240SQ201410379937
【公開日】2015年2月11日 申請日期:2014年8月4日 優先權日:2013年8月5日
【發明者】M·D·加爾扎, N·R·馬里昂, N·S·湯姆西克, V·瓦拉布哈內尼 申請人:國際商業機器公司