<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=F%E4%BA%8CFS</id>
	<title>F二FS - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=F%E4%BA%8CFS"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=F%E4%BA%8CFS&amp;action=history"/>
	<updated>2026-04-10T13:21:10Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=F%E4%BA%8CFS&amp;diff=421387&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=F%E4%BA%8CFS&amp;diff=421387&amp;oldid=prev"/>
		<updated>2025-08-22T13:47:11Z</updated>

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