安裝數萬個FS

安裝數萬個FS

我需要提供建立/讀取/寫入/刪除檔案並為 Web 服務的大量使用者設定配額的能力。這些用戶不是以 Linux 用戶存在,因此我無法套用配額。僅僅為了執行配額而創建真實用戶似乎是一個壞主意。因此,我決定建立一個每個使用者檔案並將其安裝為檔案系統。

  1. 掛載幾萬個FS會有什麼後果?
  2. 掛載的FS總數有限制嗎?

答案1

首先,安裝這麼多檔案系統似乎是一個非常糟糕的主意 - 必須有更好的解決方案來解決您遇到的任何問題?

無論如何,回答你的第二個問題:關於上一個伺服器故障問題似乎表明最近核心的每個檔案系統類型的限制約為 100 萬個安裝點 (2^20),並且最多可以安裝 256 個不同類型的檔案系統。

對於較舊的核心(2.6 之前的版本),每個檔案系統的安裝點限制為 256 個。


編輯針對評論,我提出以下替代方案:

使用 XFS,它允許您使用項目配額,目錄配額的一種形式。

建立一個單獨的 XFS 檔案系統,用於保存所有 Web 服務使用者資料。將其安裝在例如/mnt/myWebService。然後,為每個Web服務使用者建立一個專案目錄(例如/mnt/myWebService/username1等)並相應地設定配額。

有關如何設定項目目錄和配額的說明,您可以查看這個部落格條目或者RHEL XFS 配額管理頁面

答案2

請注意,您不必建立使用者(例如將它們新增至 /etc/passwd 或任何您想要的使用者資料庫),您可以將檔案的所有權設定為任何沒有 uid 的檔案。只需確保這些 uid 不與可能在該伺服器上運行進程的本機(或遠端)使用者重疊。

但是,為了能夠更改檔案的擁有者,您需要超級使用者權限,這可能會為您的 Web 應用程式帶來問題。

請注意,當您使用 ZFS 時,每個快照都會獲得一個掛載點,並且擁有數千個掛載點的情況並不罕見,這並不是什麼大問題。

答案3

無需為此創建無數的檔案系統。

執行此操作的簡單方法是為每個使用者建立目錄(您已經必須這樣做),然後在使用者每次嘗試上傳內容時檢查目錄中的檔案使用了多少空間。如果上傳會導致超出限制,請拒絕上傳。這就是已知宇宙中所有其他 Web 應用程式的做法。

PS:你在幾則評論中散佈了你正在做的事情的細節;您應該將它們添加到問題中,以便人們可以找到它們(也許還可以扭轉您的反對票)。

相關內容