Ext4 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:ext4 [2011/07/18 08:08]
[e2fsprogs]
wiki:ext4 [2018/09/27 20:14] (текущий)
Орфографическая ошибка
Строка 1: Строка 1:
 ====== Ext4 ====== ====== Ext4 ======
-Ext4 — журналируемая файловая система,​ используемая по умолчанию ​в Ubuntu, начиная с версии 9.10. При создании ФС до 1,8% объёма может быть зарезервировано под служебные нужды, в дальнейшем размер этих данных увеличиваться не будет. Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение,​ то есть "​Документ.txt"​ и "​документ.txt"​ — это разные файлы, и они без проблем могут находиться в одной директории.+Ext4 — журналируемая файловая система, ​предлагаемая для ​использования по умолчанию ​инсталятором ​Ubuntu, начиная с версии 9.10. Количество индексных дескрипторов (i-node) задается только при создании ФС и в дальнейшем ​может быть ​только уменьшено((хотя по умолчанию число дескрипторов ​задается довольно большим,​ но при записи огромного числа маленьких файлов возможна ситуация когда дескрипторов не хватит, а место ​на диске еще есть:​-()). При создании ФС приблизительно 1,8% объёма ​диска занимается ​служебными структурами ФС((в частности на i-node)), в дальнейшем размер этих данных увеличиваться ​будет только ​на размер каталогов файлов. Кроме того еще 5% (по умолчанию) резервируется ​для root((этот резерв можно отключить утилитой tune2fs)). Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение,​ то есть "​Документ.txt"​ и "​документ.txt"​ — это разные файлы, и они без проблем могут находиться в одной директории.\\ В отличии от Ext3 в Ext4 пространство под файлы выделяется экстентами:​ extent - последовательная цепочка блоков,​ для идентификации которой используется только указатель на начало и длина в блоках (тогда как в Ext2/3 при выделении места используются отдельные блоки и требовалось перечислять все блоки, в которых размещен файл)
  
-===== Дефрагментация =====+Все утилиты требуемые для работы с Ext4 содержатся в пакете //​e2fsprogs//​.
  
-ФС в Linux изначально спроектированы так, чтобы файлы ​фрагментировались как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может ​привести к заметному падению производительности дисковой подсистемы.+===== Форматирование раздела ===== 
 +Для ​того, чтоб ​отформатировать раздел достаточно выполнить комманду: 
 +<​code>​ 
 +sudo mkfs.ext4 /​dev/<​xxx>​ 
 +</​code>​ 
 +где <xxx> - название раздела на котором требуется создать файловую систему Ext4. Например, sda4 (смотри ​истемный монитор - Файловые ​системы").
  
-Вопреки расхожему ​мнениюдефрагментатор для Ext4 есть, и не один.+<note warning>​Последствия этой команды ​необратимы. Вся информацияхранящаяся на разделе к которому она применялась,​ будет утеряна.</​note>​
  
-  * [[http://e2fsprogs.sourceforge.net/| e2fsprogs]]. На 14.11.2010 ​дефрагментатора ​''​e4defrag'' ​ещё нет в текущем стабильном релизено он есть в [[http://git.kernel.org/?​p=fs/​ext2/​e2fsprogs.git;​a=summary|git'е]].+===== Конвертация Ext3 разделов в Ext4 ===== 
 +==== Монтирование раздела как Ext4 ==== 
 +Этот способ можно считать самым безопасным,​ так как физически на диске ничего не меняется и вернуться обратно к Ext3 не составит труда. При монтировании Ext3 как Ext4 будут доступны некоторые оптимизации добавленые в Ext4. 
 + 
 +==== Конвертация в Ext4 ==== 
 +Полная конвертация раздела добавит большую часть нововведений Ext4, но некоторые из них будут применяться только к новым файлам. Для того, чтобы выполнить конвертацию раздела в Ext4 достаточно выполнить следующие действия: 
 +  -- Включение новых возможностей на разделе с Ext3: 
 +  ..<​code>​ 
 +sudo tune2fs -O extents,​uninit_bg,​dir_index ​/dev/<​xxx>​ 
 +</​code>​ 
 +  -- Проверка раздела на наличие ошибок:​ 
 +  ​..<​code>​ 
 +sudo e2fsck -pDf /dev/<​xxx>​ 
 +</​code>​ 
 +где <xxx> - название раздела который требуется конвертировать в Ext4. 
 +<note warning>​После выполнения этой команды монтирование раздела в Ext3 будет невозможно. Если раздел прописан в [[wiki:​fstab|fstab]], не забудьте внести соответствующие правки.</​note>​ 
 + 
 +===== Дефрагментация ===== 
 +ФС в Linux изначально спроектированы так, чтобы фрагментация файлов была как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях ​может привести к заметному падению производительности дисковой подсистемы. 
 + 
 +Для Ext4 есть ​несколько дефрагментаторов
 + 
 +  * [[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>​
-sudo fsck -n /dev/sda4+sudo fsck -n /dev/<xxx>
 </​code>​ </​code>​
 +
 ===== Оптимизация дискового пространства ===== ===== Оптимизация дискового пространства =====
-Как вы уже заметили,​ на свежесозданном разделе с ext4 обычно выделяется меньше свободного дискового пространства ​и это становится ​заметным при копировании больших объемов информацииПочему это происходит?  +На свежесозданном разделе с Ext4 обычно выделяется ​заметно ​меньше свободного дискового пространства ​чем размер раздела. Это происходит ​потому, что используется ​порядка 1,8% на служебные нужды: заголовки групп блоков, бинарные поля для учета свободного места, индексные дескрипторы (i-node), основной и множество резервных копий суперблока.\\ 
-По умолчанию резервируется ​5% от объема ​раздела при ​создании файловой системы ​на нем. Это необходимо для уменьшения фрагментации, для ​ведения журналирования а также некоторый объем ​откладывается ​для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это ​справедливо для системного корневого раздела,​ но на пользовательских разделах это ​не всегда приемлемо, особенно на разделах ​небольшого размера, ​например 120 ГБ; где ​может сказаться банальная нехватка свободного ​места.+Также ​по умолчанию, дополнительно резервируется 5% от объема ​раздела для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это полезно для системного корневого раздела,​ но на пользовательских разделах ​необходимости в этом резерве нет, особенно на разделах большого размера,​ где ​5% превращаются ​в очень приличные объемы (недоступные пользователю).
  
-Давайте исправим положение.  +==== Изменение процента зарезервированных блоков для нужд суперпользователя ​==== 
- +По умолчанию резервируется 5% от объема раздела или дискаЗначение 0 отключает резервирование блоков,​ значение 5 - устанавливает резервирование на 5%.
-Уменьшим процент зарезервированных блоков для нужд суперпользователяПо умолчанию резервируется 5% от объема раздела или диска+
-Значение 0 отключает резервирование блоков,​ значение 5 - устанавливает резервирование на 5%.+
 <​code>​ <​code>​
-sudo tune2fs -m 1+sudo tune2fs -m 0 /​dev/<​xxx>​
 </​code> ​ </​code> ​
  
-Установим процент зарезервированных блоков, например 1%. +==== Изменение ​числа ​зарезервированных ​под служебные нужды ​блоков ​==== 
-Значение 0 отключает резервирование блоков,​ значение 5 - устанавливает резервирование ​на 5%.+Значение 0 отключает резервирование блоков,​ значение 5 - устанавливает резервирование 5-и блоков.
 <​code>​ <​code>​
-sudo tune2fs -r 1+sudo tune2fs -r 0 /​dev/<​xxx>​
 </​code> ​ </​code> ​
- 
 ===== Ссылки ===== ===== Ссылки =====
  
 +  * [[http://​forum.ubuntu.ru/​index.php?​topic=132111.msg971646#​msg971646|дефрагментация ext4]] — статья на форуме
   * [[http://​events.linuxfoundation.org/​slides/​2010/​linuxcon_japan/​linuxcon_jp2010_fujita.pdf|Outline of Ext4 File System &   * [[http://​events.linuxfoundation.org/​slides/​2010/​linuxcon_japan/​linuxcon_jp2010_fujita.pdf|Outline of Ext4 File System &
 Ext4 Online Defragmentation Foresight (англ., pdf)]] — презентация от Akira Fujita Ext4 Online Defragmentation Foresight (англ., pdf)]] — презентация от Akira Fujita
Строка 57: Строка 76:
   * [[http://​git.kernel.org/?​p=linux/​kernel/​git/​torvalds/​linux-2.6.git;​a=commitdiff;​h=748de6736c1e482e111f9d1b5a5d5b1787600cad|git.kernel.org]] — коммит в ядро, добавляющий поддержку дефрагментации Ext4.   * [[http://​git.kernel.org/?​p=linux/​kernel/​git/​torvalds/​linux-2.6.git;​a=commitdiff;​h=748de6736c1e482e111f9d1b5a5d5b1787600cad|git.kernel.org]] — коммит в ядро, добавляющий поддержку дефрагментации Ext4.
   * Доступ к ext4 из Windows: [[http://​kubuntu.ru/​node/​4562|Kubuntu.ru]],​ [[http://​habrahabr.ru/​blogs/​linux/​70058/​|Хабр]],​ [[http://​sourceforge.net/​projects/​ext2read/​|вариант для x64]].   * Доступ к ext4 из Windows: [[http://​kubuntu.ru/​node/​4562|Kubuntu.ru]],​ [[http://​habrahabr.ru/​blogs/​linux/​70058/​|Хабр]],​ [[http://​sourceforge.net/​projects/​ext2read/​|вариант для x64]].
- +  * [[http://​habrahabr.ru/​post/​58121/​|Как конвертировать файловую систему из ext3 в ext4]]
-{{tag>​NEW FIXME}}+