IT之家 10 月 11 日消息,PuzzleFS 號(hào)稱(chēng)是“下一代 Linux 容器文件系統(tǒng)”,其采用 Rust 語(yǔ)言編寫(xiě),具有“快速鏡像構(gòu)建”、“直接掛載支持”、“內(nèi)存安全保證”等功能。
思科開(kāi)發(fā)者 Ariel Miculas 今日在內(nèi)核郵件列表中,發(fā)布了用 Rust 寫(xiě)的 PuzzleFS 文件系統(tǒng)驅(qū)動(dòng),以征求其他開(kāi)發(fā)者的意見(jiàn),目前這一驅(qū)動(dòng)程序處于“概念驗(yàn)證”階段。
IT之家轉(zhuǎn)錄 Ariel Miculas 介紹 PuzzleFS 特性如下:
PuzzleFS 是一種“只讀”的文件系統(tǒng),與 Open Container Initiative (OCI) v2 image specification 的設(shè)計(jì)目標(biāo)相符,它使用內(nèi)容定義進(jìn)行分塊,并且使用內(nèi)容尋址的數(shù)據(jù)存儲(chǔ),旨在解決現(xiàn)有 OCI 格式的限制。
OCI 鏡像規(guī)范的第一個(gè)版本存在許多問(wèn)題,這些問(wèn)題的根源都是來(lái)自依賴(lài) tar 存檔來(lái)保存文件系統(tǒng)中的層,事實(shí)上 tar 不適合解決容器文件系統(tǒng)問(wèn)題。
PuzzleFS 旨在解決 tar 的問(wèn)題。文件系統(tǒng)鏡像本身由一組放置在底層文件系統(tǒng)上的文件組成。與 OCI 鏡像格式一樣,存在一個(gè)頂級(jí)
index.json
文件,其中包含一組標(biāo)簽,每個(gè)標(biāo)簽代表某一個(gè)版本的文件系統(tǒng),并指向一個(gè)清單文件(manifest file)。清單文件又指向鏡像配置和存儲(chǔ)在實(shí)際鏡像層中的數(shù)據(jù)。其他所有內(nèi)容都存儲(chǔ)為blobs/sha256
目錄中的一組 blob。文件系統(tǒng)中的大多數(shù)數(shù)據(jù)都被分成可變大小的塊(chunk),以?xún)?nèi)容的 SHA256 哈希作為文件名來(lái)存儲(chǔ)為 blob。這個(gè)分塊動(dòng)作本身是使用 FastCDC 算法進(jìn)行的,該算法查找 "切割點(diǎn)(cut points)",把數(shù)據(jù)流分為不同大小的 blob。任何一個(gè)特定的流(例如文件的內(nèi)容)都可以分成五個(gè)或五十個(gè)塊,這取決于如何確定這些切割點(diǎn);然后,每個(gè)塊都以不同的 blob 方式落在
blobs/sha256
下,并將其哈希添加到清單中。
參考
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。