Skip to main content
ONTAP Technical Reports
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

檢視 maxdir-size 和目前目錄大小

貢獻者 whyistheinternetbroken

Volume maxdir-size 欄位是 Volume 中每個目錄的授權容量上限。測量個別目錄需要檢查該目錄物件,而不是 Volume 所使用的資料。

查看設定的上限

set -privilege advanced
volume show -vserver <svm> -volume <volume> -fields maxdir-size

這報告的是每個目錄的上限,而不是特定目錄的大小。

從 NFS 用戶端查看目錄檔案

ONTAP 沒有直接報告單一目錄大小的命令,因此必須透過用戶端查詢或使用隨裝即用工具來取得該值。如果需要精確的目錄物件大小,NFS 用戶端是首選的用戶端側方法。

在來自 GNU/Linux 用戶端的已裝載 NFS 路徑上,使用 `stat`或對目錄物件本身進行長目錄清單:

stat -c '%n %s bytes' /mount/path/directory
ls -ld /mount/path/directory

請勿將 du`用於此目的。 `du 報告目錄下方可存取的資料,而 `maxdir-size`則適用於目錄中繼資料檔案本身。

若要尋找安裝點下最大的目錄,請執行 find,以按大小列出葉目錄並剔除 Snapshot 快照技術複本。以下傳回最大的 10 個目錄:

find /mountpoint -name .snapshot -prune -o -type d -ls -links 2 -prune | sort -rn -k 7 | head

第七列顯示的是目錄檔案大小(以位元組為單位);預設值為 320 MB 的目錄顯示為 335,544,320 位元組。即使對於包含數百萬個檔案的目錄,此方法也能快速運作。

從 SMB 用戶端查看目錄大小

Windows 和 SMB 用戶端不會公開目錄本身的中繼資料大小,因此沒有直接等同於 stat`或 `ls -ld`的 SMB 對應項目用於 `maxdir-size:

  • dir 將目錄列為 <DIR>,沒有自身大小。

  • 檔案總管中資料夾的 內容 對話方塊報告的是資料夾下包含的資料總大小(相當於 du),而不是目錄中繼資料檔案。

若要測量 SMB 服務資料集的目錄大小,請改用以下方法之一:

  • 如果該 Volume 也支援 NFS,請將其裝載並使用上述的 stat、 ls -ld 或 find 方法。

  • 使用 NetApp XCP,它可以直接掃描 SMB 共享(請參閱以下部分)。

使用 XCP 掃描目錄大小

NetApp XCP 並行掃描檔案系統並報告目錄大小和數量,這對於大型或 FlexGroup 資料集非常有用。它同時支援 NFS 匯出和 SMB 共享。XCP 會掃描整個檔案系統後才傳回符合結果,因此對於檔案數量龐大的資料集,請預留足夠的時間。

註 XCP 1.5 將該工具重組為子命令,例如 scan`和 `diag。在 XCP 1.5 及更新版本中,請使用 xcp scan`形式。在較早的版本中,請直接執行相同的 `-match`和 `-fmt`選項,而不需要 `scan`動詞,例如 `xcp -match "type == d" -fmt "…​" <host>:/<export>。

列印一份樹狀結構統計報告,其中包括最大目錄的條目數(顯示為 Dirsize)以及檔案和目錄的計數:

xcp scan -stats <host>:/<export>

列出每個目錄及其目錄檔案大小(以位元組為單位),從大到小排列。對於目錄物件,該 used 值是 maxdir-size 所限制的目錄中繼資料大小:

xcp scan -match "type == d" -fmt "'{} {}'.format(used, x)" <host>:/<export> | sort -rn

新增 -csv 或 -html 以儲存精確值報告,而不是簡短的控制台總計。

若要將掃描範圍限制在條目數超過指定值的目錄,請使用 xcp diag find。下列範例列出條目數超過 2,000 的目錄(改編自 "TR-4571:NetApp ONTAP FlexGroup Volume"):

xcp diag find --branch-match True -fmt "'{size} {name}'.format(size=x.digest, name=x)" <host>:/<export> 2>/dev/null | awk '{if ($1 > 2000) print $1 " " $2}'

尋找 EMS 報告的目錄

maxdir-size EMS 事件包含 Volume 和檔案 ID。使用以下方式將該 inode 解析為路徑:

volume file show-inode -vserver <svm> -volume <volume-or-constituent> -inode-number <file-id>

報告的檔案 ID 屬於達到或接近限制的目錄,而不是建立失敗的檔案。

註 對於 FlexGroup, volume file show-inode 運作於組成成員,而非 FlexGroup 名稱。使用 EMS 事件所命名的組成成員,例如 fg__0024。

"← 上一頁:Maxdir-size 與大型 ONTAP 目錄"

"接下來:ONTAP 中的目錄索引 →"