一種Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)虛擬化領(lǐng)域,特別涉及一種Xe η虛擬化中授權(quán)虛擬機(jī)訪問Xens tore的方法及系統(tǒng)。
【背景技術(shù)】
[0002]在Xen虛擬化中,Xenstore是Xen提供的一個(gè)域間共享存儲(chǔ)系統(tǒng),是Hypervisor管理虛擬機(jī)的橋梁,里面存儲(chǔ)了各個(gè)虛擬機(jī)的配置信息,例如:D ο m a i η ID (域標(biāo)識(shí))、D o ma i ηName(域名)、UUID(Universally Unique Identif ier、通用唯一識(shí)別碼)、前后端設(shè)備、啟動(dòng)時(shí)間和虛擬機(jī)狀態(tài)等。同時(shí),虛擬機(jī)又可以把內(nèi)存使用情況,CPU使用率等實(shí)時(shí)性能信息寫至IjXenstore,從而反饋給Hypervi scmXenstore是Hypervisor管理和控制虛擬機(jī)的重要手段。
[0003]如圖1所示,原有的Xenstore訪問流程,在執(zhí)行xenstore操作的時(shí)候會(huì)進(jìn)行權(quán)限檢測(cè),首先會(huì)先檢測(cè)操作者是否是DomO (控制域),如果是DomO,直接執(zhí)行操作,因?yàn)镈omO具有整個(gè)xenstore的操作權(quán)限,如果不是DomO,則繼續(xù)判斷其將要訪問的位置是否其本身的DomU(虛擬機(jī))節(jié)點(diǎn),如果是,則執(zhí)行操作,否則返回失敗代碼。因此,DomO有整個(gè)Xenstore的訪問權(quán)限,而DomU只有他本身位置的訪問權(quán)限。
[0004]在Xen虛擬化中,Xenstore的權(quán)限訪問都有限制,各虛擬機(jī)只能訪問它們自己的Xenstore位置,而無法對(duì)其他位置進(jìn)行訪問。因此,在開發(fā)虛擬化應(yīng)用時(shí),有時(shí)候虛擬機(jī)不僅要訪問本身位置,還需要對(duì)其它Xenstore位置進(jìn)行訪問,現(xiàn)有功能并不能滿足需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的提供一種Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore的方法及系統(tǒng),旨在解決各虛擬機(jī)只能訪問它們自己的Xenstore位置,而無法對(duì)其他位置進(jìn)行訪問的問題。
[0006]為此,本發(fā)明提供了一種Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore的方法,包括如下步驟:將需要授權(quán)虛擬機(jī)的通用唯一識(shí)別碼UUID寫入配置文件;執(zhí)行Xenstore操作時(shí),讀取所述配置文件,并查找所述UUID對(duì)應(yīng)的域標(biāo)識(shí)DomainID;判斷所述DomainID是否是執(zhí)行Xenstore操作的虛擬機(jī)DomainID,如果是,貝Ij授權(quán)所述執(zhí)行Xenstore操作的虛擬機(jī)享有整個(gè)Xens tor e的訪問權(quán)限。
[0007]進(jìn)一步地,所述方法還包括:當(dāng)判斷所述DomainID不是執(zhí)行Xenstore操作的虛擬機(jī)DomainID時(shí),則重新將所述執(zhí)行Xenstore操作的虛擬機(jī)UUID寫入配置文件。
[0008]進(jìn)一步地,所述將需要授權(quán)虛擬機(jī)的通用唯一識(shí)別碼UUID寫入配置文件,可以將一個(gè)或者多個(gè)所述UUID寫入配置文件。
[0009]本發(fā)明還提供了一種Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore的系統(tǒng),包括Xenstore模塊,所述Xenstore模塊還包括:寫入部、讀取部和判別部;
[0010]所述寫入部用于將需要授權(quán)虛擬機(jī)的通用唯一識(shí)別碼UUID寫入配置文件;
[0011 ] 所述讀取部用于在執(zhí)行Xenstore操作時(shí),讀取所述配置文件,并查找所述UUID對(duì)應(yīng)的域標(biāo)識(shí)DomainID;
[0012]所述判別部用于判斷所述DomainID是否是執(zhí)行Xenstore操作的虛擬機(jī)DomainID,如果是,則授權(quán)所述執(zhí)行Xenstore操作的虛擬機(jī)享有整個(gè)Xenstore的訪問權(quán)限;
[0013]進(jìn)一步地,所述判別部還用于當(dāng)判斷所述DomainID不是執(zhí)行Xenstore操作的虛擬機(jī)DomainID時(shí),則重新將所述執(zhí)行Xenstore操作的虛擬機(jī)UUID寫入配置文件。
[00? 4]本發(fā)明還提供了一種Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore的系統(tǒng),包括存儲(chǔ)器和處理器,所述處理器用于:
[0015]將需要授權(quán)虛擬機(jī)的通用唯一識(shí)別碼UUID寫入配置文件;
[0016]執(zhí)行Xenstore操作時(shí),讀取所述配置文件,并查找所述UUID對(duì)應(yīng)的域標(biāo)識(shí)DomainID;
[0017]判斷所述DomainID是否是執(zhí)行Xenstore操作的虛擬機(jī)DomainID,如果是,則授權(quán)所述執(zhí)行Xenstore操作的虛擬機(jī)享有整個(gè)Xenstore的訪問權(quán)限。
[0018]進(jìn)一步地,所述處理器還用于:當(dāng)判斷所述DomainID不是執(zhí)行Xenstore操作的虛擬機(jī)DomainID時(shí),則重新將所述執(zhí)行Xenstore操作的虛擬機(jī)UUID寫入配置文件。
[0019]有益效果:通過在配置文件里指定虛擬機(jī)的UUID,對(duì)此虛擬機(jī)授權(quán),可以使授權(quán)的虛擬機(jī)像DomO—樣有整個(gè)Xenstore的訪問權(quán)限??梢院莒`活的指定想要授權(quán)的虛擬機(jī)。而且,授權(quán)指定虛擬機(jī)實(shí)時(shí)生效。把虛擬機(jī)的UUID寫入配置文件后,立刻生效,不需要執(zhí)行重啟虛擬機(jī)或重啟主機(jī)的操作。通過本技術(shù),可以很方便、快速的指定虛擬機(jī)的Xenstore權(quán)限,為后續(xù)的功能開發(fā)提供便利,節(jié)約了時(shí)間和成本。
【附圖說明】
[0020]圖1是原有的Xen虛擬化中虛擬機(jī)訪問Xenstore訪問流程圖;
[0021 ]圖2是本發(fā)明實(shí)施例中的Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore方法流程圖;
[0022]圖3是本發(fā)明實(shí)施例中提供的Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore系統(tǒng)結(jié)構(gòu)示意圖;
[0023]圖4是本發(fā)明實(shí)施例中提供的又一Xen虛擬化中授權(quán)虛擬機(jī)訪問Xenstore系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0025]圖2示出了本發(fā)明實(shí)施例提供的Xen虛擬化中授權(quán)虛擬機(jī)訪問整個(gè)Xenstore的方法的流程,詳述如下:
[0026]步驟101:將需要授權(quán)虛擬機(jī)的通用唯一識(shí)別碼UUID寫入配置文件。
[0027]具體地,本步驟中,根據(jù)實(shí)際軟件應(yīng)用開發(fā)需求,將需要授權(quán)虛擬機(jī)的UUID寫入配置文件,可以同時(shí)將一個(gè)或者多個(gè)需要授權(quán)虛擬機(jī)的UUID寫入配置文件。在本實(shí)施例中,配置文件在Xen虛擬化中是指av.conf配置文件,另外,將虛擬機(jī)的UUID寫入av.conf配置文件后,在執(zhí)行時(shí),立刻生效,不需要執(zhí)行重啟虛擬機(jī)或重啟主機(jī)的操作,可以很方便、快速的指定虛擬機(jī)的Xens tore權(quán)限。
[0028]步驟102:執(zhí)行Xenstore操作時(shí),讀取所述配置文件,并查找所述UUID對(duì)應(yīng)的域標(biāo)識(shí)DomainIDο
[0029]本步驟中,執(zhí)行Xenstore操作是指對(duì)Xenstore讀寫等,執(zhí)行Xenstore讀寫操作時(shí),都會(huì)首先讀取av.conf整個(gè)配置文件,然后在讀取上述步驟中寫入到配置文件里的