XFSファイルシステムを含む500 GBのディスクがあります(編集:オペレーティングシステムは別のディスクにあります)。このディスクには、元のデータのハードリンクされた複数のコピーの形式のバックアップデータがあります。新しいバックアップを実行するたびに、最も古いバックアップデータを含むディレクトリを削除します。そのrm
プロセスが終了しないことがあります(そしてCPUを大量に消費します)。シャットダウン(-9)しても役に立たず、システムを再起動するだけで役に立ちました。
私はxfs_repair
そのボリュームで実行しようとしました。しかし、RAMが十分ではないようです(マシンには4 GBのRAMがあり、32ビットのみをサポートしています)。
マシンの位置により、ハードドライブに物理的にアクセスすることは困難です。
ファイルシステムを修復またはシャットダウンするにはどうすればよいですかrm
?
編集:xfs_repair -v -t 1 /dev/disk/xxx
私はxfs_repair version 3.1.7
。編集:出力:
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- agno = 0
failed to create prefetch thread: Resource temporarily unavailable
- agno = 1
failed to create prefetch thread: Resource temporarily unavailable
- agno = 2
failed to create prefetch thread: Resource temporarily unavailable
- agno = 3
failed to create prefetch thread: Resource temporarily unavailable
- agno = 4
failed to create prefetch thread: Resource temporarily unavailable
- agno = 5
failed to create prefetch thread: Resource temporarily unavailable
- agno = 6
failed to create prefetch thread: Resource temporarily unavailable
- agno = 7
fatal error -- calloc failed in dir_hash_init
ベストアンサー1
どのように動作するかを確認するためにstrace
このプロセスを試しましたか?rm
大量のファイルを削除すると、XFSが非常に遅くなる可能性があります。私は愚かなXFSを使用していましたが、何百万ものファイルをccache
移動するよりも他のすべてのファイルを移動したり、ファイルをフォーマットしたり、ファイルを再移動したりする方がはるかに高速でした。私はその過程をそのままにしておけば結局終わります。rm -r
ccache
の場合、xfs_repair
メモリを大量に使用することを見たことはありませんが、すべてのコンピュータに十分なメモリがあるので...
役に立つ場合は、スワップを追加できます。あるいは、ブロックデバイス(OpenVPNまたはSSHトンネルを介してNBDを使用)を使用可能なRAMをより多くのシステムにエクスポートすることもできます。しかし、これがxfsdump
ファイルシステム全体のイメージを転送するよりも速いか遅いかはわかりません。使用)。xfs_repair
プロセス中に読み書きする必要があるデータの量によって異なります。