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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux文件系统F2FS,文件系统F2FS也将造福SSD

發布時間:2023/12/31 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux文件系统F2FS,文件系统F2FS也将造福SSD 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

F2FS有什么背景讓華為大肆宣揚呢?

F2FS (Flash Friendly File System) 是三星做的一個開源的針對于flash

memory的文件系統,已經被Linux merge到了kernel中,專門為基于 NAND 的存儲設備設計的新型開源 flash

文件系統。特別針對NAND 閃存存儲介質做了友好設計。F2FS 于2012年12月進入Linux 3.8

內核。目前,F2FS僅支持Linux操作系統。

由三星在NAND閃存上使用,它的特點是相較EXT3/4分區格式,顯著提高了4K性能,也就是小文件的讀取速度。

【F2FS與SSD的緣分】

針對SSD的各種特性,F2FS文件系統做了一些針對性的優化。

1)采用Log-structured File

System的形式。因為這種形式把整個存儲設備當作一個環形log一樣順序的寫,這符合SSD順序寫的特性。整個文件系統被分為了以segment為單位的區間,每個segment固定大小為2MB。一個section由多個連續的segment組成,一個zone由多個section組成。默認情況下section和zone的size被設定為一個segment的size,但可以隨便改。

align with the zone size

|->

align with the segment size

_________________________________________________________________________

| ?| ?| ?Segment ?|

Node ?| ?Segment ?|

|

| Superblock | Checkpoint |

Info. ?| ?Address ?|

Summary ?| Main |

| ?(SB)

| ?(CP)

| Table (SIT) | Table (NAT) |

Area (SSA) | ?|

|____________|_____2______|______N______|______N______|______N_____|__N___|

. ?.

.

.

.

.

.__________________________________________

|_Segment_|_..._|_Segment_|_..._|_Segment_|

. ?.

._________._________

|_section_|__...__|_

. ?.

.________.

|__zone__|

2)解決Wandering Tree Problem。首先定義Wandering Tree

Problem:每一次寫操作都要寫入一個新的位置,在更新inode存儲中,要更新direct

table的指針也需要重寫,這個page也要寫到新的block中,而上一級的indirect

table因此也需要重寫,這樣一連串的重寫會一直走到樹根。同時inode map和checkpoint

block也需要重寫。他依然采用了經典的inode,但做了一個Node Address

Table(NAT),這個表是扁平化的,包含了所有node

block的位置,可以認為inode里存儲的是邏輯地址,NAT轉換為真實的物理地址。

3)Block分配。它將數據和node劃分為cold、warm、hot三種類型,共計6種形式。

這些數據被分配在6個log中。他把appended

data當作cold,因為只寫一次就好,把更新的data當作warm,因為這到后來需要garbage

collection。這就充分利用了SSD的特性:GC的時候,由于Warm中的data經常需要更新,因此里面包含了大量的invalid

page,這是桌重要找的地方。

4)Garbage Collection

兩種策略:Greedy和Cost-benefit。Greedy就找invalid

pages最多的block來當victim,而Cost-benefit算法不但要考慮invalid pages,還要考慮segment

age,以延長SSD讀寫壽命。

附錄:【關于inode】

inode是什么?

理解inode,要從文件儲存說起。

文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當于0.5KB)。

操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個

sector組成一個 block。

文件數據都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為"索引節點"。

每一個文件都有對應的inode,里面包含了與該文件有關的一些信息。

更多內容,請關注微信公眾號:存儲隨筆,ID:

Memory-logger,

總結

以上是生活随笔為你收集整理的linux文件系统F2FS,文件系统F2FS也将造福SSD的全部內容,希望文章能夠幫你解決所遇到的問題。

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