專利名稱:一種虛擬磁盤系統和基于虛擬磁盤系統的文件存儲方法
技術領域:
本發明屬于點對點網絡技術領域,具體涉及到一種用于點對點計算過程中存儲媒體數據的數據存儲方法和系統。
背景技術:
在P2P的應用中,很多場合需要把從P2P網絡中獲取到的數據存儲到當前peer節點的本地存儲中。但是,采用何種方案來管理和存儲這些媒體數據是一個較為復雜和困難的問題, 其中,在現有技術中,對于視頻類的P2P應用軟件,一種方案是在宿主機操作系統(譬如 Windows,Mac)里的一個文件中基于預定義的一種格式存儲和管理這些媒體數據,也就是把眾多媒體文件的內容存放到一個實際的物理文件中去。由此,引出了一個如何既能高效地管理空間又能保證數據的高可靠性還能方便后續的升級、維護、可擴展方面的問題。個角度講,我們可以把這個文件當作一個虛擬的磁盤, 那么實際上這個問題就變換成如何在一個文件里實現一個滿足需求的輕量級文件系統。針對媒體數據的P2P存儲,這個虛擬磁盤須滿足以下特性可靠性一能夠應對諸如掉電后文件或目錄損壞等突發事件并能實現災難恢復;高效性能夠實現高效的存取和管理效率;可用性能夠存儲大小不等的各類媒體文件;可遷移性一支持虛擬磁盤的遷移;可擴展性---要求具有整齊規整的結構方便將來開發各種擴展性質的應用; 內容版權保護性---能夠方便支持媒體內容的DRM存儲;而現有技術的文件存儲方法和磁盤系統都無法滿足現有技術的需求,因此,需要采取合適的手段實現對媒體文件的存儲。
發明內容
本發明針對現有技術的缺點,提供了一種虛擬磁盤系統以及基于該虛擬磁盤系統的文件存儲方法,該種方法具有很好的媒體存儲技術效果。其中,根據本申請的一個方面,本發明提供了一種虛擬磁盤系統,包括多個邏輯塊組,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;塊位圖單元,用于存儲以二進制位形態表示的數據塊是否被使用的信息;索引節點位圖單元,用于存儲以二進制位形態表示的索引節點是否被使用的信索引節點表單元,用于存儲多個索引節點項信息,其中,每個索引項對應一個文件且至少存儲對應的文件的大小、文件具體的位置、存取修改時間元信息。進一步地,優選的是,還設有虛盤標識塊單元,用于存儲標用于標注當前虛擬磁盤文件的標識識信息和媒體文件版權保護的數字證書。進一步地,優選的是,所述邏輯塊組中,還設有超級塊單元,用于存儲當前虛擬磁盤系統相關的索引節點數、剩余索引節點數、塊數、剩余空間塊數信息;組描述符表單元,用于存儲當前邏輯塊組中塊位圖、索引節點位圖、索引節點表的位置信息。進一步地,優選的是,所述索引節點表單元,包括操作子單元,用于根據記錄區段的形式記載對應的媒體文件的內容所在的數據塊位置。此外,根據本發明的又一目的,本發明提供了一種基于虛擬磁盤系統的文件存儲方法,包括A、在物理磁盤上設置至少一個虛擬磁盤系統文件周以存儲媒體文件,其中,每一個虛擬磁盤系統包括多個邏輯塊組,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;B、將文件內容數據或者文件元數據到虛擬磁盤系統中的所述數據塊單元中;C、分別存儲以二進制位形態表示的數據塊、索引節點是否被使用的信息;以及索引節點表單元中的當前的文件的大小、文件具體的位置、存取修改時間元信息。優選的方法是,進一步包括 將標注當前虛擬磁盤文件的標識信息存儲到虛盤標識塊單元中。優選的方法是,進一步包括存儲當前虛擬磁盤系統相關的索引節點數、剩余索引節點數、塊數、剩余空間塊數信息;存儲當前邏輯塊組中塊位圖、索引節點位圖、索引節點表的位置信息。優選的方法是,進一步包括根據記錄區段的形式記載所述對應的媒體文件的內容所在的數據塊位置。優選的方法是,進一步包括通過在虛擬磁盤系統中動態追加邏輯塊組的方式以調整所述虛擬磁盤系統的大小。優選的方法是,進一步包括通過在虛擬磁盤系統中對文件進行加密存儲的方式以實現對媒體文件內容的版權保護。本發明采取了上述技術方案以后,能夠滿足P2P媒體文件存儲的可靠性、高效性、 可用性、可遷移性、可擴展性、內容版權保護性方面的需求,并且,該種方法具有跨平臺、跨運行態的技術效果。
下面結合附圖對本發明進行詳細的描述,以使得本發明的上述優點更加明確。圖I是本發明虛擬磁盤系統的原理的一個邏輯結構示意圖;圖2是本發明虛擬磁盤系統的原理的一個邏輯結構示意圖;圖3是本發明基于虛擬磁盤系統的文件存儲方法的流程示意圖。
具體實施例方式下面結合附圖和具體實施例對本發明進行詳細的說明。系統實施例一:本發明針對現有的P2P文件的特點,設置一個用于P2P存儲的虛擬磁盤,以滿足可靠性、高效性、可用性、可遷移性、可擴展性、內容版權保護性方面的需求。其中,圖I是本發明虛擬磁盤系統的原理的一個邏輯結構示意圖;其中,如圖I所示,在本申請之中,一個虛擬磁盤對應一個實際的物理文件。所述虛擬磁盤文件根據一定大小分成均等大小的眾多的邏輯塊。在文件頭的虛盤標識塊中存儲的是當前虛擬磁盤的一種特定標識,根據此標識可以區分不同的虛擬磁盤文件。此外,虛擬磁盤標識塊中還存儲有媒體內容版權保護用途的數字證書等信息。具體來說,多個邏輯塊單元形成一個邏輯塊組,并且,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;塊位圖單元,用于存儲以二進制位形態表示的數據塊是否被使用的信息;索引節點位圖單元,用于存儲以二進制位形態表示的索引節點是否被使用的信索引節點表單元,用于存儲多個索引節點項信息,其中,每個索引項對應于一個文件且至少存儲對應的文件的大小、文件具體的位置、存取修改時間元信息。并且,還設有虛盤標識塊單元,用于存儲標用于標注當前虛擬磁盤文件的標識信息以及用于內容版權保護的數字證書。此外,所述邏輯塊組中,還設有超級塊單元,用于存儲當前虛擬磁盤系統相關的索引節點數、剩余索引節點數、塊數、剩余空間塊數信息;組描述符表單元,用于存儲當前邏輯塊組中塊位圖、索引節點位圖、索引節點表的位置信息。從圖I中可以看出,并不是每個塊組集里都會保存著超級塊和組描述符表,只在O 和13的冪次的塊組集里保存著副本。此外,進一步地,優選的是,所述索引節點表單元,包括操作子單元,用于根據記錄區段的形式記載所述在索引節點中對應的文件的內容所在的數據塊位置。由此,該申請相對于現有技術來說,而不再使用傳統的擴展文件系統中常見的直接/間接塊映射表的方式,而是使用記錄區段的方式,進而減少需要存儲的文件位置元數據的大小。由此,其作為P2P媒體文件的存儲介質,具有較好的文件存儲效果。圖2是本發明虛擬磁盤系統的原理的一個結構示意圖;如圖2所示,圖中所描述的情況是當前文件的內容存儲在從編號為300開始的500 個邏輯塊單元和從編號為1080開始的400個邏輯塊單元中。此外,為使每個媒體文件的數據存放時位置盡量局部集中化,在為媒體文件分配邏輯塊單元時,采取多塊整齊、連續分配邏輯塊單元的方法來予以保征。其中,本發明在所有涉及到虛擬磁盤元數據、文件元數據的改動都記錄在日志文件中,不但如此,還為需要改動的元數據計算檢驗和,方便在災難恢復和數據搶救的時候, 可以通過分析、重放日志文件和校驗檢驗和的方式來發現和修正錯誤。此外,從圖I知道,整個物理文件的邏輯結構是一個邏輯塊組緊接著另外一個邏輯塊組。本發明采取了上述技術方案以后,可以實現根據需要在線調整虛擬磁盤文件所占用的物理空間大小。在當前的磁盤空間不能滿足需要時,同時并未達到配額上限時,可以通過在虛擬磁盤文件尾端生成并追加塊組集的方式來實現在線調整虛擬磁盤文件的大小來滿足存儲的需求。方法實施例一:以下針對本發明的具體實施例進行詳細的說明,其中,圖3是本發明基于上述實施例的虛擬磁盤系統的文件存儲方法的流程示意圖。如圖3所示,所述方法包括下列步驟;SlOl :在物理磁盤上設置至少一個虛擬磁盤系統文件用以存儲媒體文件,其中,每一個虛擬磁盤系統包括多個邏輯塊組,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;S102 :將文件內容數據或者文件元數據到虛擬磁盤系統中的所述數據塊單元中;S103 :存儲以二進制位形態表示的數據塊、索引節點是否被使用的信息;S104 :在索引節點表單元中對應的表項里存儲當前媒體文件的大小、文件位置信息、存取修改時間等元信息。本發明采取了上述技術方案以后,能夠滿足P2P媒體文件存儲的可靠性、高效性、 可用性、可遷移性、可擴展性、內容版權性方面的需求,并且,該種方法具有跨平臺、跨運行態的技術效果。其中,進一步地,優選的方法是,將標注當前虛擬磁盤文件的標識信息和用于內容版權保護的數字證書存儲到虛盤標識塊單元中。并且,進一步包括存儲當前虛擬磁盤系統相關的索引節點數、剩余索引節點數、 塊數、剩余空間塊數信息;存儲當前邏輯塊組中塊位圖、索引節點位圖、索引節點表的位置信息。此外,該申請相對于現有技術來說,而不再使用傳統的擴展文件系統中常見的直接/間接塊映射表的方式,而是使用記錄區段的方式,進而減少需要存儲的文件位置元數據的大小,由此,其作為P2P媒體文件的存儲介質,具有較好的文件存儲效果。并且,所述方法采用區段的方式來記錄文件內容所在數據塊的位置信息,和傳統的擴展文件系統默認采用的直接/間接塊映射的方式相比,會極大地減少文件元數據的存儲量,提高了存儲利用率,也減少了發生錯誤的概率。此外,通過在虛擬磁盤系統中追加邏輯塊組的方式以調整所述虛擬磁盤系統的大小。其中,本發明采取了上述方案以后,能夠使得一個媒體文件的內容所在的數據塊局部集中,能夠提高查找效率以及存取效率。此外,本申請中,對元數據改動時記錄日志和校驗檢驗和,能夠保證一旦虛擬磁盤遇到極端情況時能夠實現災難恢復和數據搶救。
6
并且,由于元數據和內容數據保存在同一個文件中而不是分散存放,一方面方便虛擬磁盤在系統間遷移;另外一方面避免分離存放元數據和內容數據帶來的潛在問題。此外,本申請中的每2個邏輯塊組之間基本上都是獨立的、隔離的,對數據損壞的風險可控在局部范圍內,避免實行點對點計算時由于有錯誤的數據被傳播、復制、分發到 P2P網絡中造成數據污染。另外,超級塊、組描述符表稀疏地在一些塊組集中有多個副本分散存儲在不同的地方,保證在極端情況下實現超級塊和組描述符的恢復和數據搶救工作。另外,和簡單的自定義邏輯格式相比,由于這種設計既可以存儲目錄也可以存儲媒體文件,使得具有在虛擬磁盤中通過創建不同的目錄文件就可以對眾多的媒體文件進行分類、整理、存儲的好處。需要注意的是,上述具體實施例僅僅是示例性的,在本發明的上述教導下,本領域技術人員可以在上述實施例的基礎上進行各種改進和變形,而這些改進或者變形落在本發明的保護范圍內。本領域技術人員應該明白,上面的具體描述只是為了解釋本發明的目的,并非用于限制本發明。本發明的保護范圍由權利要求及其等同物限定。
權利要求
1.一種虛擬磁盤系統,包括多個邏輯塊組,其特征在于,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;塊位圖單元,用于存儲以二進制位形態表示的數據塊是否被使用的信息;索引節點位圖單元,用于存儲以二進制位形態表示的索引節點是否被使用的信息;索引節點表單元,用于存儲多個索引節點項信息,其中,每個索引項對應一個媒體文件且至少存儲對應的文件的大小、文件在虛擬磁盤系統中的位置、存取修改時間元信息。
2.根據權利要求I所述的虛擬磁盤系統,其特征在于,還設有虛盤標識塊單元,用于存儲標注當前虛擬磁盤文件的標識信息和媒體文件版權保護的數字證書。
3.根據權利要求I或2所述的虛擬磁盤系統,其特征在于,所述邏輯塊組中,還設有 超級塊單元,用于存儲當前虛擬磁盤系統相關的索引節點數、剩余索引節點數、塊數、剩余空間塊數、虛擬磁盤空間配額信息;組描述符表單元,用于存儲當前邏輯塊組中塊位圖、索引節點位圖、索引節點表的位置信息。
4.根據權利要求3所述的虛擬磁盤系統,其特征在于,所述索引節點表單元,包括 操作子單元,用于根據記錄區段的形式記載對應的媒體文件的內容所在的數據塊位置。
5.一種基于虛擬磁盤系統的文件存儲方法,包括A、在物理磁盤上設置至少一個虛擬磁盤系統文件周以存儲媒體文件,其中,每一個虛擬磁盤系統包括多個邏輯塊組,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;B、將文件內容數據或者文件元數據到虛擬磁盤系統中的所述數據塊單元中;C、分別存儲以二進制位形態表示的數據塊、索引節點是否被使用的信息;以及索引節點表單元中媒體文件的大小、媒體文件在虛擬磁盤系統中的位置、存取修改時間元信息。
6.根據權利要求5所述的基于虛擬磁盤系統的文件存儲方法,其特征在于,進一步包括將標注當前虛擬磁盤文件的標識信息和媒體內容DRM存儲的數字證書信息位存儲到虛盤標識塊單元中。
7.根據權利要求5或6所述的基于虛擬磁盤系統的文件存儲方法,其特征在于,存儲當前虛擬磁盤系統相關的索引節點數、剩余索引節點數、塊數、剩余空間塊數信息;存儲當前邏輯塊組中塊位圖、索引節點位圖、索引節點表的位置信息。
8.根據權利要求7所述的基于虛擬磁盤系統的文件存儲方法,其特征在于,進一步包括根據記錄區段的形式記載對應的媒體文件在虛擬磁盤系統中所在的位置信息。
9.根據權利要求8所述的基于虛擬磁盤系統的文件存儲方法,其特征在于,進一步包括通過在虛擬磁盤系統中追加邏輯塊組的方式以調整所述虛擬磁盤系統的大小。
全文摘要
本發明公開了一種虛擬磁盤系統,包括多個邏輯塊組,其中,所述邏輯塊組包括多個數據塊單元,用于存儲文件內容數據或者文件元數據;塊位圖單元,用于存儲以二進制位形態表示的數據塊是否被使用的信息;索引節點位圖單元,用于存儲以二進制位形態表示索引節點是否被使用的信息;索引節點表單元,用于存儲多個索引節點項信息,其中,每個索引項對應一個文件且至少存儲對應的文件的大小、文件具體的位置、存取修改時間元信息。本發明能夠滿足P2P媒體文件存儲的可靠性、高效性、可用性、可遷移性、可擴展性、內容版權保護性方面的需求。此外,本發明還公開了一種基于虛擬磁盤系統的文件存儲方法。
文檔編號G06F17/30GK102609365SQ20121003327
公開日2012年7月25日 申請日期2012年2月15日 優先權日2012年2月15日
發明者盧述奇, 姚鍵, 張士波, 楊敬宇, 潘柏宇, 王峰, 闕宏宇 申請人:合一網絡技術(北京)有限公司