Зарезервований простір для root у файловій системі - чому?


105

Я розумію, що за замовчуванням будуть створені новостворені файлові системи з 5% простору, виділеного для root. Я також знаю, що ви можете змінити визначений простір за допомогою:

tune2fs -m 1 /dev/sdXY

Мені цікаво хоч і є те, що справжнє призначення цього зарезервованого простору. Чи служить воно будь-якій практичній цілі, яка б за певних обставин мала більше 5%?

Причина, з якою я натрапив на це питання, полягає в тому, що нещодавно ми створили файл-крамницю 1 ТБ, і не змогли зрозуміти, чому через df -h залишилось нам не вистачає 5% нашої потужності.


1
Гаразд, зараз це велика трата "недоступного" простору. Можливо, 5% повинні бути обмежені розмірами диска менше X (наприклад, 5% дискового простору до максимум 100 МБ).
thepang

3
У моїй 8 ТБ файлової системи 400 Гб щойно пішло - це справжня трата місця !! :)
Ілля Ростовцев

Відповіді:


101

Економія місця для важливих кореневих процесів (та можливих дій порятунку) - одна з причин.

Але є інше. Ext3 досить добре уникає фрагментації файлової системи, але, коли ви наберетеся приблизно на 95%, така поведінка падає з обриву, і раптом продуктивність файлової системи стає безладом. Таким чином, залишаючи 5% зарезервованого, ви отримуєте буфер проти цього.

Ext4 має бути кращим у цьому, як пояснив розробник / гуру файлової системи Linux Теодор Цо :

Якщо встановити кількість зарезервованих блоків на нуль, це не вплине на продуктивність, за винятком випадків, коли ви працюєте протягом тривалого періоду часу (з великою кількістю файлів створюється та видаляється), поки файлова система майже повна (наприклад, вище 95%), в цей момент у вас виникнуть проблеми з фрагментацією. Багатоблоковий розподільник Ext4 набагато стійкіший до фрагментації, тому що він намагається значно важче знайти суміжні блоки, тому навіть якщо ви не ввімкнете інші функції ext4, ви побачите кращі результати просто встановлення файлової системи ext3 за допомогою ext4 перед файловою системою стає повністю повним.

Якщо ви просто використовуєте файлову систему для довготривалого архіву, де файли змінюються не дуже часто (наприклад, величезний магазин mp3 чи відео), це, очевидно, не має значення.


3
Як зазначалося на superuser.com/a/1257550/38062 , ці цифри "90%" та "95%" мають своє початок у вимірах проти Берклі ФФС, проведених у 1980-х роках. За десятиліття з того часу інші люди оскаржували цю часто повторювану отриману мудрість.
JdeBP

1
У нормальних користувачів із цим зарезервованим простором не зменшується продуктивність. Вони просто не отримають місця на пристрої раніше, ніж очікувалося. Однак у кореня буде достатньо місця для вирішення будь-якої проблеми із заповненням диска.
crististm

44

Якщо ви дозволяєте іншим входити у вашу систему, наприклад, через ssh, якщо ці 5% блоків зарезервовані, то зовнішні користувачі не можуть заповнити диск. Навіть якщо ви не дозволяєте іншим входити у вашу систему, зарезервовані блоки не дозволяють програмам не запускатися як корінь заповнювати ваш диск.


Дякую за це, щиро боровся, з якою відповідь позначити як правильну - відповідь, яка була першою і поміщеною, mattdm позначена як правильна завдяки додатковій інформації та деталізації, яка допомогла мені зрозуміти "чому" більше.
suitedupgeek

22

Оскільки блоки, зарезервовані для ваших користувачів, і служби, які працюють як конкретні користувачі, а не виконуються як root, не можуть заповнити файлсистем і потенційно зламати інші речі, які потрібно записати у вказану файлову систему - хоча служби, що працюють як root, все ще можуть зробити це повністю повний звичайно.

Це також дає вам трохи місця для роботи, коли користувачі скаржаться на повний диск або служби починають виходити з ладу, оскільки файлова система заповнена. Наприклад, ви можете заархівувати деякі файли в архівах zip / gz / 7zip перед тим, як видалити їх (хоча якщо файлова система була повністю заповнена, швидше за все, у вас є якась інша файлова система, для якої ви могли б створити файл архіву замість цього).

5% за замовчуванням давно , з тих пір, коли дисків було набагато менше (десятки мегабайт, а не сотні гігабайт), тому 5% було не так вже й багато. На щастя , вона легко може бути налаштована вниз на менший відсоток , як ви говорите, або встановити на певну кількість блоків , якщо ви використовуєте tune2fs«и -rваріант замість -m. В обох випадках ви можете дати параметр 0 , щоб включити резервування від повністю - я б не зробити це для /, /tmp, /varі так далі, але ви можете для файлової системи , яка тільки діє як сховище користувача (скажімо , глобальне file- share) або файли, що містять файли фіксованого розміру (наприклад, VM з фіксованим розміром), які виростатимуть лише під час створення нового.


22

Типовий 5% призначений для системних розділів. Наприклад, якщо ваше місце на диску заповнено, система записує журнали ( /var/log) та кореневу поштову скриньку ( /var/mail/root), як і раніше, може отримувати важливу інформацію. Для /homeабо загального розділу зберігання даних не потрібно залишати місця для кореня. Для особливих потреб можна змінити користувача, який отримує аварійний простір ( tune2fs -u 1234).

Є ще одна причина заборонити повноцінну файлову систему ext [234], що є фрагментацією .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.