国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種kvm虛擬化服務(wù)系統(tǒng)及其數(shù)據(jù)通信方法

      文檔序號(hào):6520229閱讀:190來源:國知局
      一種kvm虛擬化服務(wù)系統(tǒng)及其數(shù)據(jù)通信方法
      【專利摘要】本發(fā)明涉及一種KVM虛擬化服務(wù)系統(tǒng)及其數(shù)據(jù)通信方法。虛擬化服務(wù)系統(tǒng)包括宿主操作系統(tǒng)和一個(gè)以上的客戶操作系統(tǒng),宿主操作系統(tǒng)上運(yùn)行KVM虛擬機(jī),KVM虛擬機(jī)設(shè)置有域間通信模塊,每一客戶操作系統(tǒng)設(shè)置有域服務(wù)模塊,每一域服務(wù)模塊配置一與宿主操作系統(tǒng)的域間通信模塊共享的數(shù)據(jù)傳輸緩沖區(qū)。其中,當(dāng)一客戶操作系統(tǒng)設(shè)置有設(shè)備驅(qū)動(dòng)程序時(shí),其內(nèi)域服務(wù)模塊還與設(shè)備驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)交互。此外,宿主操作系統(tǒng)的域間通信模塊在不同客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)之間來回拷貝數(shù)據(jù),以此實(shí)現(xiàn)客戶操作系統(tǒng)之間的數(shù)據(jù)通信,進(jìn)而使多個(gè)客戶操作系統(tǒng)能夠訪問該客戶操作系統(tǒng)中運(yùn)行的設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)設(shè)備資源的共享。
      【專利說明】一種KVM虛擬化服務(wù)系統(tǒng)及其數(shù)據(jù)通信方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種系統(tǒng)虛擬化技術(shù),尤其涉及一種提升虛擬化環(huán)境穩(wěn)定性的KVM虛擬化服務(wù)系統(tǒng)及其數(shù)據(jù)通信方法。
      【背景技術(shù)】
      [0002]基于內(nèi)核的KVM虛擬機(jī)(Kernel-based Virtual Machine)是一種開源的服務(wù)器虛擬化技術(shù),自Linux2.6.20之后集成在Linux各個(gè)版本的內(nèi)核中,作為一種主流的虛擬化技術(shù)而被廣泛使用。KVM虛擬機(jī)能夠使用Linux的調(diào)度器和內(nèi)存管理功能,無需要付出額外的代價(jià),自動(dòng)地跟蹤記錄最新的硬件設(shè)備狀態(tài)并且保持可伸縮性的特點(diǎn)。在宿主操作系統(tǒng)Linux自身的資源管理和CPU硬件虛擬化技術(shù)的支持下,KVM虛擬機(jī)可以高效地支持多個(gè)客戶操作系統(tǒng),使一臺(tái)計(jì)算機(jī)能夠被當(dāng)成多臺(tái)計(jì)算機(jī)使用。Linux體系結(jié)構(gòu)的最大優(yōu)勢(shì)就是模塊化,即:內(nèi)核只包括同步原語、簡(jiǎn)單的進(jìn)程調(diào)度以及進(jìn)程間通信機(jī)制等基本功能,而文件系統(tǒng)、設(shè)備驅(qū)動(dòng)等屬于內(nèi)核上層的功能均采用相應(yīng)的程序模塊加以實(shí)現(xiàn)。這些程序模塊可以在運(yùn)行時(shí)通過動(dòng)態(tài)鏈接的方式加載到內(nèi)核中運(yùn)行。正因?yàn)槿绱?,使得Linux內(nèi)核運(yùn)行時(shí)會(huì)集成大量的擴(kuò)展代碼(主要是設(shè)備驅(qū)動(dòng)的程序代碼)。擴(kuò)展代碼跟內(nèi)核代碼共享內(nèi)核地址空間,具有與內(nèi)核一樣的對(duì)內(nèi)核數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改的權(quán)限。在這種工作模式下,有問題的設(shè)備驅(qū)動(dòng)很容易造成操作系統(tǒng)出錯(cuò)甚至崩潰,進(jìn)而影響系統(tǒng)的KVM虛擬化環(huán)境的穩(wěn)定性。

      【發(fā)明內(nèi)容】

      [0003]基于上述原因,本發(fā)明的目的是提供一種提升虛擬化環(huán)境穩(wěn)定性的KVM虛擬化服務(wù)系統(tǒng)及其數(shù)據(jù)通信方法。該方法能夠在不修改KVM虛擬機(jī)源代碼的前提下,將設(shè)備驅(qū)動(dòng)從宿主操作系統(tǒng)中分離到客戶操作系統(tǒng)中運(yùn)行,從而提升系統(tǒng)的KVM虛擬化環(huán)境的穩(wěn)定性。
      [0004]本發(fā)明提供一種KVM虛擬化服務(wù)系統(tǒng),其特征在于,包括:
      [0005]宿主操作系統(tǒng),其上運(yùn)行KVM虛擬機(jī),所述KVM虛擬機(jī)設(shè)置有域間通信模塊;
      [0006]一個(gè)以上的客戶操作系統(tǒng),每一所述客戶操作系統(tǒng)設(shè)置有域服務(wù)模塊,每一所述域服務(wù)模塊配置一與所述域間通信模塊共享的數(shù)據(jù)傳輸緩沖區(qū);
      [0007]其中,當(dāng)一所述客戶操作系統(tǒng)設(shè)置有設(shè)備驅(qū)動(dòng)程序時(shí),其內(nèi)所述域服務(wù)模塊從對(duì)應(yīng)的所述數(shù)據(jù)傳輸緩沖區(qū)獲取相關(guān)數(shù)據(jù),傳給所述設(shè)備驅(qū)動(dòng)程序,以及從所述設(shè)備驅(qū)動(dòng)程序接收相關(guān)數(shù)據(jù),放入對(duì)應(yīng)的所述數(shù)據(jù)傳輸緩沖區(qū);
      [0008]所述宿主操作系統(tǒng)的域間通信模塊在不同客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)之間來回拷貝數(shù)據(jù),以此實(shí)現(xiàn)不同客戶操作系統(tǒng)之間的數(shù)據(jù)通信。
      [0009]上述KVM虛擬化服務(wù)系統(tǒng)中,當(dāng)所述客戶操作系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),其內(nèi)所述域服務(wù)模塊將數(shù)據(jù)存儲(chǔ)位置和待接收數(shù)據(jù)的客戶操作系統(tǒng)信息發(fā)給所述宿主操作系統(tǒng)的域間通信模塊。
      [0010]且,上述KVM虛擬化服務(wù)系統(tǒng)中,當(dāng)待接收數(shù)據(jù)的客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)被占用時(shí),所述宿主操作系統(tǒng)的域間通信模塊放棄此次拷貝操作。
      [0011]進(jìn)一步地,根據(jù)本發(fā)明的實(shí)施例,上述客戶操作系統(tǒng)的域服務(wù)模塊可以于初始化時(shí)申請(qǐng)配置一所述數(shù)據(jù)傳輸緩沖區(qū),并通過內(nèi)存映射法與所述宿主操作系統(tǒng)的域間通信模塊共享所述數(shù)據(jù)傳輸緩沖區(qū)。
      [0012]上述宿主操作系統(tǒng)的域間通信模塊還可以監(jiān)控設(shè)置有設(shè)備驅(qū)動(dòng)程序的所述客戶操作系統(tǒng)的運(yùn)行狀況,當(dāng)運(yùn)行出現(xiàn)故障時(shí)重啟此所述客戶操作系統(tǒng)。
      [0013]此外,本發(fā)明還提供一種KVM虛擬化服務(wù)系統(tǒng)的數(shù)據(jù)通信方法,所述KVM虛擬化服務(wù)系統(tǒng)包括:宿主操作系統(tǒng),其上運(yùn)行KVM虛擬機(jī),所述KVM虛擬機(jī)設(shè)置有域間通信模塊;一個(gè)以上的客戶操作系統(tǒng),每一所述客戶操作系統(tǒng)設(shè)置有域服務(wù)模塊;所述數(shù)據(jù)通信方法包括:
      [0014]所述客戶操作系統(tǒng)的域服務(wù)模塊配置一與所述宿主操作系統(tǒng)的域間通信模塊共享的數(shù)據(jù)傳輸緩沖區(qū);
      [0015]當(dāng)一所述客戶操作系統(tǒng)設(shè)置有設(shè)備驅(qū)動(dòng)程序時(shí),其內(nèi)域服務(wù)模塊從對(duì)應(yīng)的數(shù)據(jù)傳輸緩沖區(qū)獲取相關(guān)數(shù)據(jù),傳給設(shè)備驅(qū)動(dòng)程序,以及從設(shè)備驅(qū)動(dòng)程序接收相關(guān)數(shù)據(jù),放入對(duì)應(yīng)的數(shù)據(jù)傳輸緩沖區(qū);
      [0016]所述宿主操作系統(tǒng)的域間通信模塊在不同客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)之間來回拷貝數(shù)據(jù),以此實(shí)現(xiàn)不同客戶操作系統(tǒng)之間的數(shù)據(jù)通信。
      [0017]上述數(shù)據(jù)通信方法中,當(dāng)客戶操作系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),其內(nèi)域服務(wù)模塊將數(shù)據(jù)存儲(chǔ)位置和待接收數(shù)據(jù)的客戶操作系統(tǒng)信息發(fā)給所述宿主操作系統(tǒng)的域間通信模塊。
      [0018]且,當(dāng)待接收數(shù)據(jù)的客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)被占用時(shí),所述宿主操作系統(tǒng)的域間通信模塊放棄此次拷貝操作。
      [0019]進(jìn)一步地,根據(jù)本發(fā)明的實(shí)施例,上述客戶操作系統(tǒng)的域服務(wù)模塊于初始化時(shí)申請(qǐng)配置數(shù)據(jù)傳輸緩沖區(qū),并通過內(nèi)存映射法與所述宿主操作系統(tǒng)的域間通信模塊共享數(shù)據(jù)傳輸緩沖區(qū)。
      [0020]此外,上述宿主操作系統(tǒng)的域間通信模塊還監(jiān)控設(shè)置有設(shè)備驅(qū)動(dòng)程序的客戶操作系統(tǒng)的運(yùn)行狀況,當(dāng)運(yùn)行出現(xiàn)故障時(shí)重啟此客戶操作系統(tǒng)。
      [0021]與現(xiàn)有技術(shù)相比,本發(fā)明的有益技術(shù)效果在于:
      [0022]1、本發(fā)明以Passthrough I/O機(jī)制為基礎(chǔ),將真實(shí)PCI設(shè)備從宿主操作系統(tǒng)中分離出來并分配給客戶操作系統(tǒng)使用,從而使得真實(shí)PCI設(shè)備對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序從KVM虛擬機(jī)所在的宿主操作系統(tǒng)當(dāng)中分離出來,減少KVM虛擬機(jī)所在的宿主操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序的數(shù)量,從而提升KVM虛擬化環(huán)境的穩(wěn)定性。
      [0023]2、本發(fā)明通過將客戶操作系統(tǒng)的內(nèi)存與宿主操作系統(tǒng)的內(nèi)存進(jìn)行一一映射,從而在客戶操作系統(tǒng)與宿主操作系統(tǒng)之間建立了共享內(nèi)存,為客戶操作系統(tǒng)之間的數(shù)據(jù)通信提供了支持,并且極大地提高了數(shù)據(jù)通信效率。
      [0024]3、本發(fā)明在客戶操作系統(tǒng)中添設(shè)了域服務(wù)模塊,在宿主操作系統(tǒng)中添設(shè)了域間通信模塊,借助域服務(wù)模塊與域間通信模塊的互動(dòng)實(shí)現(xiàn)多個(gè)客戶操作系統(tǒng)之間的通信功能,大幅提高同一物理機(jī)器上運(yùn)行的客戶操作系統(tǒng)之間的互訪性能。
      [0025]4、本發(fā)明設(shè)置在運(yùn)行真實(shí)PCI設(shè)備的客戶操作系統(tǒng)中的域服務(wù)模塊還相當(dāng)于一個(gè)虛擬設(shè)備驅(qū)動(dòng),能夠與真實(shí)PCI設(shè)備的設(shè)備驅(qū)動(dòng)交互,操縱真實(shí)PCI設(shè)備的設(shè)備驅(qū)動(dòng)來為用戶提供服務(wù),并且借助宿主操作系統(tǒng)的域間通信模塊與其他客戶操作系統(tǒng)的域服務(wù)模塊通信,實(shí)現(xiàn)多個(gè)客戶操作系統(tǒng)對(duì)真實(shí)PCI設(shè)備的共享。
      [0026]5、本發(fā)明通過宿主操作系統(tǒng)的域間通信模塊的數(shù)據(jù)傳輸策略確??蛻舨僮飨到y(tǒng)之間數(shù)據(jù)傳輸?shù)恼_性與完整性,在目標(biāo)域的數(shù)據(jù)傳輸緩沖區(qū)被占用時(shí),丟棄掉本次傳送的數(shù)據(jù),并通知發(fā)送域重新發(fā)送本次數(shù)據(jù)。
      [0027]6、本發(fā)明還通過宿主操作系統(tǒng)的域間通信模塊對(duì)運(yùn)行真實(shí)PCI設(shè)備的客戶操作系統(tǒng)進(jìn)行監(jiān)控及故障處理,以確保其穩(wěn)定運(yùn)行,并提供相應(yīng)的設(shè)備服務(wù),從而進(jìn)一步提升了KVM虛擬化環(huán)境的穩(wěn)定性。
      [0028]本發(fā)明提升KVM虛擬化環(huán)境穩(wěn)定性的方法不會(huì)影響系統(tǒng)現(xiàn)有的用戶使用模式,不會(huì)影響客戶操作系統(tǒng)的正常運(yùn)行,通過共享內(nèi)存機(jī)制能夠大幅度地提高客戶操作系統(tǒng)之間的設(shè)備訪問效率以及對(duì)真實(shí)PCI設(shè)備的訪問效率。
      【專利附圖】

      【附圖說明】
      [0029]附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
      [0030]圖1是本發(fā)明提供的KVM虛擬化服務(wù)系統(tǒng)的組成示意圖;
      [0031]圖2是本發(fā)明提供的KVM虛擬化服務(wù)系統(tǒng)中建立共享內(nèi)存的流程圖;
      [0032]圖3是本發(fā)明提供的KVM虛擬化服務(wù)系統(tǒng)中信息處理方法的流程圖;
      [0033]圖4是本發(fā)明提供的KVM虛擬化服務(wù)系統(tǒng)中驅(qū)動(dòng)域客戶操作系統(tǒng)監(jiān)控及故障處理方法的流程圖。
      【具體實(shí)施方式】
      [0034]以下將結(jié)合附圖及實(shí)施例來詳細(xì)說明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過程能夠充分理解并據(jù)以實(shí)施。需要說明的是,只要不構(gòu)成沖突,本發(fā)明中的各個(gè)實(shí)施例以及各實(shí)施例中的各個(gè)特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
      [0035]另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
      [0036]本發(fā)明提升虛擬化環(huán)境穩(wěn)定性方法的基本策略是以Passthrough I/O機(jī)制為基礎(chǔ),將原來運(yùn)行于宿主操作系統(tǒng)的設(shè)備驅(qū)動(dòng)程序分離出來,放在客戶操作系統(tǒng)中運(yùn)行,以減少KVM虛擬機(jī)所在的宿主操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序的數(shù)量,從而提升KVM虛擬化環(huán)境的穩(wěn)定性。為此,本發(fā)明在宿主操作系統(tǒng)中添設(shè)域間通信模塊,在各客戶操作系統(tǒng)中添設(shè)域服務(wù)模塊,借以通過一種新的數(shù)據(jù)通信機(jī)制,使多個(gè)客戶操作系統(tǒng)能夠借助域間通信模塊和域服務(wù)模塊訪問某一客戶操作系統(tǒng)中運(yùn)行的設(shè)備驅(qū)動(dòng)程序,進(jìn)而實(shí)現(xiàn)設(shè)備資源的共享。例如,以打印機(jī)設(shè)備共享為例,打印機(jī)驅(qū)動(dòng)程序安裝在一個(gè)客戶操作系統(tǒng)A中,如果客戶操作系統(tǒng)B的用戶希望利用該打印機(jī)打印資料,那么需要通過客戶操作系統(tǒng)B的域服務(wù)模塊、宿主操作系統(tǒng)的域間通信模塊、客戶操作系統(tǒng)A的域服務(wù)模塊,將打印資料的相關(guān)數(shù)據(jù)從客戶操作系統(tǒng)B發(fā)送給客戶操作系統(tǒng)A,提供給打印機(jī)驅(qū)動(dòng)程序。[0037]該操作需要涉及共享內(nèi)存的建立、域間通信模塊的信息處理等多方面的內(nèi)容。下面將結(jié)合附圖分別予以說明。優(yōu)選的,為具體說明本發(fā)明的技術(shù)方案及其能夠達(dá)到的技術(shù)效果。
      [0038]如圖1所示,是本發(fā)明提出的KVM虛擬化服務(wù)系統(tǒng)的組成示意圖。該系統(tǒng)設(shè)置于硬件平臺(tái)上(不局限于一個(gè)物理主機(jī)),包括有一個(gè)宿主操作系統(tǒng)和多個(gè)客戶操作系統(tǒng):
      [0039]宿主操作系統(tǒng)為L(zhǎng)inux系統(tǒng),其包含Linux內(nèi)核、KVM虛擬機(jī)、系統(tǒng)服務(wù)和用戶程序等功能模塊。正如【背景技術(shù)】介紹的那樣,KVM虛擬機(jī)可以支持多個(gè)客戶操作系統(tǒng)。在本實(shí)施例中,KVM虛擬機(jī)支持的客戶操作系統(tǒng)包括一個(gè)Windows操作系統(tǒng)和兩個(gè)Linux操作系統(tǒng)A和B。本發(fā)明中運(yùn)行設(shè)備驅(qū)動(dòng)程序的客戶操作系統(tǒng)稱為驅(qū)動(dòng)域,其他通過訪問驅(qū)動(dòng)域進(jìn)而間接使用設(shè)備驅(qū)動(dòng)程序的客戶操作系統(tǒng)稱為客戶域。在本發(fā)明的實(shí)施例中,運(yùn)行網(wǎng)卡驅(qū)動(dòng)程序的Linux操作系統(tǒng)A是驅(qū)動(dòng)域,另一個(gè)Linux操作系統(tǒng)B和Windows操作系統(tǒng)是客戶域。
      [0040]與現(xiàn)有技術(shù)不同的是,為了提升系統(tǒng)的KVM虛擬化環(huán)境的穩(wěn)定性,本發(fā)明在現(xiàn)有的系統(tǒng)結(jié)構(gòu)中為宿主操作系統(tǒng)添設(shè)域間通信模塊,為每一個(gè)客戶操作系統(tǒng)添設(shè)域服務(wù)模塊,根據(jù)客戶操作系統(tǒng)的類型,域服務(wù)模塊又分別稱為驅(qū)動(dòng)域服務(wù)模塊和客戶域服務(wù)模塊。其中:
      [0041]域間通信模塊設(shè)置在宿主操作系統(tǒng)的KVM虛擬機(jī)中,與KVM虛擬機(jī)同步運(yùn)行。該域間通信模塊相當(dāng)于一個(gè)信息中轉(zhuǎn)站,其主要功能是接收運(yùn)行于KVM虛擬機(jī)之上的所有域(也即所有客戶操作系統(tǒng))發(fā)來的信息,并對(duì)這些信息進(jìn)行處理,然后根據(jù)預(yù)先設(shè)定的域間通信機(jī)制,將處理后的信息轉(zhuǎn)發(fā)到相應(yīng)的域中。
      [0042]驅(qū)動(dòng)域服務(wù)模塊設(shè)置并運(yùn)行在驅(qū)動(dòng)域中,它的主要功能是操縱真實(shí)的硬件設(shè)備驅(qū)動(dòng),以及通過域間通信模塊接收其他域發(fā)來的信息,并根據(jù)信息的類型將信息傳給真實(shí)的硬件設(shè)備或者傳給驅(qū)動(dòng)域客戶操作系統(tǒng)處理。而經(jīng)過硬件設(shè)備或者驅(qū)動(dòng)域客戶操作系統(tǒng)處理過的信息仍然通過驅(qū)動(dòng)域服務(wù)模塊以及域間通信模塊返回給發(fā)來信息的域。
      [0043]客戶域服務(wù)模塊設(shè)置并運(yùn)行在客戶域中,它的主要功能是對(duì)客戶域待發(fā)送的信息進(jìn)行封裝,然后將封裝過的信息通過域間通信模塊轉(zhuǎn)給其他的域,同時(shí)還接收并處理由域間通信模塊傳來的其他域發(fā)來的信息。
      [0044]本發(fā)明的核心內(nèi)容就是利用上述域間通信模塊、驅(qū)動(dòng)域服務(wù)模塊和客戶域服務(wù)模塊,實(shí)現(xiàn)各個(gè)域之間(客戶域與客戶域之間、客戶域與驅(qū)動(dòng)域之間)的數(shù)據(jù)通信。為提高數(shù)據(jù)通信效率,本發(fā)明將客戶操作系統(tǒng)的內(nèi)存與宿主操作系統(tǒng)的內(nèi)存進(jìn)行一一映射,以建立共享內(nèi)存。
      [0045]如圖2所示,是圖1所示系統(tǒng)建立共享內(nèi)存的流程圖,包括以下步驟:
      [0046]S201、在客戶操作系統(tǒng)的域服務(wù)模塊(驅(qū)動(dòng)域服務(wù)模塊或者客戶域服務(wù)模塊)初始化時(shí),向其所在的客戶操作系統(tǒng)申請(qǐng)?jiān)跀?shù)據(jù)傳輸過程中作為緩沖區(qū)使用的內(nèi)存:
      [0047]如果客戶操作系統(tǒng)申請(qǐng)內(nèi)存成功,執(zhí)行步驟S202 ;
      [0048]如果客戶操作系統(tǒng)申請(qǐng)內(nèi)存失敗,執(zhí)行步驟S207 ;
      [0049]S202、客戶操作系統(tǒng)將其申請(qǐng)的內(nèi)存大小和內(nèi)存的起始地址等信息通過其域服務(wù)模塊通知宿主操作系統(tǒng);
      [0050]S203、系統(tǒng)狀態(tài)從客戶操作系統(tǒng)切換到宿主操作系統(tǒng),宿主操作系統(tǒng)通過其KVM虛擬機(jī)的域間通信模塊接收客戶操作系統(tǒng)傳來的信息后,按照客戶操作系統(tǒng)所申請(qǐng)的內(nèi)存大小申請(qǐng)相同大小的內(nèi)存:
      [0051]如果宿主操作系統(tǒng)申請(qǐng)內(nèi)存成功,執(zhí)行步驟S204 ;
      [0052]如果宿主操作系統(tǒng)申請(qǐng)內(nèi)存失敗,執(zhí)行步驟S206 ;
      [0053]S204、宿主操作系統(tǒng)將其申請(qǐng)的內(nèi)存地址與客戶操作系統(tǒng)申請(qǐng)的內(nèi)存地址進(jìn)行
      一一映射:
      [0054]如果內(nèi)存映射成功,執(zhí)行步驟S205 ;
      [0055]如果內(nèi)存映射失敗,執(zhí)行步驟S206 ;
      [0056]S205、系統(tǒng)狀態(tài)從宿主操作系統(tǒng)切換回客戶操作系統(tǒng),客戶操作系統(tǒng)繼續(xù)進(jìn)行域服務(wù)模塊的其他初始化操作,執(zhí)行步驟S208 ;
      [0057]S206、系統(tǒng)狀態(tài)從宿主操作系統(tǒng)切換回客戶操作系統(tǒng);
      [0058]S207、表明域服務(wù)模塊初始化失敗,執(zhí)行步驟S208 ;
      [0059]S208、結(jié)束。
      [0060]上述客戶操作系統(tǒng)的域服務(wù)模塊初始化的過程也可以理解為客戶操作系統(tǒng)的域服務(wù)模塊向宿主操作系統(tǒng)的域間通信模塊注冊(cè)的過程,如果客戶操作系統(tǒng)的域服務(wù)模塊注冊(cè)成功,其所在的客戶操作系統(tǒng)與宿主操作系統(tǒng)就會(huì)支配同一段物理內(nèi)存,換句話說,宿主操作系統(tǒng)的域間通信模塊就可以控制該客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)。
      [0061]在建立共享內(nèi)存機(jī)制后,接下來的問題就是建立各個(gè)域之間(客戶域與客戶域之間、客戶域與驅(qū)動(dòng)域之間)的數(shù)據(jù)傳輸機(jī)制。如圖3所示,是圖1所示系統(tǒng)信息處理的流程圖。其中,為方便描述,在本實(shí)施例中,作為數(shù)據(jù)發(fā)送方的客戶操作系統(tǒng)簡(jiǎn)稱為發(fā)送域,作為數(shù)據(jù)接收方的客戶操作系統(tǒng)簡(jiǎn)稱為目的域。無論是發(fā)送域還是目的域,均已經(jīng)通過圖2所示的客戶操作系統(tǒng)的域服務(wù)模塊初始化流程建立了一段可由宿主操作系統(tǒng)的域間通信模塊支配的物理內(nèi)存作為數(shù)據(jù)傳輸緩沖區(qū)。并且由于客戶操作系統(tǒng)會(huì)同時(shí)發(fā)送和接收數(shù)據(jù),因此其數(shù)據(jù)傳輸緩沖區(qū)通常細(xì)分為發(fā)送緩沖區(qū)和接收緩沖區(qū)兩個(gè)部分。在圖3所示的信息處理流程中,僅以Linux操作系統(tǒng)A向Linux操作系統(tǒng)B傳輸數(shù)據(jù)為例說明各個(gè)域之間的數(shù)據(jù)傳輸工作原理,但是本領(lǐng)域的技術(shù)人員應(yīng)該知曉,Linux操作系統(tǒng)A還會(huì)同時(shí)從Linux操作系統(tǒng)B或者其他的客戶操作系統(tǒng)接收數(shù)據(jù),其接收數(shù)據(jù)的過程與發(fā)送數(shù)據(jù)的過程類似,此處不做詳述。
      [0062]如圖3所示,系統(tǒng)信息處理流程包括以下步驟:
      [0063]S301、發(fā)送域的客戶操作系統(tǒng)將待發(fā)送的數(shù)據(jù)放入發(fā)送緩沖區(qū)中,并將數(shù)據(jù)存儲(chǔ)地址和目的域信息發(fā)送給宿主操作系統(tǒng);
      [0064]S302、系統(tǒng)狀態(tài)從發(fā)送域的客戶操作系統(tǒng)切換到宿主操作系統(tǒng),宿主操作系統(tǒng)的域間通信模塊接收發(fā)送域傳來的信息;
      [0065]S303、宿主操作系統(tǒng)的域間通信模塊檢查目的域是否存在:
      [0066]如果目的域存在,執(zhí)行步驟S304 ;
      [0067]如果目的域不存在,執(zhí)行步驟S309 ;
      [0068]S304、宿主操作系統(tǒng)的域間通信模塊檢查目的域的接收緩沖區(qū)是否被占用:
      [0069]如果是,表明有其他域正在使用該目的域的接收緩沖區(qū),執(zhí)行步驟S305 ;
      [0070]如果否,執(zhí)行步驟S306 ;[0071]S305、宿主操作系統(tǒng)的域間通信模塊將目的域被占用的信息發(fā)送給發(fā)送域,系統(tǒng)狀態(tài)從宿主操作系統(tǒng)切換回發(fā)送域的客戶操作系統(tǒng),重新執(zhí)行步驟S301 ;
      [0072]S306、宿主操作系統(tǒng)的域間通信模塊訪問發(fā)送域的發(fā)送緩沖區(qū),將相關(guān)數(shù)據(jù)拷貝到目的域的接收緩沖區(qū)中。
      [0073]S307、宿主操作系統(tǒng)的域間通信模塊將本次數(shù)據(jù)傳遞成功的信息發(fā)送給目的域;
      [0074]S308、系統(tǒng)狀態(tài)從宿主操作系統(tǒng)切換回目的域,目的域的域服務(wù)模塊處理接收緩沖區(qū)中的數(shù)據(jù),執(zhí)行步驟S310;
      [0075]S309、宿主操作系統(tǒng)的域間通信模塊將本次數(shù)據(jù)傳遞失敗的信息發(fā)送給發(fā)送域,系統(tǒng)狀態(tài)從宿主操作系統(tǒng)切換回發(fā)送域,執(zhí)行步驟S310 ;
      [0076]S310、結(jié)束。(此步驟圖中未示出)
      [0077]進(jìn)一步地,在上述數(shù)據(jù)傳輸過程中,本發(fā)明可以采用以下方法確定宿主操作系統(tǒng)的域間通信模塊的數(shù)據(jù)轉(zhuǎn)發(fā)策略:
      [0078]在各個(gè)客戶操作系統(tǒng)的域服務(wù)模塊初始化時(shí),宿主操作系統(tǒng)的域間通信模塊可以根據(jù)各個(gè)客戶操作系統(tǒng)的域服務(wù)模塊初始化的先后順序?yàn)楦饔蚍?wù)模塊所在的域分配一個(gè)數(shù)值,例如某個(gè)域的域服務(wù)模塊是第三個(gè)初始化成功,在域間通信模塊中注冊(cè),那么域間通信模塊為該域分配數(shù)值三。通常,各個(gè)域會(huì)有一標(biāo)示位專門用于記錄該數(shù)值。當(dāng)某個(gè)域要發(fā)送數(shù)據(jù)時(shí),它發(fā)送給宿主操作系統(tǒng)的域間通信模塊的目的域的信息就是域間通信模塊為該目的域分配的數(shù)值,例如它要向第五個(gè)域發(fā)送數(shù)據(jù),那么它發(fā)送給宿主操作系統(tǒng)的域間通信模塊的目的域信息包括該目的域標(biāo)示位的數(shù)值五。
      [0079]此外,如圖4所示,為進(jìn)一步地提升虛擬化環(huán)境穩(wěn)定性,本發(fā)明的系統(tǒng)還對(duì)驅(qū)動(dòng)域客戶操作系統(tǒng)進(jìn)行監(jiān)控,并提供相應(yīng)的故障處理方法,具體包括以下步驟:
      [0080]S401、設(shè)置檢查驅(qū)動(dòng)域計(jì)數(shù)的初始值(在本實(shí)施例中,其為一個(gè)大于I的整數(shù)值);
      [0081]S402、宿主操作系統(tǒng)的域間通信模塊按照預(yù)設(shè)的時(shí)間間隔檢查驅(qū)動(dòng)域的數(shù)據(jù)傳輸緩沖區(qū)的使用狀態(tài):
      [0082]如果數(shù)據(jù)傳輸緩沖區(qū)的使用狀態(tài)與前次檢查相比發(fā)生了改變(從占用變成空置或者從空置變成占用),則返回步驟S401 ;
      [0083]否則,執(zhí)行步驟S403 ;
      [0084]S403、更新檢查驅(qū)動(dòng)域計(jì)數(shù)(在本實(shí)施例中,將檢查計(jì)數(shù)減1),然后判斷檢查驅(qū)動(dòng)域計(jì)數(shù)是否為零:
      [0085]如果是,執(zhí)行步驟S404 ;
      [0086]如果否,執(zhí)行步驟S402 ;
      [0087]S404、宿主操作系統(tǒng)的域間通信模塊通過調(diào)用KVM虛擬機(jī)重啟驅(qū)動(dòng)域的客戶操作系統(tǒng);
      [0088]S405、宿主操作系統(tǒng)的域間通信模塊檢查驅(qū)動(dòng)域的域服務(wù)模塊初始化是否成功:
      [0089]如果初始化成功,返回步驟S401 ;
      [0090]如果初始化失敗,執(zhí)行步驟S406 ;
      [0091]S406、宿主操作系統(tǒng)的域間通信模塊檢查驅(qū)動(dòng)域的客戶操作系統(tǒng)重啟次數(shù)是否已經(jīng)達(dá)到預(yù)設(shè)的閾值:
      [0092]如果是,執(zhí)行步驟S407 ;[0093]如果否,返回步驟S404。
      [0094]S407、結(jié)束。
      [0095]需要說明的是,上述步驟S402中,宿主操作系統(tǒng)的域間通信模塊在每一次檢查驅(qū)動(dòng)域的數(shù)據(jù)傳輸緩沖區(qū)的使用狀態(tài)時(shí),都會(huì)記錄當(dāng)前數(shù)據(jù)傳輸緩沖區(qū)的使用狀態(tài)。
      [0096]上述步驟S406中,檢查驅(qū)動(dòng)域的客戶操作系統(tǒng)重啟次數(shù)是否已經(jīng)達(dá)到預(yù)設(shè)的閾值,該閾值可以由用戶在啟動(dòng)宿主操作系統(tǒng)的域間通信模塊時(shí)設(shè)定。當(dāng)驅(qū)動(dòng)域的客戶操作系統(tǒng)重啟次數(shù)達(dá)到該閾值時(shí),如果驅(qū)動(dòng)域的域服務(wù)模塊仍然有故障,不能成功初始化,則結(jié)束驅(qū)動(dòng)域客戶操作系統(tǒng)監(jiān)控及故障處理流程,將本次問題的修復(fù)交予用戶或者其他流程處理。
      [0097]本領(lǐng)域的技術(shù)人員應(yīng)該明白,本發(fā)明上述各模塊或者各步驟可以利用通用的計(jì)算機(jī)硬件設(shè)備來實(shí)現(xiàn),它們既可以集中在單個(gè)的計(jì)算裝置上,也可以分布在由多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。所以,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
      [0098]雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬【技術(shù)領(lǐng)域】?jī)?nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式上及細(xì)節(jié)上作任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
      【權(quán)利要求】
      1.一種KVM虛擬化服務(wù)系統(tǒng),其特征在于,包括: 宿主操作系統(tǒng),其上運(yùn)行KVM虛擬機(jī),所述KVM虛擬機(jī)設(shè)置有域間通信模塊; 一個(gè)以上的客戶操作系統(tǒng),每一所述客戶操作系統(tǒng)設(shè)置有域服務(wù)模塊,每一所述域服務(wù)模塊配置一與所述域間通信模塊共享的數(shù)據(jù)傳輸緩沖區(qū); 其中,當(dāng)一所述客戶操作系統(tǒng)設(shè)置有設(shè)備驅(qū)動(dòng)程序時(shí),其內(nèi)所述域服務(wù)模塊從對(duì)應(yīng)的所述數(shù)據(jù)傳輸緩沖區(qū)獲取相關(guān)數(shù)據(jù),傳給所述設(shè)備驅(qū)動(dòng)程序,以及從所述設(shè)備驅(qū)動(dòng)程序接收相關(guān)數(shù)據(jù),放入對(duì)應(yīng)的所述數(shù)據(jù)傳輸緩沖區(qū); 所述宿主操作系統(tǒng)的域間通信模塊在不同客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)之間來回拷貝數(shù)據(jù),以此實(shí)現(xiàn)不同客戶操作系統(tǒng)之間的數(shù)據(jù)通信。
      2.如權(quán)利要求1所述的KVM虛擬化服務(wù)系統(tǒng),其特征在于: 當(dāng)所述客戶操作系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),其內(nèi)所述域服務(wù)模塊將數(shù)據(jù)存儲(chǔ)位置和待接收數(shù)據(jù)的客戶操作系統(tǒng)信息發(fā)給所述宿主操作系統(tǒng)的域間通信模塊。
      3.如權(quán)利要求1或2所述的KVM虛擬化服務(wù)系統(tǒng),其特征在于: 當(dāng)待接收數(shù)據(jù)的客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)被占用時(shí),所述宿主操作系統(tǒng)的域間通信模塊放棄此次拷貝操作。
      4.如權(quán)利要求1或2所述的KVM虛擬化服務(wù)系統(tǒng),其特征在于: 所述客戶操作系統(tǒng)的域服務(wù)模塊于初始化時(shí)申請(qǐng)配置一所述數(shù)據(jù)傳輸緩沖區(qū),并通過內(nèi)存映射法與所述宿主操作系統(tǒng)的域間通信模塊共享所述數(shù)據(jù)傳輸緩沖區(qū)。
      5.如權(quán)利要求1或2所述的KVM虛擬化服務(wù)系統(tǒng),其特征在于: 所述宿主操作系統(tǒng)的域間通信模塊還用于監(jiān)控設(shè)置有設(shè)備驅(qū)動(dòng)程序的所述客戶操作系統(tǒng)的運(yùn)行狀況,當(dāng)運(yùn)行出現(xiàn)故障時(shí)重啟此所述客戶操作系統(tǒng)。
      6.一種KVM虛擬化服務(wù)系統(tǒng)的數(shù)據(jù)通信方法,所述KVM虛擬化服務(wù)系統(tǒng)包括: 宿主操作系統(tǒng),其上運(yùn)行KVM虛擬機(jī),所述KVM虛擬機(jī)設(shè)置有域間通信模塊; 一個(gè)以上的客戶操作系統(tǒng),每一所述客戶操作系統(tǒng)設(shè)置有域服務(wù)模塊; 其特征在于,所述數(shù)據(jù)通信方法包括: 所述客戶操作系統(tǒng)的域服務(wù)模塊配置一與所述宿主操作系統(tǒng)的域間通信模塊共享的數(shù)據(jù)傳輸緩沖區(qū); 當(dāng)一所述客戶操作系統(tǒng)設(shè)置有設(shè)備驅(qū)動(dòng)程序時(shí),其內(nèi)域服務(wù)模塊從對(duì)應(yīng)的數(shù)據(jù)傳輸緩沖區(qū)獲取相關(guān)數(shù)據(jù),傳給設(shè)備驅(qū)動(dòng)程序,以及從設(shè)備驅(qū)動(dòng)程序接收相關(guān)數(shù)據(jù),放入對(duì)應(yīng)的數(shù)據(jù)傳輸緩沖區(qū); 所述宿主操作系統(tǒng)的域間通信模塊在不同客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)之間來回拷貝數(shù)據(jù),以此實(shí)現(xiàn)不同客戶操作系統(tǒng)之間的數(shù)據(jù)通信。
      7.如權(quán)利要求6所述的數(shù)據(jù)通信方法,其特征在于: 當(dāng)客戶操作系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),其內(nèi)域服務(wù)模塊將數(shù)據(jù)存儲(chǔ)位置和待接收數(shù)據(jù)的客戶操作系統(tǒng)信息發(fā)給所述宿主操作系統(tǒng)的域間通信模塊。
      8.如權(quán)利要求6或7所述的數(shù)據(jù)通信方法,其特征在于: 當(dāng)待接收數(shù)據(jù)的客戶操作系統(tǒng)的數(shù)據(jù)傳輸緩沖區(qū)被占用時(shí),所述宿主操作系統(tǒng)的域間通信模塊放棄此次拷貝操作。
      9.如權(quán)利要求6或7所述的數(shù)據(jù)通信方法,其特征在于:所述客戶操作系統(tǒng)的域服務(wù)模塊于初始化時(shí)申請(qǐng)配置數(shù)據(jù)傳輸緩沖區(qū),并通過內(nèi)存映射法與所述宿主操作系統(tǒng)的域間通信模塊共享數(shù)據(jù)傳輸緩沖區(qū)。
      10.如權(quán)利要求6或7所述的數(shù)據(jù)通信方法,其特征在于: 所述宿主操作系統(tǒng)的域間通信模塊還監(jiān)控設(shè)置有設(shè)備驅(qū)動(dòng)程序的客戶操作系統(tǒng)的運(yùn)行狀況,當(dāng)運(yùn)行出現(xiàn)故 障時(shí)重啟此客戶操作系統(tǒng)。
      【文檔編號(hào)】G06F9/54GK103605559SQ201310596241
      【公開日】2014年2月26日 申請(qǐng)日期:2013年11月21日 優(yōu)先權(quán)日:2013年11月21日
      【發(fā)明者】姚遠(yuǎn) 申請(qǐng)人:中標(biāo)軟件有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1