Недавно я установил NFS-сервер на своем сервере Ubuntu, и в настоящее время я в процессе переноса моих файлов с жестких дисков HFS + на ext4. Однако я столкнулся с проблемой, когда на принимающем диске (в формате ext4) не хватает места до завершения передачи. Оба диска являются внешними USB-накопителями емкостью 2 ТБ, а принимающий диск был недавно отформатирован, поэтому на нем ничего не должно быть.
Мне известно, что размер блока по умолчанию для ext4 равен 4 КБ, и, как и ожидалось, сравнение
du /media/[Receiving Drive]/*
du --apparent-size /media/[Receiving Drive]/*
показывает, что большинство (если не все) файлы используют дополнительные 4 КБ на диске. На диске HFS +, который я, к сожалению, уже отформатировал в ext4, поэтому я не смогу получить какую-либо информацию, было чуть более 12 ГБ свободного места, однако, исходя из текущего использования диска ext4 и количества файлов, которые я я уже перенесен, мне не хватает более 200 ГБ места!
Я абсолютно не знаю, откуда возникает это несоответствие, поскольку самое большее добавление 4K к каждому отдельному файлу будет значительно меньше 1 ГБ, намного меньше 200.
Оба диска теперь отформатированы как ext4 с таблицей разделов GUID, и дисковая утилита показывает, что между ними существует разница в ~ 700 МБ (еще одна загадка).
Достаточно сказать, что я застрял. Есть предложения?
При настройках по умолчанию ext4 выделяет один инод на 16 386 байт, а инод равен 256 байт, поэтому на диске 2 ТБ, который использует ~ 32 ГБ для таблиц инодов. Вы можете уменьшить это, когда форматируете с помощью опции -T largefile
, заданной для mkfs.ext4
, но если у вас много маленьких файлов, у вас может не хватить inode, и вы больше не сможете создавать, даже если есть свободное место. Если большинство ваших файлов меньше половины мегабайта, это не должно быть проблемой.
Другое дело, что по умолчанию 5% пространства зарезервировано и не может быть захвачено обычными пользователями. На вашем диске 2 ТБ, что составляет 100 ГБ. Вы можете отключить это с помощью sudo tune2fs /dev/sdXX -m 0
(где / dev / sdXX - рассматриваемый диск / раздел), но, как правило, не рекомендуется заполнять диск выше 95%, так как это может привести к фрагментации.