私は大量のデータを保存するサーバーを持っており、何百万ものファイルが入った多くのネストされたディレクトリを保持しています。
1つの大きなディレクトリ(約700GB)を1つのディスクから別のディスクに移動しようとすると、エラーが発生します。
mv /media/storage3/dir /media/storage4/
"No space left on device"
また、ディスク上に小さなtxtファイルを作成しようとしても機能しません。
Error opening file '/media/storage4/Untitled Document': No space left on device
私は多くのオプションをオンラインでチェックしましたが、どれもうまくいきませんでした。
df -h出力:
Filesystem Size Used Avail Use% Mounted on
/dev/sdg7 77G 9.2G 64G 13% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 32G 4.0K 32G 1% /dev
tmpfs 6.3G 1.4M 6.3G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 32G 76K 32G 1% /run/shm
none 100M 48K 100M 1% /run/user
/dev/sdg6 19G 6.7G 11G 39% /home
/dev/sdb1 440G 278G 140G 67% /var
/dev/sda1 2.8T 2.0T 764G 73% /media/storage1
/dev/sdh1 2.8T 1.6T 1.3T 56% /media/storage2
/dev/sdi1 2.8T 1.7T 1.2T 60% /media/storage3
/dev/sdf1 2.8T 876G 1.9T 32% /media/storage4
df -i出力:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdg7 5079040 514215 4564825 11% /
none 8242449 2 8242447 1% /sys/fs/cgroup
udev 8239750 611 8239139 1% /dev
tmpfs 8242449 696 8241753 1% /run
none 8242449 5 8242444 1% /run/lock
none 8242449 4 8242445 1% /run/shm
none 8242449 28 8242421 1% /run/user
/dev/sdg6 1220608 218613 1001995 18% /home
/dev/sdb1 29310976 12863877 16447099 44% /var
/dev/sda1 858436804 41630853 816805951 5% /media/storage1
/dev/sdh1 1356948436 38728057 1318220379 3% /media/storage2
/dev/sdi1 1217505624 34748869 1182756755 3% /media/storage3
/dev/sdf1 2048962648 36308921 2012653727 2% /media/storage4
オンラインで読んでいると、膨大な量のファイルへのアクセスが原因で同様の問題が発生し、fs.inotify.max_user_watchesを高い値に設定すると解決できる可能性があると人々は言った。8192から1000000に増やしたが役に立たなかった。
以下を実行します。
lsof -s | sort -nrk 7 | head
次のような出力が表示されます。
firefox 2997 j 52rr REG 252,0 10485760 5505182 /some/path
firefox 2997 j 50rr REG 252,0 10485760 5505182 /some/path
firefox 2997 j 3rr REG 252,0 10485760 5505182 /some/path
firefox 2997 j 39rr REG 252,0 10485760 5505182 /some/path
firefox 2997 j 31ur REG 252,0 10485760 5505182 /some/path
注意;上記は、スペースの使用状況を見つけるために判断を下す必要がある例にすぎません。
出力について:
ファイル記述子のコンテンツを削除して、そのスペースを取り戻すことができます。
cat /dev/null > /proc/2997/fd/50
明らかに、これはそのファイル記述子のすべてのデータを破壊します。
rsync -avrz storage3 storage4
そしてその後ファイルを削除しましたが、Linux(Ubuntu)を使用している場合にNTFSファイルシステムを使用してこれらの共有がある理由について別の質問があり、ext4またはReiserFS、ButterFSを使用しました。これらの共有がWindowsボックスにある場合は、robocopyを使用してこれらのファイルをWindowsからWindowsに移動してみてください。これは、この点で優れています。 Robocopyは主にrsyncのように機能します。
rsyncのmanページ: http://linux.die.net/man/1/rsync
robocopyのヘルプページ: https://technet.Microsoft.com/en-us/library/cc733145.aspx
linux用3g-ntfsドライバーのサポートページ:www.tuxera.com/community/open-source-ntfs-3g/
3g-ntfsに関するFAQ:www.tuxera.com/community/ntfs-3g-faq/
Ubuntuのインストールで使用しているNTFSファイルシステムドライバー内で何かを修正する必要があると思います。使用しているNTFSのディストリビューション、ディスクのマウント方法、ディスクがローカルのubuntuボックスに接続されている、またはマウントされているSANからiSCSIを使用していますか?
このトラブルシューティングには、「NTFSにあるファイルを移動できず、ubuntuを実行してファイルを移動しているだけ」という以上の意味があります。
Tarを使用してすべてのデータをコピーし、後で削除することができます。
cd /media/storage3/; tar cfp - ./dir | ( cd /media/storage4; tar xfp - )
これにより、すべての所有権、権限、リンクが保持されます