本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種存儲設(shè)備的數(shù)據(jù)處理方法和裝置。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)的發(fā)展,越來越多的企業(yè)辦公和個人應(yīng)用都遷移到虛擬化環(huán)境中,直接在虛擬化環(huán)境中的虛擬機(jī)上進(jìn)行數(shù)據(jù)處理。在虛擬化技術(shù)環(huán)境中,需要將終端上接入的存儲設(shè)備映射到虛擬機(jī)中,虛擬機(jī)方可對存儲設(shè)備中存儲的進(jìn)行數(shù)據(jù)處理。但是,在虛擬機(jī)對存儲設(shè)備數(shù)據(jù)處理過程中需要進(jìn)行多次網(wǎng)絡(luò)交互,才能獲取到存儲設(shè)備數(shù)據(jù)中的數(shù)據(jù),進(jìn)而才能對獲取到的數(shù)據(jù)進(jìn)行處理,過多的網(wǎng)絡(luò)交互使得對存儲設(shè)備的數(shù)據(jù)處理過程耗費(fèi)較長的時間。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對存儲設(shè)備的數(shù)據(jù)處理耗費(fèi)時間長的問題,提供一種存儲設(shè)備的數(shù)據(jù)處理方法。
一種存儲設(shè)備的數(shù)據(jù)處理方法,包括:
接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令;
根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù);
將指定扇區(qū)數(shù)據(jù)和關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,并將指定扇區(qū)數(shù)據(jù)返回虛擬機(jī);
接收虛擬機(jī)讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令;
根據(jù)第二讀取指令將緩存中匹配的關(guān)聯(lián)數(shù)據(jù)返回虛擬機(jī)。
在其中一個實(shí)施例中,接收虛擬機(jī)讀取存儲數(shù)據(jù)的第一讀取指令之前,還包括:
接收終端從存儲設(shè)備中的分區(qū)表和引導(dǎo)扇區(qū)讀取到的數(shù)據(jù);
將讀取到的數(shù)據(jù)存儲在緩存中;
接收虛擬機(jī)讀取存儲設(shè)備的分區(qū)表和引導(dǎo)扇區(qū)的第三讀取指令;
根據(jù)第三讀取指令將緩存中的讀取到的數(shù)據(jù)發(fā)送給虛擬機(jī)。
在其中一個實(shí)施例中,接收終端從存儲設(shè)備中的分區(qū)表和引導(dǎo)扇區(qū)讀取到的數(shù)據(jù)之前,還包括:
通過終端識別存儲設(shè)備的傳輸協(xié)議和文件系統(tǒng)類型,并對傳輸協(xié)議進(jìn)行驗(yàn)證,在驗(yàn)證通過后,讀取文件系統(tǒng)類型對應(yīng)的分區(qū)表和引導(dǎo)扇區(qū)。
在其中一個實(shí)施例中,接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令之前,還包括:
接收虛擬機(jī)發(fā)送的對存儲設(shè)備執(zhí)行寫入操作的寫入指令;
將虛擬機(jī)的寫入數(shù)據(jù)存儲到緩存中,并向虛擬機(jī)返回數(shù)據(jù)寫入成功的結(jié)果;
根據(jù)寫入指令通過終端將緩存中的寫入數(shù)據(jù)寫入存儲設(shè)備的指定扇區(qū)。
在其中一個實(shí)施例中,該方法還包括:
監(jiān)測網(wǎng)絡(luò)傳輸狀態(tài);
根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)調(diào)整緩存的存儲容量。
上述存儲設(shè)備的數(shù)據(jù)處理方法,接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令,根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù),并將獲取到的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,待接收到虛擬機(jī)的讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令后,直接在緩存中查找匹配的關(guān)聯(lián)數(shù)據(jù),將查找到關(guān)聯(lián)數(shù)據(jù)返回給虛擬機(jī)。這樣,避免虛擬機(jī)需要通過多次網(wǎng)絡(luò)交互才能從存儲設(shè)備中獲取數(shù)據(jù),直接將存儲在緩存中匹配的數(shù)據(jù)返回給虛擬機(jī),并節(jié)省了進(jìn)行多次網(wǎng)絡(luò)交互所耗費(fèi)的時間,加快了數(shù)據(jù)處理的速度。
一種存儲設(shè)備的數(shù)據(jù)處理裝置,該裝置包括:
第一指令接收模塊,用于接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令;
數(shù)據(jù)獲取模塊,用于根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù);
第一數(shù)據(jù)返回模塊,用于將指定扇區(qū)數(shù)據(jù)和關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,并將指定扇區(qū)數(shù)據(jù)返回虛擬機(jī);
第二指令接收模塊,用于接收虛擬機(jī)讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令;
第二數(shù)據(jù)返回模塊,用于根據(jù)第二讀取指令將緩存中匹配的關(guān)聯(lián)數(shù)據(jù)返回虛擬機(jī)。
在其中一個實(shí)施例中,該裝置還包括:
數(shù)據(jù)接收模塊,用于接收終端從存儲設(shè)備中的分區(qū)表和引導(dǎo)扇區(qū)讀取到的數(shù)據(jù);
數(shù)據(jù)緩存模塊,用于將讀取到的數(shù)據(jù)存儲在緩存中;
第三指令接收模塊,用于接收虛擬機(jī)讀取存儲設(shè)備的分區(qū)表和引導(dǎo)扇區(qū)的第三讀取指令;
數(shù)據(jù)發(fā)送模塊,用于根據(jù)第三讀取指令將緩存中讀取到的數(shù)據(jù)發(fā)送給虛擬機(jī)。
在其中一個實(shí)施例中,該裝置還包括:
存儲設(shè)備識別模塊,通過終端識別存儲設(shè)備的傳輸協(xié)議和文件系統(tǒng)類型,并對傳輸協(xié)議進(jìn)行驗(yàn)證,在驗(yàn)證通過后,讀取文件系統(tǒng)類型對應(yīng)的分區(qū)表和引導(dǎo)扇區(qū)。
在其中一個實(shí)施例中,該裝置還包括:
寫入指令接收模塊,用于接收虛擬機(jī)發(fā)送的對存儲設(shè)備執(zhí)行寫入操作的寫入指令;
數(shù)據(jù)存儲模塊,用于將虛擬機(jī)的寫入數(shù)據(jù)存儲到緩存中,并向虛擬機(jī)返回數(shù)據(jù)寫入成功的結(jié)果;
數(shù)據(jù)寫入模塊,用于根據(jù)寫入指令通過終端將緩存中的寫入數(shù)據(jù)寫入存儲設(shè)備的指定扇區(qū)。
在其中一個實(shí)施例中,該裝置還包括:
網(wǎng)絡(luò)監(jiān)測模塊,用于監(jiān)測網(wǎng)絡(luò)傳輸狀態(tài);
緩存調(diào)整模塊,用于根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)調(diào)整緩存的存儲容量。
上述存儲設(shè)備的數(shù)據(jù)處理裝置,接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù) 的第一讀取指令,根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù),并將獲取到的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,待接收到虛擬機(jī)的讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令后,直接在緩存中查找匹配的關(guān)聯(lián)數(shù)據(jù),將查找到關(guān)聯(lián)數(shù)據(jù)返回給虛擬機(jī)。這樣,避免虛擬機(jī)需要通過多次網(wǎng)絡(luò)交互才能從存儲設(shè)備中獲取數(shù)據(jù),直接將存儲在緩存中匹配的數(shù)據(jù)返回給虛擬機(jī),并節(jié)省了進(jìn)行多次網(wǎng)絡(luò)交互所耗費(fèi)的時間,加快了數(shù)據(jù)處理的速度。
附圖說明
圖1為一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理系統(tǒng)的應(yīng)用環(huán)境圖;
圖2為一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理系統(tǒng)的內(nèi)部結(jié)構(gòu)示意圖;
圖3為一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理方法的流程示意圖;
圖4為另一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理方法的流程示意圖;
圖5為一個實(shí)施例中讀取分區(qū)表和引導(dǎo)扇區(qū)的步驟的流程示意圖;
圖6為另一個實(shí)施例中讀取分區(qū)表和引導(dǎo)扇區(qū)的步驟的流程示意圖;
圖7為一個實(shí)施例中將數(shù)據(jù)寫入存儲設(shè)備的步驟的流程示意圖;
圖8為另一個實(shí)施例中將數(shù)據(jù)寫入存儲設(shè)備的步驟的流程示意圖;
圖9為一個實(shí)施例中緩存的存儲容量調(diào)整的步驟的流程示意圖;
圖10為一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖11為另一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖12為再一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖13為又一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖14為一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是一個實(shí)施例中存儲設(shè)備的數(shù)據(jù)處理系統(tǒng)的應(yīng)用環(huán)境圖,在存儲設(shè)備的數(shù)據(jù)處理系統(tǒng)中包括終端110,存儲設(shè)備120和服務(wù)器130。其中,存儲設(shè)備120連接在終端110的接口上,服務(wù)器130上運(yùn)行有虛擬機(jī),終端110與服務(wù)器130通過網(wǎng)絡(luò)連接,終端110可以訪問服務(wù)器130上的虛擬機(jī),服務(wù)器130具體可以是多個服務(wù)器。存儲設(shè)備120為具有數(shù)據(jù)存儲功能的設(shè)備,具體可以是u盤、存儲卡、磁盤、硬盤、具有存儲功能的手機(jī)和平板電腦等。
請參照圖3,在存儲設(shè)備的數(shù)據(jù)處理系統(tǒng)中,終端110和運(yùn)行在服務(wù)器130上的虛擬機(jī)上運(yùn)行有加速代理程序和通訊代理程序,加速代理程序用于提高實(shí)現(xiàn)存儲設(shè)備映射到虛擬機(jī)的速度和存儲設(shè)備與虛擬機(jī)的數(shù)據(jù)傳輸速度,通訊代理程序?yàn)槭固摂M機(jī)和終端110通過網(wǎng)絡(luò)進(jìn)行通訊。協(xié)議檢查器用于檢測存儲設(shè)備120的傳輸協(xié)議類型是否被支持,在協(xié)議檢查器檢測到存儲設(shè)備120的傳輸協(xié)議類型被支持后,加速代理程序開始運(yùn)行。
如圖3所示,在一個實(shí)施例中,提供一種存儲設(shè)備的數(shù)據(jù)處理方法,該方法應(yīng)用與圖1中存儲設(shè)備的數(shù)據(jù)處理系統(tǒng)的服務(wù)器130來舉例說明。該方法具體包括以下步驟:
步驟302,接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令。
具體地,當(dāng)終端110上接入存儲設(shè)備之后,終端110登錄到服務(wù)器130上的虛擬機(jī),將存儲設(shè)備120映射到虛擬機(jī)之后,虛擬機(jī)得到存儲設(shè)備120的扇區(qū)信息和扇區(qū)所存儲數(shù)據(jù)的信息。在存儲設(shè)備120映射到虛擬機(jī)之后,虛擬機(jī)讀取存儲設(shè)備120中指定扇區(qū)數(shù)據(jù)時,虛擬機(jī)將第一讀取指令發(fā)送到服務(wù)器130,第一讀取指令包括所要讀取數(shù)據(jù)的扇區(qū)位置或者數(shù)據(jù)標(biāo)識。扇區(qū)位置可以是扇區(qū)編號,數(shù)據(jù)標(biāo)識可以是數(shù)據(jù)所屬文件的名稱或讀取數(shù)據(jù)的關(guān)鍵字。
步驟304,根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)。
具體地,服務(wù)器130接收到虛擬機(jī)發(fā)送的第一讀取指令后,對第一讀取指令進(jìn)行解析,對第一讀取指令所請求的數(shù)據(jù)量進(jìn)行修改以增加所請求的數(shù)據(jù)量,將修改后的第一讀取指令發(fā)送給終端110。終端110對修改后的第一讀取指令進(jìn)行解析,根據(jù)解析得到的數(shù)據(jù)存儲位置或者數(shù)據(jù)標(biāo)識在存儲設(shè)備120中讀取相 應(yīng)的數(shù)據(jù),讀取到的數(shù)據(jù)包括指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)。指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)具體可以是與指定扇區(qū)數(shù)據(jù)屬于同一文件的數(shù)據(jù),這些關(guān)聯(lián)數(shù)據(jù)可能存儲在不同的扇區(qū);關(guān)聯(lián)數(shù)據(jù)也可以是指定扇區(qū)的相鄰扇區(qū)所存儲的數(shù)據(jù)。
在一個實(shí)施例中,服務(wù)器130接收到虛擬機(jī)發(fā)送的第一讀取指令,對第一讀取指令進(jìn)行解析,根據(jù)解析結(jié)果在分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù)中查找所要讀取數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)的存儲位置或數(shù)據(jù)標(biāo)識,將關(guān)聯(lián)數(shù)據(jù)的存儲位置或數(shù)據(jù)標(biāo)識放入第一讀取指令發(fā)送給終端110。
步驟306,將指定扇區(qū)數(shù)據(jù)和關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,并將指定扇區(qū)數(shù)據(jù)返回虛擬機(jī)。
具體地,終端110將讀取到的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)的關(guān)聯(lián)數(shù)據(jù)發(fā)送給服務(wù)器130,服務(wù)器130將接收到的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)存儲到緩存中,并且同時將指定扇區(qū)數(shù)據(jù)發(fā)送給虛擬機(jī)。當(dāng)服務(wù)器130為多個服務(wù)器時,緩存具體可以是通過調(diào)用各個服務(wù)器的緩存形成的緩存池。
步驟308,接收虛擬機(jī)讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令。
具體地,虛擬機(jī)需要對關(guān)聯(lián)數(shù)據(jù)進(jìn)行處理時,會向服務(wù)器發(fā)送第二讀取指令,第二讀取指令用于讀取關(guān)聯(lián)數(shù)據(jù),其中包括所要讀取關(guān)聯(lián)數(shù)據(jù)在存儲設(shè)備120中的扇區(qū)位置或者關(guān)聯(lián)數(shù)據(jù)標(biāo)識。
步驟310,根據(jù)第二讀取指令將緩存中匹配的關(guān)聯(lián)數(shù)據(jù)返回虛擬機(jī)。
具體地,服務(wù)器130接收到第二讀取指令,對第二讀取指令進(jìn)行解析,得到所要讀取關(guān)聯(lián)數(shù)據(jù)的扇區(qū)位置或關(guān)聯(lián)數(shù)據(jù)標(biāo)識。服務(wù)器130根據(jù)關(guān)聯(lián)數(shù)據(jù)的扇區(qū)位置或關(guān)聯(lián)數(shù)據(jù)標(biāo)識在緩存中查找匹配的關(guān)聯(lián)數(shù)據(jù),扇區(qū)位置或數(shù)據(jù)標(biāo)識相同的數(shù)據(jù)為匹配的關(guān)聯(lián)數(shù)據(jù)。服務(wù)器130在查找到匹配的關(guān)聯(lián)數(shù)據(jù)后,直接提取緩存中匹配的關(guān)聯(lián)數(shù)據(jù),并將匹配的關(guān)聯(lián)數(shù)據(jù)返回給虛擬機(jī)。
在一個實(shí)施例中,請參照圖4,在步驟402中,服務(wù)器130接收虛擬機(jī)的第一讀取指令;在步驟404中,服務(wù)器130根據(jù)第一讀取指令通過終端110從存儲設(shè)備120請求數(shù)據(jù);在步驟406中,服務(wù)器130接收終端110從存儲設(shè)備120中獲取到的虛擬機(jī)讀取的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù),并存儲到 緩存中;在步驟408中,服務(wù)器130將指定扇區(qū)數(shù)據(jù)返回給虛擬機(jī);在步驟410中,服務(wù)器130根據(jù)虛擬機(jī)發(fā)送的第二讀取指令將緩存中的關(guān)聯(lián)數(shù)據(jù)返回給虛擬機(jī)。
本實(shí)施例中,接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令,根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù),并將獲取到的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,待接收到虛擬機(jī)的讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令后,直接在緩存中查找匹配的關(guān)聯(lián)數(shù)據(jù),將查找到關(guān)聯(lián)數(shù)據(jù)返回給虛擬機(jī)。這樣,避免虛擬機(jī)需要通過多次網(wǎng)絡(luò)交互才能從存儲設(shè)備中獲取數(shù)據(jù),直接將存儲在緩存中匹配的數(shù)據(jù)返回給虛擬機(jī),并節(jié)省了進(jìn)行多次網(wǎng)絡(luò)交互所耗費(fèi)的時間,加快了數(shù)據(jù)處理的速度。
如圖5所示,在一個實(shí)施例中,步驟302之前具體還包括讀取分區(qū)表和引導(dǎo)扇區(qū)的步驟:
步驟502,通過終端識別存儲設(shè)備的傳輸協(xié)議和文件系統(tǒng)類型,并對傳輸協(xié)議進(jìn)行驗(yàn)證,在驗(yàn)證通過后,讀取文件系統(tǒng)類型對應(yīng)的分區(qū)表和引導(dǎo)扇區(qū)。
具體地,在存儲設(shè)備120接入到終端110的接口時,終端110對存儲設(shè)備進(jìn)行識別,提取存儲設(shè)備120所使用的傳輸協(xié)議,對提取到傳輸協(xié)議進(jìn)行驗(yàn)證。具體可以在終端110中建立的協(xié)議支持列表,在協(xié)議支持列表中存儲有終端110所支持的傳輸協(xié)議,在協(xié)議支持列表中查找是否存在對應(yīng)的傳輸協(xié)議,若查找到,則表明終端110支持存儲設(shè)備120的傳輸協(xié)議,驗(yàn)證通過;若未查找到,則表明終端110不支持存儲設(shè)備120的傳輸協(xié)議,則驗(yàn)證未通過。傳輸協(xié)議具體可以是bot協(xié)議(散裝傳輸協(xié)議,bulk-onlytransportprotocol)、mtp協(xié)議(媒體傳輸協(xié)議,mediatransferprotocol)或usap協(xié)議(usbattachscsiprotocol)。
終端110對存儲設(shè)備120的傳輸協(xié)議驗(yàn)證通過后,終端110識別存儲設(shè)備120的文件系統(tǒng)類型,并對識別到的文件系統(tǒng)的分區(qū)表和引導(dǎo)扇區(qū)進(jìn)行解析。文件系統(tǒng)類型具體可以是fat32、ntfs、ntfst32、ext2、ext3和xfs其中任意一種,還可以是其他文件系統(tǒng)類型。
步驟504,接收終端從存儲設(shè)備中的分區(qū)表和引導(dǎo)扇區(qū)讀取到的數(shù)據(jù)。
具體地,終端110讀取分區(qū)表和引導(dǎo)扇區(qū)中的數(shù)據(jù),得到分區(qū)表和引導(dǎo)扇區(qū)中的數(shù)據(jù)。分區(qū)表中記錄了將數(shù)據(jù)分成稱為分區(qū)的許多小的子集,并記錄每個分區(qū)所存儲的扇區(qū)位置等數(shù)據(jù),在數(shù)據(jù)處理時,根據(jù)分區(qū)表可以將許多分區(qū)按照順序進(jìn)行處理。引導(dǎo)扇區(qū)中記錄存儲設(shè)備120的扇區(qū)信息,扇區(qū)信息具體可以包括每個存儲空間大小、每磁道扇區(qū)數(shù)、扇區(qū)總數(shù)和磁頭數(shù)中至少一種。
步驟506,將讀取到的數(shù)據(jù)存儲在緩存中。
步驟508,接收虛擬機(jī)讀取存儲設(shè)備的分區(qū)表和引導(dǎo)扇區(qū)的第三讀取指令。
具體地,終端110將存儲設(shè)備120映射到虛擬機(jī)上時,虛擬機(jī)檢測到存儲設(shè)備120,虛擬機(jī)會通過服務(wù)器130向存儲設(shè)備120發(fā)送讀取存儲設(shè)備120的分區(qū)表和引導(dǎo)扇區(qū)的第三讀取指令。
步驟510,根據(jù)第三讀取指令將緩存中的讀取到的數(shù)據(jù)發(fā)送給虛擬機(jī)。
具體地,服務(wù)器130截獲第三讀取指令,對第三讀取指令進(jìn)行解析,根據(jù)解析得到的結(jié)果在緩存中查找終端110讀取到的分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù),并將查找到的數(shù)據(jù)直接返回給虛擬機(jī)以完成存儲設(shè)備120到虛擬機(jī)的映射過程。
在一個實(shí)施例中,請參照圖6,在步驟602中,服務(wù)器130接收終端110讀取到存儲設(shè)備120的分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù),并將接收到數(shù)據(jù)存儲到緩存中;在步驟604中,服務(wù)器130接收到虛擬機(jī)的讀取存儲設(shè)備120的分區(qū)表和引導(dǎo)扇區(qū)的指令;在步驟606中,服務(wù)器130將緩存中分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù)發(fā)送給虛擬機(jī)。
本實(shí)施例中,在終端110中接入存儲設(shè)備120時,終端110對存儲設(shè)備120的傳輸協(xié)議進(jìn)行驗(yàn)證,在驗(yàn)證通過后,直接讀取存儲設(shè)備120的分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù),服務(wù)器130將分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù)存儲到緩存中。待接收到虛擬機(jī)讀取分區(qū)表和引導(dǎo)扇區(qū)的指令后,服務(wù)器130直接從緩存中將分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù)返回給虛擬機(jī),以完成存儲設(shè)備120到虛擬機(jī)的映射。這樣,避免了虛擬機(jī)和存儲設(shè)備120的多次網(wǎng)絡(luò)交互,節(jié)省了多次網(wǎng)絡(luò)交互耗費(fèi)的時間,并提高了存儲設(shè)備120映射到虛擬機(jī)的映射速度。
如圖7和圖8所示,在一個實(shí)施例中,步驟302之前具體還包括將數(shù)據(jù)寫 入存儲設(shè)備的步驟:
步驟702,接收虛擬機(jī)發(fā)送的對存儲設(shè)備執(zhí)行寫入操作的寫入指令。
具體地,虛擬機(jī)對存儲設(shè)備120進(jìn)行數(shù)據(jù)寫入的操作時,虛擬機(jī)會發(fā)出寫入指令,寫入指令具體可以包括在存儲設(shè)備120中執(zhí)行寫入操作的扇區(qū)位置。
步驟704,將虛擬機(jī)的寫入數(shù)據(jù)存儲到緩存中,并向虛擬機(jī)返回數(shù)據(jù)寫入成功的結(jié)果。
具體地,服務(wù)器130根據(jù)寫入指令獲取到虛擬機(jī)需要寫入存儲設(shè)備120的寫入數(shù)據(jù),或者服務(wù)器130接收虛擬機(jī)發(fā)送的寫入數(shù)據(jù),服務(wù)器130將寫入數(shù)據(jù)存儲到緩存中,同時向虛擬機(jī)發(fā)送數(shù)據(jù)寫入成功的結(jié)果。
在一個實(shí)施例中,如果服務(wù)器130接收到虛擬機(jī)讀取寫入數(shù)據(jù)的指令,則可以直接在緩存中查找,將查找到的寫入數(shù)據(jù)返回給虛擬機(jī)。
步驟706,根據(jù)寫入指令通過終端將緩存中的寫入數(shù)據(jù)寫入存儲設(shè)備的指定扇區(qū)。
具體地,服務(wù)器130將寫入指令和緩存中的寫入數(shù)據(jù)發(fā)送給終端110,終端110對寫入指令進(jìn)行解析,通過對寫入指令的解析獲取到存儲設(shè)備120的寫入扇區(qū)的信息,終端根據(jù)寫入扇區(qū)的信息確定扇區(qū),將寫入數(shù)據(jù)寫入到確定的扇區(qū)中。
在一個實(shí)施例中,服務(wù)器130在監(jiān)測到網(wǎng)絡(luò)傳輸速度大于預(yù)設(shè)閾值時,提取緩存中的寫入數(shù)據(jù),根據(jù)寫入指令通過終端將寫入數(shù)據(jù)寫入存儲設(shè)備的指定扇區(qū)中。
本實(shí)施例中,在虛擬機(jī)對存儲設(shè)備進(jìn)行寫入操作時,虛擬機(jī)發(fā)出寫入指令后,服務(wù)器130將虛擬機(jī)的寫入數(shù)據(jù)存儲到緩存中,并同時向虛擬機(jī)返回數(shù)據(jù)寫入成功的結(jié)果,之后再將寫入數(shù)據(jù)通過終端寫入到存儲設(shè)備中指定扇區(qū)中。這樣,避免了虛擬機(jī)與存儲設(shè)備120需要進(jìn)行多次網(wǎng)絡(luò)交互才能將數(shù)據(jù)寫入存儲設(shè)備120的情況,在保證數(shù)據(jù)準(zhǔn)確的前提下,保證了數(shù)據(jù)寫入的速度。
如圖9所示,在一個實(shí)施例中,該存儲設(shè)備的數(shù)據(jù)處理方法還包括調(diào)整緩存容量的步驟:
步驟902,監(jiān)測網(wǎng)絡(luò)傳輸狀態(tài)。
具體地,服務(wù)器130在根據(jù)寫入指令執(zhí)行寫入操作時,對網(wǎng)絡(luò)傳輸狀態(tài)進(jìn)行監(jiān)測,具體可以網(wǎng)絡(luò)傳輸速度,即計算網(wǎng)絡(luò)在時間單位內(nèi)所傳輸?shù)臄?shù)據(jù)量,具體還可以檢測網(wǎng)絡(luò)傳輸質(zhì)量。
步驟904,根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)調(diào)整緩存的存儲容量。
具體地,當(dāng)服務(wù)器130監(jiān)測到網(wǎng)絡(luò)傳輸速度快時,則將緩存的存儲容量調(diào)大或調(diào)大,當(dāng)監(jiān)測到網(wǎng)絡(luò)傳輸速度慢時,則將緩存的存儲容量調(diào)小或調(diào)大,服務(wù)器130根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)來調(diào)整緩存的存儲容量,保證在網(wǎng)絡(luò)傳輸不穩(wěn)定時,保證緩存的存儲容量足夠用于存儲完整的數(shù)據(jù),避免由于緩存的存儲容量小而造成數(shù)據(jù)無法更新或者丟失。
本實(shí)施例中,服務(wù)器130根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)調(diào)整緩存的存儲容量,保證了在對虛擬機(jī)的寫入數(shù)據(jù)進(jìn)行異步緩存時,緩存有足夠的存儲容量來存儲寫入數(shù)據(jù),避免了由于緩存的存儲容量不足導(dǎo)致數(shù)據(jù)無法更新和數(shù)據(jù)丟失的情況。
如圖10所示,在一個實(shí)施例中,提供一種存儲設(shè)備的數(shù)據(jù)處理裝置1000,該裝置包括:第一指令接收模塊1002、數(shù)據(jù)獲取模塊1004、第一數(shù)據(jù)返回模塊1006、第二指令接收模塊1008和第二數(shù)據(jù)返回模塊1010。
第一指令接收模塊1002,用于接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令。
數(shù)據(jù)獲取模塊1004,用于根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)。
第一數(shù)據(jù)返回模塊1006,用于將指定扇區(qū)數(shù)據(jù)和關(guān)聯(lián)數(shù)據(jù)存儲在緩存中,并將指定扇區(qū)數(shù)據(jù)返回虛擬機(jī)。
第二指令接收模塊1008,用于接收虛擬機(jī)讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令。
第二數(shù)據(jù)返回模塊1010,用于根據(jù)第二讀取指令將緩存中匹配的關(guān)聯(lián)數(shù)據(jù)返回虛擬機(jī)。
本實(shí)施例中,接收虛擬機(jī)讀取存儲設(shè)備中指定扇區(qū)數(shù)據(jù)的第一讀取指令,根據(jù)第一讀取指令通過終端從存儲設(shè)備中獲取指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù),并將獲取到的指定扇區(qū)數(shù)據(jù)和指定扇區(qū)數(shù)據(jù)的關(guān)聯(lián)數(shù)據(jù)存儲在緩存 中,待接收到虛擬機(jī)的讀取關(guān)聯(lián)數(shù)據(jù)的第二讀取指令后,直接在緩存中查找匹配的關(guān)聯(lián)數(shù)據(jù),將查找到關(guān)聯(lián)數(shù)據(jù)返回給虛擬機(jī)。這樣,避免虛擬機(jī)需要通過多次網(wǎng)絡(luò)交互才能從存儲設(shè)備中獲取數(shù)據(jù),直接將存儲在緩存中匹配的數(shù)據(jù)返回給虛擬機(jī),并節(jié)省了進(jìn)行多次網(wǎng)絡(luò)交互所耗費(fèi)的時間,加快了數(shù)據(jù)處理的速度。
如圖11所示,在一個實(shí)施例中,該存儲設(shè)備的數(shù)據(jù)處理裝置1000具體還包括:數(shù)據(jù)接收模塊1012、數(shù)據(jù)緩存模塊1014、第三指令接收模塊1016和數(shù)據(jù)發(fā)送模塊1018。
數(shù)據(jù)接收模塊1012,用于接收終端從存儲設(shè)備中的分區(qū)表和引導(dǎo)扇區(qū)讀取到的數(shù)據(jù)。
數(shù)據(jù)緩存模塊1014,用于將讀取到的數(shù)據(jù)存儲在緩存中。
第三指令接收模塊1016,用于接收虛擬機(jī)讀取存儲設(shè)備的分區(qū)表和引導(dǎo)扇區(qū)的第三讀取指令。
數(shù)據(jù)發(fā)送模塊1018,用于根據(jù)第三讀取指令將緩存中讀取到的數(shù)據(jù)發(fā)送給虛擬機(jī)。
本實(shí)施例中,服務(wù)器130將終端讀取到的分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù)存儲到緩存中,待接收到虛擬機(jī)的讀取分區(qū)表和引導(dǎo)扇區(qū)的指令后,服務(wù)器130直接從緩存中將分區(qū)表和引導(dǎo)扇區(qū)的數(shù)據(jù)返回給虛擬機(jī),以完成存儲設(shè)備120到虛擬機(jī)的映射。這樣,避免了虛擬機(jī)和存儲設(shè)備120的多次網(wǎng)絡(luò)交互,節(jié)省了多次網(wǎng)絡(luò)交互耗費(fèi)的時間,并提高了存儲設(shè)備120映射到虛擬機(jī)的映射速度。
如圖12所示,在一個實(shí)施例中,該存儲設(shè)備的數(shù)據(jù)處理裝置1000具體還包括:存儲設(shè)備識別模塊1020。
存儲設(shè)備識別模塊1020,通過終端識別存儲設(shè)備的傳輸協(xié)議和文件系統(tǒng)類型,并對傳輸協(xié)議進(jìn)行驗(yàn)證,在驗(yàn)證通過后,讀取文件系統(tǒng)類型對應(yīng)的分區(qū)表和引導(dǎo)扇區(qū)。
本實(shí)施例中,終端110可以支持存儲設(shè)備的傳輸協(xié)議和文件系統(tǒng)類型,通過對傳輸協(xié)議的驗(yàn)證,保證能夠正確讀取文件系統(tǒng)類型對應(yīng)的分區(qū)表和引導(dǎo)扇區(qū)。
如圖13所示,在一個實(shí)施例中,該存儲設(shè)備的數(shù)據(jù)處理裝置1000具體還包括:寫入指令接收模塊1022、數(shù)據(jù)存儲模塊1024和數(shù)據(jù)寫入模塊1026。
寫入指令接收模塊1022,用于接收虛擬機(jī)發(fā)送的對存儲設(shè)備執(zhí)行寫入操作的寫入指令。
數(shù)據(jù)存儲模塊1024,用于將虛擬機(jī)的寫入數(shù)據(jù)存儲到緩存中,并向虛擬機(jī)返回數(shù)據(jù)寫入成功的結(jié)果。
數(shù)據(jù)寫入模塊1026,用于根據(jù)寫入指令通過終端將緩存中的寫入數(shù)據(jù)寫入存儲設(shè)備的指定扇區(qū)。
本實(shí)施例中,在虛擬機(jī)對存儲設(shè)備進(jìn)行寫入操作時,虛擬機(jī)發(fā)出寫入指令后,服務(wù)器130將虛擬機(jī)的寫入數(shù)據(jù)存儲到緩存中,并同時向虛擬機(jī)返回數(shù)據(jù)寫入成功的結(jié)果,之后再將寫入數(shù)據(jù)通過終端寫入到存儲設(shè)備中指定扇區(qū)中。這樣,避免了虛擬機(jī)與存儲設(shè)備120需要進(jìn)行多次網(wǎng)絡(luò)交互才能將數(shù)據(jù)寫入存儲設(shè)備120的情況,提高了數(shù)據(jù)寫入的速度。
如圖14所示,在一個實(shí)施例中,該存儲設(shè)備的數(shù)據(jù)處理裝置1000具體還包括:網(wǎng)絡(luò)監(jiān)測模塊1028和緩存調(diào)整模塊1030。
網(wǎng)絡(luò)監(jiān)測模塊,用于監(jiān)測網(wǎng)絡(luò)傳輸狀態(tài)。
緩存調(diào)整模塊,用于根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)調(diào)整緩存的存儲容量。
本實(shí)施例中,服務(wù)器130根據(jù)網(wǎng)絡(luò)傳輸狀態(tài)調(diào)整緩存的存儲容量,保證了在對虛擬機(jī)的寫入數(shù)據(jù)進(jìn)行異步緩存時,緩存有足夠的存儲容量來存儲寫入數(shù)據(jù),避免了由于緩存的存儲容量不足導(dǎo)致數(shù)據(jù)無法更新和數(shù)據(jù)丟失的情況。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實(shí)施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。