女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

F2FS文件系統的數據結構

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:Linux閱碼場 ? 2022-09-15 09:06 ? 次閱讀

一、概述

F2FS是Flash Friendly File System的簡稱。該文件系統是由韓國三星電子公司于2012年研發,只提供給運行Linux內核的系統使用,這種文件系統對于NAND閃存類存儲介質是非常友好的。并且F2FS是專門為基于 NAND 的存儲設備設計的新型開源 flash 文件系統。特別針對NAND 閃存存儲介質做了友好設計。F2FS 于2012年12月進入Linux 3.8 內核。目前,F2FS僅支持Linux操作系統

根據內部幾何結構和閃存管理機制(FTL),閃存存儲設備有很多不同的屬性,所以F2FS的設計者增加了多種參數,不僅用于配置磁盤布局,還可以選擇分配和清理算法,優化性能(并行IO提高性能)

F2FS早期開發者為Jaegeuk Kim,當時是三星員工,但是三星自家的機器沒有直接使用F2FS,而是CM開源ROM組有做相關的適配。后來這個開發者被MOTO挖走,于是我們見到了用F2FS的MOTO X系列。后來又去了華為,故而有了全線F2FS的EMUI5.0,號稱流暢度提升20%華為的P9和Mate9都使用F2FS,流暢度明顯提升。當然F2FS倒沒什么版權糾紛,Linux體系下的東西自然遵守開源協定。

對于F2FS,官方文檔和其他博主大都從原理和代碼的角度來分析,我今天會從實戰橫向對比EXT4文件系統的視角,帶你感受真實的F2FS!

二、F2FS架構

F2FS文件系統的數據結構說明:
F2FS使用三種node:inode,直接node,間接node。F2FS分配4KB的空間給一個inode,其中包括929個數據塊索引指針,兩個一級索引塊(直接node)指針,兩個二級索引塊(間接node)指針,以及一個三級索引塊(二級間接node)指針。

一個一級索引塊包含1018個數據塊指針,一個二級索引塊包含1018個一級索引塊指針,一個三級索引塊包含1018個二級索引塊指針。可以索引到一個文件的最大大小是:

4 KB * (929 + 2*1018 + 2*1018*1018 + 1018*1018*1018) := 3.94 TB

F2FS文件系統的標準磁盤布局:
9f10b528-348b-11ed-ba43-dac502259ad0.png
F2FS文件系統的數據結構(node結構):
9fa55124-348b-11ed-ba43-dac502259ad0.png

三、F2FS和EXT4文件系統比較

碎片整理
EXT4文件系統:按照EXT文件系統的作者所說的,在分區的空余空間在2%以上的情況下EXT分區是不會產生碎片的。
F2FS文件系統:為管理磁盤上的大的連續的空間以便快速寫入數據,使用Segment Cleaner從重度碎片化的Segment中轉移出有效信息,然后將該Segment清理干凈用于后續寫入數據。

占用空間
通過DiskInfo可以明確的顯示,當Data分區的文件系統格式分別為EXT4和F2FS時所占空間的大小對比:9ffa8824-348b-11ed-ba43-dac502259ad0.png從Android系統的角度來看,相同的安卓ROM包,在F2FS文件系統下占用閃存的容量會多一些。

F2FS文件系統在每一個文件索引節點塊中包含了如下f2fs_inode和node_footer。其中f2fs_inode結構中的數據索引區又存在923個數據塊指針,每個指針對應一個大小為4KB的數據塊,但是在通常情況下系統文件索引并不需要用到所有數據塊,在最極端情況下文件大小為4KB時,只需要用到一個數據塊,剩下的數據塊則處于閑置狀態,這就造成了存儲容量在一定程度上的空間浪費,也就是同樣一部手機,在相同的安卓系統中,F2FS文件系統下,閃存容量的占用會相對高一些。

數據恢復
數據恢復機制和數據寫入磁盤的方式密切相關。對于Linux系統,其頁緩存機制采用推遲寫入的方式寫入數據,在內存中被標記為臟的頁并不會立即寫回磁盤,以確保系統的性能。因此,存在于內存頁中的數據在系統發生意外情況時就會丟失。

對于一種情況,即sync操作時發生在數據寫入磁盤后而在元數據寫入磁盤前的系統意外,其數據已經寫入磁盤但由于沒有索引而無法找回,而F2FS提供了相應的恢復機制找回這些文件數據。

集成情況
現在不管是手機或者其他Android設備集成F2FS比較普遍,但是早期為了兼容性和性能,會把data分區使用F2FS,而系統和緩存都還是EXT4,這樣F2FS只會影響到第三方應用一段時間內首次讀寫文件時的速度,這只是使用流暢度的一部分而已。此外比較重要的系統和較小的緩存分區仍采用EXT4。

讀寫速度
a062a18e-348b-11ed-ba43-dac502259ad0.png左邊EXT4文件系統, 右邊F2FS文件系統

連續讀寫:
二者的連續讀寫性能沒有太大的變化。

隨機讀寫:
F2FS比EXT4的隨機讀取性能提升了25%左右;但是隨機寫入速度,F2FS比EXT4文件系統有了飛躍的提升,隨機寫入性能提升了三倍還多。

由于隨機寫入的性能大大提升了,在類似軟件安裝和系統重啟中,要大量寫入小文件的情況下,F2FS文件系統下有非常喜人的變化。

四、性能測試

使用工具AdroBench.apk和安兔兔測試

a09a1e3e-348b-11ed-ba43-dac502259ad0.png

不同場景測試

a0e3545a-348b-11ed-ba43-dac502259ad0.png

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    7095

    瀏覽量

    124969
  • 開源
    +關注

    關注

    3

    文章

    3615

    瀏覽量

    43492
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40607

原文標題:橫向對比EXT4,帶你感受真實的Linux文件系統F2FS

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    用于管理文件方法和數據結構案例分析

    文件系統是在存儲設備中(SD Card、NAND Flash…)組織文件的方法和數據結構,用于管理文件。AWorks定義了文件系統的通用接口
    的頭像 發表于 08-03 09:28 ?9034次閱讀

    面向AWorks框架管理文件的方法和數據結構

    文件系統是在存儲設備中(SD Card、NAND Flash…)組織文件的方法和數據結構,用于管理文件。AWorks定義了文件系統的通用接口
    的頭像 發表于 06-05 09:18 ?5842次閱讀
    面向AWorks框架管理<b class='flag-5'>文件</b>的方法和<b class='flag-5'>數據結構</b>

    基于Buildroot的Linux系統構建之根文件系統

    基本的Linux根文件系統是Unix文件夾目錄層次結構,skeleton是構建根文件系統的基礎。   skeleton配置入口:   System configuration --
    發表于 04-01 10:46 ?2850次閱讀

    嵌入式Linux啟動時間優化的秘密之二文件系統

    +SquashFS 對于塊文件系統,特性各異: ext4:最適合較大的分區,良好的讀寫性能。 xfs,jfs,reiserfs:在某些讀或寫場景中也可能很好。 btrfs,f2fs:利用閃存塊設
    發表于 04-03 17:28 ?5423次閱讀
    嵌入式Linux啟動時間優化的秘密之二<b class='flag-5'>文件系統</b>

    Linux平臺/proc虛擬文件系統詳解

    Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統(即虛擬文件
    發表于 06-08 10:49 ?1819次閱讀
    Linux平臺/proc虛擬<b class='flag-5'>文件系統</b>詳解

    FATfs文件系統解析

    文件系統所用的數據結構和各種函數聲明,再就是diskio.h,了解與介質相關的數據結構和操作函數。ff.c這個文件相對較大,可以在最后將所實現的函數大致掃描一遍,之后根據用戶應用層程序
    發表于 07-18 11:13

    嵌入式文件系統μC/FS的日志使用

    ,基于FAT的文件系統解決方案可能是增加系統可靠性的一個的來源,為了提供掉電保護,FAT實現需配備日志模塊。日志模塊通過將更改的意圖記錄在 “日記”數據結構中,來跟蹤尚未提交文件系統
    發表于 09-19 16:41

    怎樣將userdata區文件系統f2fs換為Ext4呢

    怎樣將userdata區文件系統f2fs換為Ext4呢?有什么方法嗎?
    發表于 02-17 07:35

    怎樣將RK3399中data文件系統分區的格式由原先的f2fs格式變至ext4格式呢

    最近應需求修改了AIO-3399C中/data文件系統分區的格式,由原先的f2fs格式變至ext4格式。可是明明f2fs格式分區的性能與IO讀取速率都更優于ext4。現將鄙人的一些小心得分享于大家
    發表于 06-24 10:37

    Linux虛擬文件系統實現技術探討

    文章論述了 Linux 文件系統的邏輯關系和邏輯結構,對VFS 中幾個主要的數據結構進行了分析,剖析了Linux 文件系統 中一個物理文件系統
    發表于 06-08 17:51 ?32次下載
    Linux虛擬<b class='flag-5'>文件系統</b>實現技術探討

    STM32F10x_3.5版固件的模塊、數據結構和索引、文件列表等資料

    本文檔的主要內容詳細介紹的是STM32F10x_3.5版固件的模塊、數據結構和索引、文件列表等資料。
    發表于 10-17 16:53 ?0次下載
    STM32<b class='flag-5'>F</b>10x_3.5版固件的模塊、<b class='flag-5'>數據結構</b>和索引、<b class='flag-5'>文件</b>列表等資料

    可以了解的Linux 文件系統結構

    Linux中的文件是什么?它的文件系統又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 Linux 中文件系統是標準結構的嗎?
    發表于 04-27 14:06 ?813次閱讀
    可以了解的Linux <b class='flag-5'>文件系統</b><b class='flag-5'>結構</b>

    Debian可以從F2FS文件系統運行了

    不少用戶希望通過將 Flash-Friendly File-System (F2FS) 作為根文件系統來啟動和運行 Debian,現在這個目標將有望達成了。
    的頭像 發表于 01-13 14:37 ?2829次閱讀

    事務性日志結構文件系統的設計及實現

    本文發表于FAST 2022,探討日志結構文件系統層面的事務支持。本文主要對F2FS進行了支持事務的修改,實現了支持ACID事務特性的文件系統層面支持。本文通過實驗測試了SQLite和
    的頭像 發表于 10-16 16:01 ?986次閱讀
    事務性日志<b class='flag-5'>結構</b><b class='flag-5'>文件系統</b>的設計及實現

    Linux的文件系統特點

    ,近期經常被讀取和寫入,文件系統應該有緩存層。 文件應該用文件夾的形式組織起來,方便管理和查詢。 Linux內核要在自己的內存里面維護一套數據結構,來保存哪些
    的頭像 發表于 11-09 14:48 ?1538次閱讀
    Linux的<b class='flag-5'>文件系統</b>特點