日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

F2FS文件系统一 设计背景及框架结构

發布時間:2023/12/31 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 F2FS文件系统一 设计背景及框架结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、F2FS文件系統簡介

1、背景:

  F2FS (Flash Friendly File System)?是專門為基于?NAND?的存儲設備設計的新型開源?flash?文件系統。

特別針對NAND?閃存存儲介質做了友好設計。F2FS?于2012年12月進入Linux 3.8?內核。目前,F2FS僅支

持Linux操作系統。

2、解決的問題:

(1)LFS(Log-strctured File System)

  為管理磁盤上的大的連續的空間以便快速寫入數據,將?log?切分成?Segments,使用?Segment Cleaner?

從重度碎片化的?Segment?中轉移出有效的信息,然后將該?Segment?清理干凈用于后續寫入數據。

(2)wandering tree?的滾雪球效應

  在?LFS?中,當文件的數據塊被更新的時候是寫到?log?的末尾,該數據塊的直接指針也因為數據位置的改

變而更改,然后間接指針塊也因為直接指針塊的更新而更新。按照這種方式,上層的索引結構,如inode、inode

map?以及?checkpoint block?也會遞歸地更新。這就是所謂的?wandering tree?問題。為了提高性能,數據塊更新

的時候應該盡可能地消除或減少wandering tree?的更新節點傳播。

二、F2FS layout:

  F2FS?將整個卷切分成大量的?Segments,每個?Segment?的大小是固定的2 MB。連續的若干個Segments?

構成?Section,連續的若干個?Sections?構成?Zone。默認情況下一個?Zone?大的大小是一個?Section,而一個?

Section?的大小是一個?Segment。F2FS?將整個卷切分成6個區域,除了超級塊(Superblock,SB)外,其余每個

區域都包含多個Segments。其結構如下圖所示:

三、各個結構介紹(Block/Segments......):

可以參考kernel-4.9\Documentation\filesystems\f2fs.txt

1、Blocks:F2FS文件系統的所有塊大小都是4KB;

2、Segments:

  連續的Blocks集合成Segments,一個Segment的大小是512個Blocks(2MB),每個Segment都有一個

Segment Summary Block元數據結構,描述了Segment?中的每個Block的所有者(該塊所屬的文件及塊

在文件內的偏移)。Segment Summary主要用于在執行Cleaning操作時識別哪些Blocks中的數據需要轉

移到新的位置,以及在轉移之后如何更新Blocks的索引信息。一個Block就可以完全存儲512個Blocks的

summary信息,每個blocks都有一個1 bit的額外空間用于其它目的。

3、Superblock (SB):

It is located at the beginning of the partition, and there exist two copiesto avoid file system crash. It contains basic partition information and somedefault parameters of f2fs

  與其他文件系統不同,F2FS?清晰地區分出傳統超級塊中的只讀部分(Superblock,SB)和可修改部分

(Checkpoint,CP),存放在兩個單獨的數據結構(BP?和?CP)中。

  F2FS?的?f2fs_super_block?存儲在設備的第二個塊中,僅包含只讀數據,稱為超級塊?Superblock (SB)?。

一旦文件系統創建,SB?的信息就不會再改變,SB?描述了文件系統有多大、Segment?有多大、Section有多大、

Zone?有多大以及分配了多少空間給各個部分的“元數據”區域以及其他少量的細節信息。

  SB?位于文件系統分區的開頭,有兩個備份以避免文件系統?crash?無法恢復的情況發生。它包含基本的分區

信息和默認的?F2FS?參數。

?

4、Checkpoint (CP):

It contains file system information, bitmaps for valid NAT/SIT sets, orphaninode lists, and summary entries of current active segments.

  文件系統超級塊中的可寫信息,如空閑空間總量、下一個將要寫入數據的Segment的地址以及其他可更改

信息存儲在?f2fs_checkpoint?中,稱為?Checkpoint (CP)。“Checkpoint”是一種元數據類型,允許使用兩個位置

(two-location)方法實現?copy-on-write——有兩個相鄰的?Segments,每個都存儲一個?Checkpoint,但僅有一個

是當前有效使用的。Checkpoint?包含一個版本號,因而當文件系統掛載的時候,兩個Checkpoint?都被讀取,但

是使用的是僅有較高的版本號的Checkpoint?作為有效使用的Checkpoint。

?

5、Segment Information Table (SIT):

It contains segment information such as valid block count and bitmap for thevalidity of all the blocks.

  SIT?為每個?Segment?存儲74字節的信息且與?Segment Summaries?分離,因為它修改的頻率更高。它主要

用來跟蹤哪些數據塊仍然是有效的(有效塊個數以及數據塊有效性?bitmap),因而當?Segment?中無有效塊時,就

可以回收該?Segment,或者當該?Segment?中有效數據塊很少的時候進行?clean?操作。

?

6、Node Address Table (NAT)

It contains summary entries which contains the owner information of all thedata and node blocks stored in Main area.

?

7、Main Area

It contains file and directory data including their indices.

8、At runtime, F2FS manages six active logs inside "Main" area: Hot/Warm/Cold node
and Hot/Warm/Cold data:

- Hot node contains direct node blocks of directories. - Warm node contains direct node blocks except hot node blocks. - Cold node contains indirect node blocks - Hot data contains dentry blocks - Warm data contains data blocks except hot and cold data blocks - Cold data contains multimedia data or migrated data blocks

?

作者:frank_zyp
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。
本文無所謂版權,歡迎轉載。

總結

以上是生活随笔為你收集整理的F2FS文件系统一 设计背景及框架结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。