姚寬達 方安 楊晨柳 王蕾 胡佳慧
基于OCFL的數字資源保存文件系統設計*
姚寬達 方安 楊晨柳 王蕾 胡佳慧
(中國醫學科學院/北京協和醫學院醫學信息研究所,北京 100020)
本文針對數據密集型科研環境下的科研數據長期保存需求,以牛津通用文件布局方法(OCFL)為基礎,設計支持對象存儲及版本控制的數字資源保存文件系統,并在醫學大數據長期保存系統環境中進行了應用實現和效果分析。
數字保存;OCFL;數據密集型科研;文件存儲;版本控制
信息技術的飛速發展使得數據獲取難度日益降低,大數據時代,科學研究已向數據密集型計算科學[1]轉變,數據對于科學研究的重要性顯著提高。數據密集型科研環境下,科學研究和創新活動越來越依賴于對大規模數據的分析、挖掘以及再利用[2],由此產生的科研數據和成果具有較高的保存價值,是長期科研過程中的重點保存內容[3]。數字資源長期保存是對數字內容進行持續管理和維護的一系列活動,要求在長期保存數字資源的同時,確保保存信息的真實可信,且能夠被未來的使用者所理解和利用[4]。相較于一般數據,科研數據不僅體量大、更迭快、類型雜,還具有學科差異性、知識關聯性以及歷史積累性等典型特征[5],這給長期保存的數據完整性及內容連續性等方面帶來一系列挑戰。因此,針對數據密集型科研環境下的科研數據特征,本文在分析科研數據長期保存需求的基礎上,設計數字資源保存文件系統,并結合實際應用開展相關探索。
技術環境的不斷革新給數字保存帶來諸多挑戰,為避免由此導致的數字內容不可用等問題,資源保障機構需要不斷更新數字倉儲的保存策略以適應新形勢下的數字保存需求[6]。開放檔案信息系統(Open Archival Information System,OAIS)[7]模型為數字保存提供了指導性原則,對保存內容文件和保存描述信息進行了界定,并提出了信息包的概念,但該模型沒有為保存系統的構建和實際應用給出具體的保存方法和建議[8]。因此,面向特定的數字保存需求,保存機構與學者開展了相關研究和探索,提出和制定了一系列存儲策略和保存方案,其中文件存儲和版本控制是數字保存系統設計的關鍵要素。美國國家進化綜合中心與北卡羅來納大學等5家機構合作開發了Dryad數據庫[9],其存儲策略支持版本控制,但不建議對已提交數據的頻繁更新[10]。斯坦福大學圖書館使用Moab方法同樣支持版本控制,但其設計缺乏廣泛的適用性[11]。諾特丹大學赫斯堡圖書館在保存系統中使用的BagIt方法策略在文件傳輸上效率較高,但不支持版本控制[12]。北京大學圖書館探索了數字長期保存系統(Digital Preservation System,DPS)[13]在高校圖書館中的應用與服務,但存儲系統對于底層數據模型兼容型的支持不夠充分[14]。
數據密集型科研環境下的科研數據一方面具有大數據的一般特征,如數據規模龐大、來源分散、數據結構多樣以及具有研究和使用價值等;另一方面,相較一般的大數據,科研數據還具有以下典型特征。
(1)學科差異性。不同學科領域的科研數據在數據結構、文件類型甚至數據體量等方面具有較大的差異。
(2)知識關聯性。科研數據更強調從大量、積累的科研數據中演化和發現新的科研規律或知識[5],對時效性要求較低。
(3)歷史積累性。科研數據更注重數據的歷史積累和數據保存體系的完整性,需要對歷史積累的數據進行重新分析。
(4)數據價值性。科研數據需要在保證數據準確和完整的前提下,其研究和利用價值才能得到體現[15]。
相較于傳統科研范式,數據密集型科研環境下的數據分析和知識發現不再依賴嚴密的假設檢驗過程[16],而是通過對跨時間、跨空間、跨領域的更大規模的科學數據循環進行采集、分析及存儲,使數據成為科研的對象和工具,以此為基礎產生新的科學研究方法。數據密集型科研環境下,數據需要不斷地被重用和驗證,因此,作為科研數據生命周期的重要環節,數字保存對于有效保障和促進科學研究持續開展具有積極意義。
針對數字倉儲對數字對象通用儲存方法的迫切需求,康奈爾大學、斯坦福大學、DuraSpace、牛津大學以及埃默里大學等機構于2018年共同提出牛津通用文件布局方法(Oxford Common File Layout,OCFL)[11, 17]。OCFL以結構化、透明化和可預測的方式對數字對象進行規范化存儲,降低數字對象在存儲結構上對應用程序的依賴;并使用正向增量的版本控制方法對數字對象的版本進行管理和溯源,以提升OCFL解決數字資源存儲的迭代、冗余以及存取效率問題的能力。具體而言,OCFL的關鍵目標[11]表現在:①完整性,具備在沒有額外信息資源的情況下重建存儲庫的能力;②人機可解析性,以確保在沒有原始軟件的情況下可以理解內容;③魯棒性,針對錯誤、損壞和技術遷移的穩健存儲性能;④版本控制,持續記錄保存對象的歷史信息以支持保存對象的更新和更改;⑤可擴展性,具備將內容存儲在各種存儲基礎架構上的能力。
針對數字對象頻繁更新帶來的文件存儲管理問題,OCFL數字對象將內容文件按照版本保存,從而減少對保存內容的讀取操作,降低資源存儲和重建成本,提高讀取效率,增強管理便捷性。OCFL通過規范化的文件存儲結構提升數字資源的可讀性,確保管理者和應用程序能夠快速識別文件布局,實現存儲資源查詢、檢索、解析等一系列操作。針對系統軟件和架構的變化以及數字資源內容的遷移,OCFL可以在數字倉儲功能不完整的情況下,基于保存管理文件內容理解存儲結構,結合簡單的應用程序進行管理[18]。相較于直接使用長期保存應用系統進行存儲,應用系統的更新對使用OCFL作為數字存儲方法的長期保存系統的影響更小,降低了跨度數十年的長期保存活動中系統變化導致的底層存儲修改的成本。
此外,OCFL使用基于正向增量的版本控制方法跟蹤管理數字對象的歷史,更加高效地重建歷史版本,為數字對象版本信息的溯源提供保證。相較于全量版本對每個版本的內容文件分別進行全量存儲,增量版本控制僅儲存版本之間發生更改的文件,可以有效地減少存儲的數據重復,降低存儲空間的壓力。正向增量版本控制法在添加新版本時更為簡便,但在重建最新版本方面需要更多的資源和工作[19-20]。OCFL使用內容尋址技術結合保存管理文件對正向增量版本控制方法進行了改進,不僅利用內容尋址技術中的文件校驗和值進行重復文件存儲的消除[21],還將其作為文件在存儲系統中的標識符和定位器,從而使得OCFL在解決存儲冗余的同時,降低了存儲及重建時的消耗。
綜上,OCFL滿足數字資源存儲對完整性、人機可解析性、魯棒性和版本控制的需求,其以數字對象為基礎的版本控制方法可以支撐科研數據的長期存儲,規范化存儲結構增加可讀性,為遷移和重建等文件讀寫操作提供支持;正向版本控制方法在節省存儲空間的同時還可支持數據的溯源,面對歷史積累下形成的多版本科研數據擁有較好的適配性。除此之外,版本控制和人機可解析性防止了人為和非人為雙方面的錯誤所導致的文件損壞,增強了整個文件系統的魯棒性,保障了數據資源的準確性。
面向大數據環境下的醫學數字資源長期保存需求,中國醫學科學院醫學信息研究所已開展醫學大數據長期保存系統(MedPRES)建設[22]。MedPRES以信息包形式保存資源,并基于全量版本控制方法對保存資源進行統一管理。面對保存數據的持續更新需求,尤其是內容大量重復的新增數據,全量版本控制方法將導致存儲冗余問題,其對多版本數據的存取與溯源較為復雜,增加系統管理成本。為提高MedPRES對科研數據的保存能力,數據密集型科研環境下的數字保存具有以下需求。
(1)以數字對象為單位進行管理。針對不同類型和具有不同文件結構的科研數據,采用以對象為單位的保存方式可有效應對科研數據間的差異性,為數字對象的通用性管理和版本控制提供便利。
(2)具備較強的版本控制能力。科研數據具有迭代更新的需求,為支持數據的跨時間多次存入,數字保存不僅需要保證保存內容的不變性,還要確保數字對象可溯源,較強的版本控制是科研數據連續性和完整性的重要保證。
(3)擁有良好的文件存儲結構。在長期的科學研究過程中,數據需要多次存入和讀取,良好的文件存儲結構可有效降低科研數據的保存、取用和管理開銷。
鑒于OCFL在對象存儲和版本控制方面的優勢,本文基于OCFL的存儲文件結構進行數字資源保存文件系統的設計,以優化MedPRES的版本控制能力及文件存取效率,降低數字保存的存儲空間和應用管理成本。
基于上述對數據密集型科研環境下數字保存的需求分析,設計數字資源保存文件系統,如圖1所示。

數字資源保存文件系統由分類層和對象層組成。分類層用于保存對象的分類存儲和管理,第一級對應數據委托方信息,第二級對應數據類型(如科技文獻或科學數據等);對象層由數字資源保存對象組成,每個數字對象只屬于一個分類。數字資源保存對象是一個由文件組成的樹狀層次結構,也是構成保存文件系統的重要部分。每個樹狀層次結構最上級的位置為對象根目錄,對象根目錄在數字倉儲中由分類層節點和對象層節點鏈接形成的路徑為該對象在保存文件系統中的URI,每個數字對象都對應一份數據保存協議,同一份協議下多次保存的數據都屬于同一個數字對象包含范圍內的數字資源。
數字對象中包含3個部分,即摘要文件、保存管理文件及內容文件。其中,內容文件以版本目錄的形式存儲,保存管理文件用于管理內容文件,摘要文件確保保存管理文件在每次版本變化之間不會被修改。保存管理文件中的對象信息用于標識和管理數字資源保存對象的基本信息,是對保存對象的描述;版本信息用于管理各個版本的保存內容,每個版本存儲的內容文件對應一份版本信息進行管理,是對版本的描述記錄。
圖2展示了包含一個版本信息的對象結構。其中,preservation是保存管理文件,用于管理和記錄版本目錄中各文件的結構內容和版本變化。preservation.digest是不變性校驗文件,其中存儲了preservation文件對應的校驗值,用于保證保存管理文件的數據真實性和不變性。版本文件夾v1屬于版本目錄,其中包含初始版本的內容文件及保存管理文件,為版本控制提供文件結構層級的支持。

數字對象根目錄中的preservation文件為數字對象當前版本的保存管理文件,其中記錄了當前版本中所包含的保存文件信息及其對應的管理信息。對象根目錄的preservation文件與該對象最新版本子目錄下的preservation文件完全相同。在對象根目錄重復存儲的保存管理文件位置固定,可減少查詢最新版本對于版本目錄的遍歷操作開銷。將對應版本的新增資源文件儲存在該版本的版本文件夾下,可在添加新版本時不改變原有文件結構,只需添加新的版本文件夾并修改保存對象根目錄中的保存管理文件,以盡可能地避免對數字資源的保存位置進行操作。對于preservation.digest文件中計算校驗值的摘要算法可以根據系統需求進行選擇,校驗值的更新為數字對象版本變化的最后一步,以確保上一次版本變化結束到下一次版本變化開始前保存管理文件的不變性。
保存文件系統采用基于OCFL的正向增量版本控制方法對數字對象進行管理。保存管理文件包括總文件清單和版本文件清單,其中,文件清單由保存文件的校驗和及對應文件的保存路徑或相對路徑組成,校驗和用于標識數字對象中的文件。總文件清單記錄數字對象所有版本中包含的文件信息和實際保存路徑,版本文件清單記錄相應版本包含的文件信息和文件結構。通過文件清單的引入,保存對象的版本恢復不再需要依次遍歷各個版本,而是可以根據版本清單中的記錄直接進行版本恢復,從而避免版本重建成本過高問題。保存管理文件中應包含的基本項如表1所示。

對象信息部分的唯一標識符和最新版本號都用于描述當前保存對象的基本信息狀態。通過唯一標識符確定對應的保存對象,一般為對象根目錄的路徑;通過最新版本號確認保存對象版本狀態,從而節省遍歷版本目錄獲取數字對象版本狀態的成本。協議號與委托方信息用于標識數字對象的權利所屬,保存協議中記錄有保存內容的許可范圍及保存時限等信息。
圖3給出了數字對象結構的示例,該數字對象的初始版本v1包含3個文件,版本v2將文件ch3.pdf重命名為ch4.pdf,并添加與原ch3.pdf完全不同內容的同名新文件ch3.pdf。版本v3對ch2.pdf文件進行了刪除操作。版本v2中新增的文件ch3.pdf與數字對象原有的文件校驗和值不同,而版本v1中的ch3.pdf只進行重命名操作但未改變文件內容,所以按照存儲策略,版本v2的子文件夾中只保存新增的ch3.pdf文件。版本v3因不涉及新增文件,無須在版本文件夾中保存新的文件,只需要新增并更新保存管理文件。

當需要進行數字對象的重建時,版本文件清單中的相對路徑為數字對象的文件保存結構,通過文件對應的校驗和值在總文件清單中查詢文件的實際保存路徑以完成重建。例如,數字對象版本v1中的ch1.pdf文件在版本v2中改變保存位置放在新增的temp文件夾下保存,由于文件本身未做修改,所以無須新增文件存儲和總文件清單,只需在版本文件清單中將ch1.pdf的相對路徑記錄為“[temp/ch1.pdf]”。區別路徑將數字對象邏輯結構和實際存儲結構分離,便于對僅修改數據保存位置或文件名稱而未做內容改變的文件進行重建,從而提高文件結構頻繁變化需求下的數字對象保存能力。
新增版本時,保存管理文件無須改變版本內容部分的原有內容,只需添加新的版本內容信息,并對應更新文件清單部分的屬性條目,使文件儲存結構與保存管理文件內外邏輯統一,增強文件可讀性并減少對已存儲內容的修改。同時,在保存管理文件中保存先前所有版本的內容信息可極大減少版本回退或版本重建時的開銷,從而在確保版本控制的同時,有效提升效率并減少成本。
MedPRES采用Fedora作為底層倉儲,Fedora的樹型存儲結構可以方便地支撐保存文件存儲結構的設計。按照保存管理的對應關系建立“委托方→數據類型→基于協議的保存對象→版本子文件”樹型文件結構(見圖4)。規則清晰的文件保存結構有利于對保存內容的管理,并為保存者提供了良好的可讀性和互操作性。

校驗和是保存管理文件中內容尋址的基礎。在校驗和計算方法的選擇方面,考慮到相比傳統的MD5和SHA1算法,SHA256具有較高的暴力破解抵抗程度,因此選擇更為復雜且安全的SHA256作為內容尋址的文件校驗和計算方法。對于SHA256而言,兩個擁有不同內容的文件具有相同校驗和值的概率為1/2^256(約為10^77),而當文件集數量接近2^128(約為10^38),才開始出現重復的校驗和[21],滿足當前系統的保存需求。
為了減少新版本創建時對于保存管理文件的讀取次數,同時便于保存方查看相關信息,將部分關鍵信息利用Fedora在頁面中進行可視化的展示,如保存管理文件對應的最新版本以及文件清單中的校驗和值。MedPRES中原有的元數據文件為RDF格式,為便于解析,保存管理文件同樣使用RDF格式進行實現。保存管理文件相關內容如圖5所示。

相較于全量版本控制的方法,基于OCFL的保存文件系統提高了多版本的數據資源存取效率。無論是獲取最新版本還是重建所有版本的保存對象,全量版本控制的方法都需要在MedPRES中遍歷同一協議下所有版本的保存資源并找出對應的版本或按照順序依次重建保存內容,通過采用基于OCFL的增量版本控制,僅需調用對象根目錄下的保存管理文件。對于具有V個版本的保存對象,在審核過程中重建保存對象的文件系統調用成本見表2。
可見在數據量規模不大且版本數量較少的情況下,兩種方法遍歷保存管理文件的時間成本差別可以忽略不計。但隨著數字倉儲中對象數量以及版本數量的增加,兩種方法的開銷差距將會越大。由此可見,基于OCFL的保存文件系統設計方案更好地滿足了數字資源的審計需求。
針對數據密集型科研環境下的數字保存需求,本文基于OCFL設計了一套支持對象存儲及版本控制的保存文件系統,并在醫學大數據長期保存環境中進行了實踐探索。設計的保存文件系統增強了對于科研數據的保存管理能力,豐富了數字保存底層文件系統對于上層應用的支持,并有效減少了數據的重復冗余保存。現有的設計仍然存在一定的局限性,如數字對象需要以既定結構保存在數字倉儲中,下一步將針對數字對象分布式存儲等問題開展深入研究。
[1] HEY T,TANSLEY S,TOLLE K. The fourth paradigm:Data-intensive scientific discovery[EB/OL].[2021-11-25].https://www.microsoft.com/en-us/research/publication/fourth-paradigm-data-intensive-scientific-discovery/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fcollaboration%2Ffourthparadigm%2F.
[2] 劉艷紅,羅健. 數據密集型科學環境下的情報服務與發展[J]. 圖書與情報,2013(6):105-108.
[3] 柯平,袁珍珍,胡娟. 高端交流平臺需要強化國家科技知識資源建設[J]. 數字圖書館論壇,2021(3):17-26.
[4] 張智雄. 數字資源長期保存技術的研究與實踐[M]. 北京:國家圖書館出版社,2015.
[5] 彭鑫,鄧仲華. 數據密集型科研環境下的科研數據管理框架研究[J]. 數字圖書館論壇,2017(7):61-67.
[6] 高凡,吳振新,付鴻鵠,等. 數字資源長期保存:研究進展回顧與展望——iPRES 2019國際會議綜述[J]. 信息資源管理學報,2020,10(2):118-127.
[7] LEE C A. Open archival information system(OAIS)reference model[J]. Encyclopedia of Library and Information Sciences,2010(3):4020-4030.
[8] 董曉莉,張煒. 基于本體的數字資源長期保存分級存儲管理研究[J]. 圖書館學研究,2017(23):52-58,64.
[9] 王敬,王彥兵,樊向偉. 國外科研數據知識庫元數據方案的調研與分析[J]. 大學圖書情報學刊,2021,39(1):127-134.
[10] 黃鑫. 基于服務內容的科學數據服務用戶滿意度研究[D]. 武漢:武漢大學,2017.
[11] HANKINSON A,BROWER D,JEFFERIES N,et al. The Oxford common file layout:a common approach to digital preservation[J]. MDPI,2019,7(2):1-11.
[12] KUNZE J,SCANCELLA J,ADAMS C,et al. The BagIt File Packaging Format(V1.0)[EB/OL].[2021-11-25]. http://ftp.naist.jp/pub/IETF/RFC/pdfrfc/rfc8493.txt.pdf.
[13] 吳振新,付鴻鵠,王玉菊,等. 長期保存系統數據存儲管理策略研究與應用[J]. 圖書館雜志,2017,36(9):75-81.
[14] 張乃帥,孫超. 北京大學圖書館長期保存系統建設與探索[J]. 大學圖書館學報,2019,37(2):62-66.
[15] 白如江,冷伏海. “大數據”時代科學數據整合研究[J]. 情報理論與實踐,2014,37(1):94-99.
[16] 黃鑫,鄧仲華. 數據密集型科學研究的需求分析與保障[J]. 情報理論與實踐,2017,40(2):66-70,79.
[17] JEFFERIES N,BREDENBERG K,DAPPERT A. Aligning the eARK4ALL Archival Information Package and Oxford Common File Layout Specifications[EB/OL].[2021-11-25]. https://ipres2019.org/static/pdf/iPres2019_paper_45.pdf.
[18] HANKINSON A,JEFFERIES N,METZ R,et al. Oxford Common File Layout Specification[EB/OL].[2021-11-25]. https://ocfl.io/1.0/spec/.
[19] 王棟,邊根慶,李睿堯. 一種基于增量存儲的多副本文件版本控制方法[J]. 物聯網技術,2017,7(9):73-75.
[20] 張蓮,李京,劉煒清. 云同步系統中采用增量存儲的版本控制技術研究[J]. 小型微型計算機系統,2015,36(3):427-432.
[21] ANDERSON R. The Moab Design for Digital Object Versioning[J]. Code4Lib Journal,2013(21):1-30.
[22] 胡佳慧,錢慶,方安,等. 醫學大數據長期保存系統的設計與實現[J]. 中華醫學圖書情報雜志,2019,28(9):18-25.
Design of Digital Resource Preservation File System Based on OCFL
YAO KuanDa FANG An YANG ChenLiu WANG Lei HU JiaHui
( Institute of Medical Information, Chinese Academy of Medical Sciences & Peking Union Medical College, Beijing 100020, P. R. China )
Aiming at the long-term preservation requirements of scientific research data in data-intensive scientific research environment, this paper designs a digital resource preservation file system that supports object storage and version control based on the Oxford Common File Layout method. The application implementation and effect analysis in MedPRES show the effectiveness of the designed system.
Digital Preservation; OCFL; Data-intensive Scientific Environment; File Storage; Version Control
(2021-11-20)
G250
10.3772/j.issn.1673-2286.2021.12.009
姚寬達,方安,楊晨柳,等. 基于OCFL的數字資源保存文件系統設計[J]. 數字圖書館論壇,2021(12):58-64.
符,不同版本的ch3.pdf文件對于文件系統而言是擁有不同校驗和的不同版本子目錄下的ch3.pdf同名文件。同一文件在總文件清單和版本文件清單中存儲的路徑各不相同。總文件清單中存入的是保存路徑,保存路徑是指文件相對于該保存對象根目錄的文件路徑。版本文件清單中存入的是文件的相對路徑,相對路徑是指數據在存檔數據包中的相對位置,屬于邏輯路徑。例如,版本v2中ch3.pdf文件在總文件清單中為“fb2f...71be: [v2/ch3.pdf]”,但在版本文件清單中校驗和部分相同,路徑部分為“[ch3.pdf]”。
姚寬達,男,1993年生,碩士,研究實習員,研究方向:醫學數據分析與知識發現、醫學數字資源長期保存。
方安,男,1976年生,博士,研究館員,研究方向:醫學知識組織與數字圖書館。
楊晨柳,女,1991年生,碩士,助理研究員,研究方向:醫學信息安全管理、醫學數字資源長期保存。
王蕾,女,1989年生,碩士,助理研究員,研究方向:信息技術、大數據處理。
胡佳慧,女,1987年生,博士,副研究員,通信作者,研究方向:醫學科研數據管理與服務研究、醫學數據分析與知識發現,E-mail:hu.jiahui@imicams.ac.cn。
*本研究得到國家社會科學基金項目“突發公共衛生事件網絡信息資源的知識圖譜構建研究”(編號:21CTQ016)資助。