XFSパーティション on [〜#〜] lvm [〜#〜] on buntu 14.04.1 LTSのサーバーセットアップがあります。ファイルをホームパーティションにコピーしている間、「デバイスに空き容量がありません "」が表示されます。
df -h十分なスペースを表示します:
/dev/mapper/prod--vg-home 35G 21G 15G 60% /home
また、fallocateを使用して、同じホームアカウントでディスクをほぼ完全に埋め、クォータやその他のディスク容量の問題が関連していないことを確認しました。
/dev/mapper/prod--vg-home 35G 34G 1.5G 96% /home
df -iも十分なiノードを表示します:
/dev/mapper/prod--vg-home 36700160 379390 36320770 2% /home
また、同じホームアカウントで大量の小さなランダムファイルを使用しました。これは問題を再現しました:
mkdir 1
cd 1
dd if=/dev/zero of=masterfile bs=10000000 count=1
split -b 10 -a 10 masterfile
cd ..
cp -R 1 2
これにより、「デバイスにスペースが残っていません」という結果になり、追加のスペースはほとんど必要ありません(約30MB)。df -i言及:
/dev/mapper/prod--vg-home 36700160 1310464 35389696 4% /home
同じマシンで2番目のテスト(Ubuntu 14.04.1 LTS)を実行しました。
上記のddとsplitの手順を使用して、5 GBの新しい論理ボリュームを作成し、小さなファイルで埋めました。
次のディスク容量とiノードが使用可能な「デバイスに空き容量がありません」を受け取りました。
/dev/mapper/prod--vg-test 5.0G 4.2G 811M 85% /mnt/test
/dev/mapper/prod--vg-test 4257712 937920 3319792 23% /mnt/test
ここで予約済みスペースがまだ無関係であることを確認するために、root権限を使用してこのテストを実行しました。
別のマシンで3番目のテスト(Debian 2.6.32-5)を実行しました。
5 GBの新しい論理ボリュームを作成し、上記のddとsplitの手順を使用して小さなファイルで埋めました。
手順は成功しました次のディスク容量とiノードが使用可能です:
/dev/mapper/data-test 5.0G 4.2G 909M 83% /mnt/test
/dev/mapper/data-test 4721904 1000005 3721899 22% /mnt/test
ここでも予約済みスペースが無関係であることを確認するために、root権限も使用してこのテストを実行しました。
これはbuntu 14.04.1LTSのバグを指していますか?
Ubuntu 14.04.1LTSでinodeの最大パーセンテージを変更した場合の影響を確認しました。
xfs_growfs -m 25 /dev/mapper/prod--vg-home
この量は簡単に増減できます。
この設定を試していると、3%に減らして25%に増やし、一部のファイルを削除すると、さらに多くのファイルを追加できることに気付きましたが、ストレージまたはiノードがいっぱいになる前にエラーが発生します。 。
xfs_info表示:
meta-data=/dev/mapper/prod--vg-home isize=256 agcount=14, agsize=655360 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=9175040, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
「デバイスに空き容量がありません」というメッセージが表示される可能性のある他の設定はありますか?それとも、これはバグであると結論付ける必要がありますか?
ありがとうございました
Xfs_growfsにバグがあり、iノードがパーティション全体に適切に分散されません。解決策は、inode64オプションを使用して再マウントすることです。たとえば、これが/ dev/vda1の場合、次のようにします。
mount -o remount,inode64 /dev/vda1
バグの詳細については、 ここ を参照してください。
ディレクトリ(特に/home
)ディスクがいっぱいでないときにディスクがいっぱいであると言う場合があり、その状況はユーザーのクォータを意味します。ユーザーの使用可能なスペースに制限がある可能性があります。それが問題かどうかを確認してください。