ext4文件系統(tǒng)掛載參數(shù)說明
在Linux系統(tǒng)中通過mount
命令為云盤掛載ext4文件系統(tǒng)時,您可以根據(jù)業(yè)務(wù)需求使用不同的掛載參數(shù),以滿足您對文件系統(tǒng)的數(shù)據(jù)安全性和性能要求。
對數(shù)據(jù)安全性和性能都有一定要求
如果您對文件系統(tǒng)的數(shù)據(jù)安全性和性能都有一定要求,建議在mount
命令中不指定任何參數(shù)掛載文件系統(tǒng)。
sudo mount /dev/vdb /media/test
該命令會默認攜帶defaults
參數(shù),defaults
默認包括rw
、atime
、suid
、dev
、exec
、async
、auto
、nouser
、delalloc
、data=ordered
、barrier
和nodiscard
,不再需要指定其他掛載參數(shù)。
該方式默認啟用寫入緩存、讀寫權(quán)限控制、文件系統(tǒng)日志等功能,這些功能可以提高文件系統(tǒng)的性能和穩(wěn)定性,并提供數(shù)據(jù)的完整性和保護。
優(yōu)點:對文件系統(tǒng)的數(shù)據(jù)安全性和性能都有一定的保障。
缺點:
對文件系統(tǒng)數(shù)據(jù)安全性的影響:由于部分用戶數(shù)據(jù)、文件系統(tǒng)元數(shù)據(jù)仍在內(nèi)存中未寫入硬盤,因此會存在數(shù)據(jù)丟失的風(fēng)險。
對文件系統(tǒng)性能的影響:
自動更新每個文件的訪問時間,以及讀寫數(shù)據(jù)時文件系統(tǒng)會自動記錄元數(shù)據(jù)操作日志,這會導(dǎo)致文件系統(tǒng)自身產(chǎn)生大量的寫操作。
當數(shù)據(jù)從內(nèi)存寫入磁盤時才真正分配數(shù)據(jù)塊,會有一次周期性的大塊寫操作,導(dǎo)致數(shù)據(jù)塊分配延遲。
數(shù)據(jù)安全性要求較高
如果您非常重視文件系統(tǒng)的數(shù)據(jù)安全,建議在mount
命令中使用rw
、atime
、sync
、barrier
、data=journal
參數(shù)掛載文件系統(tǒng)。
sudo mount -o rw,atime,sync,barrier,data=journal /dev/vdb /media/test
使用atime
、sync
、barrier
和data=journal
參數(shù)會影響文件系統(tǒng)的性能,請您謹慎選擇。具體影響程度與實例的規(guī)格、用戶業(yè)務(wù)模型相關(guān),例如:
對于大量讀寫IO密集型業(yè)務(wù),因為每一次IO操作都需要寫入硬盤,因此性能受到的影響大于一般業(yè)務(wù)。
由于硬件寫入速度本身的限制,使用該參數(shù)后,HDD規(guī)格的實例(例如HDD本地盤)受到的性能影響也會大于SSD規(guī)格的實例(例如SSD云盤、ESSD云盤)。
當軟件發(fā)生崩潰或者硬件發(fā)生宕機時,如果使用默認的掛載方式(不指定掛載參數(shù))掛載文件系統(tǒng),由于部分用戶數(shù)據(jù)、文件系統(tǒng)元數(shù)據(jù)仍在內(nèi)存中未寫入硬盤,因此會有數(shù)據(jù)丟失的風(fēng)險。如果使用本場景推薦的掛載參數(shù),任何內(nèi)存的修改都會同步寫入磁盤,并且所有數(shù)據(jù)第一時間保序?qū)懭胛募到y(tǒng)日志。即使發(fā)生低概率異常,文件系統(tǒng)恢復(fù)后也能保證數(shù)據(jù)不丟失。
優(yōu)點:數(shù)據(jù)安全性高,可以確保系統(tǒng)宕機后文件系統(tǒng)的數(shù)據(jù)不丟失。
缺點:文件系統(tǒng)性能下降。
性能要求較高
如果您非常重視性能,建議在mount
命令中使用defaults
、noatime
、nodiratime
、nobarrier
、nodelalloc
、data=writeback
參數(shù)掛載文件系統(tǒng)。
sudo mount -o defaults,noatime,nodiratime,nobarrier,nodelalloc,data=writeback /dev/vdb /media/test
使用noatime
、nodiratime
、nobarrier
和data=writeback
參數(shù)會降低數(shù)據(jù)的安全性,請您謹慎選擇。
當使用默認的掛載方式(不指定掛載參數(shù))掛載文件系統(tǒng)時,每一次文件操作都會被記錄,數(shù)據(jù)塊會延遲分配,對性能產(chǎn)生影響。
當使用
sync
將內(nèi)存中的數(shù)據(jù)操作寫入硬盤時,文件系統(tǒng)會在一次性提交所有日志的同時進行數(shù)據(jù)塊分配,這個操作有可能會導(dǎo)致一個周期性的IO毛刺。對于傳統(tǒng)的HDD介質(zhì)來說,該功能會減少硬盤寫入的次數(shù),在提升性能的同時也能延長介質(zhì)壽命,但對于閃存盤SSD這類高效的存儲介質(zhì)來說,并不會對性能帶來明顯提升。
因此建議您使用該方式掛載文件系統(tǒng),通過關(guān)閉數(shù)據(jù)塊延遲分配、關(guān)閉日志保序?qū)懭雰?nèi)存、減少對硬盤的寫操作等方式,來提升文件系統(tǒng)的性能。
優(yōu)點:文件系統(tǒng)性能高(高吞吐低延遲)。
缺點:數(shù)據(jù)安全性較低,宕機后可能丟失文件系統(tǒng)的數(shù)據(jù)。
您可以通過
cat /proc/fs/ext4/vdb/options
命令獲取當前云盤完整的掛載參數(shù),通過man mount
命令或者參考fstab說明查看詳細的參數(shù)說明。如果您還有其他方面的需求,可以根據(jù)掛載參數(shù)的含義及作用,合理使用
mount
命令。