4.11. Reparando um Sistema de Arquivo
Quando um nó falha com o sistema de arquivo montado, o diário do sistema de arquivo permite uma recuperação rápida. No entanto, se um dispositivo de armazenamento perder potência ou for desconectado fisicamente, pode ocorrer um corrompimento do sistema de arquivo. (O diário pode ser usado para recuperar das falhas de subsistemas de armazenamento). Quando este tipo de corrompimento ocorrer, você pode recuperar o sistema de arquivo do GFS2 usando o comando
gfs2_fsck
.
Importante
O comando
gfs2_fsck
deve ser executado somente em um sistema de arquivo que é desmontado de todos os nós.
Importante
Você não deve verificar o sistema de arquivo GFS2 durante a inicialização com o comando
fsck.gfs2
. Este comando não pode determinar se o sistema de arquivo foi montado por outro nó no cluster durante a inicialização. Você precisa executar o comando fsck.gfs2
manualmente somente após o sistema inicializar.
Para certificar-se de que o comando
fsck.gfs2
não é executado em um sistema de arquivo do GFS2 durante a inicialização, modifique o arquivo /etc/fstab
para que as duas colunas finais para um ponto de montagem do sistema de arquivo GFS2 exiba "0 0" ao invés de "1 1" (ou qualquer outro número), como no exemplo a seguir:
/dev/VG12/lv_svr_home /svr_home gfs2 defaults,noatime,nodiratime,noquota 0 0
Nota
Se você tiver experiência prévia usando o comando gfs_fsck em um sistema de arquivo GFS, observe que o comando
gfs2_fsck
difere das versões anteriores ao gfs_fsck
das seguintes formas:
- Pressionando Ctrl+C enquanto rodando o
fsck.gfs2
, irá interromper o processamento e exibirá uma janela perguntando se você deseja interromper o comando, pular o resto do passo atual ou continuar processando. - Você pode aumentar o nível de verbosidade usando o sinalizador
-v
. Adicionar um segundo-v
aumenta o nível novamente. - Você pode diminuir o nível de verbosidade, usando o sinalizador
-q
. Adicionar um segundo-q
diminui o nível novamente. - A opção
-n
abre um sistema de arquivo como somente-leitura enão
responde à quaisquer buscas automaticamente. A opção provê uma forma de tentar fazer o comando revelar erros sem realmente permitir que o comandogfs2_fsck
tome efeito.
Consulte a página man do
gfs2_fsck
para informações adicionais sobre outras opções de comando.
A rodagem do comando
fsck.gfs2
requer a memória do sistema acima e além da memória usada para o sistema de operação e kernel. Cada bloco de memória no sistema de arquivo GFS2 requer aproximadamente cinco bites de memória adicional, ou 5/8 de um bite. Portanto, para estimar quantos bites de memória você precisará para rodar o comando fsck.gfs2
no seu sistema de arquivo, determine quantos blocos o sistema de arquivo possui e multiplique aquele número por 5/8.
Por exemplo: para determinar aproximadamente quanta memória é necessária para rodar o comando
fsck.gfs2
num sistema de arquivo GFS2 que possui 16TB com um bloco de 4K, determine primeiro quantos blocos de memória o sistema de arquivo possui, dividindo 16Tb por 4K:
17592186044416 / 4096 = 4294967296
Uma vez que o sistema de arquivo possui 4294967296 blocos, multiplique este número por 5/8 para determinar quantos bites de memória são necessários:
4294967296 * 5/8 = 2684354560
Este sistema de arquivos requer aproximadamente 2.6GB de espaço de memória para rodar o comando
fsck.gfs2
. Perceba que o tamanho do bloco era 1K. A rodagem do comando fsck.gfs2
requer quatro vezes mais de memória ou aproximadamente 11GB.
4.11.1. Uso
fsck.gfs2 -y BlockDevice
-y
- O sinalizador
-y
faz com que todas as perguntas sejam respondidas comsim
. Com o sinalizador-y
especificado, o comandogfs2_fsck
não lhe pede uma resposta antes de fazer as mudanças. BlockDevice
- Especifica o dispositivo de bloco onde o sistema de arquivo do GFS2 reside.
4.11.2. Exemplo
Neste exemplo, o sistema de arquivo do GFS2, o qual reside no dispositivo do bloco
/dev/testvol/testlv
é reparado. Todas as buscas para reparar são automaticamente respondidas com yes
.
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete