1. 程式人生 > >ext4之核心文件

ext4之核心文件

Ext4 檔案系統
===============
這個版本的ext4是一個開發中的版本,一個比ext3效能優秀的fs,不但支援比ext3更加大的檔案系統,還兼顧了可擴充套件性和可靠性。
郵件列表: [email protected],大家如果想訂閱ext4的核心郵件的話,只需要向這個郵件傳送subscribe就可以了,不過每天會接受到好多封郵件,不過都是開源社群對於ext4的開發的討論和計劃。
1. 快速使用ext4:
===========================
  - 開發者可以獲得e2fsprogs從以下路徑
    ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
    ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/
  - 首先格式化 mke2fs -j /dev/hda1
  - 然後掛載檔案系統 mount /dev/hda1 /wherever -t ext4dev
  - 如果想開啟extents的支援的話,可以在掛載的時候新增這個選項,但是前提是mke2fs的時候加上-o extents的支援。
mount /dev/hda1 /wherever -t ext4dev -o extents
  - ext4對於ext3是向後相容的,除非新增一個支援extents的檔案。比如: `mount -o extents’,然後在這個檔案系統上建立一個檔案.
  - ext3/4相比較於其他的檔案系統,提供了更高的資料完整性。
2. ext4特性
===========
2.1 當前版本支援的
* 檔案系統大小 > 16TB
* extent格式的檔案具有更強的健壯性,在面對磁碟上的衝突的時候。
* 內部的B+樹減少一些浪費的空間
2.1 之前可用的功能,以後會被"mkefs.ext4”支援:
* dir_index和可變更大小的inode
2.2 後續可能會支援的屬性
以下的都是正在討論中的屬性:
* 修改的檔案分配功能 (一次多塊分配, 延遲分配)
* 去除32000個子目錄的限制 (這方面的補丁已經做好了, 還需要e2fs的支援)
* nsec的時間戳,在mtime, atime, ctime上使用, (這方面的補丁已經做好了, 還需要e2fs的支援)
* 增加inode的版本欄位在磁碟儲存上
* 減少mke2fs/e2fsck的消耗的時間 
* 日誌的校驗和
* 檔案的預分配功能 (e.g 特別是對於一些流媒體應用和資料庫應用)
比如元資料的校驗和已經經過了大量的討論和計劃,但是還沒有開發出補丁,所以我還不確定他是不是在近期會發出。
mballoc和delalloc會實現效能上的巨大提升.CFS已經使用了mballoc好多年了,IBM + Bull也做了很多的測試在這個上邊。這個特性之所以沒有在第一版的ext4就加進來,我認為是管理上的原因,而且因為這個特性直接影響了磁碟上的部署格式,所以,在第一版就加進來就引起了一些爭議,我相信後續的版本一定會支援的。
3. 掛載選項
==========
當你掛載ext4檔案系統的時候,以下的選項在當前版本是支援的:
(*) == 預設的
extentsext4把檔案的資料話分成一個一個的區域,這樣的檔案系統就不能再被ext3掛載了.
journal=update更新ext4的日誌到當前格式.
journal=inum當有日誌存在的話,這個選項會被忽略,否則,這個選項制定了會有多少個inode代表ext4的日誌檔案.
journal_dev=devnum當外部的日誌裝置的主裝置號和次裝置號變化的時候,這個選項允許使用者指定新的日誌檔案的存放地點,就是通過devnum來指定主裝置號和次裝置號.
noload在掛載的時候不載入日誌.
data=journal所有的資料寫入都會被日誌記錄下來.
data=ordered(*)所有的元資料寫入都會被記錄下來,但是資料的寫入會直接寫入不會被記錄下來.
data=writeback包括元資料在內的所有資料都會被直接寫入ext4而不會有日誌記錄.
commit=nrsec(*)ext4在每過nrsec秒以後就會同步所有的資料,把這些資料寫入到掉電非易失儲存介質上去,預設的值是5s.這就意味著如果掉電了,你最多丟失5s內寫入的資料,感謝日誌的存在,你的檔案系統並不會崩潰,但是這個值會造成效能上的損失,但是對於資料安全是有好處的,如果設定為0的話,就意味著設定為預設值5s,設定為比較大的值會提升ext4的讀寫效能,但是同時也帶來了安全性的降低。
barrier=1這個選項開啟/關閉隔離,barrier=0的時候關閉,barrier=1的時候開啟.
orlov(*) 這個選項會啟用新的orlov塊分配器.
oldalloc這個選項會關閉掉新的orlov塊分配器,啟用原先的塊分配器. Orlov應當擁有更好的效能,如果在你那裡執行的結果不是這樣的話,你可以反饋給我們
user_xattr啟用擴充套件使用者屬性功能,此外,你還需要在核心配置選項中加上(CONFIG_EXT4_FS_XATTR).你可以看attr(5)使用者手冊以及http://acl.bestbits.at/ 來對使用者擴充套件屬性瞭解更多。
nouser_xattr關閉擴充套件使用者屬性.
acl開啟POSIX標準支援的使用者控制權限列表,此外,你還需要在核心配置選項中新增(CONFIG_EXT4_FS_POSIX_ACL).你可以看acl(5)使用者手冊和http://acl.bestbits.at/來了解更多資訊。
noacl這個選項關閉POSIX標準支援的使用者控制權限列表功能T.
reservation
noreservation
bsddf(*) 使得'df’命令的執行表現的像在BSD上.
minixdf使得'df’命令的執行表現的像在Minix上.
check=none在掛載的時候不做多餘的對於點陣圖的檢查.
nocheck
debugdebug資訊將會被髮送到syslog.
errors=remount-ro(*)當有錯誤發生的時候,就會重新掛載為只讀的.
errors=continue當有錯誤發生的時候繼續執行,不做任何操作.
errors=panic當有錯誤發生的時候直接報核心Panic.
grpid給予所有的檔案統一的組ID.
bsdgroups
nogrpid(*) 新的檔案擁有統一的組ID.
sysvgroups
resgid=n組ID為n的檔案可以使用保留的塊.
resuid=n使用者ID為n的檔案可以使用保留的塊.
sb=n使用第n塊作為超級塊.
quota
noquota
grpquota
usrquota
bh(*) ext4把緩衝區首部和資料頁連線起來以快取塊的資訊。
nobhbh選項表示強制使用緩衝區首部,nobh選項表示儘量避免緩衝區首部(僅僅在data=writeback模式下支援).
資料模式
---------
有三種資料模式:
* writeback
在data=writeback模式下,ext4並不進行任何日誌操作,這個模式提供了一個簡單的日誌就像 XFS, JFS, ReiserFS等檔案系統的預設模式一樣,一個檔案系統的崩潰然後再修復可能會導致正確的資料出現在檔案崩潰之前寫入的地方,但是這個模式下ext4擁有最好的效能。
* ordered
在data=ordered模式下,ext4僅僅提供元資料的日誌,但是把一個組的元資料和一些資料塊放在一個單元裡叫做一個事務,當是時候把元資料寫入到磁碟上的時候,與之聯絡的資料塊會首先寫入。一般情況下,這種模式的效能會略遜色於writeback但是比journal模式要快的多。
* journal
data=journal模式提供了完全的資料塊和元資料快的日誌,所有的新的資料都會被首先寫入到日誌裡,然後在寫入掉電非易失儲存介質上。在檔案系統崩潰的時候,日誌就可以進行重放,把資料和元資料帶回到一個一致性的狀態,這個模式是最慢的,因為所有的資料都需要日誌來記錄.

引用
==========
核心原始碼:<file:fs/ext4/>
<file:fs/jbd2/>
programs:http://e2fsprogs.sourceforge.net/
http://ext2resize.sourceforge.net
有用的連結:http://fedoraproject.org/wiki/ext3-devel
http://www.bullopensource.org/ext4/

相關推薦

ext4核心

Ext4 檔案系統 =============== 這個版本的ext4是一個開發中的版本,一個比ext3效能優秀的fs,不但支援比ext3更加大的檔案系統,還兼顧了可擴充套件性和可靠性。 郵件列表: [email protected],大家如果想訂閱ext4的核心郵件的話,只需要向這個郵件傳送sub

opensslBIO系列12---描寫敘述符(fd)類型BIO

scrip 所在 pri 返回 div static 實現 論壇 res 文件描寫敘述符(fd)類型BIO ---依據openssl doc\crypto\bio_s_fd.pod翻譯和自己的理解寫成 (作者:DragonKing [email 

Python路-操作(py)

句柄 接口 編碼 操作 strong span 操作系統 使用 color 文件操作的基本步驟:   1.打開文件:f=open(‘filename‘),with open(‘filename‘) as f   2.操作文件:增,刪,改,查   3.關閉文件:f.close

[轉載]熱血傳奇資源與地圖的讀取分析

thead open pda exc height 保留字 img 單位 累加 Mr.Johness阿何的程序人生JMir——Java版熱血傳奇2之資源文件與地圖  我雖然是90後,但是也很喜歡熱血傳奇2(以下簡稱“傳奇”)這款遊戲。  進入程序員行業後自己也對傳奇客戶端實

Embeded linux cifs系統

intern server 安裝 查看 b2c 接口 發現 vm t cifs 待整理 轉自: http://blog.csdn.net/yuanbinquan/article/details/51734705 簡介 CIFS (Common Internet File S

Androidasset夾下文的使用

data- -h filepath 文件操作 ont bitmap actor rac hlist 1. 獲取AssetManager AssetManager am = context.getAssets(); 2. 列出assets文件夾下全部文件

Linux用戶相關

linu 文件內容 刪除 應該 說明 信息 oot gid 通過 組信息文件:   1.文件地址:     /etc/group     -rw-r--r--. 1 root root 492 10月 6 21:56 /etc/group   2.文件內容:    

shell判斷是否存在

判斷 else blog logs 執行權限 其他 color not bsp #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #這裏的-x 參數判斷$m

構建根系統系統

構建根文件系統 最好 soft 動態庫 strong 文件系統 mod busybox 再處理 在構建根文件系統之busybox中,我們已經實現了配置,編譯,安裝busybox。即那個init程序的來源。 首先在pc看一下,/dev/console 和/dev/n

python學習day4的序列化和反序列化

data 多次 文件交互 由於 mps logs json tro 之路 json和pickle序列化和反序列化   json是用來實現不同程序之間的文件交互,由於不同程序之間需要進行文件信息交互,由於用python寫的代碼可能要與其他語言寫的代碼進行數據傳輸,json支持

Redis集群配置詳解(待完善)

enable ice local ise bare config 停止 databases end 運維Redis集群的核心任務就是配置文件Redis.conf 命令行將現使用的Redis配置參數導出到 redis.conf.bak文件 grep ‘^[^#]‘ /etc

老男孩linux取得的權限對應的數字練習題

sed cut awk linux 老男孩linux之取得文件的權限對應的數字練習題老男孩linux之取得文件的權限對應的數字練習題問題:如何取得shiayn文件的權限對應的數字內容,如-rw-r--r-- 為644,要求使用命令取得644這樣的數字。創建文件shiyan[[email pro

HadoopHDFS操作

文件操作命令 help 文件夾 利用 jpg 查看 作文 rgs fill 摘要:Hadoop之HDFS文件操作常有兩種方式。命令行方式和JavaAPI方式。本文介紹怎樣利用這兩種方式對HDFS文件進行操作。 關鍵詞:HDFS文件 命令行

python獲取夾下文的絕對路徑

listdir log end [] pri clas cnblogs utf usr #!/usr/bin/python #-*-conding:utf-8-*- #獲取目錄下文件的絕對路徑 import os def getabsroute(path): l

quick-cocos2d-x教程3:程序框架內夾分析docs

我們 項目執行 2.3 cocos dsc pro title explorer deb 如今我們分析框架中的docs文件夾。看看這個文檔文件夾中,究竟放了那些對我們實用的東西。 docs文件夾分析 UPGRADE_TO_2_2_3.md 就是講升級的變化。

Centos常用命令與目錄管理

一個 每一個 -- 目錄 clas rect 發現 linux中 使用 在centos中常用的文件與目錄操作命令有: ◇chmod:修改文件或目錄的權限 ◇mkdir:新建目錄◇rmdir:刪除目錄◇rm:刪除目錄或文件◇cp:復制目錄或文件◇mv:移動目錄或文件 下面

FFMPEG協議()操作----AVIOContext, URLContext, URLProtocol

定義 oid index 字節 .cn inf 目標 use 初始 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 協議操作對象結構: 協議(文件)操作的頂層結構是AVIOContext,這個對象實現了帶緩沖的讀寫操作;FFMPEG的輸入對象AVFormat的

WebService核心【web-config.wsdd】調用操作

app names row data- esp scope ice tac namespace WebService核心文件【server-config.wsdd】詳解及調用示例 作者:瑪莎拉蒂-小賤人 一、準備工作 導入需要的jar包:

IIS部署flask實現上傳功能

iis flask1、環境windows 7 x64IIS 6python 2.7.9wfastcgi-3.0.0flask-0.12.22、安裝wfastcgi,並啟動wfastcgipip install wfastcgiC:\Users\wangpan>D:\software\Python27\S

鏈接學習obj探索

計算 條目 stat table 中一 external 成了 nal cnblogs Windows的gcc環境,往官網http://sourceforge.net/project/showfiles.php?group_id=2435 下載MinGW,安裝,安裝完畢後按