RockyLinux9 By SystemArch_Alex

Rocky Linux 9 基礎教學 (23):磁碟配額 Quota 限制實務 (XFS)

防止單一使用者耗盡系統儲存空間

在多使用者環境或提供託管服務的伺服器上,如果不對磁碟空間進行限制,某個使用者的異常操作(如產生巨大的日誌檔)可能會導致整個分區爆滿,進而引發系統當機。Rocky Linux 9 預設使用 XFS 檔案系統,其磁碟配額 (Quota) 機制與傳統的 Ext4 有所不同,更加高效且易於管理。

1. 啟用 XFS Quota 功能

與 Ext4 不同,XFS 的 Quota 必須在掛載時作為核心參數啟用。編輯 /etc/default/grub,在 GRUB_CMDLINE_LINUX 加入 rootflags=uquota,gquota,或者在 /etc/fstab 中針對特定分區加入掛載選項:

/dev/mapper/rocky-home /home xfs defaults,uquota,gquota 0 0

修改完畢後需要重啟系統或重新掛載分區:

sudo mount -o remount /home
2. 使用 xfs_quota 工具

xfs_quota 是管理 XFS 配額的專用工具。它支援「軟限制 (Soft Limit)」與「硬限制 (Hard Limit)」。

# 查看目前分區的配額摘要
sudo xfs_quota -x -c 'report -h' /home
3. 設定使用者配額範例

假設我們要限制使用者 hank/home 分區最多只能使用 5GB 空間,警告水位為 4GB:

sudo xfs_quota -x -c 'limit bsoft=4g bhard=5g hank' /home

這裡的 bsoft 是軟限制,使用者超過後仍可寫入但會收到警告;bhard 是硬限制,絕對不允許超過。

4. 設定目錄配額 (Project Quota)

XFS 還有一個強大的功能叫 Project Quota,可以針對特定目錄進行限制,無論目錄下是哪個使用者的檔案。這在限制 Web 網站目錄大小時非常有用。

5. 監控與維護

定期檢查配額使用情況是維運者的責任:

# 找出超過配額的使用者
sudo xfs_quota -x -c 'report -i' /home

透過磁碟配額的實施,你可以精確地分配系統資源,確保伺服器的穩定性不會因為單一使用者的疏忽而受到威脅。這在企業內部開發伺服器或學生實作環境中尤為重要。