TW201926053A - 在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機 - Google Patents

在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機 Download PDF

Info

Publication number
TW201926053A
TW201926053A TW106141850A TW106141850A TW201926053A TW 201926053 A TW201926053 A TW 201926053A TW 106141850 A TW106141850 A TW 106141850A TW 106141850 A TW106141850 A TW 106141850A TW 201926053 A TW201926053 A TW 201926053A
Authority
TW
Taiwan
Prior art keywords
virtual machine
host
source
virtual
computing
Prior art date
Application number
TW106141850A
Other languages
English (en)
Other versions
TWI645293B (zh
Inventor
李肇棠
蕭泰華
涂政君
徐鵬凱
Original Assignee
財團法人工業技術研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Priority to TW106141850A priority Critical patent/TWI645293B/zh
Priority to US15/851,331 priority patent/US10838762B2/en
Priority to CN201711403699.6A priority patent/CN109857511A/zh
Application granted granted Critical
Publication of TWI645293B publication Critical patent/TWI645293B/zh
Publication of TW201926053A publication Critical patent/TW201926053A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,用於一系統中,上述方法包括:由一來源端計算主機遷移在上述來源端計算主機中的一來源端虛擬機器至一目的端計算主機中一目的端虛擬機器,其中上述來源端虛擬機器包括一來源端虛擬功能;由上述目的端計算主機傳送一請求訊息至一管理主機;以及由上述管理主機根據上述請求訊息重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器。

Description

在多根輸入輸出虛擬化環境中虛擬機器即時遷移的 方法、系統及其計算主機
本揭露係涉及一種電腦系統的虛擬化技術,且更加具體地說係有關於一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法、系統及其計算主機。
電腦系統(像是,桌上型電腦或筆記型電腦)皆需透過匯流排(Bus)來與周邊元件傳輸資料。隨著串列通訊(Serial Communication)技術的快速發展,具有高傳輸速率優勢的快速周邊元件互連(Peripheral Component Interconnection Express,PCIe)已逐漸取代周邊元件互連(Peripheral Component Interconnection,PCI),而成為新一代的周邊元件傳輸介面。
近年來,隨著網際網路(Internet)的快速發展,使用者對於資訊服務的需求越來越高,伺服器的負擔亦越來越大。因此,為了降低成本及有效利用資源,伺服器虛擬化技術逐漸成為發展的趨勢。而在快速周邊元件互連的規格中,單根輸入輸出虛 擬化(Single Root I/O Virtualization,SR-IOV)為伺服器虛擬化的一種有效解決方案。單根輸入輸出虛擬化技術可以讓實體主機(例如:計算主機)分派多個虛擬功能(Virtual Function,VF)給不同虛擬機器(Virtual Machine,VM)。然而,單根輸入輸出虛擬化技術具有僅能支援單一實體主機的限制。換言之,單一實體主機中的多個虛擬機器可以同時使用上述虛擬功能,但是上述虛擬功能不能同時分派給多個實體主機中的虛擬機器器使用。相對而言,多根輸入輸出虛擬化(Mult1-Root I/O Virtualization,MR-IOV)技術可虛擬化硬體資源以支援多個實體主機。
即時遷移(Live migration)通常係將虛擬機器從來源端實體機器移動至目的端實體機器,其不會影響虛擬機器處理的正確性,且不會顯著影響虛擬機器的可用性。執行即時遷移有很多種方法。直通(Pass-through)網路裝置常被用以執行虛擬機器的即時遷移。然而,即時遷移在直通網路裝置中帶來了挑戰,特別是在遷移支持MR-IOV的虛擬功能時。舉例來說,(1)直通網路裝置所控制之虛擬機器監視器(Hypervisor)並無法保存及恢復硬體狀態;(2)在即時遷移期間,如果已接收的資料未被正確處理,則接收網路封包的直通網路裝置中之應用可能會遭受資料丟失的困擾:(3)在即時遷移後,目的端主機必須為已遷移的虛擬機器配置新的網路介面卡(Network Interface Card,NIC)。但是,網路介面卡驅動程序仍具有原始驅動器狀態:以及(4)在即時遷移後,虛擬功能需被重置以同步驅動器及硬體狀態。
因此,有必要提供一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機,以在即時遷移 後,在新虛擬機器中可提供原始虛擬功能最佳且完整的驅動器及硬體狀態。
以下揭露的內容僅為示例性的,且不意指以任何方式加以限制。除所述說明方面、實施方式和特徵之外,透過參照附圖和下述具體實施方式,實施方式和特徵也將顯而易見。即,以下揭露的內容被提供以介紹概念、重點、益處及本文所描述新穎且非顯而易見的技術優勢。所選擇,非所有的,實施例將進一步詳細描述如下。因此,以下揭露的內容並不意旨在所要求保護主題的必要特徵,也不意旨在決定所要求保護主題的範圍中使用。
本揭露提供一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機。
本揭露提出一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法,用於一系統中,其中上述系統係至少由複數計算主機、一MR-IOV裝置及包括一實體功能(Physical Function,PF)並執行複數虛擬功能(Virtual Function,VF)的一管理主機所組成,每一計算主機及上述管理主機通訊耦接至上述MR-IOV裝置,上述方法包括:由上述複數計算主機之一來源端計算主機遷移在上述來源端計算主機中的一來源端虛擬機器至上述複數計算主機之一目的端計算主機中一目的端虛擬機器,其中上述來源端虛擬機器包括一來源端虛擬功能;由上述目的端計算主機傳送一請求訊息至上述管理主機;以及由上述管理主機根據上述請求訊息重新分派在上述管理 主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器。
在一些實施例中,在上述來源端計算主機遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述方法更包括:由上述來源端計算主機傳送一通知訊息至上述管理主機,以通知上述管理主機上述來源端計算主機已移除配置(de-allocate)上述來源端虛擬機器。
在一些實施例中,在上述來源端計算主機遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述方法更包括:由上述來源端計算主機傳送一配置訊息至上述目的端計算主機;以及由上述目的端計算主機所控制之一虛擬機器監視器(Hypervisor)重新映射上述配置訊息至上述目的端計算主機之一擴展頁表(Extended Page Table,EPT)。
在一些實施例中,上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID)、虛擬功能配置空間(Configuration Space)、虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址、接收環狀緩衝區位址(Rx Ring Buffer Address)、傳送環狀緩衝區位址(Tx Ring Buffer Address)、接收封包緩衝區位址(Rx Packet Buffer Address)以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
本揭露提出一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的系統,包括:一MR-IOV裝置;複數計算主機,其中每一計算主機藉由一PCIe連結通訊耦接至上述MR-IOV裝置;以及一管理主機,包括 一實體功能(Physical Function,PF)並執行複數虛擬功能(Virtual Function,VF),其中上述管理主機藉由上述MR-IOV裝置之一PCIe槽通訊耦接至上述MR-IOV裝置;其中上述複數計算主機之一來源端計算主機遷移在上述來源端計算主機中的一來源端虛擬機器至上述複數計算主機之一目的端計算主機中一目的端虛擬機器,上述來源端虛擬機器包括一來源端虛擬功能;上述目的端計算主機傳送一請求訊息至上述管理主機;以及上述管理主機根據上述請求訊息重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器。
本揭露提出一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法,用於一計算主機中,上述方法包括:控制一虛擬機器監視器(Hypervisor)遷移在上述計算主機中包括一來源端虛擬功能的一來源端虛擬機器至一目的端計算主機中一目的端虛擬機器;以及傳送一配置訊息至上述目的端計算主機;其中上述計算主機及上述目的端計算主機耦接至一MR-IOV裝置與一管理主機進行通訊。
本揭露提出一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的計算主機,包括:一或多個處理器;以及一或多個電腦儲存媒體,儲存電腦可讀取指令,其中上述處理器使用上述電腦儲存媒體以執行:控制一虛擬機器監視器(Hypervisor)遷移在上述計算主機中包括一來源端虛擬功能的一來源端虛擬機器至一目的端計算主機中一目的端虛擬機器;以及傳送一配置訊息至上述目的端計算主機;其 中上述計算主機及上述目的端計算主機耦接至一MR-IOV裝置與一管理主機進行通訊。
本揭露提出一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法,用於一計算主機中,上述方法包括:控制一虛擬機器監視器(Hypervisor)遷移來自一來源端計算主機中包括一來源端虛擬功能的一來源端虛擬機器至上述計算主機中一目的端虛擬機器;以及傳送一請求訊息至一管理主機,以請求上述管理主機重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器;其中上述來源端計算主機及上述計算主機耦接至一MR-IOV裝置與上述管理主機進行通訊。
本揭露提出一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的計算主機,包括:一或多個處理器;以及一或多個電腦儲存媒體,儲存電腦可讀取指令,其中上述處理器使用上述電腦儲存媒體以執行:控制一虛擬機器監視器(Hypervisor)遷移來自一來源端計算主機中包括一來源端虛擬功能的一來源端虛擬機器至上述計算主機中一目的端虛擬機器;以及傳送一請求訊息至一管理主機,以請求上述管理主機重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器;其中上述來源端計算主機及上述計算主機耦接至一MR-IOV裝置與上述管理主機進行通訊。
100‧‧‧系統
110‧‧‧管理主機
112‧‧‧實體功能
VF1、VF2、VF3、VF4‧‧‧虛擬功能
120A、120B‧‧‧計算主機
122A、124A、122B、124B‧‧‧虛擬機器
1222A、1242A、1222B、1242B‧‧‧虛擬功能
126A、126B‧‧‧虛擬機器監視器
130‧‧‧MR-IOV裝置
132‧‧‧PCIe交換器
200‧‧‧系統
210‧‧‧管理主機
212‧‧‧實體功能
220A、220B‧‧‧計算主機
222A、224A、222B、224B‧‧‧虛擬機器
2222A、2242A、2222B、2242B‧‧‧虛擬功能
226A、226B‧‧‧虛擬機器監視器
230‧‧‧MR-IOV裝置
300‧‧‧方法流程圖
S305、S310、S315‧‧‧步驟
400‧‧‧方法流程圖
S405、S410‧‧‧步驟
500‧‧‧方法流程圖
S505、S510‧‧‧步驟
600‧‧‧示意圖
620A‧‧‧來源端計算主機
620B‧‧‧目的端計算主機
VM-A‧‧‧來源端虛擬機器
VM-B‧‧‧目的端虛擬機器
626A、626B‧‧‧虛擬機器監視器
628A、628B‧‧‧擴展頁表
700‧‧‧計算裝置
710‧‧‧匯流排
712‧‧‧記憶體
714‧‧‧處理器
716‧‧‧顯示元件
718‧‧‧I/O埠口
720‧‧‧I/O元件
722‧‧‧電源供應器
附圖被包括以提供本揭露進一步理解且被合併並組 成本揭露的一部分。附圖係說明本揭露的實施例且連同描述一起用以解釋本揭露的原理。其可理解附圖不一定按比例描繪,一些元件可以超過在實際實施方式的大小來顯示,以清楚地說明本揭露的概念。
第1圖係顯示根據本揭露一實施例中適用於MR-IOV環境中系統的示例性示意圖。
第2A~2D圖係顯示根據本揭露一實施例中在於MR-IOV環境中虛擬機器即時遷移的示意圖。
第3圖係根據本揭露一實施例中一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法流程圖。
第4圖係根據本揭露一實施例中一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法流程圖。
第5圖係根據本揭露一實施例中一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法流程圖。
第6圖係根據本揭露一實施例中目的端計算主機重新映射配置訊息至一擴展頁表之示意圖。
第7圖係顯示根據本發明一實施例所述之適用於操作環境的方塊圖。
在下文中將參考附圖對本揭露的各方面進行更充分的描述。然而,本揭露可以具體化成許多不同形式且不應解釋為侷限於貫穿本揭露所呈現的任何特定結構或功能。相反地,提供這些方面將使得本揭露周全且完整,並且本揭露將給本領域技術 人員充分地傳達本揭露的範圍。基於本文所教導的內容,本領域的技術人員應意識到,無論是單獨還是結合本揭露的任何其它方面實現本文所揭露的任何方面,本揭露的範圍旨在涵蓋本文中所揭露的任何方面。例如,可以使用本文所提出任意數量的裝置或者執行方法來實現。另外,除了本文所提出本揭露的多個方面之外,本揭露的範圍更旨在涵蓋使用其它結構、功能或結構和功能來實現的裝置或方法。應可理解,其可透過申請專利範圍的一或多個元件具體化本文所揭露的任何方面。
詞語「示例性」在本文中用於表示「用作示例、實例或說明」。本揭露的任何方面或本文描述為「示例性」的設計不一定被解釋為優選於或優於本揭露或設計的其他方面。此外,相同的數字在所有若干圖示中指示相同的元件,且除非在描述中另有指定,冠詞「一」和「上述」包含複數的參考。
根據本揭露構思的示範實施例的用於在多根輸入輸出虛擬化環境中虛擬機器即時遷移的系統可以向主機提供用於管理的實體功能(Physical Function,PF)和多個虛擬功能(Virtual Function,VF)。在這種情況下,至少一個虛擬功能(VF)可以被分配給一個虛擬機器(VM)。
第1圖係顯示根據本揭露一實施例中適用於MR-IOV環境中系統100的示例性示意圖。
如圖所示,系統100可至少包括複數計算主機(計算主機120A、計算主機120B)、一管理主機110及一MR-IOV裝置130。應可了解,標準伺服器技術適合在本揭露之MR-IOV環境上下文中實現。換言之,本領域已知任何合適的伺服器技術可被實現為 本揭露複數計算主機或管理主機中的其中之一。
計算主機120A及120B可分別包括複數虛擬機器(Virtual Machines,VMs)(例如虛擬機器122A、124A、122B及124B)。虛擬機器的數量可根據計算主機的具體應用和使用而變化。一或多個虛擬機器監視器(Hypervisor)(或虛擬機器管理器(Virtual Machine Manager,VMM))126A和126B可管理從虛擬機器122A、124A、122B及124B到外部資源的通訊。此管理可利於在共享硬體(例如中央處理器(Central Processing Unit,CPU))上運行多個操作系統。虛擬機器監視器126A和126B可向不同實例的操作系統提供存取計算主機120A及120B的記憶體、處理器和其他資源。舉例來說,虛擬機器監視器126A和126B可按順序控制計算主機120A及120B的處理器和資源以分配哪些為虛擬機器122A、124A、122B及124B之所需。
虛擬機器122A、124A、122B及124B可包括一或多個軟體裝置驅動器(或稱為「驅動器」)(如未顯示)。驅動器可允許提供其他軟體應用程序以存取一或多個虛擬功能(例如,1222A、1242A、1222B及1242B)。虛擬功能1222A、1242A、1222B及1242B可被鏈結至管理主機110。例如,管理主機110中可提供一或多個虛擬功能VF1、VF2、VF3及VF4。驅動器存取虛擬功能可藉由讀取或寫入為虛擬功能所保留的特定位址範圍來實現。
管理主機110可包括至少一實體功能(PF)112及複數虛擬功能VF1、VF2、VF3及VF4。
MR-IOV裝置130可包括但不侷限於一PCIe交換器132。PCIe交換器132可包括複數埠口P1、P2至PN(圖未顯示)。
此外,每一計算主機120A、120B可單獨經由互連鏈路(例如,互連電纜)耦接至MR-IOV裝置130。舉例來說,互連鏈路可以包括PCI Express(PCIe)電纜。在此方面,MR-IOV裝置130被配置用以通過PCIe通訊將管理主機110中之虛擬功能VF1、VF2、VF3及VF4分派至計算主機120A、120B。
在管理主機110與MR-IOV裝置130相互連接時,管理主機110的實體功能驅動器可被執行。接著,被執行的實體功能驅動器可用以創建複數虛擬功能VF1至VF4。MR-IOV裝置130接著可分派每一虛擬功能VF1至VF4至單一的計算主機120A及120B。如第1圖所示,管理主機110中之虛擬功能VF1至VF4可分別被分派至計算主機120A及120B中被包括在虛擬機器122A、124A、122B及124B中的虛擬功能1222A、1242A、1222B及1242B。
第2A~2D圖係顯示根據本揭露一實施例中在於MR-IOV環境中虛擬機器即時遷移的示意圖。
第2A圖係顯示根據本揭露一實施例在虛擬機器即時遷移前的虛擬化環境示意圖。如第2A圖所示,系統200可以包括複數計算主機(例如,來源端計算主機220A及目的端計算主機220B)、MR-IOV裝置230及包括一實體功能(PF)212並執行複數虛擬功能VF1、VF2、VF3及VF4的一管理主機210,其中每一計算主機220A、220B及管理主機210通訊耦接至MR-IOV裝置230。來源端計算主機220A包括虛擬機器監視器226A,且目的端計算主機220B包括虛擬機器監視器226B。
此外,來源端計算主機220A上的來源端虛擬機器(VM)222A及224A可分別具有來源端虛擬功能(VF)2222A及2242A。 目的端計算主機220B上的目的端虛擬機器224B可具有目的端虛擬功能2242B。而管理主機210中之虛擬功能VF1、VF2及VF3分別被分派至在來源端計算主機220A中被包括在來源端虛擬機器222A、224A的來源端虛擬功能2222A、2242A及在目的端計算主機220B中被包括在目的端虛擬機器224B中的目的端虛擬功能2242B。
如第2A圖所示,來源端計算主機220A上虛擬機器監視器226A可以啟動將來源端虛擬機器224A遷移至計算主機220B。
接著,如第2B圖所示,虛擬機器遷移可藉由在來源端計算主機220A和目的端計算主機220B之間同步包括I/O虛擬記憶體的髒頁(dirty pages)(記憶體)來執行。
再來,在來源端計算主機220A遷移來源端虛擬機器224A至目的端虛擬機器222B後,目的端計算主機220A可傳送一請求訊息至管理主機210,以請求管理主機210重新分派在管理主機210中對應來源端虛擬功能2242A之虛擬功能VF2至目的端計算主機220B的目的端虛擬機器222B,如第2C圖所示。
在一實施例中,在來源端計算主機220A遷移來源端虛擬機器224A至目的端虛擬機器222B後,來源端計算主機220A更可傳送一通知訊息至管理主機210,以通知管理主機210來源端計算主機220A已移除配置(de-allocate)來源端虛擬機器224A。
管理主機210接著可根據請求訊息重新分派在管理主機210中對應來源端虛擬功能2242A之虛擬功能VF2至目的端虛擬機器224B。第2D圖係顯示根據本揭露一實施例中在虛擬機器即 時遷移後虛擬化環境的示意圖。如第2D圖所示,在遷移到目的端計算主機220B之後,目的端虛擬機器222B可具有新的虛擬功能2222B,且目的端虛擬機器222B具有與來源端虛擬機器224A相同的記憶體資訊。此外,管理主機210中之虛擬功能VF2可被分派至在目的端計算主機220B中被包括在目的端虛擬機器222B中的新虛擬功能2222B。由於管理主機210係重新分派相同的虛擬功能VF2至新虛擬功能2222B,因此目的端計算主機220B能保存有相同的驅動器及硬體狀態資訊。
在一實施例中,在來源端計算主機220A遷移來源端虛擬機器224A至目的端虛擬機器222B後,由來源端計算主機220A可傳送一配置訊息至目的端計算主機220B,其中上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址(例如,匯流排位址(Bus Address)、虛擬機器虛擬位址);中斷請求(Interrupt Request,IRQ)數;接收環狀緩衝區位址(Rx Ring Buffer Address)(例如,匯流排位址、虛擬機器虛擬位址);傳送環狀緩衝區位址(Tx Ring Buffer Address)(例如,匯流排位址、虛擬機器虛擬位址);接收封包緩衝區位址(Rx Packet Buffer Address)(例如,匯流排位址、虛擬機器虛擬位址); 傳送封包緩衝區位址(Tx Packet Buffer Address)(例如,匯流排位址、虛擬機器虛擬位址);以及信箱緩衝區(Mail Box buffers)。目的端計算主機220B接收上述配置訊息後,可控制虛擬機器監視器226B重新映射配置訊息至目的端計算主機220B之一擴展頁表(Extended Page Table,EPT)及I/O記憶體管理單元(IOMMU)。在採用Intel系統的情況下,IOMMU則為Intel虛擬化技術(VT-D)。
第3圖係根據本揭露一實施例中一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法流程圖300。此方法可用於第1圖或第2A~2D圖的系統100及200中,其中此系統係至少由複數計算主機、一MR-IOV裝置及包括一實體功能並執行複數虛擬功能的一管理主機所組成,每一計算主機及管理主機通訊耦接至MR-IOV裝置。
在步驟S305中,複數計算主機之一來源端計算主機遷移在來源端計算主機中的一來源端虛擬機器至複數計算主機之一目的端計算主機中一目的端虛擬機器,其中上述來源端虛擬機器包括一來源端虛擬功能。接著,在步驟S310中,目的端計算主機傳送一請求訊息至管理主機。在步驟S315中,由管理主機根據請求訊息重新分派在管理主機中對應來源端虛擬功能之第一虛擬功能至目的端虛擬機器。
第4圖係根據本揭露一實施例中一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法流程圖400。此方法可用於第1圖中之一計算主機或第2A~2D圖之來源端計算主機220A中。
在步驟S405中,計算主機控制一虛擬機器監視器遷移在計算主機中包括一來源端虛擬功能的一來源端虛擬機器至一目的端計算主機中之一目的端虛擬機器。在步驟S410中,計算主機傳送一配置訊息至目的端計算主機虛擬機器,其中計算主機及目的端計算主機耦接至一MR-IOV裝置與一管理主機進行通訊。
在一實施例中,在遷移來源端虛擬機器至目的端虛擬機器後,計算主機更可傳送一通知訊息至管理主機,以通知管理主機上述計算主機已移除配置(de-allocate)來源端虛擬機器。
第5圖係根據本揭露一實施例中一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法流程圖500。此方法可用於第5圖中之一計算主機或第2A~2D圖之目的端計算主機220B中。
在步驟S505中,計算主機控制一虛擬機器監視器遷移來自一來源端計算主機中包括一來源端虛擬功能的一來源端虛擬機器至計算主機中一目的端虛擬機器。在步驟S510中,計算主機傳送一請求訊息至一管理主機,以請求管理主機重新分派在管理主機中對應來源端虛擬功能之一第一虛擬功能至目的端虛擬機器,其中來源端計算主機及計算主機耦接至一MR-IOV裝置與管理主機進行通訊。
在一實施例中,在遷移來源端虛擬機器至目的端虛擬機器後,計算主機可接收來源端計算主機所傳送之一配置訊息,並重新映射上述配置訊息至計算主機之一擴展頁表。
第6圖係根據本揭露一實施例中目的端計算主機重新映射配置訊息至一擴展頁表之示意圖600。在第6圖中,假設來 源端計算主機620A已遷移來源端虛擬機器VM-A至目的端計算主機620B中之目的端虛擬機器VM-B中。為方便說明,來源端計算主機620A中來源端虛擬機器VM-A係以虛線表示以描述來源端虛擬機器VM-A被遷移前之環境。
為了支援實體記憶體管理,來源端計算主機620A及目的端計算主機620B提供擴展頁表(EPT)機制。來源端計算主機620A的虛擬機器監視器626A及目的端計算主機620B中虛擬機器監視器626B可藉由EPT機制維持在運行於虛擬機器中虛擬記憶體及計算主機中實體記憶體之間的位址轉換映射。
在第6圖中,來源端計算主機620A之EPT 628A及目的端計算主機620B之EPT 628B可紀錄有關於位址轉換映射的配置訊息。表格1係顯示在來源端計算主機620A之EPT 628A中關於接收環狀緩衝區位址(Rx Ring Buffer Address)的配置訊息。
表格1
由表格1所示,來源端計算主機620A的虛擬機器監視器及非透明橋(Non Transparent Bridge,NTB)可透過EPT 628A分別轉移主機匯流排位址(Host Bus Address,HBA)及主機實體位址(Host Physical Address,HPA)為0×300及0×400。
來源端計算主機620A可在遷移來源端虛擬機器VM-A後,將在EPT 628A中關於接收環狀緩衝區位址的配置訊息傳送至目的端計算主機620B。目的端計算主機620B在接收此配置訊息後,可重新映射上述配置訊息至目的端計算主機620B之EPT 628B中。表格2係顯示在目的端計算主機620B之EPT 628B中關於接收環狀緩衝區位址(Rx Ring Buffer Address)的配置訊息。
如表格2所示,目的端計算主機620B中虛擬機器監視器626B可根據來源端計算主機620A所傳送之配置訊息比對EPT628B中關於接收環狀緩衝區位址(Rx Ring Buffer Address)的配置訊息。當有位址在EPT 628B中已被使用時,虛擬機器監視器626B則重新分派新的位址給目的端計算主機620B。舉例來說,在EPT 628B中位址0×400及0×300已被使用時,虛擬機器監視器626B重新分派主機實體位址為0×700,且重新分派主機匯流排位址為0×600。
對於本發明已描述的實施例,下文描述了可以實現本發明實施例的示例性操作環境。具體參考第7圖,第7圖係顯示用以實現本發明實施例的示例性操作環境,一般可被視為計算裝置700。計算裝置700僅為一合適操作環境的一個示例,並不意圖暗示對本發明使用或功能範圍的任何限制。舉例來說,計算裝置700可以是第1圖系統100中的計算主機(計算主機120A、計算主機120B)或一管理主機110。計算裝置700也不應被解釋為具有與所示元件任一或組合相關任何的依賴性或要求。
本發明可在電腦程式碼或機器可使用指令來執行本發明,指令可為程式模組的電腦可執行指令,其程式模組由電腦或其它機器,例如個人數位助理(PDA)或其它可攜式裝置執行。一般而言,程式模組包括例程、程式、物件、元件、數據結構等,程式模組指的是執行特定任務或實現特定抽象數據類型的程式碼。本發明可在各種系統組態中實現,包括可攜式裝置、消費者電子產品、通用電腦、更專業的計算裝置等。本發明還可在分散式運算環境中實現,處理由通訊網路所連結的裝置。
參考第7圖。計算裝置700包括直接或間接耦接以下裝置的匯流排710、記憶體712、一或多個處理器714、一或多個顯示元件716、輸入/輸出(I/O)埠口718、輸入/輸出(I/O)元件720以及說明性電源供應器722。匯流排710表示可為一或多個匯流排之元件(例如,位址匯流排、數據匯流排或其組合)。雖然第7圖的各個方塊為簡要起見以線示出,實際上,各個元件的分界並不是具體的,例如,可將顯示裝置的呈現元件視為I/O元件;處理器可具有記憶體。
計算裝置700-般包括各種電腦可讀取媒體。電腦可讀取媒體可以是可被計算裝置700存取的任何可用媒體,該媒體同時包括易揮發性和非易揮發性媒體、可移動和不可移動媒體。舉例但不侷限於,電腦可讀取媒體可包括電腦儲存媒體和通訊媒體。電腦可讀取媒體同時包括在用於儲存像是電腦可讀取指令、資料結構、程式模組或其它數據之類資訊的任何方法或技術中實現的易揮發性性和非易揮發性媒體、可移動和不可移動媒體。電腦儲存媒體包括但不侷限於隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、電子抹除式可複寫唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、快閃記憶體(Flash Memory)或其它記憶體技術、光碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、數位視頻光碟(Digital Video Disc,DVD)或其它光碟儲存裝置、磁片、磁碟、磁片儲存裝置或其它磁儲存裝置,或可用於儲存所需的資訊並且可被計算裝置700存取的其它任何媒體。電腦儲存媒體本身不包括信號。
通訊媒體一般包含電腦可讀取指令、資料結構、程式模組或其它採用諸如載波或其他傳輸機制之類的模組化數據訊號形式的數據,並包括任何資訊傳遞媒體。術語「模組化數據訊號」係指具有一或多個特徵集合或以在訊號中編碼資訊之一方式更改的訊號。舉例但不侷限於,通訊媒體包括像是有線網路或直接有線連接的有線媒體及無線媒體,像是聲頻、射頻、紅外線以及其它無線媒體。上述媒體的組合包括在電腦可讀取媒體的範圍內。
記憶體712包括以易揮發性和非易揮發性記憶體形式的電腦儲存媒體。記憶體可為可移動、不移動或可以為這兩種的組合。示例性硬體裝置包括固態記憶體、硬碟驅動器、光碟驅動器等。計算裝置700包括一或多個處理器,其讀取來自像是記憶體712或I/O元件720各實體的數據。顯示元件716向使用者或其它裝置顯示數據指示。示例性顯示元件包括顯示裝置、揚聲器、列印元件、振動元件等。
I/O埠口718允許計算裝置700邏輯連接到包括I/O元件720的其它裝置,一些此種裝置為內建裝置。示例性元件包括麥克風、搖桿、遊戲台、碟形衛星訊號接收器、掃描器、印表機、無線裝置等。I/O元件720可提供一自然使用者介面,用於處理使用者生成的姿勢、聲音或其它生理輸入。在一些例子中,這些輸入可被傳送到一合適的網路元件以便進一步處理。NUI可實現語言識別、觸摸與手寫筆辨識、面部識別、生物識別、在螢幕上以及鄰近螢幕的姿勢識別、空中手勢、頭部及眼部追蹤以及與計算裝置700所顯示相關聯的觸摸識別的任意組合。計算裝置700可裝 備有深度照相機,像是立體照相機系統、紅外線照相機系統、RGB照相機系統和這些系統的組合,以偵測與識別姿勢。另外,計算裝置700可以裝備有偵測運動的加速度計或陀螺儀。加速度計或陀螺儀的輸出可被提供給計算裝置600顯示以呈現沉浸式增強現實或虛擬實境。
此外,計算裝置700中之處理器714也可執行記憶體712中之程式及指令以呈現上述實施例所述之動作和步驟,或其它在說明書中內容之描述。
如上所述,藉由本揭露一種在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機,由於在即時遷移後,在管理主機中相同的虛擬功能係被分派至已遷移的虛擬機器中,因此原始的驅動器資源及硬體狀態可被完整保留,且不會有任何硬體狀態遺失。
在此所揭露程序之任何具體順序或分層之步驟純為一舉例之方式。基於設計上之偏好,必須了解到程序上之任何具體順序或分層之步驟可在此文件所揭露的範圍內被重新安排。伴隨之方法申請專利範圍以一示範例順序呈現出各種步驟之元件,也因此不應被本揭露說明書所展示之特定順序或階層所限制。
申請專利範圍中用以修飾元件之「第一」、「第二」、「第三」等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本揭露已以實施範例揭露如上,然其並非用以限定本案,任何熟悉此項技藝者,在不脫離本揭露之精神和範圍 內,當可做些許更動與潤飾,因此本案之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (20)

  1. 一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法,用於一系統中,其中上述系統係至少由複數計算主機、一MR-IOV裝置及包括一實體功能(Physical Function,PF)並執行複數虛擬功能(Virtual Function,VF)的一管理主機所組成,每一計算主機及上述管理主機通訊耦接至上述MR-IOV裝置,上述方法包括:由上述複數計算主機之一來源端計算主機遷移在上述來源端計算主機中的一來源端虛擬機器至上述複數計算主機之一目的端計算主機中一目的端虛擬機器,其中上述來源端虛擬機器包括一來源端虛擬功能;由上述目的端計算主機傳送一請求訊息至上述管理主機;以及由上述管理主機根據上述請求訊息重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器。
  2. 如申請專利範圍第1項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,其中在上述來源端計算主機遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述方法更包括:由上述來源端計算主機傳送一通知訊息至上述管理主機, 以通知上述管理主機上述來源端計算主機已移除配置(de-allocate)上述來源端虛擬機器。
  3. 如申請專利範圍第1項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,在上述來源端計算主機遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述方法更包括:由上述來源端計算主機傳送一配置訊息至上述目的端計算主機;以及由上述目的端計算主機所控制之一虛擬機器監視器(Hypervisor)重新映射上述配置訊息至上述目的端計算主機之一擴展頁表(Extended Page Table,EPT)。
  4. 如申請專利範圍第3項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,其中上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址;接收環狀緩衝區位址(Rx Ring Buffer Address);傳送環狀緩衝區位址(Tx Ring Buffer Address);接收封包緩衝區位址(Rx Packet Buffer Address);以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
  5. 一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的系統,包括:一MR-IOV裝置;複數計算主機,其中每一計算主機藉由一PCIe連結通訊耦接至上述MR-IOV裝置;以及一管理主機,包括一實體功能(Physical Function,PF)並執行複數虛擬功能(Virtual Function,VF),其中上述管理主機藉由上述MR-IOV裝置之一PCIe槽通訊耦接至上述MR-IOV裝置;其中上述複數計算主機之一來源端計算主機遷移在上述來源端計算主機中的一來源端虛擬機器至上述複數計算主機之一目的端計算主機中一目的端虛擬機器,上述來源端虛擬機器包括一來源端虛擬功能;上述目的端計算主機傳送一請求訊息至上述管理主機;以及上述管理主機根據上述請求訊息重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器。
  6. 如申請專利範圍第5項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的系統,在上述來源端計算主機遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述來源 端計算主機傳送一通知訊息至上述管理主機,以通知上述管理主機上述來源端計算主機已移除配置(de-allocate)上述來源端虛擬機器。
  7. 如申請專利範圍第5項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的系統,在上述來源端計算主機遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述來源端計算主機傳送一配置訊息至上述目的端計算主機;上述目的端計算主機所控制之一虛擬機器監視器(Hypervisor)重新映射上述配置訊息至上述目的端計算主機之一擴展頁表(Extended Page Table,EPT)。
  8. 如申請專利範圍第7項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的系統,其中上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址;接收環狀緩衝區位址(Rx Ring Buffer Address);傳送環狀緩衝區位址(Tx Ring Buffer Address);接收封包緩衝區位址(Rx Packet Buffer Address);以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
  9. 一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法,用於一計算主機中,上述方法包括:控制一虛擬機器監視器(Hypervisor)遷移在上述計算主機中包括一來源端虛擬功能的一來源端虛擬機器至一目的端計算主機中一目的端虛擬機器;以及傳送一配置訊息至上述目的端計算主機;其中上述計算主機及上述目的端計算主機耦接至一MR-IOV裝置與一管理主機進行通訊。
  10. 如申請專利範圍第9項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,其中在遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述方法更包括:傳送一通知訊息至上述管理主機,以通知上述管理主機上述計算主機已移除配置(de-allocate)上述來源端虛擬機器。
  11. 如申請專利範圍第9項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,其中上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址;接收環狀緩衝區位址(Rx Ring Buffer Address);傳送環狀緩衝區位址(Tx Ring Buffer Address); 接收封包緩衝區位址(Rx Packet Buffer Address);以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
  12. 一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的計算主機,包括:一或多個處理器;以及一或多個電腦儲存媒體,儲存電腦可讀取指令,其中上述處理器使用上述電腦儲存媒體以執行:控制一虛擬機器監視器(Hypervisor)遷移在上述計算主機中包括一來源端虛擬功能的一來源端虛擬機器至一目的端計算主機中一目的端虛擬機器;以及傳送一配置訊息至上述目的端計算主機;其中上述計算主機及上述目的端計算主機耦接至一MR-IOV裝置與一管理主機進行通訊。
  13. 如申請專利範圍第12項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的計算主機,其中在遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述處理器更執行:傳送一通知訊息至上述管理主機,以通知上述管理主機上述計算主機已移除配置(de-allocate)上述來源端虛擬機器。
  14. 如申請專利範圍第12項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的計算主機,其中上述配置訊息 至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址;接收環狀緩衝區位址(Rx Ring Buffer Address);傳送環狀緩衝區位址(Tx Ring Buffer Address);接收封包緩衝區位址(Rx Packet Buffer Address);以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
  15. 一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的方法,用於一計算主機中,上述方法包括:控制一虛擬機器監視器(Hypervisor)遷移來自一來源端計算主機中包括一來源端虛擬功能的一來源端虛擬機器至上述計算主機中一目的端虛擬機器;以及傳送一請求訊息至一管理主機,以請求上述管理主機重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器;其中上述來源端計算主機及上述計算主機耦接至一MR-IOV裝置與上述管理主機進行通訊。
  16. 如申請專利範圍第15項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,在遷移上述來源端虛擬 機器至上述目的端虛擬機器後,上述方法更包括:接收上述來源端計算主機所傳送之一配置訊息;以及重新映射上述配置訊息至上述計算主機之一擴展頁表(Extended Page Table,EPT)。
  17. 如申請專利範圍第16項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法,其中上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址;接收環狀緩衝區位址(Rx Ring Buffer Address);傳送環狀緩衝區位址(Tx Ring Buffer Address);接收封包緩衝區位址(Rx Packet Buffer Address);以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
  18. 一種在多根輸入輸出虛擬化(Multi-root I/O Virtualization,MR-IOV)環境中虛擬機器即時遷移的計算主機,包括:一或多個處理器;以及一或多個電腦儲存媒體,儲存電腦可讀取指令,其中上述處理器使用上述電腦儲存媒體以執行:控制一虛擬機器監視器(Hypervisor)遷移來自一來源端計 算主機中包括一來源端虛擬功能的一來源端虛擬機器至上述計算主機中一目的端虛擬機器;以及傳送一請求訊息至一管理主機,以請求上述管理主機重新分派在上述管理主機中對應上述來源端虛擬功能之一第一虛擬功能至上述目的端虛擬機器;其中上述來源端計算主機及上述計算主機耦接至一MR-IOV裝置與上述管理主機進行通訊。
  19. 如申請專利範圍第18項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的計算主機,在遷移上述來源端虛擬機器至上述目的端虛擬機器後,上述處理器更執行:接收上述來源端計算主機所傳送之一配置訊息;以及重新映射上述配置訊息至上述計算主機之一擴展頁表(Extended Page Table,EPT)。
  20. 如申請專利範圍第19項所述之在多根輸入輸出虛擬化環境中虛擬機器即時遷移的計算主機,其中上述配置訊息至少包括:虛擬功能PCIe識別符(PCIe ID);虛擬功能配置空間(Configuration Space);虛擬功能控制狀態暫存器(Control and Status Register,CSR)位址;接收環狀緩衝區位址(Rx Ring Buffer Address);傳送環狀緩衝區位址(Tx Ring Buffer Address); 接收封包緩衝區位址(Rx Packet Buffer Address);以及傳送封包緩衝區位址(Tx Packet Buffer Address)。
TW106141850A 2017-11-30 2017-11-30 在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機 TWI645293B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106141850A TWI645293B (zh) 2017-11-30 2017-11-30 在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機
US15/851,331 US10838762B2 (en) 2017-11-30 2017-12-21 Method and device for live migration of virtual machine in a multi-root I/O virtualization environment and computing host thereof
CN201711403699.6A CN109857511A (zh) 2017-11-30 2017-12-22 虚拟机实时迁移的方法、系统及其计算主机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106141850A TWI645293B (zh) 2017-11-30 2017-11-30 在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機

Publications (2)

Publication Number Publication Date
TWI645293B TWI645293B (zh) 2018-12-21
TW201926053A true TW201926053A (zh) 2019-07-01

Family

ID=65431804

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106141850A TWI645293B (zh) 2017-11-30 2017-11-30 在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機

Country Status (3)

Country Link
US (1) US10838762B2 (zh)
CN (1) CN109857511A (zh)
TW (1) TWI645293B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306650B (zh) * 2019-07-31 2024-03-26 华为技术有限公司 虚拟机热迁移方法和通信设备
CN112559119B (zh) * 2019-09-25 2022-01-04 阿里巴巴集团控股有限公司 一种虚拟机的迁移方法及装置、电子设备、存储介质
US11520612B2 (en) 2019-11-13 2022-12-06 International Business Machines Corporation Virtual machine migration detection by a hosted operating system
US11775328B2 (en) 2020-08-17 2023-10-03 Red Hat, Inc. Virtual bond for efficient networking of virtual machines

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8146082B2 (en) 2009-03-25 2012-03-27 Vmware, Inc. Migrating virtual machines configured with pass-through devices
US8327055B2 (en) * 2010-04-12 2012-12-04 International Business Machines Corporation Translating a requester identifier to a chip identifier
JP5354108B2 (ja) * 2010-09-01 2013-11-27 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法
US8683478B2 (en) * 2010-12-21 2014-03-25 International Business Machines Corporation Best fit mapping of self-virtualizing input/output device virtual functions for mobile logical partitions
US8533713B2 (en) 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
EP2788871B1 (en) 2011-12-07 2021-08-04 Citrix Systems, Inc. Controlling a network interface using virtual switch proxying
US9311122B2 (en) 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
CN102707991B (zh) * 2012-05-17 2016-03-30 中国科学院计算技术研究所 多根i/o虚拟化共享方法和系统
CN102819447B (zh) * 2012-05-29 2015-06-03 中国科学院计算技术研究所 一种用于多根共享系统的直接i/o虚拟化方法和装置
US9043501B2 (en) * 2013-07-25 2015-05-26 International Business Machines Corporation Input/output monitoring mechanism
WO2015083255A1 (ja) * 2013-12-04 2015-06-11 株式会社日立製作所 計算機システム及び仮想マシンの制御方法
US9430268B2 (en) 2014-05-02 2016-08-30 Cavium, Inc. Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers
CN104636185B (zh) * 2015-01-27 2018-03-02 华为技术有限公司 业务上下文管理方法、物理主机、pcie设备及迁移管理设备
CN104636186B (zh) * 2015-01-27 2018-02-13 华为技术有限公司 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
US9792138B2 (en) * 2015-02-18 2017-10-17 Red Hat Israel, Ltd. Virtual machine migration to hyper visors with virtual function capability
US9806904B2 (en) * 2015-09-08 2017-10-31 Oracle International Corporation Ring controller for PCIe message handling
US20170075706A1 (en) * 2015-09-16 2017-03-16 Red Hat Israel, Ltd. Using emulated input/output devices in virtual machine migration
TWI598740B (zh) * 2016-08-10 2017-09-11 創義達科技股份有限公司 設備分配控制器以及設備分配方法

Also Published As

Publication number Publication date
US20190163521A1 (en) 2019-05-30
CN109857511A (zh) 2019-06-07
TWI645293B (zh) 2018-12-21
US10838762B2 (en) 2020-11-17

Similar Documents

Publication Publication Date Title
EP3206124B1 (en) Method, apparatus and system for accessing storage device
US9734096B2 (en) Method and system for single root input/output virtualization virtual functions sharing on multi-hosts
US20200019349A1 (en) Extending existing storage devices in virtualized environments
EP2927812B1 (en) Method and apparatus for extending pcie bus domain
TWI645293B (zh) 在多根輸入輸出虛擬化環境中虛擬機器即時遷移的方法、系統及其計算主機
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
US8214576B2 (en) Zero copy transport for target based storage virtual appliances
CN106471469B (zh) 在虚拟化信息处理系统中的输入/输出加速
US9223734B2 (en) Switch with synthetic device capability
US11768783B2 (en) Local non-volatile memory express virtualization device
US20140143366A1 (en) System and Method for Reducing Communication Overhead Between Network Interface Controllers and Virtual Machines
US10684880B2 (en) Allocating and initializing I/O devices at virtual
JP6040101B2 (ja) ストレージ装置の制御方法、ストレージ装置及び情報処理装置
US11194735B2 (en) Technologies for flexible virtual function queue assignment
US10114667B2 (en) Method of controlling communication path between virtual machines and computer system
EP3559806B1 (en) Accelerating para-virtualization network interface using direct memory access (dma) remapping
US8365168B1 (en) Method and system for processing isochronous data packets using virtual USB controller, and placing the isochronous data packets into a look-ahead queue having a plurality of blank packets
US20160092126A1 (en) Shared Virtualized Local Storage
US8880582B2 (en) User access to a partitionable server
WO2023221847A1 (zh) 基于虚拟机设备直通的数据访问方法、设备以及系统
WO2020134833A1 (zh) 一种数据共享方法、装置、设备及系统
CN106598696B (zh) 一种虚拟机之间数据交互的方法及装置
US10185679B2 (en) Multi-queue device assignment to virtual machine groups
WO2017020799A1 (en) Integration of network linecard (lc) to host operating system (os)
EP3671472A1 (en) Data access method and device