Ext4 отключить журналирование ssd

Обновлено: 03.07.2024

Диски, использующие электронные ячейки памяти (SSD — Solid State Drive), мало весят, работают бесшумно и потребляют втрое меньше энергии, чем жёсткие диски (HDD). Однако главная причина их популярности – фантастическая скорость работы. Операционная система загружается быстро, операции с файлами большого размера выполняются значительно быстрее.

Недостаток твердотельных накопителей – износ ячеек. Память деградирует в процессе перезаписи данных. В среднем через 0,5-3 года диск может выйти из строя. Для того, чтобы продлить жизнь накопителя, использование Linux на SSD должно подчиняться определённым правилам. Каким – рассмотрим в этом материале.

Особенности работы SSD

Классические жёсткие диски (HDD) хранят данные в магнитном слое. Для чтения и записи используется позиционируемая магнитная головка. Перемещение считывателя требует какого-то времени, поэтому скорость работы HDD ограничена.

Принцип работы SSD основан на использовании электронных ячеек памяти. Единицу информации хранит заряд внутри транзистора, обращение к ячейкам выполняет контроллер. Задержки при чтении или записи минимальны.

Однако с каждой новой перезаписью ячейка разрушается и перестаёт удерживать заряд. Контроллер постоянно проверяет ячейки и переписывает информацию в исправные блоки. Когда свободное место заканчивается, накопитель приходится заменять.

Инженеры успешно работают над продлением срока службы SSD, но сами пользователи также могут продлив срок жизни накопителя, правильно настроив операционную систему.

В Интернете есть сотни советов, выдаваемых поисковиками по запросу "Установка Linux на SSD", однако мы советуем воспринимать написанное с осторожностью. Остановимся на моментах, способствующих улучшению состояния SSD-хранилища без риска потери данных.

Как установить Linux на SSD?

Внешне установка операционной системы Linux на твердотельный накопитель выглядит так же, как и на магнитный диск. Могут отличаться лишь настройки файловой системы, раздела подкачки и параметры монтирования разделов.

1. Выбор файловой системы

На данном этапе для Unix разработаны специальные файловые системы, учитывающие особенности работы SSD-дисков:

  • Extended4 (ext4) – самая популярная и стабильная файловая система в этой среде, поддерживающая отключаемое журналирование, а также функцию TRIM.
  • BtrFS – файловая система, разработанная инженерами Oracle, поддерживает зеркальные копии структур данных и контрольные суммы, что позволяет легко восстанавливать файлы при повреждении. Журналы не ведутся, поэтому дополнительной нагрузки на диск не возникает.
  • XFS – файловая система, разработанная Silicon Graphics для работы с большими файлами, журналы ведутся только для регистрации изменений структур данных.
  • Flash-Friendly File System (F2FS) – разработка Samsung специально для флешек и SSD. Учитывает особенности износа памяти, собирает данные в пакет, который затем записывает в свободные области за один цикл.

Как видим, выбор богат, поле для экспериментов широкое. Однако если вы спросите, какая файловая система на SSD для Linux будет наилучшей, мы посоветуем остановиться на проверенной годами ext4. Прочие системы продолжают дорабатываться, в них могут быть критические ошибки.

2. Настройка файла подкачки

Оперативной памяти много не бывает. Если у вас её меньше, чем 4 Гб, рекомендуем докупить и установить дополнительные планки. В этом случае файл подкачки будет меньше задействован операционной системой. Отсюда следует резонный вопрос: нужен ли swap для Linux на SSD?

При установке системы мы всё же рекомендуем создать файл подкачки. В тех случаях, когда памяти недостаточно, Linux начинает выгружаться на диск, но не падает. У вас будет шанс обнаружить и выгрузить слишком ресурсоёмкую программу.

Специфика выгрузки сегментов памяти в Linux в файл подкачки регулируется параметром swappiness. По умолчанию его значение равно 60. Чем меньше эта величина, тем сильнее должна быть перегружена система перед началом выгрузки памяти на диск.

Для того, чтобы проверить эти настройки, запустите Terminal и выполните команду:


В нашем случае установлено значение по умолчанию. Для того, чтобы его изменить, необходимо отредактировать файл /etc/sysctl.conf. Откройте файл в редакторе с помощью команды:

sudo nano /etc/sysctl.conf

Перейдите в конец файла, нажав на клавиатуре сочетание Alt-/, и добавьте строку:


Закройте редактор, сохранив изменения в отредактированном файле. Новые настройки вступят в силу после перезагрузки операционной системы.

3. Настройка монтирования в fstab

После того, как установка Linux на SSD завершена, рекомендуется изменить настройки монтирования. Особенностью Unix-систем является наличие специального атрибута у файлов — времени последнего доступа (access time stamp). Этот атрибут перезаписывается каждый раз при обращении какого-либо процесса к файлу. Необходимость атрибута сомнительна, а нагрузка на SSD существенна.

Обновление атрибута времени последнего доступа отключается, если добавить в строку монтирования дисков опцию noatime. Для изменения настроек необходимо отредактировать файл /etc/fstab. Это системный файл, поэтому для его редактирования нужны права суперпользователя:

sudo nano /etc/fstab

С помощью стрелок установите курсор в позицию после обозначения типа файловой системы (ext4) и после пробела впишите ключевое слово noatime. После него поставьте запятую. Обратите внимание, что пробела между запятой и следующим словом быть не должно.


Изменённые строки должны выглядеть так:

UUID=xxxxxxx / ext4 noatime,errors=remount-ro 0 1

UUID=xxxxxxx /storage ext4 noatime,defaults 0 1

4. Настройка TRIM

Настройка SSD в Linux близится к завершению. Остаётся рассмотреть метод TRIM. Так как ячейки памяти изнашиваются, встроенный контроллер каждый раз записывает данные в новые блоки. Когда свободное место подходит к концу, диск начинает притормаживать.

Файлы в операционной системе исправляются, затираются, удаляются. Задача команды TRIM (Data Set Management) – сообщить контроллеру SSD, что те или иные блоки данных уже пусты и в них можно опять записывать информацию.

В Linux команда TRIM по умолчанию выполняется раз в неделю. В случае повышенной интенсивности использования компьютера этого недостаточно, желательно запускать оптимизацию чаще.

Проверьте установки таймера, запускающего выполнение команды TRIM:

systemctl cat fstrim.timer


Убедитесь, что в секции [Timer] значение OnCalendar установлено как weekly (неделя). Для того, чтобы добавить новую настройку, выполните следующие команды:

sudo mkdir -v /etc/systemd/system/fstrim.timer.d

Теперь откройте созданный файл с помощью редактора Nano:

sudo nano /etc/systemd/system/fstrim.timer.d/override.conf

Добавьте в файл следующие строки:

[Timer]
OnCalendar=
OnCalendar=daily


Закройте редактор, сохранив изменения в отредактированном файле. Для применения настроек перегрузите компьютер или выполните команду:

sudo systemctl daemon-reload

Убедитесь в том, что изменения настроек применены, выполнив команду:

systemctl cat fstrim.timer


Всё в порядке, команда TRIM теперь будет выполняться ежедневно.

Выводы

Твердотельный накопитель работает в 100 раз быстрее, чем магнитный диск, однако также имеется и своя специфика использования. Последние версии Windows или Ubuntu учитывают особенности SSD, поэтому могут быть рекомендованы к использованию с этими устройствами. Для того, чтобы установить Linux на SSD, не нужны какие-то особые знания. Мастер установки подскажет, какие шаги надо выполнить.

Скорость SSD в Linux можно измерить с помощью команды:

В результате выполнения команды на экран будет выведено время загрузки системы. Для продления срока службы SSD с обычных 3-5 до 10 лет вновь установленную систему следует правильно настроить. Не нужно выполнять советы, взятые из непроверенных источников. Достаточно выполнить важные настройки, устраняющие выполнение лишних операций записи на SSD.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Ext4 — журналируемая файловая система

Существует большое многообразие файловых систем, созданных в разное время для правильного функционирования в средах различных операционных систем. В Windows - это FAT32, NTFS, exFAT, а в С основными считаются Ext2, Ext3 и Ext4. Журналируемые ФС, как известно, позволяют без участия пользователя осуществлять ведение журнала, в котором хранится список изменений разделов жесткого диска, что определенным образом помогает поддерживать целостность файловой структуры в периоды сбоев ее работы.

Однако, этот функционал в свое время разрабатывался под стандартные жесткие диски (HDD) и именно по отношению к ним он крайне полезен, тогда как для SSD и SD-карт ситуация обратная - журналирование им скорее навредит, ведь мало того, что они имеют ограниченное количество циклов перезаписи, так еще и получается даунгрейд в производительности. Именно поэтому, решив создать на съемном устройстве раздел с файловой системой без ограничений на размер файла (в разумных пределах), следует воспользоваться возможностью отключить журналирование. Далее речь пойдет именно о том, как это сделать в Linux с картой памяти, впоследствии используемой Android-устройством.

Прежде чем отключить журналирование, давайте проведем сравнительный анализ Linux-ФС, которые с успехом применяются и в ОС Android:

Ext2 – вторая расширенная файловая система, пришедшая на замену оригинальной в 1993-м году. Она разработана с целью устранить имеющиеся в первой версии ограничения (максимальный размер файла увеличен до 2-х терабайт, а общий размер раздела - до 32-х терабайт) и не содержит функции журналирования.

Ext3 – третья расширенная, представленная в 2001-м году. Данная ФС оснащена 3-мя типами журналирования - journal, ordered и writeback, при этом в ней сохранены предыдущие максимальные показатели величины файла и раздела, а также присутствует возможность преобразования по схеме Ext2 -> Ext3 напрямую без резервного копирования и восстановления.

Вообще для съемных USB-дисков и других запоминающих устройств без "крутящихся механизмов", рекомендуется использовать Ext2, так как журналирование в ней отсутствует, а основных ее преимуществ (см. описание) хватит, как говорится, "с головой". Современные версии Android также имеют поддержку exFAT от Microsoft - в ней устранено ограничение в 4 гигабайта на один файл. Однако, эти файловые системы имеют определенные недостатки по сравнению с Ext4, проявляющиеся в более низкой производительности (Ext2) и меньшей совместимости (exFAT).

Поэтому лучше создать на внешнем накопителе Ext4-раздел и отключить журналирование в нем с помощью терминала Linux:

, где "/dev/sda5" - Ваша флешка или карта SD;

tune2fs -o journal_data_writeback /dev/sda5

переводим журнал в режим writeback;

tune2fs -O ^has_journal /dev/sda5

удалит соответствующую опцию;

e2fsck -f /dev/sda5

выполнит проверку диска;

dumpe2fs /dev/sda5 |more

проверит активные свойства ФС (в Filesystem features не должно быть has_journal).

Перечисленные выше команды нужно выполнять с правами администратора! На начальном этапе (создание ФС) можно применить Gparted, тогда результат будет отображаться в наглядном графическом виде. При установке раздела Ext4 на MicroSD для использования в среде Android рекомендуется оставить первым FAT32-раздел, а Ext4 определить вторым, как первичный.

Понравилась полезная статья? Подпишитесь на RSS и получайте больше нужной информации!

Действия, описанные в этом эссе, более чем опциональны и, возможно, многим покажутся лишними. Однако если их выполнять (а я, как правило, выполняю, хотя не все и не всегда) — делать это надо в числе прочих первоочередных настроек, причины чего будут ясны из описания.

Тюнинг файловых систем

Избавление от кириллических имён

И дело не в только неприятии кириллицы в именах элементов файловой иерархии как класса. Хотя и это есть: как сказал бы в наши дни академик Крылов, юзер, дающий своим файлам кириллические имена, заслуживает четвертования на Дворцовой площади. Однако имена «по стандарту» доставляют и практические неудобства: при работе в командной строке мало того что требуется лишний раз нажимать Shift (этого как раз можно избежать настройками, например, Zsh), так ещё и не забыть переключиться перед этим на кириллицу.

Не один раз я писал на эту тему, и каждый раз не обходилось без комментариев типа

консолью пользуюсь ОЧЕНЬ редко

Да, бывает и такое. Но я-то так называемой «консолью» (а на самом деле интерфейсом командной строки) пользуюсь довольно часто. И подозреваю, что в этом я не одинок. А тем, кто «консолью» не пользуется, лучше пропустить этот раздел.

Ну так вот, избавиться от кириллических имён в домашнем каталоге на самом деле очень просто — командой

где в качестве значения LANG вместо C можно задать значение POSIX или C.UTF-8 (но не en_US — как ни странно, такой локали в русифицированной установке LMDE нет). В любом случае ответом будет появление такой панели:

config_101


С предложением на ней следует согласиться, не забыв отметить боксик, чтобы эта панель не маячила более при каждом старте системы. В результате все пустые каталоги с кириллическими именами будут переименованы в свои латинские аналоги:

Для каталогов же с каким-либо содержимым будут созданы копии — почему эту команду и следует выполнить как можно скорее после установки, пока в Закачки не было что-либо закачано, а в Изображения не попали какие-нибудь скриншоты.

Отключение резерва

При создании файловых систем любым методом (как специальными утилитами, так и средствами инсталлятора) некоторый объём дискового пространства (по умолчанию 5 %) резервируется — он доступен только администратору. И предназначен для того, чтобы избежать переполнения файловых систем — для корня файловой иерархии это может иметь неприятные последствия.

Всё это было актуально во времена, когда диски были маленькие и дорогие. Да и то только для корневой файловой системы. И уж во всяком случае такой резерве не нужен нужен для файловых систем, лежащих на SSD. Так что резервирование дискового пространства можно безболезненно отключить такой командой:

покажет, что число зарезервированных блоков равно нулю. После чего процедуру можно повторить для всех задействованных в системе разделов, кроме, разве что, того, что несёт корень файловой иерархии. Впрочем, я отключаю резервирование и на нём.

Отключение резервирования не требует перезагрузки, и его можно проделать на смонтированных файловых системах.

Кстати, резервирование можно отключить и при создании файловой системы:

И очевидно, что всё сказанное имеет силу только для файловых систем семейства ext2/3/4.

Отключение журналирования для ext4

Для файловой системы ext4 доступна ещё и возможность отключения журналирования, что, теоретически, способствует как быстродействию при файловых операциях, так и уменьшению износа SSD. Насколько то и другое имеет место быть на практике — вопрос спорный. Но, поскольку необходимости в журналировании в настольных условиях я не вижу (особенно при использовании бесперебойника), а процедура его отключения не сложна — почему бы и не избавиться от лишней сущности?

config_102


А затем ввести пользовательский пароль, после чего система будет загружен административный аккаунт, символом чего будет приглашение командной строки в виде «решётки».

Второй способ — в текущем сеансе дать команду

Она вызовет закрытие сеанса Иксов (внимание — со всеми их приложениями!) и то же самое предложение ввести пароль, что и в первом случае. Хотя в Jessie (и, соответственно, в Betsy) и используется Systemd, но команда /sbin/init (пока?) работает.

Теперь остаётся только размонтировать файловые системы, для которых будет отключаться журналирование:

И прибегнуть к той же команде tune2fs в следующей форме:

Чтобы убедиться в успехе операции, можно выполнить такую команду:

Что должно вернуть пустую командную строку.

Запретить использование журнала можно и при создании файловой системы ext4:

Теоретически ничто не препятствует отключить журнал и на корневой файловой системе. Однако я этого не делаю: хотя при использовании UPS (да и просто хорошего современного блока питания, переносящего кратковременное пропадание электричества без вреда для здоровья системы) вероятность повреждения файловой системы мала, она всё же есть. И тогда перед загрузкой системы потребуется довольно долгая и нудная процедура проверки её целостности утилитой fsck .

Редактирование /etc/fstab

Не выходя из однопользовательского режима, можно проделать и ещё одну операцию — настроить автоматическое монтирование файловой системы в оперативной памяти, tmpfs, в точку /tmp . Это опять может способствовать повышению быстродействия, сохранности SSD, а также гарантирует очистку указанного каталога при перезагрузке системы. И делается это так. Сначала удаляются имеющиеся временные файлы:

Для чего, собственно, и нужен однопользовательский режим — в системе с запущенными Иксами очистить каталог /tmp не получится.

Затем нужно с помощью привычного текстового редактора отредактировать файл /etc/fstab , внеся в него такую строку:

Опцию noatime (или, по желанию, relatime ) можно добавить и в параметры монтирования всех остальных файловых систем. А для систем, расположенных на SSD, не лишней будет и опция discard , которая задействует для них команду TRIM.

На этом необходимость в однопользовательском режиме заканчивается — собственно, и для редактирования /etc/fstab он нужен только на этапе включения tmpfs. Так что можно возвращаться к нормальной работе с помощью команды

Или просто перезагрузив систему.

Заключение

В заключение ещё раз подчеркну, что всё сказанное в этих набросках, не только не обязательно — я даже не стал бы рекомендовать это. И описано здесь только для того, чтобы читатель знал, что это можно сделать. А уж делать или не делать — каждый должен решать для себя сам.

2 комментария к “ Постинсталляционное конфигурирование. Тюнинг файловых систем ”

Пожалуй, в командах отключения журналирования при помощи tune2fs пропущен символ каретки перед has_journal:

А ещё в этом месте потерялось форматирование как кода (возможно, вместе с символом каретки).

Хочу поставить на нетбук. Гугление ничего не дало. Можно ли после установки системы уже отключить журнал?



грузишся с live usb и говоришь :

tune2fs -o journal_data_writeback <device>

* writeback mode
In data=writeback mode, ext4 does not journal data at all. This mode provides a similar level of journaling as that of XFS, JFS, and ReiserFS in its default mode - metadata journaling. A crash+recovery can cause incorrect data to appear in files which were written shortly before the crash. This mode will typically provide the best ext4 performance.

* ordered mode
In data=ordered mode, ext4 only officially journals metadata, but it logically groups metadata information related to data changes with the data blocks into a single unit called a transaction. When it's time to write the new metadata out to disk, the associated data blocks are written first. In general, this mode performs slightly slower than writeback but significantly faster than journal mode.

* journal mode
data=journal mode provides full data and metadata journaling. All new data is written to the journal first, and then to its final location.
In the event of a crash, the journal can be replayed, bringing both data and
metadata into a consistent state. This mode is the slowest except when data
needs to be read from and written to disk at the same time where it outperforms all others modes. Curently ext4 does not have delayed allocation support if this data journalling mode is selected.


можно еще в /etc/fstab до кучи добавить опцию data=writeback


для проверки опций fs :

да, в обоих случаях нужно не /dev/sda (например) а дивайс самого раздела, т.е. /dev/sda1



Да eeepc. Не знаю как там глючит gma950, а на моем стационарном компе все более менее. Не понял снижение времени автономной работы происходит из за интеловского видео? Впрочем меня вполне устроит и 5 часов.


writeback mode in its default mode - metadata journaling. Если я понял правильно, таки журнал ведется метаданных?


> Если я понял правильно, таки журнал ведется метаданных?

там минимальная запись ведется. можно еще поиграть с опциями has_journal, но чуваки рассказывали что какие-то глюки с этим были.

First I booted to xubuntu live usb-disk and run
tune2fs -O ^has_journal /dev/sda1

It gave no errors, but when rebooted the laptop gave me initramfs prompt, and a message "Alert! /dev/disk/by-uuid/xxxxxxxx does not exist. Dropping to a shell!"
It was the same with kernel .28 and with safe modes.

The I booted to live disk again, and run
tune2fs -O has_journal /dev/sda1

which reverted the situation, and I was able to boot again.


> Не понял снижение времени автономной работы происходит из за интеловского видео?

а вот хз почему.. я поэтому, поигравшись с линуксом, вернул обратно ХП. подожду UNR 9.10 или пока до 9.04 доберется ядро 2.6.30, потом попробую еще раз. мне эти лишние 2-3 часа весьма критичны.


А зачем отключение журнала,обьясните пожалуйста?У мну тоже ноут.

> а вот хз почему

потому что дебил

зафиксируй жестко частоту на минимуме, выруби компиз, поставь яркость такую же и сравнивай.


> потому что дебил

ну ты пипец блин. что я по твоему совсем нуб чтоли таких элементарных вещей не знать?

> зафиксируй жестко частоту на минимуме

powersave governor не покатит, ага? сразу так делал.

> выруби компиз

Читайте также: