18.8. Journaling UFS através do GEOM

Suporte para journaling em sistemas de arquivos UFS está disponível no FreeBSD. A implementação é fornecida através do subsistema GEOM e é configurada usando o comando gjournal. Ao contrário de outras implementações de journaling de sistemas de arquivos, o método gjournal é baseado em blocos e não é implementado como parte do sistema de arquivos. É uma extensão do GEOM.

O jornaling armazena um log de transações do sistema de arquivos, como alterações que compõem uma operação de gravação em disco completa, antes que os metadados e as gravações de arquivos sejam confirmados no disco. Esse log de transação pode ser repetido posteriormente para refazer as transações do sistema de arquivos, evitando inconsistências no sistema de arquivos.

Esse método fornece outro mecanismo para proteger contra perda de dados e inconsistências do sistema de arquivos. Ao contrário das Soft Updates, que rastreiam e impõem atualizações de metadados e snapshots, que criam uma imagem do sistema de arquivos, um log é armazenado no espaço em disco especificamente para essa tarefa. Para melhor desempenho, o journal pode ser armazenado em outro disco. Nessa configuração, o provedor do journal ou o dispositivo de armazenamento deve ser listado após o dispositivo para ativar o journaling.

O kernel GENERIC fornece suporte para o gjournal. Para carregar automaticamente o módulo do kernel geom_journal.ko no momento da inicialização, adicione a seguinte linha ao arquivo /boot/loader.conf:

geom_journal_load="YES"

Se um kernel personalizado for usado, certifique-se de que a linha a seguir esteja no arquivo de configuração do kernel:

options	GEOM_JOURNAL

Depois que o módulo é carregado, um journal pode ser criado em um novo sistema de arquivos usando as etapas a seguir. Neste exemplo, da4 é um novo disco SCSI:

# gjournal load
# gjournal label /dev/da4

Isto irá carregar o módulo e criar um nó de dispositivo /dev/da4.journal em /dev/da4.

Um sistema de arquivos UFS pode agora ser criado no dispositivo journaled e depois montado em um ponto de montagem existente:

# newfs -O 2 -J /dev/da4.journal
# mount /dev/da4.journal /mnt

Nota:

No caso de várias slices, será criado um journal para cada slice individual. Por exemplo, se ad4s1 e ad4s2 forem slices, o gjournal criará ad4s1.journal e ad4s2.journal.

O journaling também pode ser ativado nos sistemas de arquivos atuais usando o tunefs. No entanto, sempre faça um backup antes de tentar alterar um sistema de arquivos existente. Na maioria dos casos, o gjournal falhará se não for possível criar o registro de log, mas isso não protege contra a perda de dados incorrida como resultado do uso indevido do tunefs. Consulte gjournal(8) e tunefs(8) para maiores informações sobre esses comandos.

É possível fazer o journaling do disco de inicialização de um sistema FreeBSD. Consulte o artigo Implementando o journaling do UFS em um PC de mesa para obter instruções detalhadas.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.