專利名稱:基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法。
背景技術(shù):
傳統(tǒng)的網(wǎng)絡(luò)盤(pán)包括以下兩種(I)網(wǎng)絡(luò)盤(pán)可以被讀取和修改,但是修改的數(shù)據(jù)會(huì)回寫(xiě)到服務(wù)器上,其他機(jī)器也能看到被修改后的數(shù)據(jù)。(2)網(wǎng)絡(luò)盤(pán)一般情況下只能被讀取,不能被修改。上述兩種網(wǎng)絡(luò)盤(pán)都難以解決虛擬系統(tǒng)部署的問(wèn)題,如果將虛擬系統(tǒng)數(shù)據(jù)放置在傳統(tǒng)網(wǎng)絡(luò)盤(pán)中,虛擬系統(tǒng)啟動(dòng)的過(guò)程中會(huì)去修改網(wǎng)絡(luò)盤(pán)扇區(qū)數(shù)據(jù),且一般會(huì)有多臺(tái)機(jī)器同時(shí)使用該虛擬系統(tǒng),會(huì)出現(xiàn)網(wǎng)絡(luò)盤(pán)數(shù)據(jù)不一致或者虛擬系統(tǒng)無(wú)法啟動(dòng)的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服上述背景技術(shù)的不足,提供一種基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,解決虛擬系統(tǒng)部署的問(wèn)題,將虛擬系統(tǒng)數(shù)據(jù)放置在網(wǎng)絡(luò)盤(pán)中,采用按需下載所需扇區(qū)數(shù)據(jù)的方式,更加快捷方便,用戶體驗(yàn)更好,使網(wǎng)絡(luò)盤(pán)數(shù)據(jù)始終和服務(wù)器上保持一致,且能臨時(shí)修改網(wǎng)絡(luò)盤(pán)數(shù)據(jù),簡(jiǎn)單、高效地更新服務(wù)器鏡像文件數(shù)據(jù)。本發(fā)明提供的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,包括以下步驟a、創(chuàng)建兩個(gè)本地緩存文件A和B,將服務(wù)器上的鏡像文件數(shù)據(jù)緩存到文件A中,將對(duì)網(wǎng)絡(luò)盤(pán)修改的數(shù)據(jù)緩存到文件B中;b、修改網(wǎng)絡(luò)盤(pán)扇區(qū)的數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入到文件B中,更新文件B 中的緩存數(shù)據(jù),再將文件B中的緩存數(shù)據(jù)提交到服務(wù)器上,更新服務(wù)器上的鏡像文件數(shù)據(jù); C、讀取網(wǎng)絡(luò)盤(pán)扇區(qū)的數(shù)據(jù)時(shí),若檢測(cè)到文件Α/B中存在緩存記錄,則讀取文件Α/B中緩存的數(shù)據(jù);否則從服務(wù)器上獲取數(shù)據(jù)并將數(shù)據(jù)緩存到文件A中。在上述技術(shù)方案中,步驟a中還包括初始化本地緩存的步驟獲取服務(wù)器鏡像文件的大小,按照512字節(jié)對(duì)服務(wù)器鏡像文件進(jìn)行管理,分別生成文件A和B的索引信息。在上述技術(shù)方案中,生成文件Α/B的索引信息時(shí),若判定文件Α/B中存在緩存,則將該文件索引信息中的bit位標(biāo)為I ;否則將該文件索引信息中的bit位標(biāo)為O。在上述技術(shù)方案中,步驟c中通過(guò)檢測(cè)文件A和B的索引信息,來(lái)檢測(cè)文件Α/B中是否存在緩存記錄。在上述技術(shù)方案中,所述本地緩存文件A和B的格式相同。在上述技術(shù)方案中,所述本地緩存文件A和B均包括索引信息頭和空數(shù)據(jù)。在上述技術(shù)方案中,步驟b中還包括步驟將數(shù)據(jù)寫(xiě)入到文件B中后,更新文件B 的緩存索引信息頭。在上述技術(shù)方案中,步驟c中還包括步驟加載本地虛擬盤(pán),讀取虛擬盤(pán)數(shù)據(jù)時(shí), 對(duì)讀取請(qǐng)求的偏移和長(zhǎng)度進(jìn)行檢查,首先,如果判定文件B中存在相應(yīng)位置的緩存數(shù)據(jù),則由文件B提供該緩存數(shù)據(jù);其次,如果判定存在未處理的讀取請(qǐng)求,則由文件A提供緩存數(shù)據(jù);最后,如果判定還存在未處理的讀取請(qǐng)求,則由網(wǎng)絡(luò)盤(pán)驅(qū)動(dòng)通過(guò)網(wǎng)絡(luò)向服務(wù)器獲取數(shù)據(jù),并將獲取的數(shù)據(jù)緩存到文件A中。在上述技術(shù)方案中,每次加載虛擬盤(pán)時(shí)先清空文件B的緩存數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)如下(I)本發(fā)明解決虛擬系統(tǒng)部署的問(wèn)題,將虛擬系統(tǒng)數(shù)據(jù)放置在網(wǎng)絡(luò)盤(pán)中,創(chuàng)建了兩個(gè)本地緩存文件,將與服務(wù)器上一致的數(shù)據(jù)緩存在一個(gè)文件中,被修改的數(shù)據(jù)緩存在另一個(gè)文件中,與傳統(tǒng)網(wǎng)絡(luò)盤(pán)相比,本發(fā)明提供本地緩存機(jī)制,虛擬系統(tǒng)啟動(dòng)過(guò)程中修改的網(wǎng)絡(luò)盤(pán)數(shù)據(jù)緩存到本地,不提交到服務(wù)器上,通過(guò)網(wǎng)絡(luò)盤(pán)的方式來(lái)交付虛擬系統(tǒng),虛擬系統(tǒng)啟動(dòng)時(shí)不會(huì)修改服務(wù)器上鏡像文件數(shù)據(jù),不僅能使網(wǎng)絡(luò)盤(pán)數(shù)據(jù)始終和服務(wù)器上保持一致,而且可臨時(shí)修改網(wǎng)絡(luò)盤(pán)數(shù)據(jù),能更加簡(jiǎn)單、高效地更新服務(wù)器鏡像文件數(shù)據(jù),更好的配合虛擬系統(tǒng)使用。(2)本發(fā)明在使用過(guò)程中不需將整個(gè)虛擬系統(tǒng)的數(shù)據(jù)都準(zhǔn)備好,采用按需下載所需扇區(qū)數(shù)據(jù)的方式,即只有需要的扇區(qū)數(shù)據(jù)才會(huì)從網(wǎng)絡(luò)上下載,與傳統(tǒng)網(wǎng)絡(luò)盤(pán)只能下載整個(gè)文件相比,本發(fā)明更加快捷方便,用戶體驗(yàn)更好。
圖I是本發(fā)明實(shí)施例中基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)流程圖。圖2是本發(fā)明實(shí)施例中基于本地緩存的網(wǎng)絡(luò)盤(pán)的維護(hù)流程圖。
具體實(shí)施例方式下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。本發(fā)明實(shí)施例提供的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,包括以下步驟a、創(chuàng)建兩個(gè)本地緩存文件A和B,初始化本地緩存獲取服務(wù)器鏡像文件的大小, 按照512字節(jié)對(duì)服務(wù)器鏡像文件進(jìn)行管理,分別生成文件A和B的索引信息。生成文件A/ B的索引信息時(shí),若判定文件Α/B中存在緩存,則將該文件索引信息中的bit位標(biāo)為I ;否則將該文件索引信息中的bit位標(biāo)為O。本地緩存文件A和B的格式相同,均包括索引信息頭和空數(shù)據(jù)。將服務(wù)器上的鏡像文件數(shù)據(jù)緩存到文件A中,將對(duì)網(wǎng)絡(luò)盤(pán)修改的數(shù)據(jù)緩存到文件B中。b、修改網(wǎng)絡(luò)盤(pán)扇區(qū)的數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入到文件B中,更新文件B中的緩存數(shù)據(jù),并更新文件B的緩存索引信息頭,再將文件B中的緩存數(shù)據(jù)提交到服務(wù)器上,更新服務(wù)器上的鏡像文件數(shù)據(jù)。C、讀取網(wǎng)絡(luò)盤(pán)扇區(qū)的數(shù)據(jù)時(shí),通過(guò)檢測(cè)文件A和B的索引信息,來(lái)檢測(cè)文件Α/B中是否存在緩存記錄。若檢測(cè)到文件Α/B中存在緩存記錄,則讀取文件Α/B中緩存的數(shù)據(jù);否則從服務(wù)器上獲取數(shù)據(jù)并將數(shù)據(jù)緩存到文件A中。具體過(guò)程如下加載本地虛擬盤(pán)(每次加載虛擬盤(pán)時(shí)先清空文件B的緩存數(shù)據(jù)),讀取虛擬盤(pán)數(shù)據(jù)時(shí),對(duì)讀取請(qǐng)求的偏移和長(zhǎng)度進(jìn)行檢查,首先,如果判定文件B中存在相應(yīng)位置的緩存數(shù)據(jù),則由文件B提供該緩存數(shù)據(jù);其次,如果判定存在未處理的讀取請(qǐng)求,則由文件A提供緩存數(shù)據(jù);最后,如果判定還存在未處理的讀取請(qǐng)求,則由網(wǎng)絡(luò)盤(pán)驅(qū)動(dòng)通過(guò)網(wǎng)絡(luò)向服務(wù)器獲取數(shù)據(jù),并將獲取的數(shù)據(jù)緩存到文件A中。假定服務(wù)器有一個(gè)鏡像文件S,大小為5G。參見(jiàn)圖I所示,本發(fā)明實(shí)施例中基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)流程如下步驟101、啟動(dòng)網(wǎng)絡(luò)盤(pán)驅(qū)動(dòng)。步驟102、通過(guò)網(wǎng)絡(luò)獲取服務(wù)器上鏡像文件信息。步驟103、初始化本地緩存獲取服務(wù)器鏡像文件S的大小,按照512字節(jié)對(duì)服務(wù)器鏡像文件S進(jìn)行管理,生成索引信息,bit位為0,表示緩存不存在,bit位為1,表示緩存存在。在本地創(chuàng)建緩存文件A,由索引信息頭和5G空數(shù)據(jù)組成。在本地創(chuàng)建緩存文件B,格式和文件A—樣。將服務(wù)器上的鏡像文件數(shù)據(jù)緩存到文件A中,將對(duì)網(wǎng)絡(luò)盤(pán)修改的數(shù)據(jù)緩存到文件B中。步驟104、映射本地虛擬盤(pán)符Z,Z盤(pán)數(shù)據(jù)來(lái)源于文件A、B和服務(wù)器鏡像文件S,判斷要讀取Z盤(pán)扇區(qū)數(shù)據(jù)還是修改Z盤(pán)扇區(qū)數(shù)據(jù),若要修改Z盤(pán)扇區(qū)數(shù)據(jù),則轉(zhuǎn)到步驟105 ; 若要讀取Z盤(pán)扇區(qū)數(shù)據(jù),則轉(zhuǎn)到步驟106。步驟105、將數(shù)據(jù)寫(xiě)入到文件B中,同時(shí)更新文件B的緩存索引信息頭。步驟106、對(duì)讀取請(qǐng)求的偏移和長(zhǎng)度進(jìn)行檢查,首先檢測(cè)是否存在文件B的緩存記錄,如果是,即文件B中存在相應(yīng)位置的緩存數(shù)據(jù),則轉(zhuǎn)到步驟107 ;否則轉(zhuǎn)到步驟108。步驟107、這部分?jǐn)?shù)據(jù)由文件B來(lái)提供,即讀取文件B的緩存數(shù)據(jù)。步驟108、檢測(cè)是否存在文件A的緩存記錄,如果是,即文件A中存在相應(yīng)位置的緩存數(shù)據(jù),則轉(zhuǎn)到步驟109 ;否則轉(zhuǎn)到步驟110。步驟109、未處理的讀取請(qǐng)求,由文件A來(lái)提供,即讀取文件A的緩存數(shù)據(jù)。步驟110、最后如果還存在沒(méi)有處理的讀取請(qǐng)求數(shù)據(jù),則由網(wǎng)絡(luò)盤(pán)驅(qū)動(dòng)通過(guò)網(wǎng)絡(luò)向服務(wù)器獲取,同時(shí)將該部分?jǐn)?shù)據(jù)保存到緩存文件A中,以便下次不用從網(wǎng)絡(luò)獲取,節(jié)省網(wǎng)絡(luò)資源。參見(jiàn)圖2所示,本發(fā)明實(shí)施例中基于本地緩存的網(wǎng)絡(luò)盤(pán)的維護(hù)流程如下步驟201、根據(jù)對(duì)Z盤(pán)數(shù)據(jù)使用產(chǎn)生的文件B的緩存記錄,獲取文件B的緩存數(shù)據(jù)。步驟202、將文件B中的緩存數(shù)據(jù)提交到服務(wù)器上,更新服務(wù)器鏡像文件S的數(shù)據(jù)。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于包括以下步驟a、創(chuàng)建兩個(gè)本地緩存文件A和B,將服務(wù)器上的鏡像文件數(shù)據(jù)緩存到文件A中,將對(duì)網(wǎng)絡(luò)盤(pán)修改的數(shù)據(jù)緩存到文件B中;b、修改網(wǎng)絡(luò)盤(pán)扇區(qū)的數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入到文件B中,更新文件B中的緩存數(shù)據(jù),再將文件B中的緩存數(shù)據(jù)提交到服務(wù)器上,更新服務(wù)器上的鏡像文件數(shù)據(jù);C、讀取網(wǎng)絡(luò)盤(pán)扇區(qū)的數(shù)據(jù)時(shí),若檢測(cè)到文件A/B中存在緩存記錄,則讀取文件A/B中緩存的數(shù)據(jù);否則從服務(wù)器上獲取數(shù)據(jù)并將數(shù)據(jù)緩存到文件A中。
2.如權(quán)利要求I所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于步驟 a中還包括初始化本地緩存的步驟獲取服務(wù)器鏡像文件的大小,按照512字節(jié)對(duì)服務(wù)器鏡像文件進(jìn)行管理,分別生成文件A和B的索引信息。
3.如權(quán)利要求2所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于生成文件A/B的索引信息時(shí),若判定文件A/B中存在緩存,則將該文件索引信息中的bit位標(biāo)為 I ;否則將該文件索引信息中的bit位標(biāo)為O。
4.如權(quán)利要求3所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于步驟c 中通過(guò)檢測(cè)文件A和B的索引信息,來(lái)檢測(cè)文件A/B中是否存在緩存記錄。
5.如權(quán)利要求3所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于所述本地緩存文件A和B的格式相同。
6.如權(quán)利要求5所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于所述本地緩存文件A和B均包括索引信息頭和空數(shù)據(jù)。
7.如權(quán)利要求6所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于步驟b 中還包括步驟將數(shù)據(jù)寫(xiě)入到文件B中后,更新文件B的緩存索引信息頭。
8.如權(quán)利要求I至7中任一項(xiàng)所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于步驟c中還包括步驟加載本地虛擬盤(pán),讀取虛擬盤(pán)數(shù)據(jù)時(shí),對(duì)讀取請(qǐng)求的偏移和長(zhǎng)度進(jìn)行檢查,首先,如果判定文件B中存在相應(yīng)位置的緩存數(shù)據(jù),則由文件B提供該緩存數(shù)據(jù);其次,如果判定存在未處理的讀取請(qǐng)求,則由文件A提供緩存數(shù)據(jù);最后,如果判定還存在未處理的讀取請(qǐng)求,則由網(wǎng)絡(luò)盤(pán)驅(qū)動(dòng)通過(guò)網(wǎng)絡(luò)向服務(wù)器獲取數(shù)據(jù),并將獲取的數(shù)據(jù)緩存到文件A中。
9.如權(quán)利要求8所述的基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,其特征在于每次加載虛擬盤(pán)時(shí)先清空文件B的緩存數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種基于本地緩存的網(wǎng)絡(luò)盤(pán)的實(shí)現(xiàn)及維護(hù)方法,涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,包括步驟創(chuàng)建兩個(gè)本地緩存文件A和B,將服務(wù)器鏡像文件數(shù)據(jù)緩存到文件A,將對(duì)網(wǎng)絡(luò)盤(pán)修改的數(shù)據(jù)緩存到文件B;修改網(wǎng)絡(luò)盤(pán)扇區(qū)數(shù)據(jù)時(shí),將數(shù)據(jù)寫(xiě)入文件B,更新文件B緩存數(shù)據(jù),提交文件B的緩存數(shù)據(jù)到服務(wù)器,更新服務(wù)器鏡像文件數(shù)據(jù);讀取網(wǎng)絡(luò)盤(pán)扇區(qū)數(shù)據(jù)時(shí),檢測(cè)到文件A/B中存在緩存記錄,則讀取文件A/B中緩存數(shù)據(jù);否則從服務(wù)器上獲取數(shù)據(jù)并緩存數(shù)據(jù)到文件A中。本發(fā)明解決虛擬系統(tǒng)部署的問(wèn)題,按需下載數(shù)據(jù),更加快捷方便,用戶體驗(yàn)更好,使網(wǎng)絡(luò)盤(pán)數(shù)據(jù)始終和服務(wù)器上保持一致,且能臨時(shí)修改網(wǎng)絡(luò)盤(pán)數(shù)據(jù),簡(jiǎn)單、高效地更新服務(wù)器鏡像文件數(shù)據(jù)。
文檔編號(hào)G06F17/30GK102609216SQ20121000956
公開(kāi)日2012年7月25日 申請(qǐng)日期2012年1月13日 優(yōu)先權(quán)日2012年1月13日
發(fā)明者王陳 申請(qǐng)人:武漢噢易科技有限公司