19.7. Журналирование UFS средствами GEOM
Пред. | Глава 19. GEOM: Модульная инфраструктура преобразования дисковых запросов | След.

## 19.7. Журналирование UFS средствами GEOM

С выходом FreeBSD 7.0 был реализован долгожданный механизм ведения журналов для файловых систем. Сама реализация этого механизма осуществляется средствами системы GEOM, а конфигурирование выполняется утилитой gjournal(8).

Что такое журналирование? Журналирование сохраняет протокол транзакций файловой системы, то есть: изменения, составляющие логически завершенную операцию записи, сперва вносятся в журнал, а модификация метаданных и данных самого файла выполняется позже. В дальнейшем журнал может быть задействован для повторного выполнения транзакций на файловой системе с целью предотвращения нарушения целостности файловой системы.

Журналирование — это еще одним механизм предотвращения утери данных и нарушения целостности файловой системы. В отличие от механизма Soft Updates, который отслеживает и периодически сохраняет обновления метаданных, и механизма снэпшотов, который создает образ файловой системы, сам журнал хранится в специально отведенном для этой задачи пространстве диска, и, в некоторых случаях, может содержаться целиком на отдельном диске.

В отличие от других реализаций журналирования файловых систем, метод `gjournal` работает на блочном уровне, он не встроен в файловую систему; это лишь надстройка над системой GEOM.

Чтобы включить поддержку `gjournal`, в файле конфигурации ядра FreeBSD должна присутствовать следующая опция (включено по умолчанию для FreeBSD 7.0 и более поздних версий систем):

options UFS_GJOURNAL

Журналируемым устройствам, монтируемым во время загрузки системы, также потребуется модуль ядра `geom_journal.ko`. Внесите следующую запись в файл `/boot/loader.conf`:

geom_journal_load="YES"

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

options GEOM_JOURNAL

Для создания журнала на новой файловой системе выполните следующие шаги (здесь и далее подразумевается, что `da4` есть новый SCSI диск):

`#` `gjournal load` `#` `gjournal label /dev/da4`

На этом этапе в каталоге `/dev` должны присутствовать файлы устройств `/dev/da4` и `/dev/da4.journal`. Теперь необходимо создать файловую систему:

`#` `newfs -O 2 -J /dev/da4.journal`

Предыдущая команда создаст файловую систему UFS2 на журналируемом устройстве.

Смонтируйте устройство в требуемый каталог файловой системы:

`#` `mount /dev/da4.journal `/mnt``

### Примечание:

В случае наличия нескольких слайсов, журнал создается для каждого из них. Например, если есть два слайса, и они называются `ad4s1` и `ad4s2`, то утилитой `gjournal` создаются файлы устройств `ad4s1.journal` и `ad4s2.journal`.

Для увеличения производительности может потребоваться хранение журнала на отдельном диске. В таких случаях необходимо указать имя поставщика журнала или устройства хранения после имени устройства, на котором планируется включение журналирования. Журналирование также может быть активировано утилитой `tunefs` на действующих файловых системах; однако, всегда создавайте резервную копию перед попытками изменить настройки файловой системы. В большинстве случаев, выполнение команды `gjournal` завершится ошибкой, если создание журнала невозможно, в то время как некорректное использование команды `tunefs` не защитит против потери данных.

Также возможно журналирование загрузочного диска системы FreeBSD. За детальными инструкциями по этой возможности обратитесь к статье Настройка журналирования UFS для настольного компьютера.

Пред. | Наверх | След.
19.6. Метки дисковых устройств | Начало | Глава 20. Поддержка файловых систем

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.