У меня есть проблема с сервером под управлением Ubuntu 16.04.05. После запущения скрипта Python, кто создал больше чем 65 миллионов файлов, у меня есть сообщение об ошибке, говоря, что я не имею пространства в запасе:
12 zip -r 31.zip 31
zip I/O error: No space left on device
zip error: Could not create output file (31.zip)
Я нашел некоторые подобные проблемы онлайн: Никакое пространство не уехало на устройстве, хотя существует пространство и Никакое пространство, оставленное на устройстве даже при том, что существует, но я думаю, что у меня есть другой. Решения, отправленные в этих двух ответах, не работают на меня.
Следующее является структурой устройства хранения данных:
➜ 12 df -k
Filesystem 1K-blocks Used Available Use% Mounted on
udev 32963768 0 32963768 0% /dev
tmpfs 6597356 9244 6588112 1% /run
/dev/sda1 32895856 26382068 4819736 85% /
tmpfs 32935580 96 32935484 1% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 32935580 0 32935580 0% /sys/fs/cgroup
/dev/sdb 1031992064 664288464 322578204 68% /media/hdd1
tmpfs 6587116 20 6587096 1% /run/user/118
tmpfs 6587116 0 6587116 0% /run/user/1001
Я работаю и пытаюсь архивировать папку в /media/hdd1
который должен иметь много в запасе пространства. Размер папки, которую я пытаюсь архивировать:
➜ 12 du -sh 31
49M 31
Править:
➜ 12 df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 8240942 478 8240464 1% /dev
tmpfs 8246695 617 8246078 1% /run
/dev/sda1 2097152 500872 1596280 24% /
tmpfs 8233895 5 8233890 1% /dev/shm
tmpfs 8233895 6 8233889 1% /run/lock
tmpfs 8233895 16 8233879 1% /sys/fs/cgroup
/dev/sdb 65536000 65536000 0 100% /media/hdd1
tmpfs 8246695 15 8246680 1% /run/user/118
tmpfs 8246695 4 8246691 1% /run/user/1001
Как ByteCommander объяснил, у Вас есть проблема с inodes.
Другой способ заняться этой проблемой состоит в том, чтобы искать миллионы небольших файлов, которые используют inodes.
sudo du -a -x -d 1 --inodes /media/hdd1 | sort -nr | head -20
покажет Вам каталоги, использующие большую часть inodes на/media/hdd1 - можно затем путешествовать вниз через каталоги, пока Вы не находите тот заполненным набором файлов.
"После запущения скрипта Python, кто создал больше чем 65 миллионов файлов" вот, Ваша проблема.
ext4 использование Ubuntu файловой системы имеет только ограниченное количество так называемого "inodes", который определяется, когда Вы форматируете раздел. Вам нужен по крайней мере один inode на файл или каталог в файловой системе.
Теперь при создании огромных чисел маленьких файлов Вы исчерпаете доступный inodes быстрее, чем доступное пространство памяти. Оба одинаково приводят к тем же признакам на вид полного диска все же.
Необходимо будет избавиться от тех тонн крошечных файлов и например, поместить их на другой диск, в zip-файле, или удалить их в целом.
К сожалению, количество inodes не может быть изменено динамично, насколько я знаю. При реальной необходимости в больше на текущем разделе необходимо будет, вероятно, создать резервную копию данных и переформатировать все.
Похожие страницы: