Я не смог найти больше информации, и чтение кода заставляет меня думать, что у меня проблемы с совместимостью.
Вот история: это в виртуализированной многопользовательской среде. Мы пытались найти способ уменьшить размер виртуальных дисков, если пользователю больше не нужно много места. Вырастить их легко, а вот усадить - сложно.
Сегодня мы подумали, что можем просто использовать избыточное выделение дисков и оставить виртуальный диск таким же большим, как и было, но реализовать квоту. Это вместе с обрезкой приведет к сокращению фактического использования на серверной SAN и, таким образом, эффективно отразит использование клиента.
В XFS есть функция для реализации квоты на каталог (которую мы попытаемся включить для /, чтобы получить то, что мы хотим). ext4 имеет квоты только для каждого пользователя или группы, поэтому это не сработает.
Введите: зарезервированные блоки. Они предназначены для того, чтобы оставить некоторое пространство свободным для root (или, скорее, для определенного пользователя / группы) в случае, если машина достигает сценария «заполнение диска».
Я играл с ним, но никогда не мог его запустить: даже если я установил количество зарезервированных блоков на 50% от диска (через tune2fs), я мог, как обычный пользователь, потреблять гораздо больше (даже фактически заполнить диск ).
Что меня удивило, так это то, что, глядя на данные, tune2fs -l
Сообщается, что половина диска не использовалась. В Интернете говорится, что это число ненадежно в качестве онлайн-отчета, так что что ж. (Интересно, что это число даже не изменилось после чистой перезагрузки.)
Я начал изучать параметры ядра и фактический код ext4, который находится в нашей среде, и наткнулся на путь кода, который указывает, что использование отложенного распределителя блоков может не запускать проверки резервирования блоков.
Поскольку по этому поводу трудно найти что-либо надежное, вот более конкретные вопросы: