Com tantas partes diferentes que constituem uma pilha de armazenamento típica, é um milagre que qualquer coisa funcione. No entanto, as coisas funcionam bem na maioria das vezes. As poucas vezes em que as coisas dão errado, precisamos de utilitários como XFS_Repair para nos tirar da bagunça.
As coisas podem dar errado quando você está escrevendo um arquivo e a energia sai ou há um pânico do kernel. Mesmo os dados inativos em um disco podem se deter. Em todos os casos, precisamos de um mecanismo para:
Vamos configurar um teste de teste para executar uma rotina de reparo XFS em vez de usar discos reais com dados valiosos. Se você já tem um sistema de arquivos quebrado, pode pular esta seção e pular a cabeça direita para a próxima. Este Testbench é composto por uma VM Ubuntu à qual um disco virtual está conectado, fornecendo armazenamento bruto. Você pode usar o VirtualBox para criar a VM e depois criar um disco adicional para anexar à VM.
Basta ir para as configurações da sua VM e sob Configurações → Armazenamento Seção Você pode adicionar um novo disco ao controlador SATA, você pode criar um novo disco. Como mostrado abaixo, mas verifique se sua VM está desligada quando você faz isso.
Depois que o novo disco for criado, ligue a VM e abra o terminal. O comando LSBLK lista todos os dispositivos de bloco disponíveis.
$ lsblk
SDA 8: 0 0 60G 0 disco
├─sda1 8: 1 0 1m 0 parte
└─sda2 8: 2 0 60g 0 Parte /
sdb 8:16 0 100g 0 disco
SR0 11: 0 1 1024M 0 ROM
Além do dispositivo de bloco principal SDA, Onde o sistema operacional está instalado, agora há um novo dispositivo SDB. Vamos criar rapidamente uma partição e formatá -la com o sistema de arquivos XFS.
Abra o utilitário separado como usuário root:
$ separado -um ideal /dev /sdb
Vamos criar uma tabela de partição primeiro usando o mklabel, seguido por criação de uma única partição a partir de todo o disco (que tem 107 GB de tamanho). Você pode verificar se a partição é feita listando -a usando o comando print:
(Partido) Mklabel GPT
(Partido) MkPart Primary 0 107
(separado) impressão
(Partido) Saia
Ok, agora podemos ver usando o LSBLK que existe um novo dispositivo de bloco sob o dispositivo SDB, chamado SDB1.
Vamos formatar esse armazenamento como XFS e montá -lo no diretório /MNT. Novamente, faça as seguintes ações como raiz:
$ mkfs.xfs /dev /sdb1
$ mount /dev /sdb1 /mnt
$ df -h
O último comando imprimirá todos os sistemas de arquivos montados e você pode verificar se /dev /sdb1 está montado em /mnt.
Em seguida, escrevemos um monte de arquivos como dados fictícios para desfragamento aqui:
$ dd if =/dev/urandom de =/mnt/myfile.contagem txt = 1024 bs = 1024
O comando acima escreveria um arquivo myfile.TXT de tamanho de 1 MB. Se desejar, você pode gerar mais arquivos desses, espalhá -los por vários diretórios dentro do sistema de arquivos XFS (montado em /mnt) e depois verifique a fragmentação. Use Bash ou Python ou qualquer outro de sua linguagem de script favorita para isso.
Verificando e reparando erros
As corrupções de dados podem surgir silenciosamente em seus discos sem o seu conhecimento. Se um bloco de dados não for lido e a soma de verificação não comparada, o erro poderá aparecer na hora errada. Quando alguém está tentando acessar os dados, em tempo real. Em vez.
O utilitário xfs_scrub deve realizar esta tarefa para o seu. Inspirado em parte pelo comando Scrub do OpenZFS, esse recurso experimental está disponível apenas no XFSPROGS versão 4.15.1-1Buntu1, que não é uma versão estável. Se isso detectar erro erroneamente, pode enganá -lo para causar corrupção de dados em vez de consertá -lo! No entanto, se você deseja experimentar, poderá usá -lo em um sistema de arquivos montado usando o comando:
$ xfs_scrub /dev /sdb1
Antes de tentar reparar um sistema de arquivos corrupto, primeiro você teria que desmontá -lo. Isso é para impedir que os aplicativos de escreva inadvertidamente no sistema de arquivos quando ele deve ser deixado sozinho.
$ umount /dev /sdb1
Reparar erros é tão simples quanto em execução:
$ xfs_repair /dev /sdb1
Os metadados essenciais são sempre mantidos como várias cópias, mesmo que você não esteja usando RAID e se algo deu errado com o superblock ou inodes, esse comando pode corrigir esse problema para você com toda a probabilidade.
Próximos passos
Se você está vendo a corrupção de dados com frequência (ou mesmo uma vez, se você estiver executando algo missionário crítico), considere substituir seus discos, pois esse pode ser um indicador precoce de um disco que está prestes a morrer.
Se um controlador falhar ou um cartão RAID desistiu da vida, nenhum software no mundo pode reparar o sistema de arquivos para você. Você não quer contas caras de recuperação de dados e também não deseja termos de inatividade, então fique de olho nesses SSDs e pratos giratórios!