一種基于虛擬網(wǎng)絡(luò)計(jì)算的遠(yuǎn)程訪問方法和裝置制造方法
【專利摘要】本申請公開了一種基于VNC的遠(yuǎn)程訪問的方法,該方法包括:在VNC代理感知到與VM的連接斷開時(shí),從虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,使用獲取的位置信息與該VM建立連接,使所述VNC客戶端能夠通過虛擬桌面繼續(xù)遠(yuǎn)程訪問該VM?;谕瑯拥陌l(fā)明構(gòu)思,本申請還公開了一種裝置,能夠?qū)崿F(xiàn)VNC客戶端側(cè)虛擬桌面的不間斷訪問。
【專利說明】一種基于虛擬網(wǎng)絡(luò)計(jì)算的遠(yuǎn)程訪問方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請涉及通信【技術(shù)領(lǐng)域】,特別涉及一種基于虛擬網(wǎng)絡(luò)計(jì)算的遠(yuǎn)程訪問方法和裝置。
【背景技術(shù)】
[0002]隨著硬件速度的不斷提高,服務(wù)器性能大大提升,數(shù)據(jù)中心中的部分服務(wù)器的使用率有所下降,為了提高服務(wù)器硬件利用率,降低數(shù)據(jù)中心的運(yùn)維成本,近年來,虛擬化技術(shù)得到了很大的發(fā)展。
[0003]通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。通過虛擬機(jī)軟件,我們可以在一臺物理計(jì)算機(jī)上模擬出一臺或多臺虛擬的計(jì)算機(jī),這些虛擬機(jī)完全就像真正的計(jì)算機(jī)那樣進(jìn)行工作,例如可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。從用戶的角度看,它只是運(yùn)行在你物理計(jì)算機(jī)上的一個(gè)應(yīng)用程序,但是對于在虛擬機(jī)中運(yùn)行的應(yīng)用程序而言,它就像是在真正的計(jì)算機(jī)中進(jìn)行工作。
[0004]虛擬網(wǎng)絡(luò)計(jì)算(Virtual Network Computing, VNC),是一款優(yōu)秀的遠(yuǎn)程控制工具軟件。虛擬機(jī)遷移是指把源物理主機(jī)上的虛擬機(jī)遷移到目的物理主機(jī),并且能夠在目的物理主機(jī)上正常運(yùn)行,通過虛擬機(jī)遷移,可以簡化系統(tǒng)的維護(hù)與管理,實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡,增強(qiáng)系統(tǒng)的容錯(cuò)能力,優(yōu)化系統(tǒng)電源管理,節(jié)約能源。目前,虛擬機(jī)遷移可以實(shí)現(xiàn)其上運(yùn)行的業(yè)務(wù)不間斷。
[0005]VNC代理在VNC客戶端和VNC服務(wù)端之間轉(zhuǎn)發(fā)消息。VNC代理在VNC客戶端和VNC服務(wù)端之間起到屏蔽作用,避免了客戶端和服務(wù)器端的直接接觸,提高安全性。由于所有消息通過代理進(jìn)行轉(zhuǎn)發(fā),可以在代理上對消息進(jìn)行審計(jì),增加必要的密鑰、密碼或加密等措施,提高安全性。
[0006]在VNC客戶端通過虛擬桌面連接的VM遷移后,之前虛擬桌面的連接會斷開,VM的當(dāng)前位置信息,即該VM當(dāng)前在哪個(gè)VNC服務(wù)器上、以及在該新的VNC服務(wù)器上的vnc-server端口號是多少,VNC代理并不知道,因此,老的連接必將由于無數(shù)據(jù)超時(shí)而關(guān)閉,VNC客戶端通過vnc-viewer必須重新建立到遷移后的host主機(jī)上的該VM的連接,才可以通過虛擬桌面再次訪問該VM。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本申請?zhí)峁┮环N基于VNC的遠(yuǎn)程訪問方法和裝置,能夠?qū)崿F(xiàn)虛擬桌面的不間斷訪問。
[0008]為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0009]一種基于虛擬網(wǎng)絡(luò)計(jì)算VNC的遠(yuǎn)程訪問方法,該方法應(yīng)用于包含VNC客戶端、VNC服務(wù)器、VNC代理和虛擬機(jī)管理平臺的系統(tǒng)中,其中,所述VNC服務(wù)器上創(chuàng)建了多個(gè)VM,所述方法包括:
[0010]該VNC代理通過與所述VNC服務(wù)器上的VM以及所述VNC客戶端分別建立連接,使所述VNC客戶端能夠遠(yuǎn)程訪問所述VM ;
[0011 ] 該VNC代理當(dāng)感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),從所述虛擬機(jī)管理平臺獲取該VM的當(dāng)前位置信息,若獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;否則,斷開與所述VNC客戶端的連接。
[0012]一種裝置,可應(yīng)用于包含VNC客戶端、VNC服務(wù)器、VNC代理和虛擬機(jī)管理平臺的系統(tǒng)中的VNC代理上,其中,所述VNC服務(wù)器上創(chuàng)建了多個(gè)VM,該裝置包括:建立連接單元、感知單元、獲取單元和處理單元;
[0013]所述建立連接單元,用于通過與所述VNC服務(wù)器上的VM以及所述VNC客戶端分別建立連接,使所述VNC客戶端能夠遠(yuǎn)程訪問所述VM ;若所述獲取單元從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;
[0014]所述感知單元,用于感知本設(shè)備與所述VM的連接是否斷開;
[0015]所述獲取單元,用于當(dāng)所述感知單元感知到本設(shè)備與所述VM的連接斷開時(shí),從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息;
[0016]所述處理單元,用于若所述獲取單元未從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,斷開與所述VNC客戶端的連接。
[0017]綜上所述,本申請通過在VNC代理感知到與VM的連接斷開時(shí),從虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,使用獲取的位置信息與該VM建立連接,使所述VNC客戶端能夠通過虛擬桌面繼續(xù)遠(yuǎn)程訪問該VM,能夠?qū)崿F(xiàn)VNC客戶端側(cè)虛擬桌面的不間斷訪問。
【專利附圖】
【附圖說明】
[0018]圖1為本發(fā)明實(shí)施例中基于VNC的遠(yuǎn)程訪問方法流程圖;
[0019]圖2為本發(fā)明具體實(shí)施例中VNC代理獲取VM的位置信息的流程示意圖
[0020]圖3為本發(fā)明具體實(shí)施例中虛擬機(jī)遷移時(shí)遠(yuǎn)程訪問不間斷的VNC代理系統(tǒng)的結(jié)構(gòu)示意圖;
[0021]圖4為本發(fā)明具體實(shí)施例中基于上述技術(shù)的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明所述方案作進(jìn)一步地詳細(xì)說明。
[0023]本發(fā)明實(shí)施例中提出一種基于VNC的遠(yuǎn)程訪問方法,該方法應(yīng)用于包含VNC客戶端、VNC服務(wù)器、VNC代理和虛擬機(jī)管理平臺的系統(tǒng)中,其中,所述VNC服務(wù)器上創(chuàng)建了多個(gè)VM,能夠?qū)崿F(xiàn)VNC客戶端側(cè)虛擬桌面的不間斷訪問。
[0024]參見圖1,圖1為本發(fā)明實(shí)施例中基于VNC的遠(yuǎn)程訪問方法流程圖。具體步驟為:
[0025]步驟101,VNC代理通過與所述VNC服務(wù)器上的VM以及所述VNC客戶端分別建立連接,使所述VNC客戶端能夠遠(yuǎn)程訪問所述VM。
[0026]VNC代理與虛擬機(jī)管理平臺交互,當(dāng)接收到虛擬機(jī)管理平臺發(fā)送的虛擬機(jī)所在VNC服務(wù)器的IP地址和端口、密碼等信息時(shí),確定某一 VNC客戶端需要遠(yuǎn)程訪問該VM時(shí),VNC代理根據(jù)虛擬機(jī)管理平臺指定的服務(wù)器的IP地址以及目的VM在VNC服務(wù)器上的端口信息向VNC服務(wù)器發(fā)起連接建立到該VM的連接,并在本地啟動監(jiān)聽,將監(jiān)聽的端口和密碼等信息返回給虛擬機(jī)管理平臺,該虛擬機(jī)管理平臺使VNC客戶端通過所述監(jiān)聽的端口和連接密碼向該VNC代理建立連接,當(dāng)該VNC客戶端認(rèn)證通過時(shí),建立了與VNC代理與VNC客戶端的連接,這樣整個(gè)連接的虛擬桌面即建立成功,VNC客戶端能夠遠(yuǎn)程訪問所述VM。虛擬機(jī)VM的桌面將在VNC客戶端側(cè)顯示,用戶可以方便使用VM,如同使用本地某臺物理主機(jī)的顯不終端一樣。
[0027]步驟102,該VNC代理當(dāng)感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),從所述虛擬機(jī)管理平臺獲取該VM的當(dāng)前位置信息,若獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;否則,斷開與所述VNC客戶端的連接。
[0028]當(dāng)所述VM遷移或關(guān)機(jī)時(shí),該VNC代理都會感知到與所述VNC服務(wù)器上的所述VM的連接斷開。當(dāng)所述VM遷移時(shí),所述VNC代理獲取該VM當(dāng)前的位置信息,即虛擬機(jī)管理平臺會獲知該VM當(dāng)前的位置信息,VNC代理會從虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息當(dāng)所述VM關(guān)機(jī)時(shí);當(dāng)該VM關(guān)機(jī)時(shí),所述VNC代理不能獲取該VM當(dāng)前的位置信息,即虛擬機(jī)管理平臺會獲知該VM當(dāng)前的狀態(tài)為關(guān)機(jī)狀態(tài),虛擬機(jī)管理平臺獲知該VM關(guān)機(jī),該VM位置信息并未變化,則VNC代理不會從虛擬機(jī)管理平臺獲知該VM當(dāng)前位置信息,這時(shí)會斷開與VNC客戶端的連接,因此本發(fā)明實(shí)施例中,在VM遷移時(shí),VNC客戶端能夠不間斷的遠(yuǎn)程訪問VNC服務(wù)器上的VM,在VM關(guān)機(jī)時(shí)斷開與VNC客戶端的連接,使VNC客戶端及時(shí)獲知VM的工作狀態(tài)。
[0029]步驟102中,當(dāng)所述VNC代理感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),若接收到所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)時(shí),將接收到的數(shù)據(jù)緩存;當(dāng)使用獲得的位置信息與所述VM建立連接時(shí),若確定本地緩存了所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)時(shí),將所述緩存的數(shù)據(jù)順序發(fā)送給所述VM。
[0030]這樣當(dāng)VNC代理及時(shí)與該VM連接上時(shí),不會發(fā)生數(shù)據(jù)丟失現(xiàn)象。當(dāng)然在具體實(shí)現(xiàn)時(shí),還可以設(shè)置一個(gè)緩存區(qū)的上限,當(dāng)數(shù)據(jù)緩存達(dá)到該上限時(shí),將后續(xù)接收到的數(shù)據(jù)丟棄,這樣是為了在VNC代理能夠承受的存儲能力下進(jìn)行基本的保護(hù)。當(dāng)使用獲得的位置信息與所述VM建立連接時(shí),優(yōu)先將所述緩存的數(shù)據(jù)順序發(fā)送給所述VM,這樣更好的實(shí)現(xiàn)了遠(yuǎn)程訪問的不間斷。
[0031]在VNC代理感知到與所述VM的連接斷開時(shí),由于該VM遷移或關(guān)機(jī)的原因,是否能夠獲得該VM當(dāng)前的位置信息時(shí),有兩種方式,具體如下:
[0032]第一種為被動獲取的方式,具體為:
[0033]當(dāng)VNC代理感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),若該VNC代理在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息時(shí),獲取所述VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;
[0034]若在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息,或在第一預(yù)設(shè)時(shí)間內(nèi)未接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息時(shí),斷開與所述客戶端的連接。[0035]由上可見,在被動獲取方式中,VNC代理感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),等待虛擬機(jī)管理平臺發(fā)送該VM的位置信息,或狀態(tài)信息即該VM關(guān)閉狀態(tài),第一預(yù)設(shè)時(shí)間內(nèi)接收到虛擬機(jī)管理平臺發(fā)送的消息時(shí),根據(jù)接收消息處理,如果超出第一預(yù)設(shè)時(shí)間還未接收到任何消息,這樣可以直接與所述VNC客戶端斷開,做錯(cuò)誤處理,如記錄日志等。具體實(shí)現(xiàn)為,在VNC代理上啟動HTTP服務(wù),對虛擬機(jī)管理平臺提供ReSTful接口,虛擬機(jī)管理平臺將VM當(dāng)前的位置信息通過HTTP消息推給VNC代理。
[0036]第二種為主動獲取方式,具體為:
[0037]當(dāng)VNC代理感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),該VNC代理向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求。
[0038]該VNC代理在第二預(yù)設(shè)時(shí)間內(nèi)接收所述虛擬機(jī)管理平臺的發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息時(shí),獲取所述VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM。
[0039]該VNC代理在第二預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息時(shí),斷開與所述客戶端的連接。
[0040]該VNC代理在第二預(yù)設(shè)時(shí)間內(nèi)既未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,也未接收到該VM關(guān)機(jī)的消息時(shí),再次向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求,直到達(dá)到預(yù)設(shè)次數(shù)還未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,或該VM關(guān)機(jī)的消息時(shí),記錄錯(cuò)誤日志,并斷開與所述VNC客戶端的連接。具體實(shí)現(xiàn)為,在虛擬機(jī)管理平臺上啟動虛擬機(jī)位置信息查詢服務(wù),對VNC代理提供ReSTful接口。
[0041]參見圖2,圖2為本發(fā)明具體實(shí)施例中VNC代理獲取VM的位置信息的流程示意圖。具體步驟為:
[0042]步驟201,VNC代理向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求。
[0043]步驟202,VNC代理在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到虛擬機(jī)管理平臺發(fā)送的信息,如果是,執(zhí)行步驟203 ;否則,執(zhí)行步驟206。
[0044]步驟203,VNC代理確定接收到的信息,是否攜帶該VM當(dāng)前的位置信息,如果是,執(zhí)行步驟204 ;否則,執(zhí)行步驟205。
[0045]步驟204, VNC代理獲取所述VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM,結(jié)束本流程。
[0046]步驟205,VNC代理斷開與所述VNC客戶端的連接,結(jié)束本流程。
[0047]步驟206,VNC代理確定發(fā)送請求次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),如果是,執(zhí)行步驟207 ;否則,執(zhí)行步驟201。
[0048]步驟207,VNC代理記錄錯(cuò)誤日志,并斷開與所述VNC客戶端的連接。
[0049]下面結(jié)合附圖,以同客戶端建立和VNC服務(wù)器上的VM分別建立連接后,VM遷移為例,詳細(xì)描述VNC代理如何實(shí)現(xiàn)遠(yuǎn)程訪問的。
[0050]參見圖3,圖3為本發(fā)明具體實(shí)施例中虛擬機(jī)遷移時(shí)遠(yuǎn)程訪問不間斷的VNC代理系統(tǒng)的結(jié)構(gòu)示意圖。
[0051]圖3中,各客戶端、各服務(wù)器和VNC代理上都部署了 VNC。
[0052]以客戶端I需要遠(yuǎn)程訪問服務(wù)器I上的VMl連接為例。[0053]通過VNC客戶端在IE等瀏覽器上登錄虛擬機(jī)管理平臺,執(zhí)行登錄“遠(yuǎn)程桌面”命令,虛擬機(jī)管理平臺同VNC代理交互,將VMl所在的服務(wù)器I的IP,在vnc-serverl上的端口 port和密碼password等信息告知VNC代理,在創(chuàng)建虛擬機(jī)時(shí),通過qemu-kvm指定該創(chuàng)建的虛擬機(jī)在vnc-serverl上的端口。
[0054]VNC代理向指定的IP上的vnc-serverl的指定端口 port,使用密碼password建立到虛擬機(jī)VM的桌面的連接。
[0055]VNC代理啟動vnc-viewerl側(cè)的監(jiān)聽,并將監(jiān)聽端口 listen_port和連接密碼password返回給虛擬機(jī)管理平臺。
[0056]虛擬機(jī)管理平臺在用戶側(cè)的瀏覽器上通過java Web Star啟動VNC客戶端I上的vnc—viewerlο
[0057]VNC客戶端I通過vnc-viewerl依據(jù)指定的listen_port向VNC代理建立連接,并使用password認(rèn)證通過,這樣從VNC客戶端I到VNC代理到VMl的整個(gè)連接的虛擬桌面即建立成功,VMl的桌面將在VNC客戶端側(cè)顯示,用戶可以方便的使用VMl,如同使用本地的某臺物理主機(jī)的顯示終端一樣。
[0058]上述為VNC建立同VMl和VNC客戶端的連接,具體實(shí)現(xiàn)同現(xiàn)有實(shí)現(xiàn),這里不再進(jìn)行更詳細(xì)的描述。
[0059]管理員或虛擬機(jī)管理平臺基于LB負(fù)載均衡或業(yè)務(wù)上的需要,將虛擬機(jī)VMl從服務(wù)器I遷移到服務(wù)器2上。
[0060]VNC代理感知到同VMl的連接斷開,主動向虛擬機(jī)管理平臺發(fā)送查詢VMl的位置信息的請求,包括服務(wù)器2的IP地址以及vnc-server2的端口號等。
[0061]VNC代理接收到虛擬及管理平臺發(fā)送的攜帶VMl的位置信息的應(yīng)答信息時(shí),獲取VMl當(dāng)前的位置信息,即服務(wù)器2的IP地址以及vnC-server2的端口號。VNC代理使用服務(wù)器2的IP地址和vnc-server2的端口號等與VNC服務(wù)器2上的VMl建立連接,實(shí)現(xiàn)了 VNC虛擬桌面在虛擬機(jī)遷移過程中的不間斷運(yùn)行,改善了客戶使用虛擬桌面的體驗(yàn)。
[0062]本發(fā)明具體實(shí)施例中基于同樣的發(fā)明構(gòu)思,還提出一種裝置,可應(yīng)用于包含VNC客戶端、VNC服務(wù)器、VNC代理和虛擬機(jī)管理平臺的系統(tǒng)中的VNC代理上,其中,所述VNC服務(wù)器上創(chuàng)建了 VM。參見圖4,圖4為本發(fā)明具體實(shí)施例中基于上述技術(shù)的裝置的結(jié)構(gòu)示意圖。該裝置包括:建立連接單元401、感知單元402、獲取單元403和處理單元404。
[0063]建立連接單元401,用于通過與所述VNC服務(wù)器上的VM以及所述VNC客戶端分別建立連接,使所述VNC客戶端能夠遠(yuǎn)程訪問所述VM ;若獲取單元403從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM。
[0064]感知單元402,用于感知本設(shè)備與所述VM的連接是否斷開。
[0065]獲取單元403,用于當(dāng)感知單元402感知到本設(shè)備與所述VM的連接斷開時(shí),從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息。
[0066]處理單元404,用于若獲取單元403未從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,斷開與所述VNC客戶端的連接。
[0067]較佳地,
[0068]當(dāng)所述VM遷移或關(guān)機(jī)時(shí),感知單元402感知到與所述VNC服務(wù)器上的所述VM的連接斷開,其中,當(dāng)所述VM遷移時(shí),獲取單元403獲取該VM當(dāng)前的位置信息;當(dāng)VM關(guān)機(jī)時(shí),獲取單元403未能獲取該VM當(dāng)前的位置信息。
[0069]較佳地,該裝置進(jìn)一步包括:接收單元405、緩存單元406和發(fā)送單元407。
[0070]接收單元405,用于接收所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)。
[0071]緩存單元406,用于當(dāng)接收單元405接收所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)時(shí),將接收到的數(shù)據(jù)緩存。
[0072]發(fā)送單元407,用于當(dāng)建立連接單元401使用獲得的位置信息與所述VM建立連接時(shí),若緩存單元406中緩存了所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù),將所述緩存的數(shù)據(jù)順序發(fā)送給所述VM。
[0073]較佳地,
[0074]接收單元405,進(jìn)一步用于接收所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息;接收所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息;
[0075]獲取單元403,用于當(dāng)接收單元405在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息。
[0076]處理單元404,用于當(dāng)接收單元405在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息,或在第一預(yù)設(shè)時(shí)間內(nèi)未接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息時(shí),斷開與所述客戶端的連接。
[0077]較佳地,
[0078]發(fā)送單元407,進(jìn)一步用于向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求;用于當(dāng)接收單元405在第二預(yù)設(shè)時(shí)間內(nèi)既未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,也未接收到該VM關(guān)機(jī)的消息時(shí),再次向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求。
[0079]接收單元405,進(jìn)一步用于接收所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息;接收所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息。
[0080]獲取單元403,用于接收單元405接收到所述虛擬機(jī)管理平臺的發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息時(shí),獲取所述VM當(dāng)前的位置信息。
[0081]處理單元404,進(jìn)一步用于當(dāng)接收單元405接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息時(shí),斷開與所述客戶端的連接;用于當(dāng)發(fā)送單元407向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求的次數(shù)達(dá)到預(yù)設(shè)次數(shù),接收單元405還未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,或該VM關(guān)機(jī)的消息時(shí),記錄錯(cuò)誤日志,并斷開與所述VNC客戶端的連接。
[0082]上述實(shí)施例的單元可以集成于一體,也可以分離部署;可以合并為一個(gè)單元,也可以進(jìn)一步拆分成多個(gè)子單兀。
[0083]綜上所述,本發(fā)明具體實(shí)施例中在VNC代理感知到與VM的連接斷開時(shí),從虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,使用獲取的位置信息與該VM建立連接,使所述VNC客戶端能夠通過虛擬桌面繼續(xù)遠(yuǎn)程訪問該VM,能夠?qū)崿F(xiàn)虛擬桌面的不間斷訪問。
[0084]VM的關(guān)機(jī)和遷移都會使VNC代理感知到與VM的連接斷開,當(dāng)VM遷移時(shí),會獲得該VM遷移后的位置信息,根據(jù)該位置信息與該VM建立連接,使VNC客戶端側(cè)能夠通過虛擬桌面遠(yuǎn)程不間斷訪問該VM ;當(dāng)VM關(guān)機(jī)時(shí),不會多次嘗試連接,及時(shí)斷開與VNC客戶端的連接,使客戶端側(cè)及時(shí)獲知該VM關(guān)機(jī),提高了虛擬桌面的使用體驗(yàn)。
[0085]在VNC代理同遷移前的VNC服務(wù)器上的VM的連接斷開后,VNC代理緩存所有從VNC客戶端發(fā)送過來的數(shù)據(jù)。在VNC代理同遷移后的VM建立連接之后,將這些緩存數(shù)據(jù)發(fā)給該VM,這樣在重新建立連接的過程中,臨時(shí)緩存數(shù)據(jù),更好的實(shí)現(xiàn)了客戶側(cè)的虛擬桌面的不間斷。
[0086]以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于虛擬網(wǎng)絡(luò)計(jì)算VNC的遠(yuǎn)程訪問方法,該方法應(yīng)用于包含VNC客戶端、VNC服務(wù)器、VNC代理和虛擬機(jī)管理平臺的系統(tǒng)中,其中,所述VNC服務(wù)器上創(chuàng)建了多個(gè)虛擬機(jī)VM,其特征在于,所述方法包括: 該VNC代理通過與所述VNC服務(wù)器上的VM以及所述VNC客戶端分別建立連接,使所述VNC客戶端能夠遠(yuǎn)程訪問所述VM ; 該VNC代理當(dāng)感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),從所述虛擬機(jī)管理平臺獲取該VM的當(dāng)前位置信息,若獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;否則,斷開與所述VNC客戶端的連接。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括: 當(dāng)所述VM遷移或關(guān)機(jī)時(shí),該VNC代理感知到與所述VNC服務(wù)器上的所述VM的連接斷開; 當(dāng)所述VM遷移時(shí),所述VNC代理獲取該VM當(dāng)前的位置信息;當(dāng)所述VM關(guān)機(jī)時(shí),所述VNC代理未能獲取該VM當(dāng)前的位置信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 當(dāng)所述VNC代理感知到與所述VNC服務(wù)器上的所述VM的連接斷開時(shí),所述方法進(jìn)一步包括:若接收到所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)時(shí),將接收到的數(shù)據(jù)緩存; 當(dāng)使用獲得的位置信息與所述VM建立連接時(shí),所述方法進(jìn)一步包括:若確定本地緩存了所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)時(shí),將所述緩存的數(shù)據(jù)順序發(fā)送給所述VM。
4.根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,所述從所述虛擬機(jī)管理平臺獲取該VM的當(dāng)前位置信息,若獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;否則,斷開與所述VNC客戶端的連接,包括: 若該VNC代理在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息時(shí),獲取所述VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ; 若在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息,或在第一預(yù)設(shè)時(shí)間內(nèi)未接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息時(shí),斷開與所述客戶端的連接。
5.根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,所述從所述虛擬機(jī)管理平臺獲取該VM的當(dāng)前位置信息,若獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ;否則,斷開與所述VNC客戶端的連接,包括: 該VNC代理向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求; 在第二預(yù)設(shè)時(shí)間內(nèi)接收所述虛擬機(jī)管理平臺的發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息時(shí),獲取所述VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ; 在第二預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息時(shí),斷開與所述客戶端的連接;在第二預(yù)設(shè)時(shí)間內(nèi)既未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,也未接收到該VM關(guān)機(jī)的消息時(shí),再次向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求,直到達(dá)到預(yù)設(shè)次數(shù)還未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,或該VM關(guān)機(jī)的消息時(shí),記錄錯(cuò)誤日志,并斷開與所述VNC客戶端的連接。
6.一種裝置,可應(yīng)用于包含虛擬網(wǎng)絡(luò)計(jì)算VNC客戶端、VNC服務(wù)器、VNC代理和虛擬機(jī)管理平臺的系統(tǒng)中的VNC代理上,其中,所述VNC服務(wù)器上創(chuàng)建了多個(gè)虛擬機(jī)VM,其特征在于,該裝置包括:建立連接單元、感知單元、獲取單元和處理單元; 所述建立連接單元,用于通過與所述VNC服務(wù)器上的VM以及所述VNC客戶端分別建立連接,使所述VNC客戶端能夠遠(yuǎn)程訪問所述VM ;若所述獲取單元從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,使用獲得的位置信息與所述VM建立連接,使所述VNC客戶端能夠繼續(xù)遠(yuǎn)程訪問該VM ; 所述感知單元,用于感知本設(shè)備與所述VM的連接是否斷開; 所述獲取單元,用于當(dāng)所述感知單元感知到本設(shè)備與所述VM的連接斷開時(shí),從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息; 所述處理單元,用于若所述獲取單元未從所述虛擬機(jī)管理平臺獲取該VM當(dāng)前的位置信息,斷開與所述VN C客戶端的連接。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 當(dāng)所述VM遷移或關(guān)機(jī)時(shí),所述感知單元感知到與所述VNC服務(wù)器上的所述VM的連接斷開,其中,當(dāng)所述VM遷移時(shí),所述獲取單元獲取該VM當(dāng)前的位置信息;當(dāng)所述VM關(guān)機(jī)時(shí),所述獲取單元未能獲取該VM當(dāng)前的位置信息。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置進(jìn)一步包括:接收單元、緩存單元和發(fā)送單元; 所述接收單元,用于接收所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù); 所述緩存單元,用于當(dāng)所述接收單元接收所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù)時(shí),將接收到的數(shù)據(jù)緩存; 所述發(fā)送單元,用于當(dāng)所述建立連接單元使用獲得的位置信息與所述VM建立連接時(shí),若所述緩存單元中緩存了所述VNC客戶端發(fā)送給所述VM的數(shù)據(jù),將所述緩存的數(shù)據(jù)順序發(fā)送給所述VM。
9.根據(jù)權(quán)利要求6-8任意一項(xiàng)所述的裝置,其特征在于, 所述接收單元,進(jìn)一步用于接收所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息;接收所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息; 所述獲取單元,用于當(dāng)所述接收單元在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息; 所述處理單元,用于當(dāng)所述接收單元在第一預(yù)設(shè)時(shí)間內(nèi)接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息,或在第一預(yù)設(shè)時(shí)間內(nèi)未接收到所述虛擬機(jī)管理平臺獲取并發(fā)送的攜帶該VM的當(dāng)前位置信息的消息時(shí),斷開與所述客戶端的連接。
10.根據(jù)權(quán)利要求6-8任意一項(xiàng)所述的裝置,其特征在于, 所述發(fā)送單元,進(jìn)一步用于向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求;用于當(dāng)所述接收單元在第二預(yù)設(shè)時(shí)間內(nèi)既未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,也未接收到該VM關(guān)機(jī)的消息時(shí),再次向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求; 所述接收單元,進(jìn)一步用于接收所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息;接收所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息; 所述獲取單元,用于所述接收單元接收到所述虛擬機(jī)管理平臺的發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息時(shí),獲取所述VM當(dāng)前的位置信息; 所述處理單元,進(jìn)一步用于當(dāng)所述接收單元接收到所述虛擬機(jī)管理平臺發(fā)送的該VM關(guān)機(jī)的消息時(shí),斷開與所述客戶端的連接;用于當(dāng)所述發(fā)送單元向所述虛擬機(jī)管理平臺發(fā)送查詢所述VM當(dāng)前位置信息的請求的次數(shù)達(dá)到預(yù)設(shè)次數(shù),所述接收單元還未接收到所述虛擬機(jī)管理平臺發(fā)送的攜帶所述VM當(dāng)前的位置信息的應(yīng)答消息,或該VM關(guān)機(jī)的消息時(shí),記錄錯(cuò)誤日志,并斷開與所述V NC客戶端的連接。
【文檔編號】G06F9/455GK103812913SQ201210458838
【公開日】2014年5月21日 申請日期:2012年11月14日 優(yōu)先權(quán)日:2012年11月14日
【發(fā)明者】蔡志峰, 郭中華 申請人:杭州華三通信技術(shù)有限公司