0

状況: サーバーは XFS ファイルシステムを使用し、ブロックサイズは 4kB です。小さなファイルがたくさんあります。

結果: 一部のディレクトリは 2 GB 以上のスペースを必要としますが、実際のファイル サイズは 200 MB 未満です。

解決策: XFS ブロック サイズを最小の 512B に変更します。オーバーヘッドが増え、パフォーマンスが低下することは承知していますが、どの程度かを知ることはできませんでした。

質問: どのようにそれを行う?

XFS が xfsdump を使用してデータをバックアップしていることは承知しています。したがって、/dev/sda2 が変更したい実際の XFS ファイルシステムであり、/mnt/export が xfsdump を使用してダンプしたい場所であると仮定します。マニュアルによると、ダンプされたブロックサイズは復元されたブロックサイズと同じである必要があり、-b パラメーターは「ダンプに使用するブロックサイズをバイト単位で指定します」。. 説明書にも「デフォルトのブロックサイズは1Mbです」と書いてあるのでちょっと心配です

これは完全なファイルシステムをダンプする正しい方法ですか (この場合、/dev/sda2 は /home にマウントされています)?

xfsdump -b 512 -f /mnt/export /home

上記のコマンドが正しい場合、ブロックサイズが 512B のファイルを正しく戻すにはどうすればよいですか? 私の推測では、次を使用して /dev/sda2 を 512B ブロックサイズに再フォーマットします

mkfs.xfs /dev/sda2 -b 512

そして使用する

xfsrestore -f /mnt/export /home

しかし、どうすればよいかわかりませんし、正しいかどうかをテストして確認する良い方法もありません。

4

1 に答える 1

0

そこで、さらに調査を行った結果、次のようになりました。

xfsdump -f /mnt/export_file /home
umount /home
mkfs.xfs -b size=1024 /dev/sda2 -f
#Minimum block size for CRC enabled filesystems is 1024 bytes.
mount /home
xfsrestore -f /mnt/export_file /home

ご覧のとおり、CRC が有効なファイルシステムの最小要件のため、ブロックサイズを 512B に変更できませんでしたが、それ以外の場合は完全に成功しました。最初にファイルシステムをアンマウントする必要があるとは思いませんでした。/home に homedir を持つユーザーとしてログインしている場合は、これを行うことができないため、root としてログインします。

于 2021-04-21T14:06:45.947 に答える