RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:fs:barriers

Барьеры файловой системы

Источник - http://www.ashep.org/2011/barery-fajlovoj-sistemy/
Оригинал - http://searchenterpriselinux.techtarget.com/tip/Deciding-when-to-use-Linux-file-system-barriers


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

Журналы и барьеры

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

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

Сущность барьеров весьма проста: они запрещают запись блоков, отправленных после барьера, пока блоки, отправленные на запись до барьера не будут физически записаны на диск. Барьера гарантируют целостность журнала файловой системы и по этой причине они по умолчанию включены в файловой системе Ext4 (если только разработчики дистрибутива не решили их отключить).

Включены ли барьеры в вашей системе

Узнать для каких ФС в вашей системе барьеры включены, а для каких нет, можно узнать из файла /proc/mounts. В каждой строке этого файла вы увидите опции монтирования ФС; если вы обнаружите среди них запись «barriers=1», значит использование барьеров включено. В примере ниже приведены строки из файла /proc/mounts для ФС с включёнными барьерами.

/dev/sda1 /boot ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
/dev/mapper/luks-3e67401f-44c6-4a27-a1bf-cdf0dcf45f65 /home ext4 rw,seclabel,noatime,barrier=1,data=ordered 0 0

Когда барьеры работать не будут

С барьерами есть небольшая проблема. Их не всегда можно использовать. Барьеры не будут работать при использовании device mapper, поскольку он не поддерживает барьеры в принципе. Так что, даже если для вашей ФС включены барьеры, толку от этого будет мало, если сама ФС расположена на логических томах (в RedHat и производных от него такое решение является традиционным), на программном RAID или на томах multipathd.

Одним из решений избежать подобной ситуации — это избежать использования device mapper и ему подобных способов организации дисков. Так что, когда будете настраивать сервер, не пропустите следующие моменты. Во-первых, не устанавливайте ОС на LVM, используйте «традиционный» способ организации разделов. Во-вторых, откажитесь от использования multipathd, который использует в своей работе device mapper для того, чтобы создавать избыточные пути к SAN. Иногда производители SAN поставляют проприетарный драйвер в качестве альтернативы multipathd, но это лишь иногда. В любом случае наилучшим выбором будет hardware решение.

Нужны ли барьеры

Барьеры защищают от последствий ситуации, когда внезапное отключение электричества приведёт к тому, что метаданные ФС не успеют из кеша переместиться на диск. Эта проблема решается,в принципе, гораздо проще — установкой дискового контроллера с источником резервного питания. Даже если с сервером произойдёт что-то неладное, данные, отправленные на диск, будут гарантированно записаны. При использовании подобного решения, смысла в использовании барьеров нет.

Другим минусом использования барьеров является плата производительностью. Если вам нужна система с повышенной производительностью — отключайте использование барьеров в ФС при помощи опции монтирования -o barrier=0.

Резюме

Барьеры файловых систем — полезная вещь, хотя и не могут работать в случае использования devie mapper или программного RAID. Если в вашей ситуации отказаться от их использования невозможно, то можно использовать дисковые контроллеры с резервным питанием от батарей. Также не забывайте о том, что включение использования барьеров снижает производительность системы.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/fs/barriers.txt · Последнее изменение: 2013/08/16 19:14 — 127.0.0.1