本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)盤的掛載方法及虛擬機監(jiān)控器。
背景技術(shù):
常見的虛擬桌面應(yīng)用系統(tǒng)主要向用戶提供兩種桌面使用方式,一種是靜態(tài)使用方式,一種是動態(tài)使用方式。具體來說,針對于靜態(tài)使用方式,用戶虛擬機與用戶是一一綁定的,用戶每次登陸的虛擬機都是固定的某一臺,用戶的數(shù)據(jù)直接存儲在分配予其的虛擬機中;針對于動態(tài)使用方式,同一個業(yè)務(wù)部門的所有用戶的虛擬機都是由統(tǒng)一的模板生成的,形成動態(tài)桌面資源池,用戶每次使用的虛擬桌面都是隨機分配的,用戶的數(shù)據(jù)存在數(shù)據(jù)盤中,從而實現(xiàn)了用戶數(shù)據(jù)與虛擬機的分離。因此,動態(tài)使用方式比靜態(tài)使用方式更加靈活,更方便部署與維護。
然而,在動態(tài)使用方式中,由于用戶每次使用的虛擬桌面都是隨機分配的,如何讓用戶在隨機獲得的桌面中訪問其私有數(shù)據(jù),如何使用戶數(shù)據(jù)的私密性得以保護(用戶數(shù)據(jù)只能被用戶自身訪問,無法被其他用戶訪問),這兩大問題與難點無法解決的話,最終會限制動態(tài)虛擬桌面應(yīng)用的發(fā)展。
綜上,目前亟需一種數(shù)據(jù)盤的掛載方法,用于實現(xiàn)讓用戶在隨機獲得的桌面中訪問其私有數(shù)據(jù),并保護用戶數(shù)據(jù)的私密性。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種數(shù)據(jù)盤的掛載方法及虛擬機監(jiān)控器,用于實現(xiàn)讓用戶在隨機獲得的桌面中訪問其私有數(shù)據(jù),并保護用戶數(shù)據(jù)的私密性。
本發(fā)明實施例提供一種數(shù)據(jù)盤的掛載方法,所述方法包括:
虛擬機監(jiān)控器接收用戶登錄虛擬機的登錄請求消息;所述登錄請求消息中包括用戶的標(biāo)識信息和所述用戶登錄的虛擬機的標(biāo)識信息;
虛擬機監(jiān)控器根據(jù)所述用戶的標(biāo)識信息以及預(yù)先存儲的用戶與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,從數(shù)據(jù)盤資源池中獲取所述目標(biāo)數(shù)據(jù)盤;
虛擬機監(jiān)控器根據(jù)所述用戶登錄的虛擬機的標(biāo)識信息,將所述目標(biāo)數(shù)據(jù)盤掛載到所述用戶登錄的虛擬機上。
本發(fā)明實施例提供一種虛擬機監(jiān)控器,所述虛擬機監(jiān)控器包括:
接收模塊,用于接收用戶登錄虛擬機的登錄請求消息;所述登錄請求消息中包括用戶的標(biāo)識信息和所述用戶登錄的虛擬機的標(biāo)識信息;
確定模塊,用于根據(jù)所述用戶的標(biāo)識信息以及預(yù)先存儲的用戶與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,從數(shù)據(jù)盤資源池中獲取所述目標(biāo)數(shù)據(jù)盤;
處理模塊,用于根據(jù)所述用戶登錄的虛擬機的標(biāo)識信息,將所述目標(biāo)數(shù)據(jù)盤掛載到所述用戶登錄的虛擬機上。
本發(fā)明實施例中,虛擬機監(jiān)控器通過將與用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤掛載到用戶登錄的虛擬機上,以及根據(jù)用戶的注銷請求消息卸載所述待注銷虛擬機上掛載的數(shù)據(jù)盤,從而實現(xiàn)動態(tài)虛擬桌面應(yīng)用中用戶私有數(shù)據(jù)盤的自動掛載與卸載,使得用戶在隨機分配的動態(tài)桌面中訪問其私有的數(shù)據(jù),并保證了私有數(shù)據(jù)盤只掛載在用戶所訪問的虛擬機上以使其他用戶無法訪問。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)盤的掛載方法對應(yīng)的流程示意圖;
圖2為本發(fā)明實施例中的虛擬監(jiān)控器進行數(shù)據(jù)盤的掛載與卸載的整體流程示意圖;
圖3為本發(fā)明實施例提供的一種虛擬機監(jiān)控器的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)盤的掛載方法對應(yīng)的流程示意圖。如圖1所示,該方法包括:
步驟101,虛擬機監(jiān)控器接收用戶登錄虛擬機的登錄請求消息;所述登錄請求消息中包括用戶的標(biāo)識信息和所述用戶登錄的虛擬機的標(biāo)識信息;
步驟102,虛擬機監(jiān)控器根據(jù)所述用戶的標(biāo)識信息以及預(yù)先存儲的用戶與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,從數(shù)據(jù)盤資源池中獲取所述目標(biāo)數(shù)據(jù)盤;
步驟103,虛擬機監(jiān)控器根據(jù)所述用戶登錄的虛擬機的標(biāo)識信息,將所述目標(biāo)數(shù)據(jù)盤掛載到所述用戶登錄的虛擬機上。
本發(fā)明實施例中,虛擬機監(jiān)控器通過將與用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤掛載到用戶登錄的虛擬機上,以及根據(jù)用戶的注銷請求消息卸載所述待注銷虛擬機上掛載的數(shù)據(jù)盤,從而實現(xiàn)動態(tài)虛擬桌面應(yīng)用中用戶私有數(shù)據(jù)盤的自動掛載與卸載,使得用戶在隨機分配的動態(tài)桌面中訪問其私有的數(shù)據(jù),并保證了私有數(shù)據(jù)盤只掛載在用戶所訪問的虛擬機上以使其他用戶無法訪問。
本發(fā)明實施例提供的數(shù)據(jù)盤的掛載方法應(yīng)用于虛擬機監(jiān)控器,其中虛擬機監(jiān)控器中可包括虛擬化操作系統(tǒng)特權(quán)域與設(shè)備驅(qū)動域,進一步地,虛擬化操作系統(tǒng)特權(quán)域中包括虛擬機生命周期監(jiān)控模塊、虛擬磁盤控制模塊以及虛擬機內(nèi)部安裝的虛擬機用戶行為監(jiān)控代理,從而通過虛擬化操作系統(tǒng)特權(quán)域中的這三個模塊與設(shè)備驅(qū)動域協(xié)同完成動態(tài)桌面業(yè)務(wù)中用戶私有數(shù)據(jù)盤的自動掛載與卸載。如圖2所示,為本發(fā)明實施例中的虛擬監(jiān)控器進行數(shù)據(jù)盤的掛載與卸載的整體流程示意圖。
具體來說,虛擬機生命周期監(jiān)控模塊監(jiān)控虛擬機的啟動和關(guān)閉、虛擬機用戶的登錄與注銷,判斷用戶在某臺虛擬機的登錄或注銷行為,向虛擬磁盤控制模塊傳送用戶與登錄的虛擬機的對應(yīng)關(guān)系信息,以使虛擬磁盤控制模塊將此用戶的私有數(shù)據(jù)盤掛載至該用戶所登錄的虛擬機上。
虛擬磁盤控制模塊在獲得用戶所登錄的虛擬機的信息后,創(chuàng)建相應(yīng)虛擬塊設(shè)備,將用戶個人數(shù)據(jù)盤掛載至用戶所登錄的虛擬機;在獲得用戶在某臺虛擬機注銷的消息時,銷毀相應(yīng)虛擬塊設(shè)備,將用戶個人數(shù)據(jù)盤從所注銷的虛擬機上卸載。
虛擬機用戶行為監(jiān)控代理是安裝在虛擬機內(nèi)的代理程序,負(fù)責(zé)捕獲用戶的登錄或注銷的信息,將當(dāng)前登錄或注銷的用戶信息通過xenstore傳遞給特權(quán)域中的虛擬機生命周期監(jiān)控模塊,監(jiān)控模塊監(jiān)控到用戶登錄或注銷信息后,控制掛載和卸載用戶數(shù)據(jù)盤。
下面結(jié)合圖2對本發(fā)明實施例中圖1中所示的步驟流程進行說明。
具體來說,步驟101中,用戶登錄虛擬機后,用戶行為監(jiān)控代理將用戶的登錄請求消息寫入XenStore,虛擬機用戶行為監(jiān)控子模塊監(jiān)控到XenStore路徑變化,產(chǎn)生登錄Event事件,并存儲到登錄事件隊列中。
步驟102中,虛擬磁盤控制模塊從事件隊列中獲取登錄Event事件,向設(shè)備驅(qū)動域發(fā)送為用戶所登錄的虛擬機掛載用戶數(shù)據(jù)盤的異步請求。設(shè)備驅(qū)動域根據(jù)所述用戶的標(biāo)識信息以及預(yù)先存儲的用戶與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,從數(shù)據(jù)盤資源池中獲取所述目標(biāo)數(shù)據(jù)盤。
本發(fā)明實施例中,設(shè)備驅(qū)動域若確定不存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤,則可為所述用戶分配數(shù)據(jù)盤,并將分配的數(shù)據(jù)盤作為與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤。
步驟103中,設(shè)備驅(qū)動域根據(jù)所述用戶登錄的虛擬機的標(biāo)識信息,將所述目標(biāo)數(shù)據(jù)盤掛載到所述用戶登錄的虛擬機上;進一步地,目標(biāo)數(shù)據(jù)盤掛載成功后,虛擬磁盤控制模塊緩存所述目標(biāo)數(shù)據(jù)盤與所述所述目標(biāo)數(shù)據(jù)盤掛載的虛擬機的對應(yīng)關(guān)系。
上述過程為數(shù)據(jù)盤的掛載過程,相應(yīng)地,本發(fā)明實施例中還包括數(shù)據(jù)盤的卸載過程。具體來說,用戶確定從虛擬機注銷后,虛擬機監(jiān)控器接收到用戶的注銷請求消息,用戶行為監(jiān)控代理將用戶的注銷請求消息寫入XenStore,虛擬機用戶行為監(jiān)控子模塊監(jiān)控到XenStore路徑變化,產(chǎn)生注銷Event事件,并存儲到注銷事件隊列中。
虛擬磁盤控制模塊從注銷事件隊列中獲取注銷Event事件,向設(shè)備驅(qū)動域發(fā)送為待注銷虛擬機卸載數(shù)據(jù)盤的異步請求。設(shè)備驅(qū)動域根據(jù)待注銷虛擬機的標(biāo)識信息以及虛擬機與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定所述待注銷虛擬機上掛載的數(shù)據(jù)盤,并卸載所述待注銷虛擬機上掛載的數(shù)據(jù)盤;進一步地,數(shù)據(jù)盤卸載成功后,設(shè)備驅(qū)動域刪除待注銷虛擬機上掛載的數(shù)據(jù)盤與所述待注銷虛擬機的對應(yīng)關(guān)系。
針對上述方法流程,本發(fā)明實施例還提供一種虛擬機監(jiān)控器,該虛擬機監(jiān)控器的具體內(nèi)容可以參照上述方法實施。
圖3為本發(fā)明實施例提供的一種虛擬機監(jiān)控器的結(jié)構(gòu)示意圖,如圖3所示,所述虛擬機監(jiān)控器包括:
接收模塊301,用于接收用戶登錄虛擬機的登錄請求消息;所述登錄請求消息中包括用戶的標(biāo)識信息和所述用戶登錄的虛擬機的標(biāo)識信息;
確定模塊302,用于根據(jù)所述用戶的標(biāo)識信息以及預(yù)先存儲的用戶與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,從數(shù)據(jù)盤資源池中獲取所述目標(biāo)數(shù)據(jù)盤;
處理模塊303,用于根據(jù)所述用戶登錄的虛擬機的標(biāo)識信息,將所述目標(biāo)數(shù)據(jù)盤掛載到所述用戶登錄的虛擬機上。
可選地,所述確定模塊302還用于:
確定不存在與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,為所述用戶分配數(shù)據(jù)盤,并將分配的數(shù)據(jù)盤作為與所述用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤。
可選地,所述虛擬機監(jiān)控器還包括存儲模塊304,用于在所述處理模塊303將所述目標(biāo)數(shù)據(jù)盤掛載到所述用戶登錄的虛擬機上之后,存儲所述目標(biāo)數(shù)據(jù)盤與所述所述目標(biāo)數(shù)據(jù)盤掛載的虛擬機的對應(yīng)關(guān)系。
可選地,所述接收模塊301還用于:接收用戶注銷虛擬機的注銷請求消息;所述注銷請求消息中包括待注銷虛擬機的標(biāo)識信息;
所述確定模塊302還用于:根據(jù)所述待注銷虛擬機的標(biāo)識信息以及虛擬機與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定所述待注銷虛擬機上掛載的數(shù)據(jù)盤,并卸載所述待注銷虛擬機上掛載的數(shù)據(jù)盤。
所述處理模塊303還用于:刪除所述待注銷虛擬機上掛載的數(shù)據(jù)盤與所述待注銷虛擬機的對應(yīng)關(guān)系。
從上述內(nèi)容可以看出:本發(fā)明實施例中,虛擬機監(jiān)控器接收用戶登錄虛擬機的登錄請求消息,并根據(jù)登錄請求消息中用戶的標(biāo)識信息以及預(yù)先存儲的用戶與數(shù)據(jù)盤的對應(yīng)關(guān)系,確定存在與用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤后,從數(shù)據(jù)盤資源池中獲取目標(biāo)數(shù)據(jù)盤,將目標(biāo)數(shù)據(jù)盤掛載到用戶登錄的虛擬機上。本發(fā)明實施例中,通過將與用戶的標(biāo)識信息對應(yīng)的目標(biāo)數(shù)據(jù)盤掛載到用戶登錄的虛擬機上,以及根據(jù)用戶的注銷請求消息卸載所述待注銷虛擬機上掛載的數(shù)據(jù)盤,從而實現(xiàn)動態(tài)虛擬桌面應(yīng)用中用戶私有數(shù)據(jù)盤的自動掛載與卸載,使得用戶在隨機分配的動態(tài)桌面中訪問其私有的數(shù)據(jù),并保證了私有數(shù)據(jù)盤只掛載在用戶所訪問的虛擬機上以使其他用戶無法訪問。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。