Converta o btrfs RAID10 em RAID0

0

Então, comecei a receber erros do sistema de arquivos em meu array RAID10 de 4 drives btrfs, e btrfsck não teve sucesso em repará-los (entra em um loop infinito produzindo a mesma saída por dias a fio).

A grande maioria dos dados ainda é legível, então a reconstrução do sistema de arquivos parece ser o caminho mais sensato.

Dado que não há unidades sobressalentes disponíveis, o plano até agora parece com algo como:

  1. Elimine a redundância e "converta" o RAID10 em RAID0, liberando duas unidades;
  2. Formate as unidades recém-liberadas novamente;
  3. Copie dados legíveis do sistema de arquivos antigo para o novo ( rsync / btrfs send | btrfs receive );
  4. Nuke o sistema de arquivos antigo;
  5. Adicione as unidades antigas e reequilibre o novo sistema de arquivos, retornando-o ao RAID10.

A questão é como fazer o primeiro passo. Pelo que entendi, btrfs device delete não é adequado aqui porque continuará tentando satisfazer o perfil RAID1. E como descobrir quais duas unidades podem ser removidas para minimizar a quantidade de dados que precisam ser embaralhadas?

    
por Vladimir Panteleev 21.07.2018 / 07:52

1 resposta

2

Para converter de RAID10 para RAID0:

  1. Execute man btrfs-balance para se familiarizar com o comando que fará a maior parte do trabalho. Há algumas ressalvas específicas da versão do kernel e também advertências relacionadas ao uso de blocos mistos ou não.
  2. Use btrfs balance start -mconvert=raid0 -dconvert=raid0 /path para converter os metadados e dados do sistema de arquivos (os pedaços do sistema também serão convertidos). Como afirma o manual, a remoção de conversões exige muito espaço livre em cada unidade, portanto, convém converter os metadados e os dados separadamente.
  3. Use btrfs device delete /dev/somedevice para remover o (s) dispositivo (s) em questão.

Quanto à identificação de quais drives remover com base no uso, você pode usar btrfs fi usage /path

    
por 21.07.2018 / 18:52

Tags