新四季網

虛擬機與外部機器通信時使用的方法、設備及虛擬機系統的製作方法

2023-05-04 19:06:51 3

專利名稱:虛擬機與外部機器通信時使用的方法、設備及虛擬機系統的製作方法
技術領域:
本發明的實施方式涉及虛擬機領域,具體地,本發明的實施方式涉及一種用於在虛擬機與外部機器進行通信時使用的方法、設備和虛擬機系統。
背景技術:
虛擬機指通過軟體模擬的具有完整硬體系統功能的、運行在一個完全隔離環境中的完整計算機系統。通過虛擬機軟體,可以在一臺物理計算機(下文簡稱為物理機)上模擬出一臺或多臺虛擬機。這些虛擬機完全像真正的計算機那樣進行工作。例如,用戶可以安裝作業系統、安裝應用、訪問網絡資源,利用其上安裝的即時聊天軟體進行交談等等。對於用戶而言,虛擬機只是運行在物理機上的一個應用,但是對於在虛擬機中運行的應用而言,它就是一臺真正的計算機。如上所述,用戶可以利用運行在虛擬機中的應用(例如,web瀏覽器、即時通信軟體等)與網絡中的其他物理機或虛擬機進行網絡通信。需要注意的是,在常見的虛擬化實現(例如基於Xen的虛擬化系統)中進行網絡通信時,多個虛擬機中僅有一個特定虛擬機(例如,DomO)可以與物理機底層硬體平臺中的網卡進行直接交互。由此,虛擬機為了利用網卡進行網絡通信,就必須首先將其待向網絡上的外部機器(可以是物理機,也可以是虛擬機)發送的數據分組發送至特定虛擬機。數據分組繼而從該特定虛擬機處向外部機器發送。

發明內容
本發明人發現,已知的虛擬機系統在進行網絡通信(即,與外部機器進行通信)時,通常針對每個虛擬機、維持其與特定虛擬機共享的單獨共享頁面。於是,在虛擬機系統包括多個虛擬機的情況下,在特定虛擬機與各個虛擬機之間將會存在多個單獨的共享頁面。各個虛擬機將其待向外部機器發送的數據分組寫入相應的共享頁面。繼而,該共享頁面與特定虛擬機的空白內存頁面之間的頁面交換被調度。由此,虛擬機待向外部機器發送的數據分組首先被發送至能夠與外部機器通信的特定虛擬機,繼而實現網絡通信。然而,這種機制對於收發的數據分組包括的數據分組較小、內容重複性大且發送頻率較高這樣的應用(例如,即時通信軟體)而言卻存在極大的系統資源浪費。例如,需要針對這樣的數據分組頻繁地調用頁面交換。另外,已知的網絡通信需要將數據分組按照特定的網絡通信協議(例如,乙太網協議等)進行封裝和解封裝。為此,已知的虛擬機系統會將待向外部機器發送和從其接收的數據分組拷貝至虛擬機的作業系統內存空間,以便經由各種網絡協議棧對數據分組進行封裝和解封裝。本發明人發現,對於上述數據分組而言,這同樣會浪費系統資源,因為需要頻繁地進行數據分組在不同內存空間的拷貝。此外,由於在共享頁面中存儲的是經過封裝的完整數據分組,而這些數據分組例如去往同一外部機器的可能性很大(例如,與某個人聊天),所以共享頁面中存儲的已封裝數據分組所包括的重複數據報頭會極大地浪費共享頁面空間。為此,本發明示例性實施方式的目的在於提供一種用於在虛擬機與外部機器進行通信時使用的方法、設備和虛擬機系統。具體地,根據本發明第一方面的用於在虛擬機與外部機器進行通信時使用的方法例如可以包括:提供在多個所述虛擬機與特定虛擬機之間共享的單個共享頁面,其中特定虛擬機與多個所述虛擬機運行在同一物理機上;向單個共享頁面寫入所述虛擬機待向外部機器發送的數據分組;調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換;以及將頁面交換後的特定虛擬機的內存頁面中的數據分組向外部機器發送。根據本發明第二方面的一種用於在虛擬機與外部機器進行通信時使用的設備例如可以包括:提供裝置,配置用於提供在多個所述與特定虛擬機之間共享的單個共享頁面,其中特定虛擬機與多個所述虛擬機運行在同一物理機上;寫入裝置,配置用於向單個共享頁面寫入所述虛擬機待向外部機器發送的數據分組;調度裝置,配置用於調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換;以及發送裝置,配置用於將頁面交換後的特定虛擬機的內存頁面中的數據分組向外部機器發送。根據本發明第三方面的一種虛擬機系統例如可以包括:虛擬機管理器,其具有用於在虛擬機系統包括的多個虛擬機與特定虛擬機之間進行共享的單個共享頁面,其中特定虛擬機與所述多個虛擬機運行在同一物理機上;所述多個虛擬機,配置用於向單個共享頁面寫入待向外部機器發送的數據分組;其中虛擬機管理器進一步包括通信調度器,其配置用於調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換,以使得頁面交換後的特定虛擬機的內存頁面中的數據分組向外部機器發送。根據本發明的技術方案,通過提供在多個虛擬機與特定虛擬機之間共享的單個共享頁面,將虛擬機待向外部機器發送的數據分組寫入該單個共享頁面,以及調度該單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換,可以減少頁面交換的次數和頻率,由此節省系統資源。進一步地,根據本發明的技術方案,通過向單個共享頁面寫入虛擬機待向外部機器發送的數據分組之前、在該虛擬機的用戶內存空間內按照特定協議封裝該數據分組,以及直接通過方法調用的方式將封裝後的數據寫入單個共享頁面,而不是像現有技術那樣使數據分組通過網絡協議棧,由此減少了從用戶內存空間向作業系統內存空間拷貝數據分組的次數,從而節省了系統資源。更進一步地,根據本發明的技術方案,通過在單個共享頁面中對待向外部機器發送的數據分組進行重組,可以節省共享頁面的存儲資源。


通過參考附圖閱讀下文的詳細描述,本發明示例性實施方式的上述以及其他目的、特徵和優點將變得易於理解。在附圖中,以示例性而非限制性的方式示出了本發明的若干實施方式,其中:圖1示意性地示出了根據本發明示例性實施方式的虛擬機系統的框圖。圖2示意性地示出了根據本發明示例性實施方式的用於在虛擬機與外部機器進行通信時使用的方法的流程圖。圖3示意性地進一步示出了根據本發明示例性實施方式的用於在虛擬機與外部機器進行通信時使用的方法的流程圖。圖4示意性地示出了根據本發明示例性實施方式的在單個共享頁面中對數據分組進行重組的示意圖。圖5示意性地示出了根據本發明示例性實施方式的頁面交換的周期的示意圖。圖6示意性地示出了根據本發明示例性實施方式的用於在虛擬機與外部機器進行通信時使用的設備的框圖。圖7示意性地示出了可以實現根據本發明實施方式的計算設備的結構框圖。圖8A和圖SB示意性地示出了在實現根據本發明的實施方式之後的系統性能仿真圖。在附圖中,相同或對應的標號表不相同或對應的部分。
具體實施例方式下面將參考若干示例性實施方式來描述本發明的原理和精神。應當理解,給出這些實施方式僅僅是為了使本領域技術人員能夠更好地理解進而實現本發明,而並非以任何方式限制本發明的範圍。在一個實施方式中,在多個虛擬機與特定虛擬機之間提供一個共享的單個共享頁面,用於向外部發送數據分組;這裡,特定虛擬機與多個虛擬機運行在同一物理機上。繼而,調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換,以及將頁面交換後的特定虛擬機的內存頁面中的數據分組向外部機器發送。按上述方式,節省了系統資源,提高了效率。在本文中,需要理解的是,所涉及的「外部機器」可以涉及在網絡上與本物理機連接的其他物理機或其上運行的虛擬機;「單個共享頁面」涉及用於供虛擬機寫入待向外部機器發送的數據分組的一個內存頁面;以及,如上所述,「特定虛擬機」涉及可以與物理機底層硬體平臺中的網卡進行直接交互的虛擬機,例如基於Xen的虛擬系統中的DomO即為本文中的「特定虛擬機」,當然本發明不限於此。此外,附圖中的任何元素數量均用於示例而非限制,以及任何命名都僅用於區分,而不具有任何限制含義。下面參考圖1來描述根據本發明示例性實施方式的虛擬機系統10的框圖。其中,部件之間的實線連接代表數據流,點劃線連接代表事件流。如圖1所示,虛擬機系統10例如可以包括:虛擬機管理器101,其具有用於在虛擬機系統10包括的多個虛擬機(102-1至102-n,在下文可統稱為102)與特定虛擬機103之間進行共享的單個共享頁面1011,其中該特定虛擬機103與多個虛擬機102運行在同一物理機上(即,硬體平臺104);多個虛擬機102,配置用於向單個共享頁面1011寫入待向外部機器(未示出)發送的數據分組;其中虛擬機管理器101例如可以進一步包括通信調度器1012,其配置用於調度單個共享頁面1011與特定虛擬機103的空白內存頁面(未示出)之間的頁面交換,以使得頁面交換後的特定虛擬機103的內存頁面中的數據分組向外部機器發送(下文詳述)。根據本發明的某些實施方式,虛擬機系統10例如可以進一步包括封裝器1022,其例如可以位於各個虛擬機102中,也可以與其他部件獨立的部件,以及配置用於:在向單個共享頁面1011寫入多個虛擬機中的相應虛擬機(例如,虛擬機102-n)待向外部機器發送的數據分組之前、在相應虛擬機(例如,虛擬機102-n)的用戶內存空間(如圖1所示、分隔用戶內存空間和作業系統內存空間的虛線的上面部分)內、按照特定協議(例如,乙太網協議)進行封裝。本領域技術人員還可以理解,封裝器1022還可以用於在接收到這樣進行了封裝的數據分組之後,對其進行解封裝。根據本發明的某些實施方式,對數據分組進行封裝例如包括向其添加各種報頭和關聯欄位。各種報頭例如可以是應用層報頭、傳輸層報頭、網絡層報頭和數據鏈路層報頭等。這些報頭可以是簡單的通用協議報頭,其可在實現本發明實施方式時由例如系統管理員等進行定義。根據本發明的某些實施方式,虛擬機管理器101例如可以可選地進一步包括方法調用裝置1013,其配置用於直接通過方法調用的方式將封裝後的數據分組寫入單個共享頁面 1011。例如,在基於Xen的虛擬機系統中,根據本發明實施方式的方法調用可以利用該基於Xen的虛擬機系統中的Hypercall (超級調用)函數來實現。如本領域技術人員所知,Hypercall對於系統調用就像虛擬機管理器之於作業系統。換言之,Hypercall對於虛擬機管理器就像系統調用之於內核。Hypercall是從虛擬機到虛擬機管理器的軟體陷阱(software trap),就像系統調用是從應用到內核的軟體陷阱。虛擬機可以使用Hypercall來請求特權操作,諸如更新頁表。與系統調用類似,Hypercall是同步的,而從虛擬機管理器到虛擬機的返迴路徑使用事件通道。事件通道是異步通知的隊列,並通知中斷本地硬體通知的相同類型事件通知。當其隊列中具有待處理事件的虛擬機被調度時,作業系統的事件回調句柄被調用以便採取適當動作。本領域技術人員可以理解,此處僅以基於Xen的虛擬機系統中的Hypercall為例描述了本發明的實施方式。但是,本發明在此方面不受限制,在各種虛擬機系統中,任何能夠實現系統調用的已有或用戶定義的應用編程接口(API)都可以用於實現本發明。根據本發明的某些實施方式,虛擬機管理器101例如可以可選地進一步包括內容組織器1014,其配置用於在單個共享頁面1011中對待向外部機器發送的數據分組進行重組(下文詳述)。根據本發明的某些實施方式,內容組織器1014例如可以進一步配置用於通過將來自同一虛擬機(例如,虛擬機102-n)的或來自運行在同一物理機上的不同虛擬機(例如,分別來自虛擬機102-1和102-n)的、具有相同目的地地址(例如,去往同一個外部機器)和協議層類型(例如,乙太網)的數據分組的有效載荷聚集在一個數據分組中來對所述數據分組進行重組。下面參考圖2並結合圖1來描述根據本發明示例性實施方式的用於在虛擬機(假設,如圖1所示的虛擬機102-n)與外部機器進行通信時使用的方法200的流程圖。如圖2所示,方法200例如可以包括提供在多個虛擬機(例如,如圖1所示的虛擬機102)與特定虛擬機(例如,如圖1所示的虛擬機103)之間共享的單個共享頁面(例如,如圖1所示的單個共享頁面1011),其中特定虛擬機103與多個虛擬機102運行在同一物理機上(例如,如圖1所示的硬體平臺104)(步驟S201)。接著,方法200例如可以包括向單個共享頁面(例如,如圖1所示的單個共享頁面1011)寫入該虛擬機(如圖1所示的虛擬機102-n)待向外部機器發送的數據分組(步驟S203)。進一步地,方法200例如可以包括調度單個共享頁面(例如,如圖1所示的單個共享頁面1011)與特定虛擬機(例如,如圖1所示的虛擬機103)的空白內存頁面之間的頁面交換(步驟S205)。最後,方法200例如可以包括將頁面交換後的特定虛擬機(例如,如圖1所示的虛擬機103)的內存頁面中的數據分組向外部機器發送(步驟S207)。接下來,參考圖3並結合圖1和圖4來描述根據本發明的某些實施方式的方法200的附加優選操作。需要注意的是,僅對與現有技術相同的操作進行簡略描述,這樣做是為了保證圖3的完整性同時為了避免混淆本發明。此外,為了以示區分,將在作為圖2所示的用於在虛擬機與外部機器進行通信時使用的方法的附加優選操作的步驟之前冠以「根據本發明的某些實施方式」字樣。如圖3所示,在步驟S301中,發送方31的虛擬機(例如,如圖1所示的虛擬機102-n)的用戶利用應用(例如,QQ等)發送數據分組。接下來,根據本發明的某些實施方式,在步驟S302中,在向單個共享頁面(例如,圖1所示的單個共享頁面1011)寫入虛擬機(例如,如圖1所示的虛擬機102-n)待向外部機器發送的數據分組之前,在虛擬機(例如,如圖1所示的虛擬機102-n)的用戶內存空間內、按照特定協議(例如,乙太網協議)封裝數據分組。根據本發明的某些實施方式,此操作例如可以由圖1所示的封裝器1022實現。在這種情況下,可以理解,例如圖1所示的封裝器1022可以按照網絡通信使用的協議、對待經網絡傳送的數據分組進行封裝,而無需為了使數據分組經由網絡協議棧進行封裝而將其從用戶內存空間向作業系統內存空間拷貝。之所以能這樣做是因為:通過使用簡單的通用協議報頭(可在實現本發明實施方式時由例如系統管理員進行定義)對數據分組進行封裝,使得在連接至網絡的其他設備看來該封裝的數據分組是符合某個協議的數據分組,那麼接收到該數據分組的外部機器便能夠對其進行解封裝進而得到有效載荷,由此即可實現通信的目的。這樣做的好處在於省去了為使數據分組經由網絡協議棧進行封裝而不得不向作業系統內存空間拷貝數據分組的操作,由此節省了系統資源。 進一步地,根據本發明的某些實施方式,在步驟S303中,直接通過方法調用的方式(例如,如圖1所示的方法調用裝置1013執行的操作相同)將封裝後的數據分組寫入單個共享頁面(例如,圖1所示的單個共享頁面1011)。本領域技術人員可以理解,步驟S303可以是圖2中所示寫入步驟S203的一種實施方式。進一步地,根據本發明的某些實施方式,在步驟S304中,在單個共享頁面(例如,圖1所示的單個共享頁面1011)中對待向所述外部機器發送的數據分組進行重組。具體地,可以通過將來自同一虛擬機的或來自運行在同一物理機上的不同虛擬機的、具有相同目的地地址和協議層類型的數據分組的有效載荷聚集在一個數據分組中。例如,假設如圖4所示、分別包含有效載荷401-1至401-n的各個數據分組來自同一虛擬機(例如,如圖1所示的虛擬機102-n),或者來自運行在同一物理機(例如,如圖1所示的硬體平臺104)上的不同虛擬機(例如,如圖1所示的虛擬機102-1至102-n),其具有相同目的地地址和協議層類型(例如,乙太網協議)。上述各個數據分組的有效載荷401-401n例如可以作為經聚集的有效載荷402被聚集在圖4所示的一個數據分組中。從圖4可以直觀地理解,通過僅保留多個相同數據報頭的一個實例,節省了單個共享頁面的存儲空間以及由此節省了特定虛擬機的內存頁面的存儲空間,從而可以利用相同的存儲空間存儲更多的有效數據。返回圖3,進一步地,在如圖2所示的步驟S205(即,調度頁面交換,以下詳述)之後,在步驟S305中,特定虛擬機(例如,如圖1所示的特定虛擬機103)經由乙太網(僅作為示例,其他網絡也可以採用,本發明在此方面不受限制)將分組向接收方32發送。進一步地,在步驟S306處,接收方32的特定虛擬機接收到該數據分組,在對其解封裝後,將解封裝的數據分組發送到其既定的目的地虛擬機。接下來,根據本發明的某些實施方式,目的地虛擬機的虛擬驅動器通過原始套接字(raw socket)轉發該數據分組(例如,去往圖1所示的封裝器1022)(步驟S307和S308),以便對其進行解封裝(步驟S309),從而在步驟S310中,該對應的應用(例如,QQ等)得到經解封裝的數據分組。本領域技術人員可以理解,如果從發送方31發送來的數據分組既未在用戶內存空間內進行封裝也未在單個共享頁面中進行重組,而是按照現有技術進行封裝後發送的,那麼接收方32處的步驟S308相應地無需執行,而是與現有技術相同,數據分組經由網絡協議棧被解封裝後發送至對應的應用。下面,進一步參考圖5來描述本發明的示例性頁面交換調度算法。在圖5中,標號50例如代表當前周期Teiment,標號51代表下一周期Tnext。時間點503代表當前周期T—50的起始時刻,時間點504代表下一周期Tnrart51的起始時刻。需要注意的是,此處給出的頁面交換調度算法僅用於說明本發明而不用於對其進行限制,任何本領域中現在已知的、目前正在研發的和目後研發的調度算法(例如,基於時間、空間的各種調度算法)都可以用於實現本發明。根據本發明的某些實施方式,例如可以響應於滿足用以觸發頁面交換的條件來調度頁面交換。具體地,根據本發明的某些實施方式,例如可以響應於單個共享頁面中已寫入一定百分比(例如,90%)的數據分組,調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換。根據本發明的某些實施方式,例如響應於到達頁面交換的周期的起始時刻(例如,由圖5中的時間點503和504示出,意味著上一個單個共享頁面寫入周期已結束),調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換。根據本發明的某些實施方式,例如可以響應於到達頁面交換的周期的起始時刻以及進一步地確定單個共享頁面具有待向外部機器發送的數據分組,調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換。否則,不調度頁面交換。並且,這種情況可能說明頁面調度的周期設置得過短,使得虛擬機沒有足夠的時間向單個共享頁面寫入數據分組,由此需要重新計算頁面調度的周期。
本領域技術人員可以理解,可以可選地設置定時器,以便在定時器的預定時段到期時,重新計算頁面調度的周期,以避免盲目的重新計算。本領域技術人員可以理解,在引入了重新計算頁面調度的周期這一機制的情況下,頁面調度的周期可以是動態改變的。根據本發明的某些實施方式,例如可以響應於到達固定的時間(例如,500ms),調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換,g卩,靜態的頁面交換周期。根據本發明的某些實施方式,如果每個虛擬機中的任何一個虛擬機向單個共享頁面寫入其待向外部機器發送的數據分組所需的時間間隔跨越頁面交換的下一周期的起始時刻(例如,假設跨越圖5中下一周期Tnext51的起始時刻,如時間點504所示),可以推遲該任何一個虛擬機的寫入到頁面交換的下一周期(即,推遲到由圖5中的時間點504表示其起始時刻的周期Tnrart51)。這可以通過在調度各虛擬機向單個共享頁面的寫入時,暫停該當前虛擬機的寫入操作,而調度其他有數據分組待發送且所需的時間間隔不會跨越頁面交換的下一周期的起始時刻的虛擬機(如果存在的話)來執行寫入操作。這樣做的優勢在於能夠避免某個虛擬機向單個共享頁面寫入數據的操作被中斷,造成寫入單個共享頁面中的數據分組不連續的情況。接下來 ,繼續參考圖5來描述頁面交換的周期的示例性計算方法。本領域技術人員可以理解,該計算方法僅用於說明本發明的實施方式,本發明在此方面不受限制,能夠利用Tssp501和Dssp502得到Teu ent50的任何計算方法都可以用於實現本發明。以圖5中的周期為例,其是根據運行在同一物理機上的所有虛擬機有數據待向外部機器發送的平均時間間隔(例如,由圖5中所示標號Tssp501表示)與所有虛擬機向單個共享頁面寫入數據分組所需的平均時間間隔確定的(例如,由圖5中所示標號Dssp502表示)。根據本發明的某些實施方式,如圖5所示,可以由二者之和確定,即,Tssp501+Dssp502 = TeulTent50。需要注意的是,該計算方法僅是示例,本發明在此方面不受限制。例如,根據本發明的某些實施方式,可以計算二者的加權和,例如,a.Tssp501+b.Dssp502 = Tcurrent50o其中,a和b為權重,其物理含義可以是計算得到的平均時間間隔Tssp501和Dssp502分別與有效的實際值之間的估算誤差。例如,按照經驗值,Tssp501的有效實際值例如為11ms,而實際計算的平均時間間隔Tssp501為10ms,則a將被選擇為1.1。需要注意,這些數值僅是示例,本發明在此方面不受限制。根據本發明的某些實施方式,Tssp 501 = ^=1^。其中,i = l...n,η為同一物理
機上所有虛擬機的數目,Ti為每個虛擬機有數據待向外部機器發送的平均時間間隔。類似地,Dssp SQl=Yi^Di。其中,i = L..η,η為同一物理機上的所有虛擬機的數目,Di為每個虛擬機向單個共享頁面寫入數據分組所需的平均時間間隔。根據本發明的某些實施方式,圖2所示的用於在虛擬機與外部機器進行通信時使用的方法200例如可以進一步包括向每個虛擬機通知頁面交換的周期。本領域技術人員可以理解,上述有關頁面交換的調度以及各個虛擬機向單個共享頁面寫入數據分組的調度均可由圖1中所示通信調度器1012執行。
下面,將參考圖6來描述根據本發明示例性實施方式的用於在虛擬機與外部機器進行通信時使用的設備600 (以下簡稱為通信設備600)的框圖。如圖6所示,通信設備600例如可以包括提供裝置601,配置用於提供在多個所述虛擬機與特定虛擬機之間共享的單個共享頁面,其中特定虛擬機與多個所述虛擬機運行在同一物理機上;寫入裝置605,配置用於向單個共享頁面寫入所述虛擬機待向外部機器發送的數據分組;調度裝置609,配置用於調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換;以及發送裝置611,配置用於將頁面交換後的特定虛擬機的內存頁面中的數據分組向外部機器發送。根據本發明的某些實施方式,通信設備600例如可以進一步包括:封裝裝置603,配置用於在向單個共享頁面寫入虛擬機待向外部機器發送的數據分組之前、在虛擬機的用戶內存空間內、按照特定協議封裝數據分組;以及該寫入裝置605例如可以包括用於直接通過方法調用的方式將封裝後的數據分組寫入到單個共享頁面的裝置。根據本發明的某些實施方式,調度裝置609例如可以是響應於到達頁面交換的周期的起始時刻而操作的。根據本發明的某些實施方式,頁面交換的周期例如可以是根據運行在同一物理機上的所有虛擬機有數據分組待向外部機器發送的平均時間間隔與所述所有虛擬機向單個共享頁面寫入數據分組所需的平均時間間隔確定的。根據本發明的某些實施方式,通信設備600例如可以進一步包括:通知裝置(未示出),配置用於向每個虛擬機通知所述頁面交換的周期。根據本發明的某些實施方式,調度裝置609例如是響應於進一步確定單個共享頁面具有待向外部機器發送的數據分組而操作的。根據本發明的某些實施方式,通信設備600例如可以進一步包括:計算裝置(未示出),配置用於響應於確定單個共享頁面不具有待向外部機器發送的數據分組,重新計算頁面交換的周期。根據本發明的某些實施方式,通信設備600例如可以進一步包括:推遲裝置(未示出),配置用於如果每個虛擬機中的任何一個虛擬機向單個共享頁面寫入其待向外部機器發送的數據分組所需的時間間隔跨越頁面交換的下一周期的起始時刻,推遲任何一個虛擬機的寫入到頁面交換的下一周期。根據本發明的某些實施方式,通信設備600例如可以進一步包括:重組裝置607,配置用於在單個共享頁面中對待向外部機器發送的數據分組進行重組。根據本發明的某些實施方式,重組裝置607例如可以包括:用於將來自同一虛擬機的或來自運行在同一物理機上的不同虛擬機的、具有相同目的地地址和協議層類型的數據分組的有效載荷聚集在一個數據分組中的裝置。根據本發明的某些實施方式,通信設備600例如可以進一步分發裝置(未示出),配置用於響應於特定虛擬機接收到來自外部機器的數據分組,將原始套接字應用於從數據分組尋址到的虛擬機的虛擬驅動器轉發該數據分組以便對其進行解封裝,其中來自外部機器的數據分組是在外部機器的虛擬機的用戶內存空間內、按照特定協議進行了封裝的,或者在外部機器的單個共享頁面內進行了重組的數據分組。下面,將參考圖7來描述可以實現本發明的計算設備。圖7示意性示出了可以實現根據本發明的實施方式的計算設備的結構方框圖。圖7中所示的計算機系統包括CPU(中央處理單元)701、RAM(隨機存取存儲器)702、ROM (只讀存儲器)703、系統總線704、硬碟控制器705、鍵盤控制器706、串行接口控制器707、並行接口控制器708、顯示器控制器709、硬碟710、鍵盤711、串行外部設備712、並行外部設備713和顯示器714。在這些部件中,與系統總線704相連的有CPU 701、RAM 702、ROM 703、硬碟控制器705、鍵盤控制器706、串行接口控制器707、並行接口控制器708和顯示器控制器709。硬碟710與硬碟控制器705相連,鍵盤711與鍵盤控制器706相連,串行外部設備712與串行接口控制器707相連,並行外部設備713與並行接口控制器708相連,以及顯示器714與顯示器控制器709相連。圖7所述的結構方框圖僅僅為了示例的目的而示出的,並非是對本發明的限制。在一些情況下,可以根據需要添加或者減少其中的一些設備。在介紹了本發明的技術方案之後,參考圖8A和圖SB來描述在實現了根據本發明的實施方式之後的系統性能仿真圖。具體而言,在實現了本發明的實施方式之後,頁面交換頻率減少率為
權利要求
1.一種用於在虛擬機與外部機器進行通信時使用的方法,包括: 提供在多個所述虛擬機與特定虛擬機之間共享的單個共享頁面,其中所述特定虛擬機與多個所述虛擬機運行在同一物理機上; 向所述單個共享頁面寫入所述虛擬機待向所述外部機器發送的數據分組; 調度所述單個共享頁面與所述特定虛擬機的空白內存頁面之間的頁面交換;以及 將所述頁面交換後的所述特定虛擬機的內存頁面中的數據分組向所述外部機器發送。
2.根據權利要求1所述的方法,進一步包括: 在向所述單個共享頁面寫入所述虛擬機待向所述外部機器發送的數據分組之前,在所述虛擬機的用戶內存空間內、按照特定協議封裝所述數據分組;以及 向所述單個共享頁面寫入所述虛擬機待向所述外部機器發送的數據分組包括:直接通過方法調用的方式將所述封裝後的數據分組寫入所述單個共享頁面。
3.根據權利要求1所述的方法,其中調度所述頁面交換是響應於到達所述頁面交換的周期的起始時刻而發生的,其中所述頁面交換的周期是根據運行在所述同一物理機上的所有虛擬機有數據分組待向所述外部機器發送的平均時間間隔與所述所有虛擬機向所述單個共享頁面寫入所述數據分組所需的平均時間間隔確定的;以及 所述方法進一步包括:向每個虛擬機通知所述頁面交換的周期。
4.根據權利要求3所述的方法,其中調度所述頁面交換是響應於進一步確定所述單個共享頁面具有待向所 述外部機器發送的數據分組而發生的;以及 所述方法進一步包括:響應於確定所述單個共享頁面不具有待向所述外部機器發送的數據分組,重新計算所述頁面交換的周期。
5.根據權利要求3所述的方法,進一步包括: 如果所述每個虛擬機中的任何一個虛擬機向所述單個共享頁面寫入其待向所述外部機器發送的數據分組所需的時間間隔跨越所述頁面交換的下一周期的起始時刻,推遲所述任何一個虛擬機的寫入到所述頁面交換的下一周期。
6.根據權利要求1所述的方法,進一步包括: 在所述單個共享頁面中對所述待向所述外部機器發送的數據分組進行重組。
7.根據權利要求6所述的方法,其中所述重組包括: 將來自同一虛擬機的或來自運行在所述同一物理機上的不同虛擬機的、具有相同目的地地址和協議層類型的數據分組的有效載荷聚集在一個數據分組中。
8.根據權利要求1所述的方法,進一步包括: 響應於所述特定虛擬機接收到來自所述外部機器的數據分組,將原始套接字應用於從所述數據分組尋址到的虛擬機的虛擬驅動器轉發所述數據分組,以便對其進行解封裝, 其中所述來自所述外部機器的數據分組是在所述外部機器的虛擬機的用戶內存空間內、按照特定協議進行了封裝的,或者在所述外部機器的單個共享頁面內進行了重組的數據分組。
9.一種用於在虛擬機與外部機器進行通信時使用的設備,包括: 提供裝置,配置用於提供在多個所述虛擬機與特定虛擬機之間共享的單個共享頁面,其中所述特定虛擬機與多個所述虛擬機運行在同一物理機上; 寫入裝置,配置用於向所述單個共享頁面寫入所述虛擬機待向所述外部機器發送的數據分組; 調度裝置,配置用於調度所述單個共享頁面與所述特定虛擬機的空白內存頁面之間的頁面交換;以及 發送裝置,配置用於將所述頁面交換後的所述特定虛擬機的內存頁面中的數據分組向所述外部機器發送。
10.根據權利要求9所述的設備,進一步包括: 封裝裝置,配置用於在向所述單個共享頁面寫入所述虛擬機待向所述外部機器發送的數據分組之前,在所述虛擬機的用戶內存空間內、按照特定協議封裝所述數據分組;以及 所述寫入裝置包括:用於直接通過方法調用的方式將所述封裝後的數據分組寫入到所述單個共享頁面的裝置。
11.根據權利要求9所述的設備,其中所述調度裝置是響應於到達所述頁面交換的周期的起始時刻而操作的,其中所述頁面交換的周期是根據運行在所述同一物理機上的所有虛擬機有數據分組待向所述外部機器發送的平均時間間隔與所述所有虛擬機向所述單個共享頁面寫入所述數據分組所需的平均時間間隔確定的;以及 所述設備進一步包括:通知裝置,配置用於向每個虛擬機通知所述頁面交換的周期。
12.根據權利要求11所述的設備,其中所述調度裝置是響應於進一步確定所述單個共享頁面具有待向所述外部機器發送的數據分組而操作的;以及 所述設備進一步包括:計算裝置,配置用於響應於確定所述單個共享頁面不具有待向所述外部機器發送的數據分組,重新計算所述頁面交換的周期。
13.根據權利要求11所述的設備,進一步包括: 推遲裝置,配置用於如果所述每個虛擬機中的任何一個虛擬機向所述單個共享頁面寫入其待向所述外部機器發送的數據分組所需的時間間隔跨越所述頁面交換的下一周期的起始時刻,推遲所述任何一個虛擬機的寫入到所述頁面交換的下一周期。
14.根據權利要求9所述的設備,進一步包括: 重組裝置,配置用於在所述單個共享頁面中對所述待向所述外部機器發送的數據分組進行重組。
15.根據權利要求14所述的設備,其中所述重組裝置包括: 用於將來自同一虛擬機的或來自運行在所述同一物理機上的不同虛擬機的、具有相同目的地地址和協議層類型的數據分組的有效載荷聚集在一個數據分組中的裝置。
16.根據權利要求9所述的設備,進一步包括: 分發裝置,配置用於響應於所述特定虛擬機接收到來自所述外部機器的數據分組,將原始套接字應用於從所述數據分組尋址到的虛擬機的虛擬驅動器轉發所述數據分組,以便對其進行解封裝, 其中所述來自所述外部機器的數據分組是在所述外部機器的虛擬機的用戶內存空間內、按照特定協議進行了封裝的,或者在所述外部機器的單個共享頁面內進行了重組的數據分組。
17.—種虛擬機系統,包括: 虛擬機管理器,其具有用於在所述虛擬機系統包括的多個虛擬機與特定虛擬機之間進行共享的單個共享頁面,其中所述特定虛擬機與所述多個虛擬機運行在同一物理機上;所述多個虛擬機,配置用於向所述單個共享頁面寫入待向外部機器發送的數據分組; 其中所述虛擬機管理器進一步包括通信調度器,其配置用於調度所述單個共享頁面與所述特定虛擬機的空白內存頁面之間的頁面交換,以使得所述頁面交換後的所述特定虛擬機的內存頁面中的數據分組向所述外部機器發送。
18.根據權利要求17所述的虛擬機系統,進一步包括封裝器,配置用於在向所述單個共享頁面寫入所述多個虛擬機中的相應虛擬機待向所述外部機器發送的數據分組之前、在所述相應虛擬機的用戶內存空間內、按照特定協議進行封裝;以及 所述虛擬機管理器進一步包括方法調用裝置,其配置用於直接通過方法調用的方式將所述封裝後的數據分組寫入所述單個共享頁面。
19.根據權利要求17所述的虛擬機系統,其中所述虛擬機管理器進一步包括內容組織器,其配置用於在所述單個共享頁面中對所述待向所述外部機器發送的數據分組進行重組。
20.根據權利要求19所述的虛擬機系統,其中所述內容組織器進一步配置用於通過將來自同一虛擬機的或來自運行在所述同一物理機上的不同虛擬機的、具有相同目的地地址和協議層類型的數據分組的有效載荷聚集在一個數據分組中來對所述數據分組進行重組。
全文摘要
本發明的實施方式涉及一種虛擬機與外部機器通信時使用的方法、設備及虛擬機系統。具體地,根據本發明第一方面的用於在虛擬機與外部機器進行通信時使用的方法例如可以包括提供在多個所述虛擬機與特定虛擬機之間共享的單個共享頁面,其中特定虛擬機與多個所述虛擬機運行在同一物理機上;向單個共享頁面寫入所述虛擬機待向外部機器發送的數據分組;調度單個共享頁面與特定虛擬機的空白內存頁面之間的頁面交換;以及將頁面交換後的特定虛擬機的內存頁面中的數據分組向外部機器發送。
文檔編號G06F9/54GK103218266SQ201210016848
公開日2013年7月24日 申請日期2012年1月18日 優先權日2012年1月18日
發明者曲俊媚, 李立, 劉亮, 戈弋, 袁昱 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀