您好,登錄后才能下訂單哦!
云計算學習路線教程大綱課件:EXT2/3/4文件系統:
索引式文件系統
====================================================================================
Ext3/Ext4文件系統基本結構
? superblock:記錄此文件系統的整體信息,包括inode/block的總量、使用量、剩余量,以及文件系統的格式等;
? inode:記錄文件的屬性(文件的元數據metadata),一個文件占用一個inode,同時記錄此文件數據所在的block number;
? block:實際存儲文件的內容,若文件太大時,會占用多個block。
Superblock 沒有Superblock ,就沒有filesystem
? block 與 inode 的總量;
? 未使用與已使用的 inode / block 數量;
? block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128bytes 或 256bytes);
? filesystem 的掛載時間、最近一次寫入數據的時間、最近一次檢查 (fsck) 的時間等文件系統相關信息;
? 每個block group 都可能含有 superblock,這樣可以進行用于 superblock 的修復;
inode table: 存儲文件的元數據
? 文件的權限(read/write/excute);
? 文件的屬主/屬組(owner/group);
? 文件的大小;
? 文件的(ctime);
? 文件的(atime);
? 文件的(mtime);
? 記錄文件內容所在的block number (pointer);
data block: 存儲文件的實際數據
查看文件系統的信息
dumpe2fs
[root@tianyun ~]# dumpe2fs /dev/sda2
tune2fs
[root@tianyun ~]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006)
Filesystem volume name: yang
Last mounted on: <not available>
Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 48960
Block count: 195312
Reserved block count: 9765
Free blocks: 183410
Free inodes: 48946
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
Journal inode: 8
EXT2/EXT3/EXT4 日志式文件系統
新建一個文件的過程:
1. 先確定使用者對于想新創建文件目錄是否具有 w 與 x 的權限;
2. 根據 inode bitmap 找到沒有使用的 inode 號碼,并將文件的權限和屬性寫入;
3. 根據 block bitmap 找到沒有使用的 block號碼,將文件的實際數據寫入 block 中,且更新 inode 的 block 指向信息;
4. 將剛剛寫入的 inode 與 block 信息同步更新 inode bitmap 與 block bitmap,并更新 superblock 的內容。
? 文件的不一致 (Inconsistent) 狀態
例如突然斷電、kernel發生錯誤等。這樣可能寫入的信息僅有 inode table 及 data block 而已,最后一個同步更新的步
驟并沒有做完,此時就會發生 metadata 的內容與實際信息產生不一致 (Inconsistent) 的情況。
? 日志式文件系統 (Journaling filesystem)
1. 準備:當系統要寫入一個文件時,會先在日志區記錄某個文件準備寫入的信息;
2. 實際寫入:寫入文件的權限與數據,更新 metadata 的信息;
3. 結束:完成數據與 metadata 的更新后,在日志記錄區塊中完成文件的記錄。
修復文件系統 fsck,e2fsck -fy
案例1: 系統無法啟動
案例二:Read-only file system
如果運行中的服務器的某一個分區出現readonly,導致進程無法寫這個分區(比如nginx進程無法寫日志文件到此分區,
手動測試touch到此分區也顯示:cannot touch ‘xxxxx’:Read-only file system),該怎么辦?
解決:磁盤read-only的原因一般有2種,一種是沒有正常關機導致,還有一種是硬盤故障導致。
如果是/分區,這種情況只能下線報修磁盤了。
如果是其它分區,則可以嘗試三步解決此問題:
1. 先取消掛載此分區
2. 再fsck.ext4 -fy /dev/sdb1
3. 最后掛載此分區,檢查是否可以正常讀寫。
如果仍舊不可以正常讀寫,請報修磁盤。
注:以上操作過程,請保證服務器不在線上提供服務。
案例三:修復superblock
找到備份的superblock
[root@tianyun ~]# dumpe2fs -h /dev/datavg/lv1 |grep 'Blocks per group'
dumpe2fs 1.42.9 (28-Dec-2013)
Blocks per group: 8192
利用備份的 superblock恢復superblock
[root@tianyun ~]# fsck.ext4 -b 8192 /dev/datavg/lv1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。