Configuré un nuevo servidor MySQL en Amazon EC2 y decidí almacenar mis datos en una matriz EBS RAID0. Hasta ahora todo bien, y he probado tomar instantáneas de esos dispositivos con una instantánea ec2-consistente, genial.
Ahora, ¿cómo reconstruye la matriz en una nueva instancia, a partir de estas instantáneas, rápidamente?
Cuando usa una instantánea ec2-consistente para crear una instantánea de múltiples volúmenes, no tiene forma de saber qué volumen se usó para cada dispositivo en el RAID. Tal vez esté completamente equivocado, pero dado que está tirando datos en los volúmenes, sería lógico que tenga que colocar cada NUEVO volumen en la misma ubicación en el RAID que el volumen desde el que se creó la instantánea.
Un ejemplo:
- Volúmenes de 3x200gb en una configuración RAID0.
- vol-1 es / dev / sdh dispositivo 0 en el RAID
- vol-2 es / dev / sdh1 dispositivo 1 en el RAID
- vol-3 es / dev / sdh2 dispositivo 2 en el RAID
se crea una instantánea con EC2: ec2-consistent-snapshot <options> vol-1 vol-2 vol-3
.
Ahora tiene 3 instantáneas, y la única forma de rastrear qué dispositivo son es mirar la identificación del volumen de origen, luego ver en qué dispositivo está montada la identificación del volumen de origen como en la instancia, y luego verificar los detalles del RAID configuración en la instancia del volumen de origen.
Esto es obviamente increíblemente manual ... y no rápido (lo que obviamente hace que sea difícil abrir una nueva instancia de mysql rápidamente si la otra falla. Sin mencionar que tendría que registrar las posiciones del dispositivo en el RAID en ese momento de la instantánea, porque si la instancia del volumen de origen se bloquea, no tiene forma de acceder a la configuración RAID).
Entonces, en conclusión:
- ¿Me estoy perdiendo algo sobre cómo funciona la instantánea ec2-consistente y una matriz RAID0 de software?
- Si no es así, ¿existen soluciones conocidas / mejores prácticas en torno al problema de no saber a qué dispositivo / posición en la matriz RAID pertenece una instantánea?
Espero que esto esté claro, ¡y gracias por tu ayuda!
fuente
Ejecuté una configuración similar ( RAID0 sobre 4 volúmenes EBS ) y, en consecuencia, tuve las mismas preocupaciones para reconstituir la matriz RAID de las instantáneas creadas con la instantánea ec2-consistente .
Afortunadamente, cada dispositivo en una matriz de incursiones contiene metadatos (en un superbloque) que registran su posición en la matriz, el UUID de la matriz y el nivel de la matriz (por ejemplo, RAID0). Para consultar este superbloque en cualquier dispositivo, ejecute el siguiente comando (la línea que coincide con '^ this' describe el dispositivo consultado):
Si realiza la misma consulta en un dispositivo que no forma parte de una matriz, obtendrá:
Lo que demuestra que este comando realmente se basa en la información almacenada en el dispositivo y no en algún archivo de configuración.
También se pueden examinar los dispositivos de una matriz RAID a partir del dispositivo RAID, recuperando información similar:
Utilizo el último junto con ec2-describe-volume para construir la lista de volúmenes para ec2 -istent-snaptshot ( -n y --debug permiten probar este comando sin crear instantáneas). El siguiente comando supone que el directorio / mysql es el punto de montaje para el volumen y que la región de AWS es us-west-1 :
fuente
Sé que esto no responde a su pregunta, pero estoy haciendo algo similar, pero con la herramienta ec2-create-snapshot base de Amazon y un script cron. No es tan rápido como la instantánea ec2-consistente, pero obtengo el control adicional que necesito: fsync, bloqueo de escritura y, lo más importante, nombrar las instantáneas adecuadamente para que puedan reconstituirse en el orden correcto.
fuente