一、mkfs命令
磁盤分區完畢后自然就是要進行文件系統的格式化
格式化其實就是創建文件系統。命令就是===>mkfs(make fileststem),這個命令只是個綜合命令。它會調用正確的文件系統格式化工具
功能:mkfs是個綜合命令
使用
mkfs [tab] [tab]:按下兩下tab鍵查看系統支持哪些文件系統的格式化功能
mkfs -t [文件系統格式名]===>等同於mkfs.文件系統格式名
mkfs -t xfs 與 mkfs.xfs相同
二、格式化XFS文件系統(mkfs.xfs)
XFS文件系統簡介:https://dongshao.blog.csdn.net/article/details/86694903
功能:創建xfs文件系統
格式
mkfs.xfs [-b 參數] [-d 參數] [-i 參數] [-l 參數] [-L 參數] [-f] [-r 參數] 設備名稱
第一次執行mkfs.xfs可能需要安裝:apt-get install xfsprogs
相關參數
-b:后面接的是區塊容量,范圍是512B-64K。不過Linux最大為4K
-d:后面接的是data section(數據區)的相關參數值
agcount=數值 設置需要幾個存儲群組的意思(AG),通常與CPU有關
agsize=數值 每個AG設置為多少容量的意思。通常agcount/agsize只選一個設置
file 指的是格式化的設備是個文件而不是個設備的意思(例如虛擬磁盤)
size=數值 data section的容量。你可以設置大小
su=數值 當有RAID(磁盤列陣)時,代表stripe的數值大小,與下面的sw搭配使用
sw=數值 當有RAID時,用於保存數據的磁盤數量(需扣除備份盤與備用盤)
sunit=數值 與su意思相同。不過單位使用的是幾個sector(512B)的意思(一個stripe由多少個扇區組成)
swidth=數值 就是su*sw的數值,但是以幾個sector(512B)來設置
-f:如果設備內已經有了文件系統,則需要使用-f強制格式化
-i的參數:與inode有較相關的設置
size=數值 最小的是256B,最大是2K。一般使用256B就足夠了
internal=[0/1] log設備是否為內置。默認1為內置,如果使用外部設備,使用下面設置
logdev=設備名 log設備為后面接的那個設備上面的意思,需設置internal=0才可以
size=數值 指定這塊登錄區的容量,通常最小得要512個區塊,大約2M=以上才行
-L參數:后面接這個文件系統的標頭名稱Label name
-r參數:指定realtime section(實時運行區)的相關設置值
extsize=數值 就是那個重要的extent區塊數值,一般不需設置。但有RAID時,最好設置與swidth的數值相同較佳。最小為4K,最大為1G
演示案例
使用mkfs.xfs命令時,一般默認回車就可以了,使用系統默認的
演示案例1:使用gdisk新建一個sda2新分區,並格式化成為xfs文件系統
演示案例2:設置CPU的數量
有時我們為了使用多個數據流來讀寫系統,以增加速度,需要設置多個agcount數量,agcount與CPU的內核數有關
查看一下系統的CPU數量:grep 'processor' /proc/cpuinfo
如果需要兩個線程的CPU數量時:mkfs.xfs -f -d agcount=2 /dev/sda2
XFS文件系統for RAID性能優化
磁盤列陣(RAID):磁盤列陣是多塊磁盤組成一塊大磁盤的意思,利用同步寫入到這塊磁盤的技術,不但可以加快讀寫速度,還可以讓某一塊磁盤壞掉時,整個文件系統還是可以持續運行,這就是所謂的容錯
結構特點
stripe:磁盤列陣通過將文件先細分成為數個小型的分區區塊(stripe)之后,然后將眾多的stripes分別放到磁盤列陣里面的所有磁盤,所以一個文件是被同時寫入到多個磁盤中,性能會好一些。stripe與你的文件數據容量以及性能相關性較高
stripe的大小:分區區塊的數值介於4K-1M之間,這與你的磁盤列陣卡支持的選項有關。當你的系統多大是大型文件時,一般建議stripe大一些,如果小文件較多,建議設置64K左右
安全性:在這些磁盤里面,會保留數個校驗磁盤(parity disk),以及可能會保留一個以上的備用磁盤(spare disk)。這些磁盤會占用總磁盤列陣的容量
演示案例:使用mkfs.xfs格式化磁盤列陣。我們假設:
我有兩個線程的CPU數量,所以agcount最好指定為2
RAID的stripe指定為256K,則su也指定為256K
磁盤列陣總共有8塊,因為RAID 5標准的設置,有1個校驗盤,所以指定sw為7
由上述可知,數據寬度(swidth)指定為256K*7=1792K,extsize=1792K
mkfs.xfs -f -d agcount=2,su=256k,sw=7 -r extsize=1792k /dev/sda2
承上,如果我們使用sunit與swidth來設置,則
sunit=256K/512B*1024B=512個sector
swidth=7個磁盤*sunit=7*512=3584個sector
mkfs.xfs -f -d agcount=2,sunit=512,swidth=3584 -r extsize=1792k /dev/sda2
三、ext4文件系統格式化(mkfs.ext4)
功能:創建ext4文件系統
格式
mkfs.ext4 [-b 參數] [-L 參數] 設備名稱
參數
-b:后面設置區塊的大小,有1K、2K、4K
-L:后面接這個設備的標頭名稱Label name
提示:
ext4的默認值已經相當合適我們系統使用,大部分的默認值寫入至/etc/mke2fs.conf這個文件中
因此我們無需額外指定inode的容量,系統都幫我們做好了默認值,只需要知道uuid即可
演示案例:
mkfs.ext4 /dev/sda2
四、其他文件系統格式化
mkswap 設備文件名:用於內存交換分區的格式化
mkfs.vfta 設備文件名:vfat文件系統格式的格式化
五、Linux文件系統的校驗
系統運行時,如果硬件或者電源等出問題,或者文件系統運行時,磁盤與內存數據異步的狀態發生,系統會出錯
此時就需要文件系統的校驗,不同的文件系統命令不一樣,下面我們主要針對xfs於ext4文件系統進行講解
下面的命令只有當文件系統出錯且為root身份時在使用,不要隨意使用,可能會對系統造成危害
重點:修復文件系統時,可能會造成文件系統的改變,所以執行命令時,被檢測的硬盤分區不能被掛載,若掛載則不能順利的修復文件系統,需要卸載后再處理。當然,沒有掛載的文件系統可以處理
六、xfs_repair處理XFS文件系統
功能:對XFS文件系統進行檢測或者修復
格式:
xfs_repair [選項] 設備名稱
選項:
-f:后面的設備其實是個文件而不是設備時使用
-n:單純檢查並不修改文件系統的任何數據
-d:通常用在單人維護模式下,針對根目錄(/)進行檢查與修復(很危險,不要隨便使用)
注意事項:Linux的根目錄無法被卸載,所以需要使用-d進入單人維護模式處理,但是跟某的檢查與修復盡量避免
例如:校驗/dev/sda2分區
xfs_repair /dev/sda2
七、fsck_ext4處理ext4文件系統
功能:對ext4文件系統進行檢測或者修復
格式:
fsck_ext4 [選項] [-b 參數] 設備名稱
選項與參數:
-p:當文件系統在修復時,如果有需要回復y的操作,自動回復
-f:強制詳細檢查。一般來說,fsck沒有發現任何unclean的標識,不會主動進入詳細檢查的。如果加上這個參數,fsck就會詳細檢查
-D:針對文件系統下的目錄進行最佳化配置
-b的參數:后面跟的是超級區塊的位置,這個選項一般用不到。如果你的超級區塊受損時,就可以使用這個參數利用文件系統的備份超級區塊來嘗試修復。一般來說,超級區塊備份在:1K區塊在8193、2K區塊在16384、4K區塊在32768
演示案例
①對32768區塊進行校驗:如果文件系統出問題,會提示你是否輸入y進行修復。並且文件系統修復完,會有警告信息
fsck_ext4 -b 32768 /dev/sda2
②文件系統正確,進行強制校驗
fsck_ext4 -f /dev/sda2