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/mdstatnã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.
