15 мая 2010 г.

Куда пропало место в файловой системе ext4?

Задача: Отформатировать диск из NTFS в ext4 в Ubuntu Linux

Зачем: Если возник этот вопрос, тогда гуглим "EXT4 против NTFS: сравнение производительности двух файловых систем" Если лень читать, то в кратце сообщаю, что выигрыш в скорости в некоторых операциях достигает 26%.

Проблема:
Имеем диск Samsung HD103UJ объемом 1TB отформатированный в NTFS, показывает свободными 931.4Гб
Тот же диск будучи отформатированным в ext4 в Ubuntu средствами Gparted показывает раздел равным 916,9Гб (что нормально, т.к. по дефолту на служебные нужды в виде nodes и журнал без учёта резерва для рута Ext3 и Ext4 тратят около 1,7% места. Считаем: 931 * 0,017 = 15,82.), а свободными всего 870,1Гб.

Вопрос: куда пропали 916-870=46 гигабайт?



Ответ: Зарезервировано для root'а 5% по умолчанию. 916,9 * 0.05 = 45.845

Подробнее: Заполнение дискового раздела на 100% – далеко не самое приятное, что может произойти с вашей системой. Когда демоны и другие приложения не могут сохранить свои журналы или файлы состояний в /var – жди беды. Потерпев неудачу при записи данных, программы просто прекращают работу, а иногда даже рушатся! Чтобы предотвратить такой сценарий, файловые системы ext резервируют 5% от общего пространства для приложений, выполняющихся от имени root. Это правильный подход, но 5% на большом диске – это достаточно много: например, из 500 ГБ в резерв уйдут 25! Кроме того, нет смысла бронировать место там, где не может быть файлов root, например, разделе /home или втором физическом диске (как у меня)

Решение: Хорошая новость – величина 5% не является жестко зашитой в код ОС, и вы можете менять ее на лету, не рискуя потерять файлы с данными. Для подстройки параметров файловых систем ext используется утилита tune2fs. Она позволяет менять метку тома или порог числа монтирований, после которого автоматически будет запускаться fsck, а также более экзотические настройки. Нам помогут опции -m и -r. Первая устанавливает процент блоков ФС, резервируемых для пользователя root, а вторая задает их абсолютное количество. Поэтому команда  tune2fs -m 2 /dev/sda1 сокращает «бронь root» до 2%, что может оказаться полезным, если у вас объемный раздел / или /var. Рекомендуем к использованию, если у вас жесткий диск на 500 ГБ или больше. Другая команда, tune2fs -r 0 /dev/sda1 отменяет резервирование блоков в файловой системе, а потому подойдет для /home, где не может быть файлов суперпользователя.

Пример: нужную команду выполнять в терминале из под sudo и вместо sda1 подставить нужный раздел (его имя можно посмотреть в том же Gparted), у меня это был sdb1.

sudo tune2fs -m 2 /dev/sda1

sudo tune2fs -r 0 /dev/sda1

Результат: имеем после применения sudo tune2fs -r 0 /dev/sdb1 раздел размером 916,7 Гигабайт. 46 гигабайт вернулись на место.

4 комментария: