一種基于虛擬機遷移的遠程訪問方法和設備的制作方法
【專利摘要】本發(fā)明公開了一種基于虛擬機遷移的遠程訪問方法和設備,該方法包括:當虛擬機需要從源物理主機遷移到目的物理主機時,VNC客戶端接收來自第一VNC服務器端的VNC協(xié)議消息,所述VNC協(xié)議消息中攜帶第二VNC服務器端的端口信息以及目的物理主機的IP地址;所述VNC客戶端在確定虛擬機遷移到目的物理主機之后,利用第二VNC服務器端的端口信息以及目的物理主機的IP地址,建立本VNC客戶端與第二VNC服務器端之間的連接。本發(fā)明實施例中,可以避免呈現(xiàn)在用戶側的虛擬桌面或遠程桌面出現(xiàn)中斷。
【專利說明】一種基于虛擬機遷移的遠程訪問方法和設備
【技術領域】
[0001]本發(fā)明涉及了通信【技術領域】,尤其是涉及了一種基于虛擬機遷移的遠程訪問方法 和設備。
【背景技術】
[0002]隨著硬件速度的不斷提高,服務器性能大大提升,數(shù)據(jù)中心的部分服務器的使用 率有所下降,為了提高服務器的硬件利用率,近年來,虛擬化技術得到很大發(fā)展。通過虛擬 機軟件,可以在一臺物理計算機上模擬出一臺或者多臺虛擬機,這些虛擬機完全就像真正 的計算機那樣進行工作,例如,在虛擬機上可以安裝操作系統(tǒng)、安裝應用程序、訪問網絡資 源等。
[0003]VNC (Virtual Network Computing,虛擬網絡計算機)是一款遠程控制工具軟件, 主要由VNC客戶端(vncviewer)和VNC服務器端(vncserver)組成,且VNC服務器端可以通 過設定密碼等方式來提高網絡訪問的安全性。
[0004]虛擬機遷移是指將源物理主機上的虛擬機遷移到目的物理主機,并且能夠在目的 物理主機上正常運行。其中,如果遷移時虛擬機處于運行狀態(tài),則稱為在線遷移;如果遷移 時虛擬機處于停止狀態(tài),則稱為離線遷移。進一步的,通過虛擬機遷移,可以簡化系統(tǒng)的維 護與管理,實現(xiàn)系統(tǒng)的負載均衡,并增強系統(tǒng)的容錯能力,以及優(yōu)化系統(tǒng)電源管理和節(jié)約能 源等。
[0005]為了實現(xiàn)桌面的虛擬化,將遠程物理主機或者虛擬機的桌面通過網絡呈現(xiàn)在本 端,通常需要VNC客戶端直接連接到VNC服務器端,如圖1所示,為VNC客戶端直接連接到 VNC服務器端的示意圖。VNC客戶端在獲知物理主機的IP地址以及虛擬機對應的VNC服務 器端的端口信息后,即可以連接到VNC服務器端,繼而能夠連接到指定的虛擬機上來使用 該虛擬機。
[0006]但是,當源物理主機上的虛擬機遷移到目的物理主機上時,在虛擬機遷移之后, VNC客戶端與VNC服務器端所在的源物理主機之間的連接將斷開,且VNC客戶端需要重新建 立到虛擬機遷移后的目的物理主機的連接,從而導致呈現(xiàn)在用戶側的虛擬桌面(或稱為遠 程桌面)出現(xiàn)中斷。
【發(fā)明內容】
[0007]本發(fā)明實施例提供一種基于虛擬機遷移的遠程訪問方法和設備,以避免呈現(xiàn)在用 戶側的虛擬桌面或遠程桌面出現(xiàn)中斷,提高用戶使用感受。
[0008]為了達到上述目的,本發(fā)明實施例提供一種基于虛擬機遷移的遠程訪問方法,該 方法包括:
[0009]當虛擬機需要從源物理主機遷移到目的物理主機時,在所述虛擬機遷移到所述目 的物理主機之前,虛擬網絡計算機VNC客戶端接收來自所述虛擬機在所述源物理主機上對 應的第一 VNC服務器端的VNC協(xié)議消息;其中,所述VNC協(xié)議消息中攜帶所述虛擬機在所述目的物理主機上對應的第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;
[0010]所述VNC客戶端在感知到自身與所述第一 VNC服務器端之間的連接斷開時,確定 所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以及 所述目的物理主機的IP地址,建立本VNC客戶端與所述第二 VNC服務器端之間的連接,以 登錄所述虛擬機的桌面。
[0011 ] 所述VNC客戶端接收來自第一 VNC服務器端的VNC協(xié)議消息之前,所述方法還包 括:所述VNC客戶端接收來自虛擬機管理平臺的通知消息,所述通知消息中攜帶所述第一 VNC服務器端的端口信息以及所述源物理主機的IP地址,并利用所述第一 VNC服務器端的 端口信息以及所述源物理主機的IP地址,建立本VNC客戶端與所述第一 VNC服務器端之間 的連接。
[0012]所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4 和ipv6共用地址結構字段、vnc端口信息字段;
[0013]其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地 址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
[0014]本發(fā)明實施例提出一種基于虛擬機遷移的遠程訪問方法,該方法包括:
[0015]當虛擬機需要從源物理主機遷移到目的物理主機時,所述虛擬機在源物理主機上 對應的第一虛擬網絡計算機VNC服務器端獲取虛擬機在目的物理主機上對應的第二 VNC服 務器端的端口信息以及所述目的物理主機的IP地址;
[0016]在所述虛擬機遷移到所述目的物理主機之前,所述第一 VNC服務器端向所述虛擬 機對應的VNC客戶端發(fā)送VNC協(xié)議消息,所述VNC協(xié)議消息中攜帶所述第二 VNC服務器端 的端口信息以及所述目的物理主機的IP地址;
[0017]由所述VNC客戶端在感知到自身與所述第一 VNC服務器端之間的連接斷開時,確 定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以 及所述目的物理主機的IP地址,建立所述VNC客戶端與所述第二 VNC服務器端之間的連 接,以登錄所述虛擬機的桌面。
[0018]所述第一 VNC服務器端獲取第二 VNC服務器端的端口信息以及所述目的物理主機 的IP地址,包括:
[0019]所述第一 VNC服務器端接收來自源物理主機上的Iibvirt中間件的所述第二 VNC 服務器端的端口信息以及所述目的物理主機的IP地址;其中,所述Iibvirt中間件用于將 虛擬機從源物理主機遷移到目的物理主機,并用于將所述第二 VNC服務器端的端口信息和 所述目的物理主機的IP地址、以及所述虛擬機何時遷移到所述目的物理主機的信息,通知 給所述第一 VNC服務器端。
[0020]所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4 和ipv6共用地址結構字段、vnc端口信息字段;
[0021]其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地 址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
[0022]本發(fā)明實施例提出一種虛擬網絡計算機VNC客戶端,該VNC客戶端包括:
[0023]接收模塊,用于當虛擬機需要從源物理主機遷移到目的物理主機時,在所述虛擬 機遷移到所述目的物理主機之前,接收來自所述虛擬機在所述源物理主機上對應的第一VNC服務器端的VNC協(xié)議消息;其中,所述VNC協(xié)議消息中攜帶所述虛擬機在所述目的物理 主機上對應的第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;
[0024]處理模塊,用于在感知到VNC客戶端與所述第一 VNC服務器端之間的連接斷開時, 確定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息 以及所述目的物理主機的IP地址,建立本VNC客戶端與所述第二 VNC服務器端之間的連 接,以登錄所述虛擬機的桌面。
[0025]所述接收模塊,還用于在接收來自第一 VNC服務器端的VNC協(xié)議消息之前,接收來 自虛擬機管理平臺的通知消息,所述通知消息中攜帶所述第一 VNC服務器端的端口信息以 及所述源物理主機的IP地址;
[0026]所述處理模塊,還用于利用第一 VNC服務器端的端口信息以及源物理主機的IP地 址,建立本VNC客戶端與所述第一 VNC服務器端之間的連接。
[0027]所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4 和ipv6共用地址結構字段、vnc端口信息字段;
[0028]其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地 址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
[0029]本發(fā)明實施例提出一種虛擬網絡計算機VNC服務器端,作為虛擬機在源物理主機 上對應的VNC服務器端,所述VNC服務器端具體包括:
[0030]獲取模塊,用于當所述虛擬機需要從所述源物理主機遷移到目的物理主機時,獲 取所述虛擬機在所述目的物理主機上對應的第二 VNC服務器端的端口信息以及所述目的 物理主機的IP地址;
[0031]發(fā)送模塊,用于在所述虛擬機遷移到所述目的物理主機之前,向所述虛擬機對應 的VNC客戶端發(fā)送VNC協(xié)議消息,所述VNC協(xié)議消息中攜帶所述第二 VNC服務器端的端口 信息以及所述目的物理主機的IP地址;
[0032]由所述VNC客戶端在感知到自身與所述第一 VNC服務器端之間的連接斷開時,確 定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以 及所述目的物理主機的IP地址,建立所述VNC客戶端與所述第二 VNC服務器端之間的連 接,以登錄所述虛擬機的桌面。
[0033]所述獲取模塊,具體用于接收來自源物理主機上的Iibvirt中間件的所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;其中,所述Iibvirt中間件用 于將虛擬機從源物理主機遷移到目的物理主機,并用于將第二 VNC服務器端的端口信息和 所述目的物理主機的IP地址、以及所述虛擬機何時遷移到所述目的物理主機的信息,通知 給所述第一 VNC服務器端。
[0034]所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4 和ipv6共用地址結構字段、vnc端口信息字段;
[0035]其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地 址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
[0036]與現(xiàn)有技術相比,本發(fā)明實施例至少具有以下優(yōu)點:本發(fā)明實施例中,當虛擬機需 要從源物理主機遷移到目的物理主機時,在虛擬機遷移到目的物理主機之前,通過將第二 VNC服務器端的端口信息以及目的物理主機的IP地址通知給VNC客戶端,使得VNC客戶端在確定虛擬機遷移到目的物理主機之后,能夠直接利用第二 VNC服務器端的端口信息以及 目的物理主機的IP地址,建立本VNC客戶端與第二 VNC服務器端之間的連接,從而避免呈 現(xiàn)在用戶側的虛擬桌面或遠程桌面出現(xiàn)中斷,提高用戶使用感受。具體的,在虛擬機的遷移 過程中,能夠實現(xiàn)虛擬桌面或遠程桌面的不間斷運行,并且在虛擬機遷移過程中提高虛擬 桌面或遠程桌面的用戶使用體驗。
【專利附圖】
【附圖說明】
[0037]圖1是現(xiàn)有技術中VNC客戶端直接連接到VNC服務器端的示意圖;
[0038]圖2是本發(fā)明實施例的系統(tǒng)結構示意圖;
[0039]圖3是本發(fā)明實施例中VNC客戶端直接連接到VNC服務器端的示意圖;
[0040]圖4是本發(fā)明實施例提供的一種基于虛擬機遷移的遠程訪問方法流程圖;
[0041]圖5是本發(fā)明實施例提供的一種VNC客戶端的結構示意圖;
[0042]圖6是本發(fā)明實施例提供的一種VNC服務器端的結構示意圖。
【具體實施方式】
[0043]針對現(xiàn)有技術中存在的問題,本發(fā)明實施例提供一種基于虛擬機遷移的遠程訪問 方法,該方法應用于包括虛擬機管理平臺和多個物理主機的系統(tǒng)中,且各物理主機上運行 有一個以上的虛擬機。如圖2所示,為包括虛擬機管理平臺和多個物理主機的系統(tǒng)結構示 意圖,該系統(tǒng)中包括物理主機1、物理主機2和物理主機3。本應用場景下,以三臺物理主機 組成的系統(tǒng)為例進行說明,在實際組網中物理主機的節(jié)點個數(shù)可以靈活的彈性伸展,在此 不再贅述。
[0044]其中,在各物理主機上可以運行基于Linux的KVM (kernel-based Virtual Machine,基于內核的虛擬機)虛擬化平臺(該KVM為VMM (Virtual Machine Monitor,虛擬 機)的一種具體實現(xiàn))、運行l(wèi)ibvirt (虛擬化工具的函數(shù)庫)等虛擬化中間件。此外,各物 理主機上運行多個虛擬機,各虛擬機上分別運行不同業(yè)務(如DataBase server (數(shù)據(jù)庫服 務)、web server (網絡服務),file server (文件服務),ftp serve (文件傳輸服務)、mail server (郵件服務)等)。
[0045]如圖3所示,為本發(fā)明實施例的應用場景示意圖,在本發(fā)明實施例提供的遠程訪 問方法中,相應的系統(tǒng)結構中包括虛擬機管理平臺(vManager)、VNC客戶端、VNC服務器端、 運行基于Linux的KVM虛擬化平臺的物理主機、運行在各物理主機上的開源Iibvirt中間 件。其中,KVM是Linux上的虛擬化平臺,并可以在物理主機上創(chuàng)建虛擬機,使得各物理主 機上運行多個虛擬機。
[0046]本發(fā)明實施例中,虛擬機管理平臺通過SSH(Secure Shell,安全外殼協(xié)議)等遠程 工具來管理物理主機,實現(xiàn)對所有物理主機、所有物理主機上運行的虛擬機、虛擬交換機、 存儲資源等的統(tǒng)一管理。進一步的,虛擬機管理平臺可以通過SSH等遠程工具來管理各個 物理主機,如:(1)實現(xiàn)對物理主機的增加、刪除等操作;(2)通過Iibvirt虛擬化工具軟件 來實現(xiàn)虛擬機創(chuàng)建、刪除、啟動、停止、暫停、遷移虛擬機等所有虛擬機生命周期相關的操作 和管理;(3)在用戶選擇指定虛擬機后,提供按鈕,點擊該按鈕后啟動VNC客戶端,連接指定 的虛擬機,將遠程虛擬機的桌面展現(xiàn)到用戶面前。[0047]本發(fā)明實施例中,各物理主機上運行基于Linux的KVM虛擬化平臺、運行Iibvirt 等虛擬化中間件,且各物理主機是虛擬機、虛擬交換機、存儲的載體。其中,各物理主機上還 需要運行VNC服務器端,且每個啟動狀態(tài)的虛擬機都對應VNC服務器端上的一個端口,且 VNC客戶端可以通過該端口連接到該虛擬機的桌面,從而實現(xiàn)遠程虛擬桌面,繼而操作該虛 擬機。
[0048]具體的,當在物理主機上創(chuàng)建虛擬機之后,可以通過命令行等方式指定該虛擬機 在VNC服務器端上的端口信息等,而VNC客戶端在獲知該物理主機的IP地址、以及該虛擬 機在VNC服務器端上的端口信息后,即可以連接到該VNC服務器端,繼而能夠連接到指定的 虛擬機上來使用該虛擬機。
[0049]本發(fā)明實施例中,VNC客戶端和VNC服務器端是開源虛擬桌面工具軟件。VNC客戶 端運行在客戶側,用戶在虛擬機管理平臺上選中某臺虛擬機,并執(zhí)行“遠程桌面”命令時,虛 擬機管理平臺將遠程物理主機的IP地址和虛擬機在VNC服務器端上的端口等信息發(fā)送給 VNC客戶端,使得VNC客戶端可以登錄虛擬機桌面。VNC服務器端則運行在各物理主機上, 在創(chuàng)建虛擬機時,可以通過KVM虛擬化平臺指定該虛擬機在VNC服務器端上的端口。
[0050]基于上述虛擬機管理平臺、物理主機、VNC客戶端和VNC服務器端,如圖4所示,該 基于虛擬機遷移的遠程訪問方法包括以下步驟:
[0051]步驟401,用戶在IE等瀏覽器上登錄虛擬機管理平臺,在源物理主機上創(chuàng)建虛擬 機VMl,即指定該虛擬機VMl建立在源物理主機上。
[0052]步驟402,虛擬機管理平臺獲取虛擬機VMl在源物理主機上對應的第一 VNC服務器 端的端口信息以及源物理主機的IP地址,并向VNC客戶端發(fā)送通知消息;其中,該通知消息 中至少攜帶了第一 VNC服務器端的端口信息以及源物理主機的IP地址。進一步的,該端口 信息可以為端口號。
[0053]其中,源物理主機的IP地址可以是IPV4地址或者IPV6地址。
[0054]具體的,當用戶在虛擬機管理平臺上執(zhí)行登錄“遠程桌面”按鈕時,虛擬機管理平 臺獲取源物理主機(即當前運行虛擬機的物理主機)的IP地址(如192.168.0.188),并通過 SSH登陸到該IP地址(如192.168.0.188),之后,虛擬機管理平臺通過開源Iibvirt命令 virsh vncdisplay vml可以獲取到第一 VNC服務器端的端口信息(即端口號)。例如,基于 Iibvirt命令virsh vncdisplay vml,如下結果說明虛擬機VMl對應的第一 VNC服務器端 的端口號為O。
[0055]rooticvknode2:?/build#virsh vncdisplay vml
[0056]: 0
[0057]root@cvknode2:?/build#
[0058]步驟403,VNC客戶端接收來自虛擬機管理平臺的通知消息,利用第一 VNC服務器 端的端口信息和源物理主機的IP地址,建立本VNC客戶端與第一 VNC服務器端之間的連 接,以利用該連接登錄到虛擬機VMl的遠程桌面。
[0059]具體的,虛擬機管理平臺可以在用戶的IE等瀏覽器上啟動VNC客戶端,并在 IE等瀏覽器上提供第一 VNC服務器端的端口信息以及源物理主機的IP地址等信息(如 192.168.0.188:0),使得VNC客戶端利用第一 VNC服務器端的端口信息以及源物理主機的 IP地址建立本VNC客戶端與第一 VNC服務器端之間的連接,以利用該連接登錄到虛擬機VMl的遠程桌面。
[0060]步驟404,當虛擬機VMl需要從源物理主機遷移到目的物理主機(此時虛擬機VMl 還未從源物理主機遷移到目的物理主機,只是有從源物理主機遷移到目的物理主機的需 求)時,第一 VNC服務器端獲取虛擬機VMl在目的物理主機上對應的第二 VNC服務器端的端 口信息和目的物理主機的IP地址。
[0061]其中,目的物理主機的IP地址可以是IPV4地址或者IPV6地址。
[0062]具體的,當虛擬機VMl需要從源物理主機遷移到目的物理主機(基于管理員操作 驅動或資源調度LB驅動等原因,會導致虛擬機VMl從源物理主機遷移到目的物理主機)時, 可以通過源物理主機上的Iibvirt中間件將虛擬機從源物理主機遷移到目的物理主機,比 如Iibvirt中間件的如下命令用于將虛擬機VMl從主機hostl (源物理主機)遷移到主機 host2 (目的物理主機),超時時間為300s,即在遷移過程超過300s時將暫停虛擬機VMl,再 繼續(xù)遷移。
[0063]virsh-c qemu+ssh://host 1/system migrate — live—persistent vml qemu+ssh://host2/system—timeout300
[0064]基于此,libvirt中間件在執(zhí)行虛擬機遷移的過程(從源物理主機遷移到目的物理 主機的過程)中,libvirt中間件能夠獲取到第二 VNC服務器端的端口信息(如遷移成功后 虛擬機VMl在host2上的VNC服務器端的端口號)和目的物理主機的IP地址(如host2的 IP地址);此外,虛擬機VMl何時完成從源物理主機遷移到目的物理主機的過程,libvirt中 間件本身也是能夠獲知的。
[0065]libvirt中間件在獲取到第二 VNC服務器端的端口信息和目的物理主機的IP地址 后,將第二 VNC服務器端的端口信息和目的物理主機的IP地址通知給第一 VNC服務器端, 由第一 VNC服務器端獲知第二 VNC服務器端的端口信息和目的物理主機的IP地址。此外, libvirt中間件在獲取到虛擬機何時遷移到目的物理主機時,將虛擬機何時遷移到目的物 理主機的信息通知給第一 VNC服務器端,由第一 VNC服務器端獲知虛擬機何時遷移到目的 物理主機。
[0066]步驟405,在虛擬機遷移到目的物理主機之前,第一 VNC服務器端向VNC客戶端發(fā) 送VNC協(xié)議消息。其中,該VNC協(xié)議消息中至少攜帶了第二 VNC服務器端的端口信息以及 目的物理主機的IP地址。
[0067]具體的,由于libvirt中間件會將虛擬機何時遷移到目的物理主機的信息通知給 第一 VNC服務器端,使得第一 VNC服務器端能夠獲知虛擬機何時遷移到目的物理主機,因 此,第一 VNC服務器端可以在虛擬機遷移到目的物理主機之前,通過VNC協(xié)議消息將第二 VNC服務器端的端口信息以及目的物理主機的IP地址通知給VNC客戶端。
[0068]步驟406,VNC客戶端接收來自第一 VNC服務器端的VNC協(xié)議消息(其中攜帶了第 二 VNC服務器端的端口信息以及目的物理主機的IP地址),并在感知到本VNC客戶端與第
一VNC服務器端之間的連接斷開時,VNC客戶端確定虛擬機VMl已經遷移到目的物理主機, 并利用第二 VNC服務器端的端口信息以及目的物理主機的IP地址,建立本VNC客戶端與第
二VNC服務器端之間的連接,以登錄虛擬機VMl的桌面。
[0069]具體的,VNC客戶端在收到來自第一 VNC服務器端的VNC協(xié)議消息之后,可以獲取 到第二 VNC服務器端的端口信息以及目的物理主機的IP地址,并保存第二 VNC服務器端的端口信息以及目的物理主機的IP地址。之后的過程中,當虛擬機VMl遷移到目的物理主機 之后,VNC客戶端與第一 VNC服務器端之間的連接將斷開,且VNC客戶端在感知到本VNC客 戶端與第一 VNC服務器端之間的連接斷開時,將確定虛擬機VMl已經遷移到目的物理主機, 此時VNC客戶端會直接利用之前保存的第二 VNC服務器端的端口信息以及目的物理主機的 IP地址,建立本VNC客戶端與第二 VNC服務器端之間的連接,以重新登錄到虛擬機VMl的遠 程桌面,并且避免呈現(xiàn)在用戶側的虛擬桌面或遠程桌面出現(xiàn)中斷,從而提高用戶使用感受。
[0070]在本發(fā)明實施例的一種優(yōu)選實施方式中,VNC協(xié)議消息的消息類型為 VmMigrateInfo, VNC協(xié)議消息中攜帶ipv4和ipv6共用地址結構字段、vnc端口信息字段; 其中,ipv4和ipv6共用地址結構字段用于承載目的物理主機的IP地址,vnc端口信息字段 用于承載第二 VNC服務器端的端口信息。
[0071 ] 具體的,對于第一 VNC服務器端向VNC客戶端發(fā)送的VNC協(xié)議消息,通過擴展一個 消息類型VmMigrateInfo (數(shù)據(jù)類型為U8,即一個字節(jié)),并在現(xiàn)有的消息號后占用一個空 閑號(如211),使得VNC協(xié)議消息能夠承載目的物理主機的IP地址以及第二 VNC服務器端 的端口信息。
[0072]如下所示,為VNC協(xié)議消息的一種具體消息格式,該VNC協(xié)議消息通過ipv4和 ipv6共用地址結構字段承載目的物理主機的IP地址,并通過vnc端口信息字段承載第二 VNC服務器端的端口信息。
[0073]
【權利要求】
1.一種基于虛擬機遷移的遠程訪問方法,其特征在于,該方法包括:當虛擬機需要從源物理主機遷移到目的物理主機時,在所述虛擬機遷移到所述目的物理主機之前,虛擬網絡計算機VNC客戶端接收來自所述虛擬機在所述源物理主機上對應的第一 VNC服務器端的VNC協(xié)議消息;其中,所述VNC協(xié)議消息中攜帶所述虛擬機在所述目的物理主機上對應的第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;所述VNC客戶端在感知到自身與所述第一 VNC服務器端之間的連接斷開時,確定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址,建立本VNC客戶端與所述第二 VNC服務器端之間的連接,以登錄所述虛擬機的桌面。
2.如權利要求1所述的方法,其特征在于,所述VNC客戶端接收來自第一VNC服務器端的VNC協(xié)議消息之前,所述方法還包括:所述VNC客戶端接收來自虛擬機管理平臺的通知消息,所述通知消息中攜帶所述第一 VNC服務器端的端口信息以及所述源物理主機的IP地址,并利用所述第一 VNC服務器端的端口信息以及所述源物理主機的IP地址,建立本VNC客戶端與所述第一 VNC服務器端之間的連接。
3.如權利要求1所述的方法,其特征在于,所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4和 ipv6共用地址結構字段、vnc端口信息字段;其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
4.一種基于虛擬機遷 移的遠程訪問方法,其特征在于,該方法包括:當虛擬機需要從源物理主機遷移到目的物理主機時,所述虛擬機在源物理主機上對應的第一虛擬網絡計算機VNC服務器端獲取虛擬機在目的物理主機上對應的第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;在所述虛擬機遷移到所述目的物理主機之前,所述第一 VNC服務器端向所述虛擬機對應的VNC客戶端發(fā)送VNC協(xié)議消息,所述VNC協(xié)議消息中攜帶所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;由所述VNC客戶端在感知到自身與所述第一 VNC服務器端之間的連接斷開時,確定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址,建立所述VNC客戶端與所述第二 VNC服務器端之間的連接,以登錄所述虛擬機的桌面。
5.如權利要求4所述的方法,其特征在于,所述第一VNC服務器端獲取第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址,包括:所述第一 VNC服務器端接收來自源物理主機上的Iibvirt中間件的所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;其中,所述Iibvirt中間件用于將虛擬機從源物理主機遷移到目的物理主機,并用于將所述第二 VNC服務器端的端口信息和所述目的物理主機的IP地址、以及所述虛擬機何時遷移到所述目的物理主機的信息,通知給所述第一 VNC服務器端。
6.如權利要求4所述的方法,其特征在于,所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4和 ipv6共用地址結構字段、vnc端口信息字段;其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
7.一種虛擬網絡計算機VNC客戶端,其特征在于,該VNC客戶端包括:接收模塊,用于當虛擬機需要從源物理主機遷移到目的物理主機時,在所述虛擬機遷移到所述目的物理主機之前,接收來自所述虛擬機在所述源物理主機上對應的第一 VNC服務器端的VNC協(xié)議消息;其中,所述VNC協(xié)議消息中攜帶所述虛擬機在所述目的物理主機上對應的第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;處理模塊,用于在感知到VNC客戶端與所述第一 VNC服務器端之間的連接斷開時,確定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址,建立本VNC客戶端與所述第二 VNC服務器端之間的連接,以登錄所述虛擬機的桌面。
8.如權利要求7所述的VNC客戶端,其特征在于,所述接收模塊,還用于在接收來自第一 VNC服務器端的VNC協(xié)議消息之前,接收來自虛擬機管理平臺的通知消息,所述通知消息中攜帶所述第一 VNC服務器端的端口信息以及所述源物理主機的IP地址;所述處理模塊,還用于利用第一 VNC服務器端的端口信息以及源物理主機的IP地址, 建立本VNC客戶端與所述第一 VNC服務器端之間的連接。
9.如權利要求7所述的VNC客戶端,其特征在于,所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4和 ipv6共用地址結構字段、vnc端口信息字段;其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
10.一種虛擬網絡計算機VNC服務器端,作為虛擬機在源物理主機上對應的VNC服務器端,其特征在于,所述VNC服務器端具體包括:獲取模塊,用于當所述虛擬機需要從所述源物理主機遷移到目的物理主機時,獲取所述虛擬機在所述目的物理主機上對應的第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;發(fā)送模塊,用于在所述虛擬機遷移到所述目的物理主機之前,向所述虛擬機對應的VNC 客戶端發(fā)送VNC協(xié)議消息,所述VNC協(xié)議消息中攜帶所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;由所述VNC客戶端在感知到自身與所述第一 VNC服務器端之間的連接斷開時,確定所述虛擬機已經遷移到所述目的物理主機,并利用所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址,建立所述VNC客戶端與所述第二 VNC服務器端之間的連接,以登錄所述虛擬機的桌面。
11.如權利要求10所述的VNC服務器端,其特征在于,所述獲取模塊,具體用于接收來自源物理主機上的Iibvirt中間件的所述第二 VNC服務器端的端口信息以及所述目的物理主機的IP地址;其中,所述Iibvirt中間件用于將虛擬機從源物理主機遷移到目的物理主機,并用于將第二 VNC服務器端的端口信息和所述目的物理主機的IP地址、以及所述虛擬機何時遷移到所述目的物理主機的信息,通知給所述第一 VNC服務器端。
12.如權利要求10所述的VNC服務器端,其特征在于,所述VNC協(xié)議消息的消息類型為VmMigrateInfo,所述VNC協(xié)議消息中攜帶ipv4和 ipv6共用地址結構字段、vnc端口信息字段;其中,所述ipv4和ipv6共用地址結構字段用于承載所述目的物理主機的IP地址,所述vnc端口信息字段用于承載所述第二 VNC服務器端的端口信息。
【文檔編號】H04L29/06GK103501295SQ201310450732
【公開日】2014年1月8日 申請日期:2013年9月27日 優(yōu)先權日:2013年9月27日
【發(fā)明者】蔡志峰, 常利民 申請人:杭州華三通信技術有限公司