CephFS quota的支持
CephFS 允許給系統內的任意目錄設置配額,這個配額可以限制目錄樹中這一點以下的字節數或者文件數。
侷限性
- 配額是合作性的、非對抗性的。 CephFS 的配額功能依賴於掛載它的客戶端的合作,在達到上限時要停止寫入;無法阻止篡改過的或者對抗性的客戶端,它們可以想寫多少就寫多少。在客戶端完全不可信時,用配額防止多佔空間是靠不住的。
- 配額是不準確的。 在達到配額限制一小段時間後,正在寫入文件系統的進程纔會被停止。很難避免它們超過配置的限額、多寫入一些數據。會超過配額多大幅度主要取決於時間長短,而非數據量。一般來說,超出配置的限額之後 10 秒內,寫入會被停掉。
- 內核客戶端還沒實現配額功能。 用戶空間客戶端( libcephfs 、 ceph-fuse )已經支持配額了,但是 Linux 內核客戶端還沒實現。
- 基於路徑限制掛載時必須謹慎地配置配額。 客戶端必須能夠訪問配置了配額的那個目錄的索引節點,這樣才能執行配額管理。如果某一客戶端被 MDS 能力限制成了只能訪問一個特定路徑(如 /home/user ),並且它們無權訪問配置了配額的父目錄(如 /home ),這個客戶端就不會按配額執行。所以,基於路徑做訪問控制時,最好在限制了客戶端的那個目錄(如 /home/user )、或者它下面的子目錄上配置配額。
與通用文件系統quota對比
- CephFS quota是針對目錄的,可限制目錄下存放的文件數量和容量
- CephFS沒有一個統一的UID/GID機制,傳統的基於用戶和組的配額管理機制很難使用
- CephFS一般與應用配合使用,應用自己記錄用戶信息,將用戶關聯到對應的CephFS目錄