Como mover a unidade RAID do Mdadm (baseada em EBS) para outra instância do AWS

2

Temos um aplicativo da web repleto de mídia hospedado na AWS. Temos vários servidores Web e temos um servidor NFS.

No servidor NFS (servidor Linux), temos vários volumes do EBS que são montados e usamos o mdadm para implementar os diferentes volumes montados como um único volume RAID. Os servidores web simplesmente acessam o armazenamento NFS através de um ponto de montagem.

A Amazon agora nos informou que eles farão manutenção de energia neste servidor dentro de alguns dias. Como toda a nossa mídia está aqui, isso tornaria nosso site inutilizável durante as horas enquanto a Amazon está trabalhando nele. Queremos tentar evitar esse tempo de inatividade.

Eu estava pensando que podemos evitar o tempo de inatividade do servidor, talvez configurando temporariamente um novo servidor e anexando as unidades EBS (volume de ataque) a esse servidor e fazendo com que nossos servidores da Web apontem para lá durante a manutenção.

Esta é uma operação de alto risco, pois envolve vários terabytes de nossos dados de produção.

Qual seria o caminho seguro para mover a nossa unidade de invasão lógica (md0) para uma nova instância de amazon? Eu estava esperando que eu pudesse começar com a construção do novo servidor, montar os volumes ebs e montar a partição RAID usando mdadm --assemble --scan antes de desmontar da instância existente para que eu possa testar primeiro se tudo funciona e, assim, montá-lo em duas instâncias ao mesmo tempo, mas não acredito que isso seja possível com o funcionamento dos sistemas de arquivos.

Como faço para mover um RAID de software Linux para uma nova máquina? sugere uma maneira de mover unidades, mas não é realmente uma questão baseada em nuvem. Talvez existam maneiras mais simples de evitar o tempo de inatividade do sistema com a solução sendo hospedada na nuvem? Eu considerei fazer um snapshot do EBS, mas isso tenta replicar todos os muitos terabytes de armazenamento montado, então esta não é uma solução prática.

Alguma idéia?

    
por Stanley 12.06.2012 / 08:40

2 respostas

0

Você só pode anexar um dispositivo EBS a uma única instância, portanto, será necessário desconectá-lo quando estiver em movimento. Eu estou supondo que você quer evitar processos intensivos de dados, como criar um instantâneo EBS ou rsyncing os dados para uma nova instância. Eu também estou assumindo que você está usando o RAID1.

A opção mais segura exigirá alguns minutos de inatividade. Você iniciaria uma nova instância e instalaria e configuraria o software necessário (por exemplo, servidor NFS). Em seguida, na instância antiga, desmonte o sistema de arquivos, pare a matriz e desconecte os dois dispositivos EBS. Em seguida, conecte os dispositivos EBS à nova instância, inicie a matriz e monte o sistema de arquivos. Obtenha os servidores da Web para montar o NFS a partir da nova instância. O início da matriz deve ser apenas um caso de executar o comando mdadm que você descreve, mas eu definitivamente testaria isso primeiro.

A segunda opção potencialmente tem menor tempo de inatividade (supondo que você possa operar no modo somente leitura por um tempo), mas é mais perigoso. Você iniciaria a nova instância como acima. Na instância antiga, remonte o sistema de arquivos no modo somente leitura. Em seguida, falhe um dos dispositivos RAID, desconecte esse dispositivo EBS e anexe-o à nova instância. Inicie a matriz no modo degradado na nova instância, monte o sistema de arquivos e obtenha os servidores da web para montar o NFS a partir da nova instância (o site deve estar totalmente disponível neste estágio). Em seguida, pare a matriz na instância antiga, desconecte o dispositivo EBS e anexe-o à nova instância e adicione-o à matriz. Isso pode, no entanto, disparar uma ressincronização completa, então, novamente, teste isso primeiro.

O que quer que você faça, certifique-se de testar o processo primeiro para que você saiba exatamente como realizá-lo, e tenha certeza de ter backups no caso de dar errado. (Além disso, considere armazenar sua mídia no S3.)

    
por 12.06.2012 / 09:42
2

Acabei de perceber: ter que criar manualmente uma nova instância e mover manualmente a unidade RAID é desnecessário.

Como a instância é baseada em EBS e as unidades que compõem o volume de raid também são baseadas em EBS, posso simplesmente parar a imagem de ebs e, em seguida, iniciá-la novamente. Isso irá migrá-lo para um novo hardware.

Esta é de longe a maneira mais simples de fazer isso. Como o servidor agora receberá um novo endereço IP, basta atualizar o fstab nos servidores da Web para apontar para o servidor correto.

    
por 12.06.2012 / 11:58