文件系統管理
文件系統是Linux系統存放文件的空間。文件系統的類型有很多種,CentOS支持多種文件系統,目前常用的是ext4和xfs文件系統。我們以ext4文件系統為例來說明對文件系統的管理。
UFS —— Unix Filesystem
1.ext4文件系統
1.基本概念
軟件包:e2fsprogs
ext4文件系統是Linux上主要的文件系統,它的早期是ext2文件系統,ext2全稱第二代擴展文件系統(Second Extended filesystem),是為了替代早期ext文件系統開發的。ext2發展后的文件系統是ext3,ext3發展后的文件系統是ext4。
人們在存儲文件時,有各種不同的需求,為了滿足不同的需求,文件系統有各種不同的屬性,對這種不同屬性的設置、修改就是對文件系統的管理。
文件系統的所有屬性都有缺省值,
文件系統的屬性有很多,我們不可能對所有的屬性進行探討。我們只討論實際中常用的屬性。其他屬性請參看man ext4及文件系統命令的幫助。
2.使用的命令:
mkfs.ext4 —創建ext4文件系統會。調用mke2fs — 創建 ext2/ext3/ext4 文件系統
tune2fs — 調整、顯示文件系統參數
dumpe2fs — 列出並轉儲文件系統的信息,可用於查看文件系統的屬性。
e2fsck — 檢查修復文件系統
resize2fs --重置LV大小,自動把新增空間制作文件系統 同時i-node也會變化
e2label --設置卷標
3.屬性:
1、塊大小
2、inode
文件系統可以存儲的文件的數量不能超過inode的值,即使還有空間,但文件個數=inode值,文件系統仍然是滿的。
3、mount選項
文件系統在掛載時,缺省的掛載選項,這些選項不是在執行mount命令時制定,而是在文件系統自己具有。/etc/fstab文件中的第四字段為'defaults'就是標明使用文件系統自帶的掛載選項。
卷標:用於標示該文件系統的字符串。是由人為指定的。
塊大小和i-node:只能在創建文件系統時指定。一旦文件系統創建完成,塊大小不能更改。
2.查看文件和文件系統
1.查看文件占據占據塊大小
文件系統存儲文件是按塊(block)存放文件的,給文件分配的最小空間單位就是塊。文件系統在創建時,會按照一個統一的大小,把空間划分成N多的存儲塊。存儲文件時,分區會根據文件的大小,給其分配足夠多的block塊,若塊中空間未能存滿,也不再存其他我文件。
我們使用
ls -l --查看到的是文件的實際大小
但使用
du f1 --查看文件占據的分區空間大小,即塊
du /var --查看目錄及其內容占的塊大小
du -s /var --只查看目錄
ext4系統在分區格式化時默認設置的塊大小和空間大小有關,超1G時是4KB。
文件系統的信息可使用tnue2fs命令查看:
tune2fs -l 設備名
注:塊的大小只能在格式化時做設置,之后不可更改,除非重新格式化
2.dumpe2fs查看文件系統的超級塊和塊組的信息
dumpe2fs 命令可列出磁盤設備上文件系統的超級塊和塊組的信息,並轉儲(Dump)文件系統信息。
dumpe2fs 命令格式如下:
dumpe2fs <參數> <設備>
主要參數說明如下:
* -h — 只顯示超級塊中的信息,不顯示塊組信息
-i — 從指定的文件系統image 文件中讀取文件系統信息
-x — 顯示詳細的塊分組信息,塊號使用十六進制格式
-f — 強制顯示文件系統的信息,即使文件系統中含有無法識別的信息
-b — 顯示文件系統中保留做壞塊的信息
-V — 顯示版本號
3.Inode節點:
1.基本概念
inode節點簡稱i節點
文件系統創建時,會把所有的block,划分成兩大區域:inode區、數據區
inode區:一個inode對應一個文件,即一個文件會占用一個inode,inode會占用一定的空間用於存儲該文件的元數據信息。
文件元數據:權限、大小、所屬、創建時間、更改時間、地址指針(指向文件在數據IO區占用的空間的地址編號)等。
數據區,根據文件的大小,給其分配足夠多的block,存儲文件內容
2.查看命令
ls -i ---查看的文件的inode編號
stat f1 ---查看文件的屬性,即inode節點中的信息
df -h ---查看各分區數據區的使用率
df -i ---查看各分區inode區的使用率,顯示單位:個數
注:每個文件系統的第一個inode,不用與存儲文件屬性,專用於存儲本分區的屬性,如:分區大小,地址范圍,使用率等
該塊稱為 超級塊(supper block)
第31個inode,作為超級的備份塊,稱為次超級塊
4.mke2fs命令創建文件系統
1.主要參數說明如下:
mkfs.ext4 -b 塊值 -- 指定文件系統數據塊的大小,有效的值為1024、2048和4096。
mke2fs <參數> <設備> --參考man mkfs.ext4
* -N — 指定 inode 數量,覆蓋使用-i定義計算出的值。
* -L — 設置所創建文件系統的標簽
-c — 在創建文件系統之前檢查指定的設備上是否有壞快。如果連定義2次該參數,系統將采用慢速的讀/寫方式來代替較快的讀方式來檢查壞快
-i — 定義多少字節使用一個inode,即bytes/inode,值越大,文件系統上的 inode越少。該值不能比塊大小小,因為1個塊不能被2個文件用。
-I — 每個inode所使用的字節數。缺省512,不能比128小,太大會影響空間使用率,
-j — 創建使用ext3 卷號的文件系統
-J <擴展參數>—為使用ext3 卷號的文件系統指定一些擴展參數
-D — 使用直接IO讀寫
-n — 演習創建文件系統
-F — 強制執行
2.ext4配置文件和ext文件系統的缺省特性
/etc/mke2fs.conf --創建ext4文件系統的參數文件
可以再該文件中修改創建時的缺省值
ext2文件系統的缺省特性:
ext_attr resize_inode dir_index filetype sparse_super
ext3文件系統的缺省特性:
has_journal ext_attr resize_inode dir_index filetype sparse_super
ext4文件系統的缺省特性:
has_journal ext_attr resize_inode dir_index filetype sparse_super needs_recovery extent 64bit flex_bg huge_file uninit_bg dir_nlink extra_isize
5.tune2fs 命令調整文件系統參數
對於已創建的文件系統,可使用tune2fs 命令來調整某些參數。
1.tune2fs 命令格式
tune2fs <參數> <設備> --具體參數請參考man tune2fs
主要參數說明如下:
-j — 調整文件系統為ext3 類型,為系統增加ext3 的日志
-J — 更詳細的日志控制
* -l — 列出文件系統supper block 的內容,經常用於查看文件系統的元數據。
* -L — 為文件系統設置卷標
-m — 指定文件系統保留的塊,百分比表示
* -o[^] — 設置或取消掛載參數
-O — 設置文件系統特性,如ext3轉ext4,增加特性即可
* -c max-mount-counts --滿足掛載次數就檢查
* -C mount-count--掛載次數
* -i interval-between-checks d天m月 w周 --距離下次檢查的時間
-U clear — 清除文件系統的 UUID
-U random — 為文件系統產生隨機的UUID
-U time — 為文件系統產生基於時間的 UUID
tune2fs -O extents,uninit_bg,dir_index --增加系統特性
2.掛載參數
掛載說明
兩個分區掛載到同一目錄下,后掛的生效,先掛的被隱藏在內部,卸載先卸載后掛的分區允許掛載到非空目錄下,原目錄下內容會被隱藏,只有卸載分區后,才會顯現建議:掛載前,一定確認掛載點是空目錄
tune2fs -o ^acl /dev/sdb1 --取消用戶acl擴充特性
user_xattr 使能用戶設置的擴充特性。
acl 使能擴充的訪問控制。
3.示例
tune2fs -c 5 /dev/sdb1 ---設定掃描頻率,該分區每掛載5次后,自動檢查一次
tune2fs -i 5d /dev/sda7 ---設定每5天掃描一次 5m 月 5w 周
tune2fs -c -1 /dev/sda7 ---設置為負一 ,表示取消
tune2fs -i 0 /dev/sda7 ---設置為0 零 ,表示取消
tune2fs -o ^acl /dev/sdb1 --取消用戶acl擴充特性
tune2fs -O extents,uninit_bg,dir_index --增加系統特性
6.e2fsck命令修復文件系統
如果文件系統出現問題,可以使用e2fsck 工具檢查並修復。
1.e2fsck格式與參數
e2fsck 命令格式如下:
e2fsck <參數> <設備>
主要參數說明如下:
-p — 自動修復
-a — 同-p
-B — 指定區塊的大小,單位為字節
-c — 一並執行badblocks,以標示損壞的區塊
-d — 顯示排錯信息
-f — 即使文件系統沒有錯誤跡象,仍強制地檢查正確性
-F — 執行前先清除設備的緩沖區
-y — 以非交互方式執行,所有問題均設置以“yes”回答
2.傳統的UFS檢查方式和mkfs與mke2fs
fsck -t ext4 /dev/sda7 ---掃描分區
7.文件系統下的文件擴充特性
1.查看特性及特性說明 lsattr 文件名
lsattr 文件名
特性說明:有用 ASacdisu 表示的幾種特性
A 它的atime(訪問時間)記錄不會改變。這可以在電腦系統中避免某些磁盤I/O處理.
a 只能在添加模式下打開用於寫入。只有超級用戶可以設置或清除該屬性。
d 文件不能對其運行 dump(8) 程序進行備份。
i 文件不能進行修改:你既不能刪除它, 也不能給它重新命名,你不能對該文件創建硬鏈接, 而且也不能對該文件寫入任何數據。只有超級用戶可以設置或清除該屬性.
S 對文件的修改會同步寫入到磁盤上。和 sync掛載選項有相同的效果。
E 擴充特性
2.修改屬性:chattr
chattr [-RV] +-=屬性 文件名
R:遞歸 v:verbose
8.xfs系統的一些命令
man -k xfs --查看有那些命令
mkfs.xfs --創建xfs文件系統
xfs_info --查看
xfs_admin --管理
xfs_growfs --擴充
xfs_repair --檢查