跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 F二FS 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
F二FS
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''F 二 FS'''(英語:'''Flash-Friendly File System''')是一種緊閃記憶體檔案系統,主要由金載極(韓語:김재극)佇三星集團研發,適合呢 Linux 核心使用。 這个檔案系統的起初是為著 NAND 快閃記持體的儲存裝置設計(諸如固態硬碟、eMMC 和 SD 卡), 遮裝置廣泛存在佇家己裝置到侍服器領域。 三星應用日誌結構檔案系統的概念,使伊閣較適合用儲存裝置。 ==特性== * 多頭紀錄檔(Multi-head logging) * 著 kha-tá-lok-guh 項的偌重雜鬥表 * 靜態 / 動態冷熱的資料分離 * 自適應記錄方案 * 會當組態操作單元 * 雙檢查點 * 踅翻頭佮前滾恢復 * Heap-style 塊分配 * TRIM / FITRIM 支援 * 連線的檔案系統 / 檔案碎片整理 * 行內 xattrs / 資料 / kha-tá-lok-guh * 離線檔案系統檢查(檢查佮修復無一致)) * 線性一致性 * 檔案系統級加密 * 離線調整大細 * 內部定期資料閣整理過 * 範圍緊取 ==設計的== ===磁碟上布局=== F 二 FS 將規个卷分做幾个葩(segment), 每一个階段固定做二 MB。一个節(section)有連紲的段組成,一个區(zone)由一組節組成。預設的情況下,予人設定做仝款的大細,毋過使用者會當用 ` mkfs ` 輕鬆修改大細。 F 二 FS 將規个卷劃分做六个區域,除了有夠塊的(superblock)以外的所有的區攏由濟个段組成,如後所講。 '''有夠塊的(Superblock,SB)''' : 有夠塊佇分割區起始處,共有兩个副本以避免檔案系統歹去。伊包含基本的分割區資訊佮一寡預設的 F 二 FS 參數。 '''檢查點(Checkpoint,CP)''' : 檢查點包含檔案系統資訊,有效 NAT / SIT 集的點陣圖,孤立 inode 列表,猶閣有當時活動段的挽欲條目。 '''段資訊表(SIT)''' : 段資訊表包含主區域塊的有效塊數量佮有效點陣圖。 '''儉點位址表(NAT)''' : 節點資訊表主區域節點箍的位址表。 '''段挽要區(SSA)''' : 段挽要區包含的條目包含主區域資料佮節點箍的所有者資訊。 '''主區域(Main Area)''' : 主區域包含檔案佮 kha-tá-lok-guh 資料佮其實索引𤆬(indices)。 為著避免檔案系統佮緊閃記憶體之間的對齊錯誤,F 二 FS 將 CP 的起始塊位址佮段大細對齊。伊閣迵過 SSA 區域中預留一寡段來共「主區」起先地址佮區的大細對齊。 ===元資料結構=== F 二 FS 使用檢查點方案來維護檔案系統的完整性。咧掛載時陣,F 二 FS 頭先試看覓咧掃描 CP 區域來走揣最後的有效檢查淡薄仔資料。為著欲縮短掃描時間,F 二 FS 干焦使用 CP 的兩个副本。其中一个總是指示上尾仔有效資料,這予人叫做影副本機制。除了 CP 以外,NAT 和 SIT 嘛用影副本的機制。為著保證檔案系統的一致性,彼每一个 CP 指向的 NAT 和 SIT 副本攏是有效的。 ===索引結構=== 關鍵的資料結構是「節點」。 佮傳統的檔案結構類似,F 二 FS 有三種類型的節點:inode,直接節點,間接節點。F 二 FS 將四 KB 分配予一个 inode 塊,其中包括九百二十三个資料角索引(data block indices), 兩个直接節點指標,兩个間接節點指標,以及一个 double 間接節點指標,如後所講。一个直接節點箍包含一千空一十八个資料角索引,來接節點一箍包含一千空一十八个節點開始。所以,一个 inode 塊(即一个檔案)涵蓋: ` ` ` 四 KB × ( 九百二三 + 二 × 一千空一十八 + 二 × 一孵空一百八十二 + 一孵空一百八十三 )=三更九四 TB ` ` ` 注意,所有的節點攏經 NAT 對映,所以每一个節點的位置攏經 NAT 轉換。為著欲緩解漫遊樹的問題,F 二 FS 會當切斷葉資料寫入引起的節點更新傳播。 ===kha-tá-lok-guh 結構=== 一个 kha-tá-lok-guh 條目(dentry)占用十一个位元組,由以下屬性組成。 一个 kha-tá-lok-guh 條目箍由及檔名組成。伊有一个點陣圖用於記錄逐个人 kha-tá-lok-guh 條目敢有效。一个 kha-tá-lok-guh 條目箍占用四 KB,結構如下: ` ` ` 目睭抹著肉 ( 四 K )=位孵 ( 二十七字石 ) + 保留 ( 三字爿 ) + 目屎礐仔 ( 十一 * 兩百十四字石 ) + 文件名 ( 八 * 兩百十四字石 ) ` ` ` F 二 FS 為 kha-tá-lok-guh 結構結構足濟級雜鬥表,每一級有一个包含專用雜鬥桶數的雜鬥表,如下所示。「A ( 二 B )」表示桶包含兩个資料角。 '''項''' : A 表示桶(bucket) : B 表示塊(block) : N 表示 kha-tá-lok-guh 雜鬥上大的深度(MAX \ _ DIR \ _ HASH \ _ DEPTH) ` ` ` level # 零 A ( 二 B ) level # 一 A ( 二 B )-A ( 二 B ) level # 二 A ( 二 B )-A ( 二 B )-A ( 二 B )-A ( 二 B ) . . . level # N / 二 A ( 二 B )-A ( 二 B )-A ( 二 B )-A ( 二 B )-A ( 二 B )-. . .-A ( 二 B ) . . . level # N A ( 四 B )-A ( 四 B )-A ( 四 B )-A ( 四 B )-A ( 四 B )-. . .-A ( 四 B ) ` ` ` 當 F 二 FS 佇一个 kha-tá-lok-guh 中揣一个檔名,頭先算出該檔名的雜鬥值,然後 F 二 FS 掃描級別 # 零的雜鬥表一走揣由檔名和其 inode 編號組成的 kha-tá-lok-guh 條目。若無揣著,F 二 FS 繼續走揣級別 # 一个雜鬥表示。F 二 FS 通過這方法逐級掃描由一至 N 的逐重雜鬥表。佇每一層內底,F 二 FS 干焦掃描由以下等式確定的一个桶(bucket), 就按呢展現出 O ( log ( # of files ) ) 的複雜度。 ` ` ` 鋪排 # n 中愛學校內底(bucket)ua-sá-bih=( 散列值 ) % ( 鋪排 # n 中的桶刀 ) ` ` ` 佇建立檔案的時陣,F 二 FS 揣著一个會當涵蓋檔名的空的連續槽。F 二 FS 以仝款的方式由一至 N 走揣各級雜鬥表中的空槽。 ===預設的一塊分配=== 咧執行的時陣,F 二 FS 佇咧「就是主要的區域:」 內管理六个活動紀錄檔:熱 / 暖 / 冷節點佮熱 / 暖 / 冷的資料。 基於紀錄檔的檔案系統(LFS)有兩種空間管理方案:穿插記錄(threaded log)佮複製並壓縮(copy-and-compaction)。 後者嘛叫做清理(cleaning), 真適合有良好順序寫入去效能的裝置,因為空閒空間總用佇寫入新的資料。毋過伊會發生高利用率的時陣遭遇「摒」的開銷。穿插記錄是受著隨機寫入效能的影響,但是無「摒」過程。F 二 FS 採用混合方案,預設的採用「複製並壓縮」,毋過根據檔案系統的狀態會策略動態變更為「穿插記錄」方案。 為使 F 二 FS 佮日本快閃記憶內底的儲存保持一致,F 二 FS 以一个節(section)為單位分配一个段(segment)。 F 二 FS 預期節的大細佮 FTL 中的糞埽收集單元大細仝款。為考慮 FTL 中的對映粒度,F 二 FS 共活動紀錄檔的每一个節分配予儘可能多的無仝區域。FTL 會當根據其對映粒度共活動紀錄檔資料寫入一个單位配置。 ===清理流程=== F 二 FS 佇需要時和後台無咧振動時行清理。揤需要清理佇咧無夠的空縫分段(segments)服務 VFS 呼叫時觸發。後台清理器由一个核心執行緒執行,佇系統閒時間靠發清理作業。 F 二 FS 支援兩種受者選擇策略:貪婪、成本效益演算法。佇咧貪婪演算法中,F 二 FS 選擇有上細膩的效角數的受者段。佇成本效益演算法內底,F 二 FS 根據段的年齡佮有效角數量選擇受者段,以解決貪婪演算法中存在的紀錄檔塊掣動問題。F 二 FS 使用貪婪演算法進行揤需清理,後台清理器使用成本效益演算法。 為著辨識受著人段中的資料敢有效,F 二 FS 管理一个點陣圖,其中用一个位元表示一塊塊的有效性,崁主區域所有的塊的位元流組成做該點陣圖。 ==相關條目== * 檔案系統的對比 * 檔案系統列表 ==參考資料== ==外部連結== * F 二 FS 文件佇咧 kernel . org(英文) [[分類: 待校正]]
返回到「
F二FS
」。