Instantáneas de LVM como estrategia de respaldo


17

¿Qué tan viable como estrategia de respaldo serían las instantáneas periódicas de LVM de xen domU? Pros, contras, ¿alguna trampa?

Para mí, parece la solución perfecta para una restauración rápida y sin cerebro. Cualquier investigación podría llevarse a cabo en el volumen lógico roto con domU ejecutando con éxito sin interrupción.

EDITAR:

Aquí es donde estoy ahora, cuando hago copias de seguridad completas del sistema.

  • instantánea lvm del disco domU
  • un nuevo volumen lógico cuyo tamaño es igual al tamaño de la instantánea.
  • dd if = / dev / snapshot of = / dev / new_lv
  • deshacerse de la instantánea con lvremove
  • verificación opcional con kpartx / mount / ls

Ahora necesito automatizar esto.

Respuestas:


32

Las instantáneas LVM están destinadas a capturar el sistema de archivos en un estado congelado. No están destinados a ser una copia de seguridad en sí mismos. Sin embargo, son útiles para obtener imágenes de respaldo consistentes porque la imagen congelada no puede cambiar y no cambiará durante el proceso de respaldo. Entonces, si bien no los usará directamente para hacer copias de seguridad a largo plazo, serán de gran valor en cualquier proceso de copia de seguridad que decida usar.

Hay algunos pasos para implementar una instantánea. El primero es que se debe asignar un nuevo volumen lógico. El propósito de este volumen es proporcionar un área donde se graban los deltas (cambios) en el sistema de archivos. Esto permite que el volumen original continúe sin interrumpir ningún acceso de lectura / escritura existente. La desventaja de esto es que el área de la instantánea es de un tamaño finito, lo que significa que en un sistema con escrituras ocupadas, puede llenarse bastante rápido. Para los volúmenes que tienen una actividad de escritura significativa, querrá aumentar el tamaño de su instantánea para permitir suficiente espacio para que se graben todos los cambios. Si su instantánea se desborda (se llena), la instantánea se detendrá y se marcará como inutilizable. Si esto sucede, querrá publicar su instantánea para que pueda recuperar el volumen original en línea. Una vez que se completa el lanzamiento, usted '

Lo segundo que sucede es que LVM ahora "intercambia" los verdaderos propósitos de los volúmenes en cuestión. Pensaría que la instantánea recientemente asignada sería el lugar para buscar cualquier cambio en el sistema de archivos, después de todo, es a donde van todas las escrituras, ¿verdad? No, es al revés. Los sistemas de archivos están montados en nombres de volumen LVM , por lo que cambiar el nombre de debajo del resto del sistema sería un no-no (porque la instantánea usa un nombre diferente ). Entonces, la solución aquí es simple: cuando accede al nombre del volumen original, continuará haciendo referencia a la versión en vivo (lectura / escritura) del volumen del que hizo la instantánea. El volumen de la instantánea que cree se referirá al congelado.(solo lectura) versión del volumen que desea hacer una copia de seguridad. Un poco confuso al principio, pero tendrá sentido.

Todo esto sucede en menos de 2 segundos. El resto del sistema ni siquiera se da cuenta. A menos que, por supuesto, no libere la instantánea antes de que se desborde ...

En algún momento, querrás liberar tu instantánea para reclamar el espacio que ocupa. Una vez que se completa el lanzamiento, el volumen de la instantánea se devuelve al volumen y queda el original.

No recomiendo buscar esto como una estrategia de respaldo a largo plazo. Todavía está alojando datos en la misma unidad física que puede fallar, y la recuperación de su sistema de archivos de una unidad que ha fallado no es una copia de seguridad.

Entonces, en pocas palabras:

  • Las instantáneas son buenas para ayudar a las copias de seguridad
  • Las instantáneas no son, en sí mismas, una forma de respaldo
  • Las instantáneas no duran para siempre
  • Una instantánea completa no es algo bueno
  • Las instantáneas deben publicarse en algún momento
  • LVM es tu amigo, si lo usas sabiamente.

44
Además, el rendimiento de la instantánea LVM se degrada linealmente: 8 instantáneas 8 veces el IO.
Steven

9
Hay algunos puntos en su descripción que creo que son incorrectos. En las versiones actuales de LVM, si una instantánea se llena, simplemente se marca como inutilizable y debe eliminarse. La E / S en el dispositivo no se detiene. En segundo lugar, cuando elimina una instantánea, no se vuelven a copiar los datos al volumen original. Esencialmente, cuando escribe en el volumen en vivo, los bloques originales se copian primero en la instantánea y luego se actualizan los bloques en vivo. Luego, cuando suelta la instantánea, solo es cuestión de eliminar la entrada del mapeador de dispositivos. No se requiere copia.
Kamil Kisiel

2
En aras de la integridad, Kamil Kisiel tiene razón. Ver: tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html
ktower el

1
Después de muchas quejas de mí mismo por estar mal informado, la respuesta se ha modificado en función de múltiples fuentes de documentación y discusión. Lo siento amigos, mi mal.
Avery Payne el

10

Las instantáneas de LVM son excelentes para poder hacer una copia de seguridad de su servidor sin desconectarlo. Como se indicó, las instantáneas de LVM son copias casi instantáneas. Los crea utilizando el lvcreatecomando tal como lo haría para crear el LV en sí mismo, solo que le da la --snapshotopción y el LV original en lugar del VG. Por ejemplo:

lvcreate -L <LV size> -s -n <snapshot name> /dev/<VG name>/<LV name>

Esto creará una instantánea del LV dado con el nombre de instantánea especificado que luego puede montar y usar este LV de instantánea para realizar su copia de seguridad sin preocuparse por los archivos que se utilizan activamente. Esto es particularmente útil si está intentando hacer una copia de seguridad de un servidor de base de datos activo.

Una vez que haya terminado con la copia de seguridad de la instantánea, deseará eliminarla para reducir cualquier sobrecarga de E / S adicional u otros problemas de rendimiento como otros han mencionado usando:

lvremove /dev/<VG name>/<snapshot name>

Si bien las instantáneas de LVM pueden ser invaluables para producir una copia de seguridad confiable de sistemas como bases de datos y de tal manera que normalmente desee cerrar la copia de seguridad para evitar la contención de archivos, no son ideales para la operación a largo plazo como una restauración rápida.


9

No es una buena idea, OMI.

Las instantáneas se implementan de forma copia-en-escritura para que convierta cada escritura en una lectura y dos escrituras (el bloque al que está actualizando se lee primero desde el volumen principal y se almacena en el volumen de la instantánea antes de colocar los nuevos datos en su lugar), por lo que verá una cierta degradación del rendimiento si mucha escritura es común en las máquinas virtuales.

Además, IIRC, si el volumen de la instantánea se llena, simplemente se cae sin ceremonias. ¡Esto no es bueno para propósitos de respaldo! Entonces, si intenta esto como método de copia de seguridad, asegúrese de hacer que el volumen de la instantánea sea lo suficientemente grande como para manejar todos los cambios que sucederán durante la vida útil de la instantánea. Por supuesto, si conoce y supervisa el problema del tamaño y el problema del rendimiento no es un problema para usted, entonces lo que sugiera podría ser una adición útil a otros procesos de respaldo que tenga implementados.

Las instantáneas LVM son muy útiles como parte de un proceso de copia de seguridad (tomar una instantánea, hacer una copia de seguridad de la instantánea en otro lugar para garantizar que la copia de seguridad sea consistente sin tener que deshabilitar las actualizaciones en el volumen "real", descartar la instantánea más adelante), entre otras cosas, pero no están pensadas como una instalación de respaldo por sí mismas.


Tal vez no entiendo cómo funcionan las instantáneas. El manual dice que una instantánea es una copia casi instantánea del volumen lógico, evitando la necesidad de desconectar el sistema que lo utiliza. Según su descripción, parece que una instantánea es más de rama, réplica, en lugar de una copia congelada. ¿La instantánea se actualiza con todos los cambios realizados en el sistema original una vez realizada? Si es así, necesito quitarle los datos inmediatamente y destruir la instantánea, porque no está pensada como un mecanismo de almacenamiento para las copias de seguridad. ¡Gracias!
Karolis T.

2
Es una copia congelada del volumen desde el que se creó, pero solo contiene bloques que han cambiado desde que se tomó la instantánea (por lo tanto, el volumen de la instantánea puede ser mucho más pequeño que el volumen del que es una instantánea). Si los bloques se actualizan en el volumen en vivo, el contenido de los bloques originales se agrega al almacenamiento de la instantánea, de modo que cuando mira la instantánea, LVM puede servir los bloques originales en lugar de los actualizados.
David Spillett

Pero si ha cambiado (la instantánea), ¿de dónde viene este "congelado"? Digamos que tengo este escenario, un sistema de trabajo de alguna manera se corrompe con el tiempo. Tengo una instantánea cuando funcionaba correctamente. ¿La instantánea será una representación del sistema mientras todavía funcionaba correctamente o tendrá los cambios que hicieron que el sistema original se corrompiera en primer lugar? Espero ser lo suficientemente claro, solo quiero estar seguro de que realmente lo entiendo.
Karolis T.

Para comprender de dónde proviene el congelado, tenga en cuenta que ahora tiene dos volúmenes separados: el original que contiene el sistema de archivos activo y la instantánea, que cambia la versión congelada del sistema de archivos. Vea mi respuesta para más detalles.
Avery Payne

1
Ustedes hacen que suene más complicado de lo que es. La instantánea almacena el estado del sistema de archivos de origen tal como estaba cuando se creó la instantánea. Cuando la fuente fs cambia, la instantánea no cambia, lo que le permite apuntar su programa de respaldo para leer la instantánea en lugar de la fuente fs. Sí, se produce una copia en escritura detrás de las pantallas, pero el usuario no se da cuenta de esto, excepto por el uso adicional de E / S.
Martijn Heemels

6

Deberá asegurarse de que los datos en el disco estén en un estado coherente antes de que se realice la instantánea. por ejemplo, mysql puede tener datos almacenados en la memoria caché que deben forzarse en el disco, ya sea volcando la base de datos o apagándola. Consulte los manuales de sus aplicaciones para más detalles.


5

Debajo de las cosas de aspecto inteligente, los LVM son en realidad 'solo' un truco de mapeador de dispositivos. Crear una instantánea con lvcreate no es mucho más que un contenedor para algunas cosas de dmsetup. El contenedor crea un nuevo dispositivo (el volumen de la instantánea) a partir de un volumen antiguo (el lv original) y uno nuevo (el volumen de copia en escritura). Junto con eso, el LV original se renombra a -real (ver abajo, que es dmsetup ls --tree output). Este LV real se asigna tanto al volumen de la instantánea como al volumen original, por lo que se puede usar en ambos lugares. El volumen de copia en escritura funciona como una superposición al LV real. El -snap LV le muestra la combinación del volumen de copia en escritura y el volumen real. De hecho, esto crea algo de sobrecarga de rendimiento.

Volume00-snap (253:11)
 |-Volume00-snap-cow (253:13)
 |  `- (104:2)
 `-Volume00-LogVol01-real (253:12)
    `- (104:2)

Volume00-LogVol01 (253:5)
 `-Volume00-LogVol01-real (253:12)
    `- (104:2)

Al eliminar la instantánea, nuevamente se produce un cambio de nombre y asignación. Después, la situación volverá a ser algo así

Volume00-LogVol01 (253:5)
 `- (104:2)

En cuanto a hasta qué punto este es un buen método para hacer copias de seguridad: puede ser, si tiene en cuenta que esto (1) no ayudará a la RAM de las máquinas virtuales, (2) creará una penalización de rendimiento y (3) necesitará para almacenar imágenes de la instantánea en otro lugar.

VMware VCB también funciona con instantáneas, por cierto, aunque no con LVM.


4

Incluso si las instantáneas no tuvieron ningún impacto en el rendimiento, debe comprender que las instantáneas no son más una copia de seguridad que una copia en otra carpeta en el mismo disco.

Si el disco frena, sus datos y su copia de seguridad se pierden. Incluso si asigna el área de la instantánea a otro PE en el VG, solo contiene los datos modificados desde la instantánea.

Copia de seguridad significa una copia al menos en una unidad completamente separada como requisito mínimo.


Sí, lo entiendo. RAID 1 está en su lugar para proteger contra fallas en los dispositivos de almacenamiento, haciendo copias de seguridad en una ubicación remota, contra la corrupción del software. Estoy considerando las instantáneas de LVM como una herramienta para una restauración REALMENTE rápida cuando no sabe qué sucedió y necesita el sistema en línea ahora. ¿Alguna otra opción, más rápida que restaurar una domU desde una copia de seguridad de LVM?
Karolis T.

3

Utilizo dicha configuración para instantáneas de máquinas de servidor vmware y bases de datos mysql. funciona bien hasta ahora. hubo un par de restauraciones, todas sin problemas. Una cosa a tener en cuenta: mientras se ejecuta con instantánea, lvm obtiene un impacto significativo en el rendimiento de las operaciones de E / S. mira aquí . ignore el hecho de que hablan de mysql, las operaciones de E / S son operaciones de E / S ... sin importar qué tipo de datos se encuentren en lvm.


1
aha Sí, supongo que se tomará una instantánea y se exportará al servidor de almacenamiento remoto. No se deja en el host local.
pQd

2

Utilizo instantáneas lvm solo para copiar el DomU Lv otro en un Vg separado, donde cada dominio tiene tres "nodos" de respaldo para su eliminación.

Después de eso, la instantánea se destruye y los Lv de respaldo permanecen hasta la próxima ronda. Si tengo que realizar una restauración, solo tengo que elegir un Lv de origen de la Vg de copia de seguridad y copiarlo al Lv de dominio.

De vez en cuando, un Lv de respaldo se descarga en un archivo de imagen en un servidor separado.

Todo esto se automatiza mediante un script, con una copia de seguridad cada dos días y un volcado cada semana.

Incluso tenía en mente un modo de "pánico", donde el dominio Lv sería restaurado pero ejecutado desde una instantánea, y reiniciado cada 2 horas, para mantener el sitio en línea en caso de ataques graves, hasta que se pudiera organizar una defensa adecuada .


1

¿Qué pasó con la idea de la línea de defensa del "modo de pánico"?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.