專利名稱:一種sun4v架構下的虛擬機自動啟動控制方法
技術領域:
本發(fā)明涉及虛擬機管理機制,具體涉及一種sun4v架構下實現(xiàn)無物理磁盤IO設備的虛擬機中操作系統(tǒng)從虛擬磁盤設備啟動的方法
背景技術:
虛擬化技術已經(jīng)在計算機領域獲得了廣泛應用,目前的虛擬化技術可以分為兩大類,一類是對單物理機器上的冗余資源通過分區(qū)或復用等方式建立多個虛擬機環(huán)境,另一類是將多個物理機資源進行整合以建立能力更為強大的統(tǒng)一計算機環(huán)境,下文的技術內(nèi)容及涉及的“虛擬化技術”等名詞一般是面向單一物理計算機系統(tǒng)上的虛擬化。如圖I所示,虛擬化技術給計算機系統(tǒng)引入了一個新的軟件層次(也稱為特權級或運行態(tài)),傳統(tǒng)的計算機系統(tǒng)軟件一般由操作系統(tǒng)和用戶軟件組成,虛擬化的計算機中在操作系統(tǒng)下加入了虛擬機監(jiān)控器(Virtual Machine Monitor, VMM)層,完成對資源隔離管理等工作。從計算機資源組成的角度出發(fā),虛擬化技術構成可以分為三個方面CPU資源虛擬化、內(nèi)存資源虛擬化、IO(Input-Output)資源虛擬化。三種技術就是將對應的資源在VMM的管理下以某種隔離方式分配到不同的虛擬機(Virtual Machine, VM)環(huán)境中,使虛擬機中的系統(tǒng)軟件認為它們擁有自己的相應私有資源。CPU和內(nèi)存資源的虛擬化相對簡單。對于CPU,VMM可以進行時間片分割或在CPU數(shù)量足夠時將CPU直接分配到各虛擬機;對于內(nèi)存,VMM可以使用分頁、分段等內(nèi)存映射技術隔離分配給虛擬機使用。IO資源的虛擬化有其相對特殊性。首先,IO設備對系統(tǒng)來說是不確定的,因為允許總線上熱拔插事件和故障隱退。其次,標準PCI總線上設備的管理具有較強關聯(lián)性,必須一次掃描完成其上所有設備的初始化,VMM難以將不同的設備直接分配到各虛擬機,更難以對設備進行分時分配。第三,IO設備種類繁多,驅動程序的可靠性差,一般交由虛擬機操作系統(tǒng)直接驅動。基于上述原因,VMM —般只能以PCI總線域(或者HOST主橋)的粒度將IO設備分配到虛擬機,由虛擬機對主橋下總線上掛接的各種設備進行驅動管理。計算機上PCI總線域數(shù)量有限,一般只有一個,因此傳統(tǒng)的虛擬化技術一般是把所有IO設備交給一個特殊的虛擬機管理,這個虛擬機稱為控制域或者DomainO,其它虛擬機通過虛擬信道使用控制域提供的服務完成自己的10,這些虛擬機稱為客戶域或者DomainU。如圖2所示,控制域以及客戶域對磁盤設備訪問的過程如下控制域可以對文件系統(tǒng)(FS)進行直接讀寫并訪問本地磁盤驅動程序;客戶域中沒有真實的10設備,但是擁有虛擬磁盤,這是虛擬磁盤客戶端驅動程序vdc (virtual disk client)提供的??蛻粲虻奈募到y(tǒng)操作命令被vdc轉換為通信協(xié)議通過域間信道LDC發(fā)送到控制域的服務程序vds(virtual disk server), vds訪問本地文件系統(tǒng)或磁盤驅動完成訪問請求后,再將返回結果轉換為協(xié)議通過域間信道發(fā)送給客戶域的vdc驅動,客戶域的讀寫請求最終完成。對于不擁有真實10總線的客戶域,必須在控制域啟動完畢并加載vds后端驅動之后,才能使用vdc并具備虛擬磁盤的訪問能力,這就產(chǎn)生了客戶域操作系統(tǒng)的啟動時機問題。諸如sun4v架構的平臺上,VMM被設計成精簡的軟件薄層hypervisor,系統(tǒng)中的多個虛擬機以分區(qū)方式擁有CPU和內(nèi)存資源,各個虛擬機可以在互不干擾的情況下被hypervisor同時加電啟動,但普通客戶域只能在啟動到OS加載器后等待控制域啟動并提供服務,之后OS加載器才能啟動虛擬磁盤上的操作系統(tǒng)。在以虛擬化技術為基石的集群服務器或是云計算支持系統(tǒng)中,出于系統(tǒng)啟動速度和管理維護上的考慮,虛擬機操作系統(tǒng)的自動啟動是應該被支持的重要特性。
sun4v架構是SUN公司在spare系列處理器上開發(fā)的硬件級虛擬化技術架構,在處理器上實現(xiàn)了對CPU分區(qū)、內(nèi)存分區(qū)、以及IO虛擬化的指令和寄存器支持。SUN公司將基于sun4v架構的opensparc Tl^Popensparc T2處理器開源。飛騰1000系列通用處理器(下簡稱飛騰CPU)是由國防科技大學自主研發(fā)的高性能通用微處理器,基于opensparcT2架構設計,兼容sparcV9指令集。飛騰CPU芯片使用成熟的SOC技術,片上集成了 8個處理核,核內(nèi)包含8個硬件線程,具有強大的計算和事務處理能力。此外芯片上還集成存控單元和PCI Express接口,有效解決了 IO瓶頸問題。為了更加高效地使用處理器芯片上提供的“海量”資源,飛騰處理器的設計中還引入了完備的硬件虛擬化支持,使SOC系統(tǒng)又可以被劃分成相互隔離的資源分區(qū),支持多達64個虛擬機的同時運行,不但可使系統(tǒng)資源利用率得到大幅度提升,還能在高可用、高安全方面有更佳表現(xiàn)。飛騰CPU平臺上的虛擬化技術也是以SUN公司開發(fā)的sun4v技術為基礎構建。軟件被分為hyper_privilege、privilege和non-privilege三種運行態(tài),分別對應于VMM、操作系統(tǒng)內(nèi)核和用戶態(tài)軟件。三個運行態(tài)的軟件分別可以訪問物理地址、實地址和虛地址,操作系統(tǒng)只能訪問到實地址和虛地址,VMM才能訪問物理地址。目前的sun4v虛擬化技術構件中主要采用虛擬共享訪問IO方式。對于sun4v架構下的虛擬化平臺而言,傳統(tǒng)的客戶域啟動一般是利用系統(tǒng)提供的邏輯域管理管理工具(LDM)提供的配置管理命令人工完成。在sun4v系統(tǒng)平臺上,虛擬機監(jiān)控器hypervisor、0S加載器OBP (Open Boot Prom)都被集成在主機固件中,此外還可以將各分區(qū)的機器描述文件MD (Machine Discription)也集成到固件中。Hypervisor啟動時,如果發(fā)現(xiàn)了多個分區(qū)的合法MD描述,則會同時對這些虛擬分區(qū)的vcpu進行加電啟動。此后,每個分區(qū)的主啟動vcpu會將自己的OBP復制到分區(qū)內(nèi)存,并且執(zhí)行。OBP在啟動完畢后,可以根據(jù)配置自動啟動OS,或是等待用戶輸入boot命令再啟動指定的OS。如圖3所示,在hyper-privilege執(zhí)行過程中,控制域和客戶域各執(zhí)行一個主線程,控制域的線程為0號線程。0號線程以及各個客戶域的主線程首先執(zhí)行邏輯域初始化,然后加載OBP (OS加載器)。在加載OBP完畢后,0號線程首先掃描物理總線并加載設備驅動,然后自動或者手工加載物理磁盤中的控制域OS,控制域OS啟動完成以后則在控制域中加載Vds驅動。在控制域操作系統(tǒng)啟動完成、Vds服務已經(jīng)就緒,用戶通過控制域提供的控制臺服務登錄到客戶域的串口上,通過啟動命令啟動客戶域的操作系統(tǒng)。因此,在OBP和OS加載過程中,首先由控制域自動或者手工加載物理磁盤中的OS,然后控制域的OS啟動并完成加載vds驅動;各個客戶域則掃描虛擬總線并加載設備驅動vdc后,在虛擬磁盤訪問請求無回應時不斷等待,直到請求收到控制域的返回消息后才自動或者手工加載虛擬磁盤操作系統(tǒng),這樣存在很大的弊端1、依賴于邏輯域管理管理工具(LDM)工具套件;2、虛擬機啟動過程中需要人工干預,通過邏輯域管理管理工具(LDM)工具套件同時只能管理一個客戶域的啟動,人工啟動效率低下,導致虛擬機啟動非常慢,無法實現(xiàn)虛擬機的自動啟動。因此影響了 sun4v架構下的虛擬化平臺的應用。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問 題是提供一種啟動速度快、啟動效率高、無需人工干預、適用范圍廣的sun4v架構下的虛擬機自動啟動控制方法。為了解決上述技術問題,本發(fā)明采用的技術方案為
一種sun4v架構下的虛擬機自動啟動控制方法,其實施步驟如下
1)控制域在加載物理磁盤驅動服務后加載邏輯域虛擬串口所對應邏輯域信道的驅
動;
2)控制域通過所述邏輯域信道向各客戶域的虛擬串口寫入回車控制符,然后讀取各客戶域的虛擬串口從邏輯域信道的返回數(shù)據(jù),重復執(zhí)行步驟2)直至客戶域返回數(shù)據(jù)為操作系統(tǒng)加載器啟動完畢的消息;
3)控制域獲取各客戶域的操作系統(tǒng)啟動命令,控制域以虛擬串口寫方式通過邏輯域信道向操作系統(tǒng)加載器已經(jīng)啟動完畢的客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。作為本發(fā)明上述技術方案的進一步改進
所述步驟3)控制域在發(fā)送回車控制符后還包括檢測客戶域操作系統(tǒng)啟動狀態(tài)的步驟,所述檢測客戶域操作系統(tǒng)啟動狀態(tài)的步驟具體包括控制域在發(fā)送回車控制符后讀取客戶域虛擬串口從邏輯域信道的返回數(shù)據(jù),如果客戶域返回數(shù)據(jù)為操作系統(tǒng)啟動成功消息,則關閉到客戶域之間的邏輯域信道連接并退出;否則跳轉執(zhí)行所述步驟2)直至所有客戶域的操作系統(tǒng)啟動完畢。所述步驟2)的詳細步驟包括控制域首先設定邏輯域信道用于連接各個客戶域的TCP端口,由虛擬telnet管理服務將虛擬串口的數(shù)據(jù)轉換到這些TCP端口上,然后分別通過各個TCP端口向各客戶域虛擬串口寫入回車控制符,并通過各個TCP端口讀取各客戶域虛擬串口的返回數(shù)據(jù)。所述步驟3)中控制域獲取各客戶域的操作系統(tǒng)啟動命令的詳細步驟如下控制域首先獲取各個客戶域對應的TCP端口,然后根據(jù)所述TCP端口查找對應客戶端的操作系統(tǒng)啟動命令。所述步驟3)中寫入操作系統(tǒng)啟動命令具體是指控制域將操作系統(tǒng)啟動命令寫入到字符數(shù)組中,然后以串口寫方式將所述字符數(shù)組中的字符逐一通過邏輯域信道寫入客戶域的虛擬串口。所述操作系統(tǒng)啟動命令包括虛擬磁盤操作系統(tǒng)啟動命令和網(wǎng)絡操作系統(tǒng)啟動命令。所述步驟3)中控制域以虛擬串口寫方式向客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符的詳細步驟如下控制域預先設置用于作為指定客戶域操作系統(tǒng)啟動前提條件的觸發(fā)消息,且預先在另一關聯(lián)的客戶域中設置向控制域發(fā)送所述觸發(fā)消息的守護程序,控制域在向所述指定客戶域寫入操作系統(tǒng)啟動命令之前預先判斷是否收到對應的觸發(fā)消息,如果尚未收到觸發(fā)消息則暫停向指定客戶域的虛擬串口寫入操作系統(tǒng)啟動命令,并在收到所述觸發(fā)消息后以串口寫方式向客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。
本發(fā)明具有下述優(yōu)點
I、本發(fā)明的控制域在物理磁盤的驅動以及邏輯域信道的驅動已被控制域內(nèi)核加載、客戶域OBP啟動完畢即可自動與各客戶域分別建立虛擬串口連接,并通過虛擬串口連接與客戶域進行自動交互實現(xiàn)客戶域的快速自動啟動,適用于無LDM (邏輯域管理)工具套件輔助的情況,而且本發(fā)明啟動過程中不需要人工干預,可以同時管理多個客戶域的啟動,并在控制域加電啟動完畢后以最快速度啟動客戶域,尤其對于包括云服務器在內(nèi)的擁有大量虛擬機的場合而言,本發(fā)明能夠極大提升全系統(tǒng)的啟動效率,具有啟動速度快、啟動效率高、無需人工干預、適用范圍廣的優(yōu)點。
2、本發(fā)明控制域進一步設定邏輯域信道用于連接各個客戶域的TCP端口,通過TCP端口來支持和區(qū)分不同客戶域,而且后續(xù)進一步根據(jù)TCP端口查找對應客戶端的操作系統(tǒng)啟動命令,實現(xiàn)間單方便。3、本發(fā)明的操作系統(tǒng)啟動命令進一步包括虛擬磁盤操作系統(tǒng)啟動命令和網(wǎng)絡操作系統(tǒng)啟動命令,除能夠支持虛擬磁盤啟動客戶域操作系統(tǒng)以外,還能夠支持網(wǎng)絡啟動客戶域操作系統(tǒng)以適應無盤服務器的場景,適用范圍廣泛。4、本發(fā)明的通過設置用于啟動指定客戶域操作系統(tǒng)的觸發(fā)消息、預先在另一客戶域中設置用于在操作系統(tǒng)啟動后向控制域發(fā)送所述觸發(fā)消息的守護程序、控制域在向所述指定客戶域寫入操作系統(tǒng)啟動命令之前預先判斷是否收到對應的觸發(fā)消息,能夠控制不同客戶域的操作系統(tǒng)啟動順序,實現(xiàn)客戶域的條件啟動和順序啟動,易于建立靈活的自動啟動時機點,能夠適應復雜的需求、滿足不同客戶域的啟動關聯(lián)性的需求。
圖I為現(xiàn)有技術虛擬化的計算機的框架結構示意圖。圖2為現(xiàn)有技術控制域以及客戶域對磁盤設備訪問的過程示意圖。圖3為現(xiàn)有技術虛擬機啟動的流程示意圖。圖4為本發(fā)明實施例的實施流程示意圖。
具體實施例方式本實施例的虛擬機環(huán)境為基于sun4v架構的飛騰處理器平臺,控制域擁有PCIE總線(MD中指定),客戶域沒有物理PCIE總線設備,客戶域操作系統(tǒng)文件位于由虛擬磁盤服務提供的虛擬磁盤中。為表達方便,下文中的串口均指虛擬串口。如圖4所示,本發(fā)明實施例的sun4v架構下的虛擬機自動啟動控制方法的實施步驟如下
1)控制域在加載物理磁盤驅動服務(Vds)后加載邏輯域信道(UART_LDC)的驅動;
2)控制域通過邏輯域信道向各客戶域的串口寫入回車控制符,然后讀取各客戶域的串口從邏輯域信道的返回數(shù)據(jù),重復執(zhí)行步驟2)直至客戶域返回數(shù)據(jù)為操作系統(tǒng)加載器(OBP)啟動完畢的消息;
3)控制域獲取各客戶域的操作系統(tǒng)啟動命令,控制域以串口寫方式通過邏輯域信道向操作系統(tǒng)加載器(OBP)已經(jīng)啟動完畢的客戶域的串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。
本實施例中步驟I) 步驟3)中的功能均是通過添加在控制域的虛擬網(wǎng)絡終端服務器守護程序(vntsd服務)的啟動代碼中,選取vntsd服務的啟動作為客戶域啟動時機點,vntsd服務是控制域操作系統(tǒng)中提供的虛擬控制臺服務。vntsd服務會建立到每個客戶域串口的UART_LDC的連接,vntsd服務針對每個運行態(tài)的客戶虛擬機串口提供一個TCP端口給控制域用戶,vntsd服務通過TCP端口將用戶輸入提交給客戶域0BP,并通過TCP端口將客戶域的串口輸出信息中轉給telnet用戶??刂朴蛴脩敉ㄟ^telnet應用連接到對應每個虛擬機的tcp端口,就如同登錄到該虛擬機的串口上一樣。選擇vntsd服務的啟動點作為客戶域啟動時機的依據(jù)為1.此時控制域OS基本啟動完畢,客戶域有充足的時間已經(jīng)啟動到OBP就緒狀態(tài);2.此時控制域OS已經(jīng)完成加載所有內(nèi)核模塊和設備驅動程序,vds服務已經(jīng)就緒;3. vntsd要占用UART_LDC信道,先于vntsd完成本發(fā)明的代碼,可以防止信道(設備)沖突。UART_LDC是對用于建立控制域到客戶域串口連接的邏輯域信道的通稱,控制域到每個客戶域都會配置至少一條串口連接,這是在創(chuàng)建客戶域時的標準配置,并會在控制域中分配對應的通信端口(port)。對于應用級的服務,UART_LDC由內(nèi)核封裝后暴露一個設備節(jié)點,例如在Solaris操作系統(tǒng)中的節(jié)點路徑為
uartpath=/devices/virtual-devicesilOO/channel-devicesi200/virtual-consoIe-concentratoriO:ldom—doml
本發(fā)明的代碼中通過調(diào)用uartfd= open (uartpath, 0_RDWR);指令得到串口的文件描述符,再利用標準UNIX文件操作write和read進行串口讀寫??蛻粲虻牟僮飨到y(tǒng)內(nèi)核接管CPU后,就會調(diào)用操作系統(tǒng)加載器(OBP)的串口,輸出內(nèi)核成功啟動的消息??刂朴蛲ㄟ^判斷讀取的串口信息,就可以確認客戶域操作系統(tǒng)是否被成功加載啟動并向用戶報告結果。由于每個分區(qū)的資源是嚴格隔離的,對于不擁有物理IO總線的客戶域而言,同外界通信的唯一方式是邏輯域信道(LDC, Logical Domain Channel Xsun4v架構的虛擬化環(huán)境中,每個客戶域都至少建立一條和控制域的LDC用于建立虛擬串口控制臺,我們將該LDC命名為UART_LDC??刂朴騉S首先啟動并加載LDC虛擬串口驅動程序,之后啟動控制臺服務并監(jiān)聽虛擬串口 ;客戶域中的OBP首先啟動,會將自己的虛擬串口設備進行初始化,并將啟動信息和控制提示符通過虛擬串口提供給控制域;控制域OS的vntsd服務將通往每個客戶域的UART_LDC關聯(lián)到不同的TCP端口上,控制域用戶通過telnet程序登錄到本機的TCP端口,最終得到客戶域的控制串口終端。因此,當固件中具備客戶域的MD描述時,一般是客戶域在OBP啟動完畢狀態(tài)即等待,直到控制域通過telnet終端得到OBP控制界面,并輸入boot命令啟動OS,此時控制域一般已經(jīng)準備好進行虛擬磁盤10服務。步驟2)的詳細步驟包括控制域首先設定邏輯域信道用于連接各個客戶域的TCP端口,然后分別通過各個TCP端口向各客戶域的串口寫入回車控制符,并通過各個TCP端口讀取各客戶域串口的返回數(shù)據(jù)。步驟3)中控制域獲取各客戶域的操作系統(tǒng)啟動命令的詳細步驟如下控制域首先獲取各個客戶域對應的TCP端口,然后根據(jù)TCP端口查找對應客戶端的操作系統(tǒng)啟動命令??刂朴蚝涂蛻粲蛑g的交互實際上通過telnet服務實現(xiàn),控制域通過telnet用戶登錄客戶域實現(xiàn)與客戶域OBP的交互。對于操作系統(tǒng)加載器(OBP)而言,在啟動完畢后會打印出“ok ”提示符,等待用戶輸入,如果用戶輸入回車控制符,則打印新的“ok: ”提示符。由于本實施例中從控制域打開到客戶域的串口時,客戶域的OBP可能已經(jīng)處于就緒狀態(tài),已經(jīng)無法接收到“ok ”提示符,故發(fā)送一個回車控制符,利用返回結果判斷客戶域OBP是否就緒。由于OBP啟動完畢的消息為命令行提示符“ok: ”,因此如果客戶域返回數(shù)據(jù)為“ok ”則判定客戶域的OBP已經(jīng)啟動完畢,從而控制域針對該客戶域跳轉執(zhí)行步驟3)。步驟3)控制域在發(fā)送回車控制符后還包括檢測客戶域操作系統(tǒng)啟動狀態(tài)的步驟,檢測客戶域操作系統(tǒng)啟動狀態(tài)的步驟具體包括控制域在發(fā)送回車控制符后以串口讀方式讀取客戶域從邏輯域信道的返回數(shù)據(jù),如果客戶域返回數(shù)據(jù)為操作系統(tǒng)啟動成功消息,則關閉到客戶域之間的邏輯域信道連接并退出;否則跳轉執(zhí)行步驟2)直至所有客戶域的操作系統(tǒng)啟動完畢。通過對客戶域操作系統(tǒng)啟動狀態(tài)的檢測,能夠更加精確地確定客戶域操作系統(tǒng)的啟動狀態(tài),從而在啟動失敗時繼續(xù)與客戶域的OBP交互,因此一旦客戶域發(fā)生故障導致操作系統(tǒng)啟動失敗,仍然可以通過多次 啟動客戶域的操作系統(tǒng)來減少客戶域無法啟動故障的可能性。步驟3)中寫入操作系統(tǒng)啟動命令具體是指控制域將操作系統(tǒng)啟動命令寫入到字符數(shù)組中,然后將字符數(shù)組中的字符逐一通過邏輯域信道寫入客戶域的串口。步驟3)中控制域向客戶域的串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符的詳細步驟如下控制域預先設置用于作為指定客戶域操作系統(tǒng)啟動前提條件的觸發(fā)消息,且預先在另一關聯(lián)的客戶域中設置向控制域發(fā)送觸發(fā)消息的守護程序,控制域在向指定客戶域寫入操作系統(tǒng)啟動命令之前預先判斷是否收到對應的觸發(fā)消息,如果尚未收到觸發(fā)消息則暫停向指定客戶域寫入操作系統(tǒng)啟動命令,并在收到觸發(fā)消息后以串口寫方式向客戶域寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。例如,客戶域B在客戶域A啟動到某個階段時再啟動,則控制域預先設置用于啟動客戶域B操作系統(tǒng)的觸發(fā)消息,且預先在客戶域A中設置用于在操作系統(tǒng)啟動后向控制域發(fā)送觸發(fā)消息的守護程序,守護程序在客戶域A的操作系統(tǒng)啟動后的相關階段將觸發(fā)消息打印到串口輸出,如果控制域尚未收到觸發(fā)消息則暫停向客戶域B的串口寫入操作系統(tǒng)啟動命令,并在收到觸發(fā)消息則通過虛擬串口連接向客戶域B寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符,從而控制不同客戶域的啟動順序,實現(xiàn)客戶域的條件啟動和順序啟動,能夠滿足不同客戶域的啟動關聯(lián)性的需求,例如適應某些虛擬機有啟動的先后次序的要求,可以避免人工錯誤,易于建立靈活的自動啟動時機點以適應復雜的需求,具有適用范圍廣的優(yōu)點。本實施例的操作系統(tǒng)啟動命令包括虛擬磁盤操作系統(tǒng)啟動命令和網(wǎng)絡操作系統(tǒng)啟動命令,虛擬磁盤操作系統(tǒng)啟動命令可以使客戶域從本域的虛擬磁盤進行OS啟動,網(wǎng)絡操作系統(tǒng)啟動命令可以使客戶域從本域的虛擬網(wǎng)絡啟動。本實施例中,虛擬磁盤操作系統(tǒng)啟動命令為“boot磁盤標識參數(shù)”形式,本實施例中將命令格式中的磁盤標識和參數(shù)都事先在客戶域OBP的環(huán)境變量中進行配置,只需要輸入命令boot和“回車”符就可以進行客戶域操作系統(tǒng)的啟動。虛擬磁盤操作系統(tǒng)啟動命令和網(wǎng)絡操作系統(tǒng)啟動命令是通過參數(shù)net來區(qū)分的,只需要將boot命令的參數(shù)帶上net,即形成“boot net參數(shù)”形式的網(wǎng)絡操作系統(tǒng)啟動命令,就可以使客戶域自動進行網(wǎng)絡操作系統(tǒng)啟動。以上所述僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術方案均屬于本發(fā)明的保護范圍。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
權利要求
1.一種sun4v架構下的虛擬機自動啟動控制方法,其特征在于其實施步驟如下 O控制域在加載物理磁盤驅動服務后加載邏輯域虛擬串口所對應邏輯域信道的驅動; 2)控制域通過所述邏輯域信道向各客戶域的虛擬串口寫入回車控制符,然后讀取各客戶域的虛擬串口從邏輯域信道的返回數(shù)據(jù),重復執(zhí)行步驟2)直至客戶域返回數(shù)據(jù)為操作系統(tǒng)加載器啟動完畢的消息; 3)控制域獲取各客戶域的操作系統(tǒng)啟動命令,控制域以虛擬串口寫方式通過邏輯域信道向操作系統(tǒng)加載器已經(jīng)啟動完畢的客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。
2.根據(jù)權利要求I所述的sun4v架構下的虛擬機自動啟動控制方法,其特征在于,所述步驟3)控制域在發(fā)送回車控制符后還包括檢測客戶域操作系統(tǒng)啟動狀態(tài)的步驟,所述檢測客戶域操作系統(tǒng)啟動狀態(tài)的步驟具體包括控制域在發(fā)送回車控制符后讀取客戶域虛擬串口從邏輯域信道的返回數(shù)據(jù),如果客戶域返回數(shù)據(jù)為操作系統(tǒng)啟動成功消息,則關閉到客戶域之間的邏輯域信道連接并退出;否則跳轉執(zhí)行所述步驟2)直至所有客戶域的操作系統(tǒng)啟動完畢。
3.根據(jù)權利要求I所述的sun4v架構下的虛擬機自動啟動控制方法,其特征在于,所述步驟2)的詳細步驟包括控制域首先設定邏輯域信道用于連接各個客戶域的TCP端口,由虛擬telnet管理服務將虛擬串口的數(shù)據(jù)轉換到這些TCP端口上,然后分別通過各個TCP端口向各客戶域虛擬串口寫入回車控制符,并通過各個TCP端口讀取各客戶域虛擬串口的返回數(shù)據(jù)。
4.根據(jù)權利要求3所述的sun4v架構下的虛擬機自動啟動控制方法,其特征在于,所述步驟3)中控制域獲取各客戶域的操作系統(tǒng)啟動命令的詳細步驟如下控制域首先獲取各個客戶域對應的TCP端口,然后根據(jù)所述TCP端口查找對應客戶端的操作系統(tǒng)啟動命令。
5.根據(jù)權利要求I所述的sun4v架構下的虛擬機自動啟動控制方法,其特征在于所述步驟3)中寫入操作系統(tǒng)啟動命令具體是指控制域將操作系統(tǒng)啟動命令寫入到字符數(shù)組中,然后以串口寫方式將所述字符數(shù)組中的字符逐一通過邏輯域信道寫入客戶域的虛擬串□。
6.根據(jù)權利要求I所述的sun4v架構下的虛擬機自動啟動控制方法,其特征在于所述操作系統(tǒng)啟動命令包括虛擬磁盤操作系統(tǒng)啟動命令和網(wǎng)絡操作系統(tǒng)啟動命令。
7.根據(jù)權利要求I 6中任意一項所述的sun4v架構下的虛擬機自動啟動控制方法,其特征在于,所述步驟3)中控制域以虛擬串口寫方式向客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符的詳細步驟如下控制域預先設置用于作為指定客戶域操作系統(tǒng)啟動前提條件的觸發(fā)消息,且預先在另一關聯(lián)的客戶域中設置向控制域發(fā)送所述觸發(fā)消息的守護程序,控制域在向所述指定客戶域寫入操作系統(tǒng)啟動命令之前預先判斷是否收到對應的觸發(fā)消息,如果尚未收到觸發(fā)消息則暫停向指定客戶域的虛擬串口寫入操作系統(tǒng)啟動命令,并在收到所述觸發(fā)消息后以串口寫方式向客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。
全文摘要
本發(fā)明公開了一種sun4v架構下的虛擬機自動啟動控制方法,其實施步驟如下1)控制域在加載物理磁盤驅動服務后加載邏輯域虛擬串口所對應邏輯域信道的驅動;2)控制域通過所述邏輯域信道向各客戶域的虛擬串口寫入回車控制符,然后讀取各客戶域的虛擬串口從邏輯域信道的返回數(shù)據(jù),重復執(zhí)行步驟2)直至客戶域返回數(shù)據(jù)為操作系統(tǒng)加載器啟動完畢的消息;3)控制域獲取各客戶域的操作系統(tǒng)啟動命令,控制域以虛擬串口寫方式通過邏輯域信道向操作系統(tǒng)加載器已經(jīng)啟動完畢的客戶域的虛擬串口寫入操作系統(tǒng)啟動命令并發(fā)送回車控制符。本發(fā)明具有啟動速度快、啟動效率高、無需人工干預、適用范圍廣的優(yōu)點。
文檔編號G06F9/445GK102622245SQ20121004315
公開日2012年8月1日 申請日期2012年2月24日 優(yōu)先權日2012年2月24日
發(fā)明者劉曉建, 吳慶波, 孔金珠, 戴華東, 易曉東, 秦瑩, 董攀, 顏躍進 申請人:中國人民解放軍國防科學技術大學