亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種共享文件的訪問方法、系統(tǒng)及相關(guān)設(shè)備的制造方法

文檔序號:9687664閱讀:358來源:國知局
一種共享文件的訪問方法、系統(tǒng)及相關(guān)設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及一種共享文件的訪問方法、系統(tǒng)及相關(guān)設(shè)備。
【背景技術(shù)】
[0002]硬件輔助虛擬化技術(shù)是指在一臺物理宿主機(jī)上開一個進(jìn)程模擬計算機(jī)硬件,從而虛擬化出多個虛擬機(jī)(Virtual Machine,簡稱VM)。各個虛擬機(jī)之間相互隔離,擁有各自的操作系統(tǒng)(Operating System,簡稱OS),各自獨立運行業(yè)務(wù)。比較常見的是通過Qemu在Linux平臺上模擬虛擬機(jī),如圖1所示,一種Linux KVM-Qemu模型,其中,Qemu是一款能夠在Linux平臺上模擬出虛擬機(jī)的軟件,KVM(Kernel_based Virtual Machine)是Linux中的模塊,該KVM模塊創(chuàng)建出多個線程vcpu,作為模擬的CPU提供給Qemu使用。
[0003]Linux與虛擬機(jī)之間存在文件共享需求。其中,虛擬機(jī)需要各種各樣的配置文件和數(shù)據(jù)來運行業(yè)務(wù),這些配置文件和數(shù)據(jù)保存在Linux中,因此,Linux需要將這些配置文件和數(shù)據(jù)共享給虛擬機(jī)。
[0004]目前在Linux與虛擬機(jī)中的文件共享技術(shù)通過網(wǎng)絡(luò)文件系統(tǒng)(NetworkFileSystem,簡稱NFS)實現(xiàn)。NFS安裝在虛擬文件系統(tǒng)(Virtual File System,簡稱VFS)下。如圖2所示,Linux與虛擬機(jī)之間通過Linux內(nèi)核的網(wǎng)橋互聯(lián),Linux將文件共享給虛擬機(jī)實際就是Linux與虛擬機(jī)之間通過網(wǎng)絡(luò)完成文件操作。在文件共享時,對文件的操作信息在端口(socket)中生成網(wǎng)絡(luò)報文,依次經(jīng)過虛擬機(jī)的TCP/IP層、ΕΤΗ接口,到達(dá)虛擬網(wǎng)卡,到達(dá)Linux的網(wǎng)橋,再依次經(jīng)過達(dá)Linux的TCP/IP層、端口(socket)到達(dá)NFS??梢钥闯?,圖2所示的現(xiàn)有技術(shù)中,文件共享時涉及到Linux內(nèi)核的網(wǎng)橋,需要將Linux和虛擬機(jī)的虛擬網(wǎng)卡進(jìn)行配置,Linux與虛擬機(jī)之間需要通過NFS服務(wù),需要經(jīng)過的組件較多,也就是存在多次操作信息拷貝,使得共享效率較低。

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

[0005]本發(fā)明實施例提供了一種共享文件的訪問方法、系統(tǒng)及相關(guān)設(shè)備,用于簡化文件訪問流程,提高文件訪問效率。
[0006]本發(fā)明第一方面提供了一種共享文件的訪問方法,應(yīng)用于虛擬機(jī),上述虛擬機(jī)運行在宿主機(jī)上,上述虛擬機(jī)中安裝有虛擬主機(jī)文件系統(tǒng)(Virtual Host File System,簡稱VHFS),上述宿主機(jī)的文件被共享到上述VHFS中,上述共享文件的訪問方法可包括:
[0007]上述虛擬機(jī)檢測對上述VHFS中共享文件的操作,獲得操作信息;
[0008]上述虛擬機(jī)根據(jù)上述操作信息生成VHFS請求,并將上述VHFS請求寫入上述虛擬機(jī)的內(nèi)存,上述VHFS請求用于請求上述宿主機(jī)在上述宿主機(jī)上完成對上述共享文件的上述操作;
[0009]上述虛擬機(jī)將上述VHFS請求所在內(nèi)存的地址寫入預(yù)置通用寄存器,并調(diào)用系統(tǒng)切換指令以使上述宿主機(jī)處理上述VHFS請求。
[0010]可以看出,本發(fā)明第一方面中,虛擬機(jī)通過檢測對VHFS中共享文件的操作,以獲得操作信息,然后根據(jù)操作信息生成VHFS請求,將VHFS請求寫入虛擬機(jī)的內(nèi)存中,之后再將VHFS請求所在內(nèi)存的地址寫入預(yù)置通用寄存器,調(diào)用系統(tǒng)切換指令后退出,然后由宿主機(jī)來執(zhí)行后續(xù)對VHFS請求的操作。其中,由于預(yù)置的寄存器可以由虛擬機(jī)操作,也可以由宿主機(jī)操作,而虛擬機(jī)的內(nèi)存也是從宿主機(jī)的內(nèi)存中劃分給虛擬機(jī)的,因此,宿主機(jī)可以從預(yù)置通用寄存器中拿到VHFS請求所在內(nèi)存的地址,然后去內(nèi)存中讀取VHFS請求,然后處理該VHFS請求。本發(fā)明實施例中整個對文件的操作步驟比較簡單,不需要拷貝,能夠有效提高文件共享中處理文件的效率。
[0011]在本發(fā)明一些實施例中,上述虛擬機(jī)檢測對上述VHFS中共享文件的操作,獲得操作信息包括:上述虛擬機(jī)檢測對上述VHFS中共享文件的操作,獲得操作信息,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打開操作、文件讀取操作、文件寫入操作、文件創(chuàng)建操作和瀏覽目錄操作中的任意一種。
[0012]在本發(fā)明一些實施例中,上述虛擬機(jī)根據(jù)上述操作信息生成VHFS請求包括:當(dāng)上述操作命令所指示的操作為文件讀取操作或文件寫入操作時,上述虛擬機(jī)獲取上述共享文件所在緩沖區(qū)的虛擬機(jī)邏輯地址,將上述虛擬機(jī)邏輯地址轉(zhuǎn)換成上述虛擬機(jī)物理地址;上述虛擬機(jī)根據(jù)上述文件信息、上述操作命令和上述虛擬機(jī)物理地址,生成上述VHFS請求。
[0013]在本發(fā)明一些實施例中,上述虛擬機(jī)將上述VHFS請求所在內(nèi)存的地址寫入預(yù)置通用寄存器,并調(diào)用系統(tǒng)切換指令以使上述宿主機(jī)處理上述VHFS請求包括:上述虛擬機(jī)將上述VHFS請求所在內(nèi)存的地址寫入上述預(yù)置通用寄存器;上述虛擬機(jī)調(diào)用vmcall指令退出非根模式,以使上述宿主機(jī)獲得控制權(quán)處理上述VHFS請求。
[0014]在本發(fā)明一些實施例中,上述虛擬機(jī)將上述VHFS請求所在內(nèi)存的地址寫入預(yù)置通用寄存器,并調(diào)用系統(tǒng)切換指令以使上述宿主機(jī)處理上述VHFS請求包括:上述虛擬機(jī)將上述VHFS請求所在內(nèi)存的地址寫入上述宿主機(jī)虛擬的外設(shè)部件互連標(biāo)準(zhǔn)PCI設(shè)備,并觸發(fā)上述虛擬機(jī)退出非根模式,以使上述宿主機(jī)獲得控制權(quán)處理上述VHFS請求。
[0015]可選地,上述文件信息包括文件描述符或文件路徑或文件的節(jié)點索引。
[0016]本發(fā)明第二方面提供了一種共享文件的訪問方法,上述宿主機(jī)運行著若干虛擬機(jī),每一個虛擬機(jī)中安裝有虛擬主機(jī)文件系統(tǒng)VHFS,上述宿主機(jī)的文件被共享到每一個虛擬機(jī)的VHFS中,上述共享文件的訪問方法可包括:
[0017]上述宿主機(jī)檢測到上述虛擬機(jī)調(diào)用系統(tǒng)切換指令,從預(yù)置通用寄存器中讀取VHFS請求所在內(nèi)存的地址,上述VHFS請求為上述虛擬機(jī)根據(jù)用戶對上述虛擬機(jī)中的VHFS的共享文件的操作生成,上述VHFS請求用于請求上述宿主機(jī)在上述宿主機(jī)上完成對上述共享文件的上述操作;
[0018]上述宿主機(jī)根據(jù)讀取的上述VHFS請求所在內(nèi)存的地址,讀取上述VHFS請求,根據(jù)上述VHFS請求執(zhí)行對上述共享文件的上述操作。
[0019]可選地,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打開操作、文件讀取操作、文件寫入操作、文件創(chuàng)建操作和瀏覽目錄操作中的任意一種。
[0020]在本發(fā)明一些實施例中,上述根據(jù)上述VHFS請求執(zhí)行對上述共享文件的上述操作包括:當(dāng)上述操作命令所指示的操作包括上述文件打開操作或文件讀取操作時,上述宿主機(jī)將上述虛擬機(jī)物理地址轉(zhuǎn)換成主機(jī)邏輯地址;上述宿主機(jī)根據(jù)上述主機(jī)邏輯地址以及上述文件信息,查找到上述共享文件;上述宿主機(jī)對查找到的上述共享文件執(zhí)行上述操作命令所指示的操作。
[0021]在本發(fā)明一些實施例中,上述根據(jù)上述VHFS請求完成對上述共享文件的上述操作之后包括:上述宿主機(jī)將執(zhí)行上述操作的操作結(jié)果,返回給上述虛擬機(jī)。
[0022]可選地,上述文件信息包括文件描述符或文件路徑或文件的節(jié)點索引。
[0023]本發(fā)明第三方面提供了一種虛擬機(jī),上述虛擬機(jī)運行在宿主機(jī)上,上述虛擬機(jī)中安裝有虛擬主機(jī)文件系統(tǒng)VHFS,上述宿主機(jī)的文件被共享到上述VHFS中,上述虛擬機(jī)包括:
[0024]VHFS處理模塊,用于檢測對上述VHFS中共享文件的操作,獲得操作信息;根據(jù)上述操作信息生成VHFS請求,并將上述VHFS請求寫入上述虛擬機(jī)的內(nèi)存,上述VHFS請求用于請求上述宿主機(jī)在上述宿主機(jī)上完成對上述共享文件的上述操作;將上述VHFS請求所在內(nèi)存的地址寫入預(yù)置通用寄存器,并調(diào)用系統(tǒng)切換指令以使上述宿主機(jī)處理上述VHFS請求。
[0025]在本發(fā)明一些實施例中,上述VHFS處理模塊具體用于,檢測對上述VHFS中共享文件的操作,獲得操作信息,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打開操作、文件讀取操作、文件寫入操作、文件創(chuàng)建操作和瀏覽目錄操作中的任意一種。
[0026]在本發(fā)明一些實施例中,上述VHFS處理模塊具體用于,當(dāng)上述操作命令所指示的操作為文件讀取操作或文件寫入操作時,獲取上述共享文件所在緩沖區(qū)的虛擬機(jī)邏輯地址,將上述虛擬機(jī)邏輯地址轉(zhuǎn)換成上述虛擬機(jī)物理地址;根據(jù)上述文件信息、上述操作命令和上述虛擬機(jī)物理地址,生成上述VHFS請求,上述VHFS請求包括上述文件信息、上述操作命令和上述共享文件所在緩沖區(qū)的虛擬機(jī)物理地址。
[0027]在本發(fā)明一些實施例中,上述VHFS處理模塊具體用于,將上述VHFS請求所在內(nèi)存的地址寫入上述預(yù)置通用寄存器;調(diào)用vmcall指令退出非根模式,以使上述宿主機(jī)處理上述VHFS請求。
[0028]在本發(fā)明一些實施例中,上述VHFS處理模塊具體用于,將上述VHFS請求所在內(nèi)存的地址寫入上述宿主機(jī)虛擬的外設(shè)部件互連標(biāo)準(zhǔn)PCI設(shè)備,并觸發(fā)上述虛擬機(jī)退出非根模式,以使上述宿主機(jī)獲得控制權(quán)處理上述VHFS請求。
[0029]可選地,上述文件信息包括文件描述符或文件路徑或文件的節(jié)點索引。
[0030]本發(fā)明第四方面提供了一種宿主機(jī),上述宿主機(jī)運行著若干虛擬機(jī),每一個虛擬機(jī)中安裝有虛擬主機(jī)文件系統(tǒng)VHFS,上述宿主機(jī)的文件被共享到每一個虛擬機(jī)的VHFS中,上述宿主機(jī)包括:
[0031]VHFSD處理模塊,用于檢測到上述虛擬機(jī)調(diào)用系統(tǒng)切換指令,從預(yù)置通用寄存器中讀取VHFS請求所在內(nèi)存的地址,上述VHFS請求為上述虛擬機(jī)根據(jù)用戶對上述虛擬機(jī)中的VHFS的共享文件的操作生成,上述VHFS請求用于請求上述宿主機(jī)在上述宿
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1