虛擬機可以運行在同一臺主機120上。
[0056]主機120是指承載各個虛擬機的物理存在的計算機。
[0057]虛擬機驅(qū)動130是位于虛擬機中的,專用于虛擬化的驅(qū)動程序。該虛擬機驅(qū)動130是虛擬機創(chuàng)建后安裝的用于提高虛擬機的磁盤、網(wǎng)絡(luò)1等性能以及提供虛擬機運行狀態(tài)監(jiān)控功能的程序。在XEN、KVM、Vmware等虛擬化環(huán)境中,在虛擬機中安裝虛擬機驅(qū)動,是虛擬機高效運行的必要前提,是安裝的必選項。
[0058]另外,實際應(yīng)用中,主機120和虛擬機驅(qū)動130之間都會設(shè)置有一個通用通信通道。比如,以XEN虛擬化環(huán)境為例,主機120和虛擬機驅(qū)動130之間的通信通道可以為XenStore ;而在KVM虛擬化環(huán)境,主機120和虛擬機驅(qū)動130之間的通信通道可以為virtlo通信通道。本實施例對其它虛擬化環(huán)境下的通信通道不再一一列舉。
[0059]請參考圖2,其示出了本發(fā)明一個實施例提供的虛擬機配置方法的方法流程圖。如圖2所示,該虛擬機配置方法可以包括:
[0060]步驟201,接收主機通過目標(biāo)通信通道發(fā)送的配置信息,目標(biāo)通信通道為主機與虛擬機中的虛擬機驅(qū)動之間的通用通信通道;配置信息為虛擬機管理系統(tǒng)向主機發(fā)送的,由主機向虛擬機驅(qū)動轉(zhuǎn)發(fā)的信息。
[0061 ] 步驟202,根據(jù)配置信息對虛擬機進(jìn)行配置。
[0062]綜上所述,本實施例提供的虛擬機配置方法,通過復(fù)用主機與虛擬機驅(qū)動之間的已有的通用通信通道,接收主機通過該通用通信通道發(fā)送的配置信息,進(jìn)而根據(jù)該配置信息對虛擬機進(jìn)行配置;避免了現(xiàn)有技術(shù)中需要在虛擬機中特設(shè)用于虛擬機配置的虛擬串口設(shè)備和串口監(jiān)聽服務(wù),進(jìn)而浪費虛擬機的串口資源的問題;達(dá)到了可以復(fù)用主機與虛擬機驅(qū)動之間已有的通用通信通道,進(jìn)而無需對虛擬機做特殊改進(jìn),節(jié)省了虛擬機所需耗用的串口資源的效果。
[0063]請參考圖3A,其示出了本發(fā)明一個實施例提供的虛擬機配置方法的方法流程圖。如圖3A所示,該虛擬機配置方法可以包括:
[0064]步驟301,接收主機通過目標(biāo)通信通道發(fā)送的配置信息,目標(biāo)通信通道為主機與虛擬機中的虛擬機驅(qū)動之間的通用通信通道;配置信息為虛擬機管理系統(tǒng)向主機發(fā)送的,由主機向虛擬機驅(qū)動轉(zhuǎn)發(fā)的信息。
[0065]用戶需要對虛擬機進(jìn)行配置時,用戶可以在虛擬機管理系統(tǒng)中設(shè)置對虛擬機進(jìn)行配置的配置信息,并通過虛擬機管理系統(tǒng)發(fā)送該配置信息至主機。相應(yīng)的,主機可以接收虛擬機管理系統(tǒng)發(fā)送的配置信息。
[0066]在主機接收到虛擬機管理系統(tǒng)發(fā)送的配置信息之后,主機可以通過目標(biāo)通信通道向?qū)?yīng)的虛擬機中的虛擬機驅(qū)動轉(zhuǎn)發(fā)該配置信息。相應(yīng)的,虛擬機可以通過虛擬機驅(qū)動接收到主機通過目標(biāo)通信通道發(fā)送的配置信息。
[0067]可選地,主機可以將配置信息存儲至目標(biāo)通信通道中,并發(fā)送中斷信號至虛擬機驅(qū)動。虛擬機驅(qū)動接收到中斷信號之后,即可獲知目標(biāo)通信通道中有新信息。此時,虛擬機驅(qū)動可以讀取目標(biāo)通信通道中存儲的信息,進(jìn)而獲取到配置信息。
[0068]本實施例中的目標(biāo)通信通道為主機與虛擬機驅(qū)動之間的通用通信通道。比如,以XEN虛擬化環(huán)境來舉例說明,該目標(biāo)通信通道即可為XenStore。
[0069]另外,本實施例中的配置信息可以包括配置腳本文件的文件標(biāo)識以及對虛擬機進(jìn)行配置的配置參數(shù)。其中,配置腳本文件是指用于實現(xiàn)對虛擬機進(jìn)行配置的文件,配置腳本文件的文件標(biāo)識可以為配置腳本文件的文件名稱。
[0070]以對虛擬機的IP (英文:Internet Protocol,簡稱:網(wǎng)絡(luò)之間互連的協(xié)議)地址進(jìn)行配置,也即配置參數(shù)為虛擬機的IP地址來舉例說明,該配置信息可以為[set_ip.sh][-1p 192.168.0.1]。
[0071]需要補充說明的是,本實施例只是以配置信息包括配置腳本文件的文件標(biāo)識以及配置參數(shù)來舉例說明,可選地,配置信息中還可以包括其他內(nèi)容,本實施例對此并不做限定。
[0072]步驟302,獲取文件標(biāo)識所對應(yīng)的配置腳本文件。
[0073]虛擬機通過虛擬機驅(qū)動接收到配置信息之后,虛擬機可以通過虛擬機驅(qū)動提取配置信息中攜帶的配置腳本文件的文件標(biāo)識,然后根據(jù)提取到的文件標(biāo)識獲取對應(yīng)的配置腳本文件。
[0074]可選地,本步驟可以包括:在虛擬機的預(yù)設(shè)目錄下查詢文件標(biāo)識所對應(yīng)的配置腳本文件,預(yù)設(shè)目錄為允許被第三方調(diào)用的各個文件的存儲目錄。
[0075]管理員在虛擬機管理系統(tǒng)中創(chuàng)建虛擬機模板時,可以在預(yù)設(shè)目錄下存儲自定義的配置腳本文件。在通過虛擬機模板創(chuàng)建虛擬機之后,虛擬機的預(yù)設(shè)目錄下即可存儲有該配置腳本文件。此后,當(dāng)虛擬機驅(qū)動提取到配置腳本文件的文件標(biāo)識之后,虛擬機驅(qū)動即可在虛擬機的預(yù)設(shè)目錄下查詢該文件標(biāo)識所對應(yīng)的配置腳本文件。
[0076]通過將允許被調(diào)用的文件存儲在指定的預(yù)設(shè)目錄下,避免了第三方調(diào)用未被允許調(diào)用的文件之后,對虛擬機造成的攻擊,保證了虛擬機的安全。
[0077]步驟303,生成獲取到的配置腳本文件的文件摘要。
[0078]可選地,虛擬機驅(qū)動可以通過消息摘要算法第五版(英文=Message DigestAlgorithm;簡稱:MD5)生成獲取到的配置腳本文件的文件摘要。
[0079]當(dāng)然,虛擬機驅(qū)動還可以通過其他算法來生成該文件摘要,本實施例對此并不做限定。
[0080]步驟304,檢測生成的文件摘要是否與配置信息中攜帶的配置腳本文件的文件摘要一致。
[0081]管理員在預(yù)設(shè)目錄下存儲自定義的配置腳本文件的同時,還可以通過MD5算法生成該配置腳本文件的文件摘要。并且,在虛擬機管理系統(tǒng)此后發(fā)送配置信息至主機時,虛擬機管理系統(tǒng)可以發(fā)送攜帶有生成的文件摘要的配置信息。相應(yīng)的,虛擬機驅(qū)動接收到主機轉(zhuǎn)發(fā)的虛擬機管理系統(tǒng)發(fā)送的配置信息之后,虛擬機驅(qū)動可以提取配置信息中攜帶的文件摘要。并且,檢測步驟303中生成的文件摘要是否與從配置信息中提取的文件摘要一致。
[0082]本實施例對生成文件摘要所使用的算法并不做限定,只需保證配置信息中攜帶的文件摘要的生成算法與步驟303中使用的算法一致即可。
[0083]步驟305,若一致,則根據(jù)配置腳本文件以及配置參數(shù)對虛擬機進(jìn)行配置。
[0084]若虛擬機驅(qū)動的檢測結(jié)果為一致,則說明請求對虛擬機進(jìn)行配置的第三方知道配置腳本文件的文件摘要,也即是合法的第三方。此時,虛擬機驅(qū)動即可根據(jù)配置腳本文件以及配置參數(shù)對虛擬機進(jìn)行配置。具體的,虛擬機驅(qū)動可以觸發(fā)配置腳本文件的執(zhí)行,并依據(jù)配置參數(shù)對虛擬機進(jìn)行配置。其中,虛擬機驅(qū)動在對虛擬機進(jìn)行成功配置之后,虛擬機驅(qū)動可以反饋配置成功信息至主機,由主機轉(zhuǎn)發(fā)配置成功信息至虛擬機管理系統(tǒng)。
[0085]而若虛擬機驅(qū)動的檢測結(jié)果為不一致,則此時說明請求對虛擬機進(jìn)行配置的第三方并不知道配置腳本文件的正確的文件摘要,也即第三方可能是非法用戶假冒的第三方,此時,為了避免對虛擬機進(jìn)行錯誤配置,虛擬機驅(qū)動可以結(jié)束流程。
[0086]需要補充說明的是,步驟303和步驟304為可選步驟,實際實現(xiàn)時,在步驟302執(zhí)行完畢之后可直接執(zhí)行步驟305,本實施例對此并不做限定。
[0087]綜上所述,本實施例提供的虛擬機配置方法,通過復(fù)用主機與虛擬機驅(qū)動之間的已有的通用通信通道,接收主機通過該通用通信通道發(fā)送的配置信息,進(jìn)而根據(jù)該配置信息對虛擬機進(jìn)行配置;避免了現(xiàn)有技術(shù)中需要在虛擬機中特設(shè)用于虛擬機配置的虛擬串口設(shè)備和串口監(jiān)聽服務(wù),進(jìn)而浪費虛擬機的串口資源的問題;達(dá)到了可以復(fù)用主機與虛擬機驅(qū)動之間已有的通用通信通道,進(jìn)而無需對虛擬機做特殊改進(jìn),節(jié)省了虛擬機所需耗用的串口資源的效果。
[0088]在虛擬機驅(qū)動接收到配置信息之后,虛擬機驅(qū)動在預(yù)設(shè)目錄下查詢配置信息中的文件標(biāo)識所對應(yīng)的配置腳本文件,其中,預(yù)設(shè)目錄為允許被第三方調(diào)用的各個文件的存儲目錄,避免了第三方在調(diào)用其他未被允許的可執(zhí)行文件之后,對虛擬機造成的攻擊,保證了虛擬機的安全。
[0089]同時,通過在配置信息中攜帶配置腳本文件的文件摘要,進(jìn)而只有在配置信息中的文件摘要與虛擬機驅(qū)動生成的文件摘要一致時,虛擬機驅(qū)動才會對虛擬機進(jìn)行配置,避免了非法的第三方對虛擬機進(jìn)行惡意配置之后,對虛擬機造成的攻擊,保證了虛擬機的安全。
[0090]另外,由于虛擬機驅(qū)動進(jìn)程均為高優(yōu)先級高可靠性的運行,所以本實施例