PLEXサーバーとして機能するraid Z1には、約90TBのZFSプールがあります。現在、空き容量が約300GB程度あります。平均して、ほとんどのファイルはそれぞれ70〜80GBです。
小さいファイル(〜10 GB)をコピーしても問題ありません。転送が成功し、Inodeの消費に影響を与えません。
大容量ファイル(〜70 GB)をコピーすると、Inodeの消費は1%から100%にジャンプされます。これは単一のファイル範囲では不可能です。ファイルを削除すると、消費量は再び1%に低下します。単純な大容量ファイルではなく、大容量ファイルであれば、同じ問題が発生します。
wget(リモートFTP)を使用するか、NFSマウントに直接ファイルをコピーし、消費動作は同じです。
次のようなこのガイド、デフォルトのレコードサイズは128KBなので、inodeを消費するファイルサイズのためにinodeが非常に高速に消費されるようです。
そうですか? 1MBのレコードサイズでこの問題は解決されますか?
プール状態
root@pve:~# zpool status pool
pool: pool
state: ONLINE
scan: scrub in progress since Thu Jul 27 18:40:26 2023
25.0T scanned at 478M/s, 23.6T issued at 450M/s, 76.1T total
0B repaired, 30.99% done, 1 days 10:00:10 to go
config:
NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST6000VN001-2BB186_XXXXXXXX ONLINE 0 0 0
ata-ST6000VN001-2BB186_XXXXXXXX ONLINE 0 0 0
ata-ST6000VN001-2BB186_XXXXXXXX ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
ata-ST6000VN001-2BB186_XXXXXXXX ONLINE 0 0 0
ata-ST6000VN001-2BB186_XXXXXXXX ONLINE 0 0 0
ata-ST6000VN001-2BB186_XXXXXXXX ONLINE 0 0 0
raidz1-2 ONLINE 0 0 0
ata-ST8000VN004-2M2101_XXXXXXXX ONLINE 0 0 0
ata-ST8000VN004-2M2101_XXXXXXXX ONLINE 0 0 0
ata-ST8000VN004-2M2101_XXXXXXXX ONLINE 0 0 0
raidz1-3 ONLINE 0 0 0
ata-ST8000VN004-2M2101_XXXXXXXX ONLINE 0 0 0
ata-ST8000VN004-2M2101_XXXXXXXX ONLINE 0 0 0
ata-ST8000VN004-2M2101_XXXXXXXX ONLINE 0 0 0
errors: No known data errors
root@pve:~# zfs get all pool
NAME PROPERTY VALUE SOURCE
pool recordsize 128K default
Inode 消費 (ファイル前コピー)
共有ディレクトリはPLEXファイルが保存される場所です。
root@pve:\~# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
pool 87M 17 87M 1% /pool
pool/share 87M 36K 87M 1% /pool/share
pool/main 87M 12 87M 1% /pool/main
Inode消費(ファイルコピー後)
root@pve:~# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
pool 17 17 0 100% /pool
pool/share 36K 36K 0 100% /pool/share
pool/main 12 12 0 100% /pool/main
答え1
statvfs()
システムコール(df
後で使用されるもの)によって報告されたInode使用量は、ZFSにはあまり役に立ちません。
従来、ファイルシステムには固定数のinodeがあったため、合計数と余裕数を報告するのは簡単でした。 ZFSは必要に応じてより多くのinode(実際にはZFS関連の概念に似た「dnode」)を割り当てます。
報告される「空き」数字statvfs()
は、ZFSがプールの残りのスペース(または設定されている場合はデータ・セットクォータ)から割り当てることができるdnodeの数です。その後、合計金額は無料+使用されます。 (源泉)
したがって、ここで「無料のinode」で何が起こっているのかを理解するには、プールの全スペース使用量を調べることをお勧めします。コピーが残ったスペースを埋めますか?
一般的に言えば、zpool list
これはzfs list
あなたのスペースがどこに行くかについてより良いアイデアを提供します。これは必ずしも簡単ではありません。 ZFS空間予測は、プールの構築方法、プールおよびデータセットの構成方法、実際に使用可能なスペースの量に応じて、スペースを使用または使用しない戦略が多いため、不正確な傾向があります。
最後に、レコードサイズは使用されるdnodeの数には影響しませんが、ブロックサイズが大きくなると、上記のようにビデオなどのデータがうまく圧縮されない場合、または圧縮がオフになった場合、より多くのスペースが無駄になるという意味に変更されました。 「自由inode」の推測計算
しかし、結論は:明らかなinodeの使用を除いて、すべてが大丈夫に見える場合はdf
心配しないでください。実際には意味がありません。