Eu configurei um novo servidor MySQL no Amazon EC2 e decidi armazenar meus dados em uma matriz EBS RAID0. Até agora tudo bem, e eu testei tirar instantâneos desses dispositivos com instantâneo consistente com ec2, ótimo.
Agora, como você reconstrói a matriz em uma nova instância, a partir desses instantâneos, rapidamente?
Quando você usa o snapshot consistente com ec2 para criar um snapshot de vários volumes, não há como saber qual volume foi usado para cada dispositivo no RAID. Talvez eu esteja completamente errado, mas como você está distribuindo dados pelos volumes, seria lógico que você deveria colocar cada NOVO volume no mesmo local no RAID que o volume a partir do qual o instantâneo foi criado.
Um exemplo:
- Volumes de 3x200gb em uma configuração RAID0.
- vol-1 é / dev / sdh dispositivo 0 no RAID
- vol-2 é / dev / sdh1 dispositivo 1 no RAID
- vol-3 é / dev / sdh2 dispositivo 2 no RAID
você cria um instantâneo EC2 com: ec2-consistent-snapshot <options> vol-1 vol-2 vol-3
.
Agora você tem três capturas instantâneas, e a única maneira de rastrear qual dispositivo eles são é olhar o ID do volume de origem, depois olhar para qual dispositivo o ID do volume de origem está montado, como na instância, e depois verificar os detalhes do RAID. configuração na instância do volume de origem.
Isso é obviamente incrivelmente manual ... e não rápido (o que obviamente dificulta a criação rápida de uma nova instância mysql se a outra falhar. Sem mencionar, você teria que registrar as posições do dispositivo no RAID no momento do snapshot, porque se a instância do volume de origem travar, você não poderá acessar a configuração RAID).
Então, em conclusão:
- Estou faltando alguma coisa com como o snapshot ec2-consistente e uma matriz RAID0 de software funcionam?
- Caso contrário, existem soluções / práticas recomendadas conhecidas sobre o problema de não saber a qual dispositivo / posição na matriz RAID um snapshot pertence?
Espero que isso esteja claro e obrigado por sua ajuda!
fonte
Executo uma configuração semelhante ( RAID0 acima de 4 volumes EBS ) e, consequentemente, tive as mesmas preocupações de reconstituir a matriz RAID a partir de instantâneos criados com o instantâneo consistente com ec2 .
Felizmente, cada dispositivo em uma matriz RAID contém metadados (em um superbloco) que registram sua posição na matriz, o UUID da matriz e o nível da matriz (por exemplo, RAID0). Para consultar esse superbloco em qualquer dispositivo, execute o seguinte comando (a linha correspondente a '^ this' descreve o dispositivo consultado):
Se você fizer a mesma consulta em um dispositivo que não faz parte de uma matriz, você obtém:
O que prova que esse comando realmente depende de informações armazenadas no próprio dispositivo e não de algum arquivo de configuração.
Pode-se também examinar os dispositivos de uma matriz RAID iniciando no dispositivo RAID, recuperando informações semelhantes:
Eu uso o mais tarde junto com o ec2-description-volumes para criar a lista de volumes para o ec2-consistente-snaptshot ( -n e --debug permitem testar esse comando sem criar instantâneos). O comando a seguir assume que o diretório / mysql é o ponto de montagem do volume e que a região da AWS é us-west-1 :
fonte
Sei que isso não responde à sua pergunta, mas estou fazendo algo semelhante, mas com a ferramenta base ec2-create-snapshot da Amazon e um script cron. Não é tão rápido quanto o snapshot consistente com ec2, mas recebo o controle extra necessário: fsync, gravações de bloqueio e, o mais importante, nomeie os snapshots adequadamente para que possam ser reconstituídos na ordem correta.
fonte