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

<p>я понимаю, что по умолчанию вновь созданные файловые системы будут создаваться с 5% пространства, выделенного для root. я также знаю, что вы можете изменить определенное пространство с помощью:</p><pre><code>tune2fs -m 1 /dev/sdxy </code></pre><p>что меня интересует, так это то, какова реальная цель этого зарезервированного пространства. служит ли это для каких-либо практических целей, которые в некоторых случаях заслуживают более 5% пространства?</p><p>причина, по которой я наткнулся на этот вопрос, заключается в том, что мы недавно создали хранилище файлов объемом 1 тб и не могли понять, почему из-за df -h мы упустили 5% нашей емкости.</p>

<p>экономия места для важных корневых процессов (и возможных действий по спасению) является одной из причин.</p><p>но есть и другое. ext3 довольно хорошо избегает фрагментации файловой системы, но как только вы наберете около 95% заполнения, такое поведение сойдет с обрыва, и вдруг производительность файловой системы станет беспорядочной. таким образом, оставив зарезервированные 5%, вы получите буфер против этого.</p><p>ext4 должен быть лучше в этом, как <a href="https://www.redhat.com/archives/ext3-users/2009-january/msg00026.html">объяснил разработчик файловой системы linux/гуру теодор цо</a> :</p><blockquote> <p>если вы установите зарезервированное количество блоков равным нулю, это не сильно повлияет на производительность, за исключением случаев, когда вы выполняете в течение длительных периодов времени (с большим количеством файлов, создаваемых и удаляемых), пока файловая система почти заполнена (то есть, скажем, выше 95%), в этот момент вы будете подвержены проблемам фрагментации. многоблочный распределитель ext4 гораздо более устойчив к фрагментации, поскольку он пытается гораздо сложнее найти смежные блоки, поэтому даже если вы не включите другие функции ext4, вы увидите лучшие результаты, просто смонтировав файловую систему ext3 с использованием ext4 перед файловой системой. становится полностью полным.</p> <p>если вы просто используете файловую систему для долгосрочного архивирования, где файлы меняются не очень часто (например, огромный магазин mp3 или видео), это, очевидно, не будет иметь значения.</p> </blockquote>

<p>если вы разрешите другим входить в вашу систему, например, через ssh, резервирование этих 5% блоков гарантирует, что внешние пользователи не смогут заполнить диск. даже если вы не разрешаете другим входить в вашу систему, зарезервированные блоки не позволяют программам, не запущенным от имени root, заполнить ваш диск.</p>

<p>с блоками, зарезервированными вашими пользователями, и сервисы, которые работают как определенные пользователи, а не как root, не могут заполнить файловую систему и потенциально могут нарушить другие функции, которые необходимо записать в указанную файловую систему - хотя сервисы, работающие как root, все еще могут сделать это полностью полный конечно.</p><p>это также дает вам некоторое пространство для работы, когда пользователи жалуются, что диск заполнен, или службы начинают отказывать, потому что файловая система заполнена. например, вы можете заархивировать некоторые файлы в архивы zip/gz/7zip перед их удалением (хотя, если файловая система была полностью заполнена, скорее всего, у вас есть какая-то другая файловая система, в которой вы могли бы вместо этого создать файл архива).</p><p>5% было по умолчанию в течение <em>long</em> времени, когда диски были намного меньше (десятки мегабайт, а не сотни гигабайт), так что 5% было не так уж много. к счастью, его можно легко уменьшить до меньшего процента, как вы говорите, или установить на определенное количество блоков, если вы используете <code>tune2fs</code> 's <code>-r</code> опция вместо <code>-m</code>. в обоих случаях вы можете задать параметр 0, чтобы полностью отключить резервирование - я бы не стал этого делать для <code>/</code>, <code>/tmp</code>, <code>/var</code> и так далее, но вы можете захотеть использовать файловую систему, которая действует только как пользовательское хранилище (например, глобальный общий файловый ресурс) или систему, которая просто хранит файлы фиксированного размера (например, виртуальные машины фиксированного размера), которые будут расти только при создании новый.</p>

<p>значение по умолчанию 5% предназначено для системных разделов. например, если ваше дисковое пространство заполняется, система записывает в журнал (<code>/var/log</code>) и почтовый ящик root (<code>/var/mail/root</code>) все еще может получать важную информацию. для <code>/home</code> или общий раздел хранения данных, нет необходимости оставлять место для root. для особых нужд вы можете сменить пользователя, который получает аварийное пространство (<code>tune2fs -u 1234</code>).</p><p>есть еще одна причина, по которой файловая система ext [234] не заполняется, - <a href="https://unix.stackexchange.com/questions/7950/reserved-space-for-root-on-a-filesystem-why/7965#7965">фрагментация</a> .</p>