Solução da comunidade

Migração de dados do ZimaOS bloqueada: verifique primeiro a ressincronização do RAID

A data-location migration remained at 6% while a newly created RAID1 was still performing a very slow background resync.

Se a Migração de Dados do ZimaOS parecer bloqueada numa percentagem baixa enquanto move dados para um RAID recém-criado, verifique primeiro a reconstrução do RAID e evite interromper a migração às cegas. A interface de migração pode parecer bloqueada mesmo enquanto a camada de armazenamento continua a ser resincronizada em segundo plano.

No caso de origem, a migração permaneceu nos 6% e a interface Web tornou-se difícil de utilizar, mas cat /proc/mdstat mostrou que o array RAID1 estava apenas cerca de a meio de uma resincronização muito lenta. Trata-se de uma carga de trabalho de armazenamento, não de uma prova de que a própria tarefa de migração tenha falhado.

Porque é que a migração de dados pode parecer bloqueada durante uma resincronização RAID

Criar ou reconstruir um array RAID provoca leituras e escritas contínuas nos discos que o compõem. Se iniciar uma migração de dados de grandes dimensões ao mesmo tempo, ambas as operações competem pela largura de banda do disco e pela latência de E/S.

O atual guia de Migração de Dados do ZimaOS indica que a migração assume o controlo da interface enquanto está em execução e move categorias inteiras, como imagens do Docker, dados de aplicações do Docker e pastas de utilizadores. Por isso, trabalhos de grandes dimensões podem demorar muito mais do que a estimativa apresentada na interface quando o array de destino está ocupado.

Passo 1: Verifique o estado da reconstrução do RAID a partir do terminal

Execute:

cat /proc/mdstat

Num RAID md do Linux, procure termos como resincronização, recuperaçãoou uma percentagem de progresso. Um RAID1 saudável com dois discos apresenta normalmente ambos os membros como [UU]. Se houver uma resincronização ativa, registe a percentagem, a hora estimada de conclusão e a velocidade.

O que significa uma ETA muito longa

Uma ETA elevada pode ser causada por discos lentos, problemas na ligação USB/SATA, cargas de trabalho concorrentes ou uma resincronização md deliberadamente limitada. Isso, por si só, não significa que o array esteja avariado. Verifique novamente após 10–30 minutos e confirme se a percentagem está a avançar.

Passo 2: Confirme se o sistema continua a realizar trabalho útil

Se /proc/mdstat avança ao longo do tempo, a camada de armazenamento está ativa. Não precisa de instalar iotop apenas para o comprovar. O ZimaOS é um sistema operativo ao estilo de um appliance, pelo que adicionar pacotes ao anfitrião através de fluxos de trabalho convencionais de distribuições não é a abordagem de resolução de problemas preferida.

Também pode verificar se os ficheiros continuam acessíveis a partir de outro cliente. No caso de origem, o acesso aos dados a partir de um computador e da aplicação para telemóvel continuou a funcionar, mesmo quando o ecrã de migração da Web permanecia nos 6%.

Passo 3: Não pare o Docker nem interrompa primeiro a migração

Parar o Docker pode remover serviços dos quais depende a experiência web do ZimaOS, fazendo com que o sistema pareça pior, sem resolver a operação de armazenamento. Interromper uma migração a meio da cópia também pode deixar algumas categorias na localização antiga e outras na nova.

Aguarde que a recuperação ativa do RAID termine, salvo se o conjunto tiver deixado de avançar completamente ou os discos apresentarem erros de hardware evidentes.

Quando deve suspeitar que a migração está realmente bloqueada?

Investigue mais a fundo se todas estas condições se mantiverem durante um período prolongado:

  • a percentagem da migração não muda;
  • /proc/mdstat não mostra nenhuma reconstrução ativa ou a percentagem nunca avança;
  • a atividade dos discos é praticamente inexistente;
  • o destino tem espaço livre suficiente;
  • não existem interrupções evidentes de rede ou de alimentação.

Nesse momento, recolha a versão exata do ZimaOS, os tipos de armazenamento de origem e destino, a categoria de migração, o estado do RAID e quaisquer registos relevantes antes de reiniciar.

Utilize o fluxo de trabalho atual de Migração de Dados

Nas versões atuais do ZimaOS, esta funcionalidade encontra-se em Definições → Migração de Dados. A ferramenta pode mover Imagens Docker, Dados de Aplicações Docker e Pastas de Utilizador ao nível da categoria. Se precisar de mover apenas uma aplicação, utilize o fluxo de trabalho do caminho de armazenamento da aplicação em vez de migrar todas as aplicações em conjunto.

O guia de migração de dados explica em que medida a migração gerida difere da movimentação manual de pastas.

Como evitar o mesmo problema da próxima vez

Deixe um RAID recém-criado terminar a sincronização antes de iniciar uma migração grande de dados de aplicações ou de utilizadores. Confirme que o destino está íntegro e tem espaço livre suficiente e, em seguida, migre uma categoria de cada vez. Isto reduz a I/O concorrente e facilita o isolamento de falhas.

Mantenha também uma cópia de segurança atual dos dados insubstituíveis. A sincronização do RAID e a Migração de Dados são operações de armazenamento; nenhuma delas deve ser tratada como uma cópia de segurança.

Perguntas frequentes

Posso reiniciar o ZimaOS se a Migração de Dados estiver bloqueada nos 6%?

Não como primeiro passo. Verifique primeiro a atividade do RAID e do armazenamento. Se o conjunto estiver a ser ressincronizado ativamente, deixe o processo terminar, salvo se existir uma razão de hardware ou de segurança para o interromper.

Porque é que a estimativa de migração indica minutos quando demora horas?

A estimativa não consegue ter totalmente em conta uma reconstrução lenta do RAID, discos muito carregados ou um grande número de ficheiros pequenos. Meça o progresso real em vez de depender da estimativa inicial.

[UU] significa que o RAID1 está íntegro?

Para um RAID1 md com dois membros, [UU] significa que ambos os membros esperados estão presentes. Não significa que uma ressincronização tenha sido concluída, por isso verifique também a linha de progresso.

Devo instalar o iotop no ZimaOS?

Normalmente, não para este diagnóstico. /proc/mdstat já responde se o RAID md está a ser reconstruído, e evitar modificações desnecessárias nos pacotes do anfitrião torna a resolução de problemas mais simples.