Страницы

Поиск по вопросам

пятница, 5 июля 2019 г.

Ошибка при копировании больших объемов данных (Ubuntu)

Возникла такая проблема, копирую файлы с винды по локальной сети, около 1 млн файлов весом в 200Гб (простым способом, наутилусом). После того как скопировалось 411242 файлов 26,6Гб (это последняя попытка) система зависает, и выдает какие-то кракозябры на черном экране, среди которых можно найти sdb1 - это сам винт (4Тб HDD). Смонтирован он в /mnt/sdb1/, фс ext4. Почем так происходит? Ведь если копировать понемногу то все работает нормально.
ЛОГИ dsmeg и syslog: http://rghost.ru/6Mqrjp4PN


Ответ

возможно, в файловой системе закончились inode. посмотреть ситуацию по ним можно для всех примонтированных файловых систем командой df -i. пример вывода (в пятом столбце — процент использованных inode):
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/dm-0 920272 207134 713138 23% / udev 497545 440 497105 1% /dev tmpfs 499982 769 499213 1% /run tmpfs 499982 3 499979 1% /dev/shm tmpfs 499982 7 499975 1% /run/lock tmpfs 499982 14 499968 1% /sys/fs/cgroup /dev/sda1 124496 335 124161 1% /boot tmpfs 499982 9 499973 1% /run/user/1000
для конкретной файловой системы можно указать точку монтирования (у автора — /mnt/sdb1):
$ df -i /mnt/sdb1
или, даже если файловая система не примонтирована, с помощью команды sudo tune2fs -l /dev/sdb1 | grep -i inode. пример вывода:
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Inode count: 920272 Free inodes: 713166 Inodes per group: 8144 Inode blocks per group: 509 First inode: 11 Inode size: 256 Journal inode: 8 First orphan inode: 1863 Journal backup: inode blocks
обратить следует внимание на inode count и free inodes
к сожалению, после создания файловой системы ext* уже невозможно изменить количество inode в ней. надо пересоздавать файловую систему (предварительно сохранив куда-нибудь всё её содержимое), указав, например, другой тип использования файловой системы.
задать тип можно параметром -T usage-type программы mkfs.ext4
список типов можно посмотреть в /etc/mke2fs.conf
очень большое количество inode будет создано, например, для типа news (чем меньше inode_ratio, тем больше inode будет создано, а файловая система будет разбита на большее количество «кусочков» меньшего размера).
а можно, не указывая тип использования, передать программе mkfs.ext4 непосредственно желаемый inode_ratio с помощью параметра -i
например, так:
$ sudo mkfs.ext4 -i 4096 /dev/sdb1
предупреждение: только не увлекайтесь уменьшением inode_ratio: каждый inode «отбирает» несколько байт (задаётся с помощью inode_size, который лучше самому не изменять) «полезной ёмкости» для «служебной» информации.

Комментариев нет:

Отправить комментарий