web-dev-qa-db-ja.com

XFS iノードの制限について

XFSパーティションのiノード制限に達しました。これについてはたくさんの質問があります。一部の人は、答えはiノードに割り当てられるスペースの最大パーセンテージを増やすことであると示唆しています。または、xfs_growfsのマンページに次のように記述されています。

-m iノードとして割り当てることができるファイルシステムのスペースの最大パーセンテージの新しい値を指定します。

私はこれを試しましたが、何が見えるかわかりません。制限に達したときのデフォルトは25%でした。これにより、781GBのディスクイメージに409,600,129のiノードができました。

100%に増やしたところ、1,566,536,296のiノードを使用できるようになりました。

$ df -i
Filesystem                        Inodes     IUsed      IFree IUse% Mounted on
...
/dev/loop3                    1566536040 409600129 1156935911   27% /mnt/tiles

20億を超えるエントリ(主にシンボリックリンク)を書き込むことを期待しているため、100%でも十分ではありません。 XFSがはるかに多くのファイルをサポートできることを理解していたので、何かが足りないように思います。

-o inode64で再マウントしてみましたが、違いはありませんでした。 (このオプションはとにかくデフォルトでなければなりません)。

$ Sudo xfs_growfs -m 100 .
meta-data=/dev/loop3             isize=512    agcount=4, agsize=51200000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0 rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=204800000, imaxpct=100
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=100000, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
inode max pct unchanged, skipping

ドライブのサイズは不十分ですか?または、私が知らない他の構成または制限はありますか? iノードの100%割り当てが1.5GBに等しいのはなぜですか?

1
Synesso

Iノードが使用できる最大スペースを増やしましたが、おそらくfreeスペースが少なすぎて、1.5Bを超えるiノードをサポートできません。各iノードは約512バイトを使用するため、約750 GBの空き容量または空き容量があると思います。

スペースを解放するか、ファイルシステムを拡張してください。

3
shodanshok

信じられないかもしれませんが、構成されたボリュームは、達成しようとしているものに対して小さすぎます。巡回冗長検査(現在のデフォルト)を使用する場合のXFSの最小iノードサイズは512バイトです。 20億のシンボリックリンク、リンクあたり512bは、これらのiノードをすべて格納するために、少なくとも953 GBまたは1 TB(10億の定義に応じて)が必要であることを意味します。

そのボリュームを再フォーマットできる場合は、目的に合わせてボリュームを変更できます。

  • -i maxpct=90 mkfsプロセス中に、90%のスペースをiノードとして使用できる新しいボリュームが作成されます。ハードウェアに適合しませんが、これでどれだけスローできるかを変更できれば、xfsがほぼすべてのスペースを使用してシンボリックリンクを追跡できるようになります。
  • -m crc=0 -i size=256 mkfsプロセス中にCRCサポートを無効にし、inodeサイズを半分にします。このオプションは、ハードウェアの問題から防御しないという犠牲を払って、現在のハードウェアに適合します。
1
sysadmin1138