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