Когда данные в журнале записываются на диск?

(1) упоминает, что "В журнале файл сначала записывается в журнал, вставляется, а затем журнал записывает файл на диск, когда он будет готов. Как только он успешно записан на диск, он удаляется из журнала, вычеркнуть, и операция завершена ".

Итак, когда я создаю файл, он записывается в журнал и записывается на диск позже. Если я создаю файл размером 1 МБ, фактически на диск записывается 2 МБ данных, 1 МБ - в журнал, а другой - на диск позже. Это может фактически уменьшить срок службы диска. У меня вопрос, когда данные из журнала переносятся на диск? Если это не сделано немедленно, то последующее чтение данных на диске невозможно. Кроме того, завершена ли запись для пользователя, когда данные записываются в журнал или на диск?

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

(1) http://www.howtogeek.com/howto/33552/htg-explains-which-linux-file-system-should-you-choose/

3 ответа

Решение

когда данные из журнала переносятся на диск?

Зависит от двух основных вещей: используемой файловой системы и физического устройства хранения. XFS использует барьеры записи. EXT3 использует барьеры записи, если они включены. EXT4 имеет барьеры по умолчанию. Традиционные жесткие диски используют кеши. Твердотельные накопители могут иметь или не иметь кеш. В конечном счете, это комбинация операционной системы, файловой системы и базовой аппаратной архитектуры и спецификаций, которые определяют, когда данные сохраняются на устройстве хранения.

завершена ли запись для пользователя, когда данные записываются в журнал или на диск?

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

Как дефрагментация диска связана с журналом?

Фрагментация диска влияет на производительность, особенно при работе с большими файлами, чьи блоки не являются смежными. Существуют разные методы смягчения фрагментации. Например, XFS и другие файловые системы используют технику allocate-on-flush для минимизации фрагментации.

Некоторые лучшие ссылки для информации о журналировании:

Журналируемая файловая система
Анатомия журналируемых файловых систем Linux

Далее объясняются три стратегии ведения журнала: обратная запись, заказ и данные; где заказано обычно по умолчанию:

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

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

Сам журнал размещается на фиксированной области диска и поэтому не добавляет фрагментации. Некоторые варианты файловой системы также позволяют ей расти и уменьшаться, поэтому может возникнуть некоторая фрагментация.

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

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

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

Другие вопросы по тегам