Can you summarize the following document?
        
  

  F2FS將整個卷分成多個段(segment),每個段固定為2 MB。一個節(section)由連續的段組成,一個區(zone)由一組節組成。預設情況下,節與區被設定為相同的大小,但使用者可以用codice_1輕鬆修改大小。  F2FS將整個卷劃分為六個區域,除了超級塊(superblock)以外的所有區都由多個段組成,如下所述。  為了避免檔案系統與快閃記憶體之間的對齊錯誤,F2FS將CP的起始塊地址與段大小對齊。它還通過在SSA區域中預留一些段來將“主區”起始塊地址與區的大小對齊。

  F2FS使用檢查點方案來維護檔案系統的完整性。在掛載時,F2FS首先嚐試掃描CP區域來查詢最後的有效檢查點資料。為了縮短掃描時間,F2FS只使用CP的兩個副本。其中一個總是指示最後的有效資料,這被稱為影子副本機制。除了CP之外,NAT和SIT也使用影子副本機制。為了保證檔案系統的一致性,每個CP指向的NAT和SIT副本都是有效的。

  關鍵的資料結構是“節點”。與傳統的檔案結構類似,F2FS有三種型別的節點:inode,直接節點,間接節點。F2FS將4 KB分配給一個inode塊,其中包含923個資料塊索引(data block indices),兩個直接節點指標,兩個間接節點指標,以及一個double間接節點指標,如下所述。一個直接節點塊包含1018個資料塊索引,而間接節點塊包含1018個節點塊索引。因此,一個inode塊(即一個檔案)涵蓋:  注意,所有節點塊都經NAT對映,因此每個節點的位置都經NAT轉換。為了緩解漫遊樹問題,F2FS能夠切斷葉資料寫入引起的節點更新傳播。

  一個目錄條目(dentry)佔用11個位元組,由以下屬性組成。  一個目錄條目塊由及檔名組成。有一個點陣圖用於記錄每個目錄條目是否有效。一個目錄條目塊佔用4 KB,結構如下:  F2FS為目錄結構實現了多級雜湊表,每一級有一個包含專用雜湊桶數的雜湊表,如下所示。“A(2B)”表示桶包含2個資料塊。  當F2FS在一個目錄中找一個檔名時,首先計算出該檔名的雜湊值,然後F2FS掃描級別#0的雜湊表一查詢由檔名及其inode編號組成的目錄條目。如果未找到,F2FS繼續查詢級別#1的雜湊表。F2FS通過此方法逐級掃描由1至N的每層雜湊表。在每一層中,F2FS只需掃描由以下等式確定的一個桶(bucket),因此展現出 O(log(# of files)) 的複雜度。  在建立檔案時,F2FS找到一個能涵蓋檔名的空的連續槽。F2FS以同樣的方式由1至N查詢各級雜湊表中的空槽。

  在執行時,F2FS在“主要區域:”內管理六個活動日誌:熱/暖/冷節點和熱/暖/冷資料。  基於日誌的檔案系統(LFS)有兩種空閒空間管理方案:穿插記錄(threaded log)與複製並壓縮(copy-and-compaction)。後者也稱為清理(cleaning),很適合有良好順序寫入效能的裝置,因為空閒空間總用於寫入新資料。但它會在發生高利用率時遭遇“清理”的開銷。穿插記錄則受到隨機寫入效能的影響,但沒有“清理”過程。F2FS採用混合方案,預設採用“複製並壓縮”,但根據檔案系統的狀態將策略動態變更為“穿插記錄”方案。  為使F2FS與基於快閃記憶體的儲存保持一致,F2FS以一個節(section)為單位分配一個段(segment)。F2FS預期節的大小與FTL中的垃圾收集單元大小相同。為考慮FTL中的對映粒度,F2FS將活動日誌的每個節分配給儘可能多的不同區域。 FTL可以根據其對映粒度將活動日誌資料寫入一個分配單元。

  F2FS在需要時和後臺閒置時進行清理。按需清理在沒有足夠的空閒分段(segments)服務VFS呼叫時觸發。後臺清理器由一個核心執行緒執行,在系統空閒時觸發清理作業。  F2FS支援兩種受者選擇策略:貪婪、成本效益演算法。在貪婪演算法中,F2FS選擇有最小有效塊數的受者段。在成本效益演算法中,F2FS根據段的年齡和有效塊數量選擇受者段,以解決貪婪演算法中存在的日誌塊抖動問題。F2FS使用貪婪演算法進行按需清理,後臺清理器則使用成本效益演算法。  為識別受者段中的資料是否有效,F2FS管理了一個點陣圖,其中用一個位元表示一個塊的有效性,覆蓋主區域所有塊的位元流組成了該點陣圖。
F2FS(英語:Flash-Friendly File System)是一種快閃記憶體檔案系統,主要由金載極()在三星集團研發,適合Linux核心使用。