在Linux系統中通過mount
命令為雲端硬碟掛載ext4檔案系統時,您可以根據業務需求使用不同的掛載參數,以滿足您對檔案系統的資料安全性和效能要求。
對資料安全性和效能都有一定要求
如果您對檔案系統的資料安全性和效能都有一定要求,建議在mount
命令中不指定任何參數掛載檔案系統。
sudo mount /dev/vdb /media/test
該命令會預設攜帶defaults
參數,defaults
預設包括rw
、atime
、suid
、dev
、exec
、async
、auto
、nouser
、delalloc
、data=ordered
、barrier
和nodiscard
,不再需要指定其他掛載參數。
該方式預設啟用寫入緩衝、讀寫權限控制、檔案系統日誌等功能,這些功能可以提高檔案系統的效能和穩定性,並提供資料的完整性和保護。
優點:對檔案系統的資料安全性和效能都有一定的保障。
缺點:
對檔案系統資料安全性的影響:由於部分使用者資料、檔案系統中繼資料仍在記憶體中未寫入硬碟,因此會存在資料丟失的風險。
對檔案系統效能的影響:
自動更新每個檔案的訪問時間,以及讀寫資料時檔案系統會自動記錄中繼資料動作記錄,這會導致檔案系統自身產生大量的寫操作。
當資料從記憶體寫入磁碟時才真正分配資料區塊,會有一次周期性的大塊寫操作,導致資料區塊分配延遲。
資料安全性要求較高
如果您非常重視檔案系統的資料安全,建議在mount
命令中使用rw
、atime
、sync
、barrier
、data=journal
參數掛載檔案系統。
sudo mount -o rw,atime,sync,barrier,data=journal /dev/vdb /media/test
使用atime
、sync
、barrier
和data=journal
參數會影響檔案系統的效能,請您謹慎選擇。具體影響程度與執行個體的規格、使用者業務模型相關,例如:
對於大量讀寫IO密集型業務,因為每一次IO操作都需要寫入硬碟,因此效能受到的影響大於一般業務。
由於硬體寫入速度本身的限制,使用該參數後,HDD規格的執行個體(例如HDD本地碟)受到的效能影響也會大於SSD規格的執行個體(例如SSD雲端硬碟、ESSD雲端硬碟)。
當軟體發生崩潰或者硬體發生宕機時,如果使用預設的掛載方式(不指定掛載參數)掛載檔案系統,由於部分使用者資料、檔案系統中繼資料仍在記憶體中未寫入硬碟,因此會有資料丟失的風險。如果使用本情境推薦的掛載參數,任何記憶體的修改都會同步寫入磁碟,並且所有資料第一時間保序寫入檔案系統日誌。即使發生低機率異常,檔案系統恢複後也能保證資料不丟失。
優點:資料安全性高,可以確保系統宕機後檔案系統的資料不丟失。
缺點:檔案系統效能下降。
效能要求較高
如果您非常重視效能,建議在mount
命令中使用defaults
、noatime
、nodiratime
、nobarrier
、nodelalloc
、data=writeback
參數掛載檔案系統。
sudo mount -o defaults,noatime,nodiratime,nobarrier,nodelalloc,data=writeback /dev/vdb /media/test
使用noatime
、nodiratime
、nobarrier
和data=writeback
參數會降低資料的安全性,請您謹慎選擇。
當使用預設的掛載方式(不指定掛載參數)掛載檔案系統時,每一次檔案操作都會被記錄,資料區塊會延遲分配,對效能產生影響。
當使用
sync
將記憶體中的資料操作寫入硬碟時,檔案系統會在一次性提交所有日誌的同時進行資料區塊分配,這個操作有可能會導致一個周期性的IO毛刺。對於傳統的HDD介質來說,該功能會減少硬碟寫入的次數,在提升效能的同時也能延長介質壽命,但對於快閃記憶體盤SSD這類高效的儲存介質來說,並不會對效能帶來明顯提升。
因此建議您使用該方式掛載檔案系統,通過關閉資料區塊延遲分配、關閉日誌保序寫入記憶體、減少對硬碟的寫操作等方式,來提升檔案系統的效能。
優點:檔案系統效能高(高吞吐低延遲)。
缺點:資料安全性較低,宕機後可能丟失檔案系統的資料。
您可以通過
cat /proc/fs/ext4/vdb/options
命令擷取當前雲端硬碟完整的掛載參數,通過man mount
命令或者參考fstab說明查看詳細的參數說明。如果您還有其他方面的需求,可以根據掛載參數的含義及作用,合理使用
mount
命令。