Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:ext4 [2014/01/20 17:46] [Изменение числа зарезервированных под служебные нужды блоков] |
wiki:ext4 [2018/09/27 20:14] (текущий) Орфографическая ошибка |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Ext4 ====== | ====== Ext4 ====== | ||
- | Ext4 — журналируемая файловая система, предлагаемая для использования по умолчанию инсталятором Ubuntu, начиная с версии 9.10. Количество индексных дескрипторов (i-node) задается только при создании ФС и в дальнейшем может быть только уменьшено((хотя по умолчанию число дескрипторов задается довольно большим, но при записи огромного числа маленьких файлов возможна ситуация когда дескрипторов не хватит, а место на диске еще есть:-()). При создании ФС приблизительно 1,8% объёма диска занимается служебными структурами ФС((в частности на i-node)), в дальнейшем размер этих данных увеличиваться будет только на размер каталогов файлов. Кроме того еще 5% (по умолчанию) резервируется для root((этот резерв можно отключить утилитой tune2fs)). Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение, то есть "Документ.txt" и "документ.txt" — это разные файлы, и они без проблем могут находиться в одной директории.\\ В отличии от Ext3 в Ext4 пространство под файлы выделяется экстентами (extent - последовательная цепочка блоков, для идентификации которой используется только указатель на начало и длина в блоках, тогда как при выделении блоками в Ext2/3 требовалось перечислять все блоки, в которых размещен файл). | + | Ext4 — журналируемая файловая система, предлагаемая для использования по умолчанию инсталятором Ubuntu, начиная с версии 9.10. Количество индексных дескрипторов (i-node) задается только при создании ФС и в дальнейшем может быть только уменьшено((хотя по умолчанию число дескрипторов задается довольно большим, но при записи огромного числа маленьких файлов возможна ситуация когда дескрипторов не хватит, а место на диске еще есть:-()). При создании ФС приблизительно 1,8% объёма диска занимается служебными структурами ФС((в частности на i-node)), в дальнейшем размер этих данных увеличиваться будет только на размер каталогов файлов. Кроме того еще 5% (по умолчанию) резервируется для root((этот резерв можно отключить утилитой tune2fs)). Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение, то есть "Документ.txt" и "документ.txt" — это разные файлы, и они без проблем могут находиться в одной директории.\\ В отличии от Ext3 в Ext4 пространство под файлы выделяется экстентами: extent - последовательная цепочка блоков, для идентификации которой используется только указатель на начало и длина в блоках (тогда как в Ext2/3 при выделении места используются отдельные блоки и требовалось перечислять все блоки, в которых размещен файл). |
Все утилиты требуемые для работы с Ext4 содержатся в пакете //e2fsprogs//. | Все утилиты требуемые для работы с Ext4 содержатся в пакете //e2fsprogs//. | ||
Строка 18: | Строка 18: | ||
==== Конвертация в Ext4 ==== | ==== Конвертация в Ext4 ==== | ||
- | Полная конвектация раздела добавит большую часть нововведений Ext4, но некоторые из них будут применяться только к новым файлам. Для того, чтоб сконвектировать раздел в Ext4 достаточно выполнить следующие действия: | + | Полная конвертация раздела добавит большую часть нововведений Ext4, но некоторые из них будут применяться только к новым файлам. Для того, чтобы выполнить конвертацию раздела в Ext4 достаточно выполнить следующие действия: |
-- Включение новых возможностей на разделе с Ext3: | -- Включение новых возможностей на разделе с Ext3: | ||
..<code> | ..<code> | ||
Строка 27: | Строка 27: | ||
sudo e2fsck -pDf /dev/<xxx> | sudo e2fsck -pDf /dev/<xxx> | ||
</code> | </code> | ||
- | где <xxx> - название раздела который требуется конвектировать в Ext4. | + | где <xxx> - название раздела который требуется конвертировать в Ext4. |
- | <note warning>После выполнения этой команды примонтировать раздел в Ext3 будет невозможно. Если раздел прописан в [[wiki:fstab|fstab]], не забудьте внести соответствующие правки.</note> | + | <note warning>После выполнения этой команды монтирование раздела в Ext3 будет невозможно. Если раздел прописан в [[wiki:fstab|fstab]], не забудьте внести соответствующие правки.</note> |
===== Дефрагментация ===== | ===== Дефрагментация ===== | ||
ФС в Linux изначально спроектированы так, чтобы фрагментация файлов была как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может привести к заметному падению производительности дисковой подсистемы. | ФС в Linux изначально спроектированы так, чтобы фрагментация файлов была как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может привести к заметному падению производительности дисковой подсистемы. | ||
- | Вопреки расхожему мнению, дефрагментатор для Ext4 есть, и не один. | + | Для Ext4 есть несколько дефрагментаторов: |
- | * [[http://e2fsprogs.sourceforge.net/| e2fsprogs]]. На 14.11.2010 дефрагментатора ''e4defrag'' ещё нет в текущем стабильном релизе, но он содержится в [[http://git.kernel.org/?p=fs/ext2/e2fsprogs.git;a=summary|git]]. | + | * [[http://e2fsprogs.sourceforge.net/| e2fsprogs]]. Онлайн дефрагментатор из стандартного набора утилит. |
* [[http://ck.kolivas.org/apps/defrag/|Defrag]]. Дефрагментатор от Кона Коливаса. Случаются перерывы в разработке, но проект живой, в 2010 появился [[репозиторий#при_помощи_консоли_новый_способ|PPA-репозиторий]]: ''ppa:e2defrag/ppa''. | * [[http://ck.kolivas.org/apps/defrag/|Defrag]]. Дефрагментатор от Кона Коливаса. Случаются перерывы в разработке, но проект живой, в 2010 появился [[репозиторий#при_помощи_консоли_новый_способ|PPA-репозиторий]]: ''ppa:e2defrag/ppa''. | ||
* [[http://vleu.net/shake/|Shake]]. Онлайн-дефрагментатор, PPA-репозиторий: ''ppa:un-brice/ppa''. | * [[http://vleu.net/shake/|Shake]]. Онлайн-дефрагментатор, PPA-репозиторий: ''ppa:un-brice/ppa''. | ||
==== e2fsprogs ==== | ==== e2fsprogs ==== | ||
- | -- Получение исходного кода из git и сборка: | + | -- Проверка необходимости дефрагментации: |
..<code> | ..<code> | ||
- | sudo aptitude install git | + | sudo e4defrag -c /dev/<xxx></code> |
- | cd /usr/src | + | ..где <xxx> - название раздела, который требуется дефрагментировать. Например, sda4. |
- | sudo git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git | + | |
- | cd e2fsprogs | + | |
- | sudo ./configure | + | |
- | sudo make | + | |
- | </code> | + | |
-- запуск дефрагментации: | -- запуск дефрагментации: | ||
..<code> | ..<code> | ||
- | cd misc | + | sudo e4defrag /dev/<xxx></code> |
- | sudo ./e4defrag /dev/<xxx></code> | + | ..где <xxx> - название раздела, который требуется дефрагментировать. Например, sda4. |
- | ..где <xxx> - название раздела, который требуется отформатировать. Например, sda4. | + | |
-- проверка результата (в последней строке вывода должно быть ⩽0.3% non-contiguous): | -- проверка результата (в последней строке вывода должно быть ⩽0.3% non-contiguous): | ||
..<code> | ..<code> | ||
Строка 60: | Строка 54: | ||
===== Оптимизация дискового пространства ===== | ===== Оптимизация дискового пространства ===== | ||
- | На свежесозданном разделе с Ext4 обычно выделяется заметно меньше свободного дискового пространства. это происходит потому, что используется порядка 1,8% на служебные нужды: заголовки групп блоков, бинарные поля для учета свободного места, индексные дискрипторы (i-node), основной и резервные копии суперблока. Также по умолчанию резервируется 5% от объема раздела. Это необходимо для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это полезно для системного корневого раздела, но на пользовательских разделах необходимости в этом резерве нет, особенно на разделах небольшого размера, например 120 ГБ, где может сказаться банальная нехватка свободного места. | + | На свежесозданном разделе с Ext4 обычно выделяется заметно меньше свободного дискового пространства чем размер раздела. Это происходит потому, что используется порядка 1,8% на служебные нужды: заголовки групп блоков, бинарные поля для учета свободного места, индексные дескрипторы (i-node), основной и множество резервных копий суперблока.\\ |
+ | Также по умолчанию, дополнительно резервируется 5% от объема раздела для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это полезно для системного корневого раздела, но на пользовательских разделах необходимости в этом резерве нет, особенно на разделах большого размера, где 5% превращаются в очень приличные объемы (недоступные пользователю). | ||
==== Изменение процента зарезервированных блоков для нужд суперпользователя ==== | ==== Изменение процента зарезервированных блоков для нужд суперпользователя ==== |