Início > Uncategorized > Migração de grande quantidade de dados em storage bloco-a-bloco de forma rápida com Linux e DD

Migração de grande quantidade de dados em storage bloco-a-bloco de forma rápida com Linux e DD

Salve, após um certo tempo de hiato, estou de volta para postar coisas interessantes e úteis (no meu ponto de vista) para quem se interessar.

Migração de grandes quantidades de dados pode ser algo cansativo e traumático dependendo das condições e prazos que se tenha para fazê-la. Num senário como este, nem sempre se dispõe de soluções apropriadas para tal tipo de tarefa, então torna-se necessário improvisar de maneira coesa e simples. Passei por uma situação parecida tempos atrás e pensando nisso, peguei parte da documentação que criei para tais procedimentos e preparei esse pequeno e simples artigo, do qual espero que lhe seja útil.

O Cenário

A sua estrutura dispõe de dois storages, um que já está em produção, e outro novo, que irá substituir o atual e você tem apenas parte do final de semana para migrar aproximadamente 4TB de dados de um para o outro.

Equipamentos envolvidos:

2 Storages;
1 Servidor com duas HBA FC a 8gbit/s;
2 Pares de fibra ligando cada HBA do servidor a dos storages a 8gbit/s.

Software:

Linux (o cara!);
DD (o salvador!);
iostat (para monitorar a entrada e saída de dados).

Aprovisionamento

Primeiro deve-se provisionar o novo storage, de acordo com o antigo, mesma quantidade de LUNs e tamanhos, quanto mais identicos eles forem entre si, mais fácil será identificá-los no Linux.

Estratégia

A estratégia a ser utilizada, vai ser apresentar LUN a LUN. Por exemplo, no storage atual, existe a LUN VMW_R5_DADOS, então apresentamos a LUN ao Linux, e verificamos com o comando ‘fdisk -l’. O mesmo irá mostrar o novo dispositivo (que é a LUN do storage atual) e suas partições. Nesse exemplo, o dispositivo será o /dev/hdb. Logo após, repita o mesmo passo no storage de destino, e agora o comando ‘fdisk -l’ irá listar os dois storages, vamos assumir para este artigo que o dispositivo de destino será /dev/hdc.

Plano de ação

Após apresentar as LUNs pro host, podemos iniciar o trabalho:

dd if=/dev/hdb of=/dev/hdc

Observe que a migração começou, mas está indo de forma bastante lenta. Por que? O DD migra dados por padrão em blocos de 512 bytes, para alguns dispositivos comuns, essa velocidade é o bastante, mas como estamos falando de dispositivos de Enterprise Level, com HDs SAS 15K RPM e FC a 8Gbit/s podemos “esticar” um pouco, e colocá-lo para migrar em blocos de 8 a 16k.

dd if=/dev/hdb of=/dev/hdc bs=8k

Após isso, devemos observar a taxa de I/O com o comando ‘iostat’, caso seja satisfatória, podemos deixar como estar, ou ir incrementando até 16k, que é um nível que não causa muito enfileiramento nessa velocidade. No caso, eu consegui copiar cerca de 1TB a cada 1h. O DD simplesmente copia, ele não sabe o que é filesystem ou arquivos, sua cópia é totalmente baixo nível, com acesso direto aos dispositivos.

Atenção: quanto maior o block size, mais memória RAM consumirá do host. Se seu host tem acima de 16GB de RAM, pode ficar despreocupado, caso contrário, é recomendável monitorar para ficar entre o ideal e o responsável.

Vale observar que: o ‘dd’ não faz tarefas de compressão de dados, muito menos checagem de erros de I/O, então tome o cuidado de fazer backup antes e verificar a consistência dos dados após cada migração.

Anúncios
Categorias:Uncategorized
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: