Configurar LVM Snapshot como un punto de copia de seguridad / restauración en ubuntu

29

Configurar LVM Snapshot como un punto de copia de seguridad / restauración en ubuntu.

¿Por qué?

Bueno, como lo veo, con toda la gran utilidad de Linux, su mayor inconveniente es su forma confusa de instalar aplicaciones. Todos los dlls van a un directorio. Todos los archivos de configuración a otro. Y los binarios también se ponen en un montón. Sí, Windows funciona de la misma manera más o menos, pero con la naturaleza del software del sistema / servidor instalado en Linux, dado que la mayoría del software instalado solo tiene un 95% de madurez en un momento dado, estropear su sistema dos veces al mes es muy probable ..

Por supuesto, podemos hacer una copia de seguridad del sistema antes y después de cada instalación, pero eso lleva un millón de años. Las copias de seguridad del sistema (en oposición a la copia de seguridad de datos / archivos) requiere que apague su computadora y use algún tipo de CD en vivo de arranque y un medio de copia de seguridad. Y, si el disco tiene más del 15% de su capacidad, puede llevar mucho tiempo hacer la copia de seguridad, incluso con hardware moderno.

Entonces, ¿cómo se puede hacer esto?

frotar
fuente
3
Esta no es una pregunta ... también supongo que no te ves muy duro; un rápido google para "ubuntu lvm snapshot" y lo primero que aparece es wiki.ubuntu.com/Lvm
psusi
1
Nada que ver con ... ¿lo leíste? Cubre todo lo que dijiste aquí.
psusi
55
Por supuesto, puede hacer una pregunta y luego responderla usted mismo, pero tenga en cuenta que este sitio funciona como preguntas y respuestas, no destinado a tutoriales de forma gratuita.
guntbert
3
Esa es la cosa. AskUbuntu proporciona tutoriales, pero no pude encontrar una manera fácil de poner uno. Y como quería compartir mi arduo trabajo con cualquiera que pudiera beneficiarse, decidí publicarlo aquí.
frotar
44
Votación para reabrir para que podamos dividir esto en un Q&A
muru

Respuestas:

11

La alternativa - Instantáneas LVM - Puede leer acerca de las instantáneas LVM aquí: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

En resumen, las instantáneas son una forma de congelar los sectores utilizados en el Disco Duro, diciéndole al sistema que escriba cualquier cambio / eliminación / adición en una parte reservada del Disco Duro, llamado volumen de instantánea, por lo que pospone la decisión de mantener / descartar los cambios. en el disco hacia algún tiempo futuro, en la medida en que el espacio de volumen de la instantánea proporcione. Y así, una vez que decida revertir los cambios (o conservarlos), puede hacerlo con una línea.

Puede parecer complejo al principio, pero puedo asegurarle que después del primer esfuerzo, todo lo que se necesita para usar el mecanismo de instantánea son solo scripts de 2 líneas (¡descargas proporcionadas!)

Garantía: no se ofrece ninguna garantía para las instrucciones a continuación. ¡Úselo bajo su propio riesgo!

¿Cómo?

Si no tiene un grupo de volúmenes preconfigurado, probablemente necesitará instalar un Ubuntu limpio y nuevo. Luego, tendrá que hacer un esfuerzo para configurar el sistema correctamente por primera vez, pero a partir de este momento, la instantánea se hará sin esfuerzo . Y sin esfuerzo me refiero a los comandos de una línea, utilizando scripts preconfigurados.

  1. Arranque en ubuntu live cd (no hay instalación todavía ... solo el live cd)
  2. Accesorios abiertos -> Terminal
  3. ¡Vamos a limpiar el disco duro! Haga una copia de seguridad de cualquier cosa importante antes de pasar por esta etapa.

    Primero, eliminemos las particiones existentes:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Cree la partición de arranque y el resto de la unidad como la otra partición

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    Para verificar que los cambios funcionaron bien:

    # fdisk --list
    

    Deberías obtener algo como esto:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Elimine los grupos de volúmenes / volúmenes lógicos anteriores:

    # lvdisplay 
    

    Mostrará los volúmenes lógicos que pueda tener en el sistema

    # lvremove <existing_logical_volume_name>
    

    Si es necesario eliminar cualquier instalación de volumen que pueda interferir con esta instalación.

    # vgdisplay 
    

    Mostrará cualquier grupo de volúmenes existente en el sistema

    # vgremove <existing_volume_group>
    

    Igual que para los grupos de volúmenes.

  6. Crear el grupo de volúmenes 'vgsnap'

    # vgcreate vgsnap /dev/sda2
    

    Debería resultar con:

      Volume group "vgsnap" successfully created
    
  7. Crear el volumen lógico

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    El volumen lógico raíz, que comienza con el 100% del dispositivo.

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    Esto eliminará 30G para los volúmenes de intercambio e instantánea. Por supuesto, puede elegir tamaños más pequeños para el intercambio / instantánea.

    > 'y'
      for the warning shown.
    

    Y cree el volumen de intercambio:

    # lvcreate --size 15G --name lvswap vgsnap
    

    Nota: dejamos ahora 15G de espacio en disco no utilizado, reservado para la instantánea futura

  8. Instalar Ubuntu

    Cierre el terminal e inicie el instalador.

    Elija "Usar LVM ..." (También puede optar por habilitar el cifrado de disco completo, pero no lo probé ...)

    Seleccione "Algo más" y presione continuar. En esta etapa, encontrará una cantidad de / dev / mapper / ... volúmenes definidos. Algunos de estos son generados automáticamente (lvsnap- *); puede ignorarlos por ahora.

    Seleccione: / dev / mapper / vgsnap-lvroot volume. Elija "ext4" como formato y monte como '/'

    Seleccione: / dev / mapper / vgsnap-lvswap volume, y elija "swap area"

    Si va a crear una unidad encriptada (¿no tengo idea de si eso funcionaría con las instantáneas?), Probablemente desee seleccionar / dev / sda2 y marcar el "volumen para la encriptación". Aunque no lo probé ...

    Nota: Los 15G no utilizados se dejan libres para el volumen de la instantánea.

    Seleccione: / dev / sda1 partición. Formatee como 'ext2' y móntelo como '/ boot'

    A continuación: elija: / dev / sda1 partición como arranque

    ¡Instalar!

Usando la instantánea

Los siguientes pasos mostrarán cómo usar la instantánea en un momento dado:

  1. Montaje de la instantánea:

    Crea el volumen de la instantánea

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    Crea el directorio de montaje

    # mkdir /mnt/vgsnap-lvsnap
    

    Montar la instantánea como montaje de solo lectura

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    ¡La instantánea está activada!

    En este punto, puede comenzar a estropear su sistema, instalar controladores beta e incluso (¡No! Eso es inapropiado).

    A partir de ahora, en cualquier momento (en la medida en que el tamaño de la instantánea lo permita) volver al estado anterior o, si está satisfecho con el nuevo aspecto, conservarlo.

  2. Espacio libre en disco de volumen automático instantánea monitoreo: El uso de una versión modificada de la secuencia de comandos proporcionada aquí: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ creé monitor_snapshot guión .

    ¿Cómo usarlo / instalarlo? - Más o menos como con el enlace de arriba:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    Antes de ejecutarlo por primera vez, es mejor que edite los valores en él, como su dirección de correo electrónico (dónde se enviarán las notificaciones, etc.). Si está configurado correctamente, el demonio cron ejecutará el script cada X horas / días. según lo decida, y le notificaremos una vez que la instantánea esté a punto de completarse.

    Para probar el script, ejecute:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Imprimirá el porcentaje (número) de espacio libre en la instantánea.

    ¡Importante! Una vez que haya terminado con sus pruebas / instalaciones, revierta o mantenga los cambios, ¡y desmonte la instantánea!

  3. Revertir los cambios: (Consulte el script rollback_snapshot , con las siguientes instrucciones, enlace al final del documento)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    Esto también desmontará la instantánea, pero descartará cualquiera de sus cambios. Además, verá una advertencia que sugiere que la reversión solo ocurrirá la próxima activación, por lo tanto:

    # reboot
    

    Nota: Si omite la fusión, sus cambios se confirmarán una vez que desmonte la instantánea.

  4. Confirmación de cambios: desmontaje de la instantánea: (Consulte el script commit_snapshot , con las siguientes instrucciones: enlace al final del documento)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. Vuelva a montar la instantánea: (Consulte la secuencia de comandos de montaje , con las siguientes instrucciones: enlace al final del documento) Más o menos como antes:

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    Si guardó la instantánea de monitor en su directorio de inicio, puede restaurarla de nuevo:

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

¡Eso es todo amigos! Las siguientes instrucciones son solo para personas que dejan de fumar;)

  1. Descartar el volumen de la instantánea (si ya no es necesario)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (También es posible que desee cambiar el tamaño de la partición raíz o cambiar para ocupar el 15G faltante reservado para el intercambio)

  2. Descartar el grupo de volúmenes: solo es posible eliminando los volúmenes del grupo de volúmenes, lo que probablemente significa eliminar la instalación del sistema operativo. Pero, por supuesto, no hay necesidad real de eliminar el grupo de volúmenes ...

    Para eliminar el grupo de volúmenes:

    # vgremove vgsnap
    

¡Nota IMPORTANTE! - formatear / ejecutar fdisk y eliminar todas las particiones NO eliminará los volúmenes ni el grupo, ya que están escritos en una parte diferente de la unidad ... Por lo tanto, solo use las instrucciones de eliminación anteriores y elimine los volúmenes y el grupo si es necesario.

frotar
fuente
Muchas gracias por estas instrucciones detalladas ... wow.
Adriano Lucas
2

Crear un cronjob para hacer una copia de seguridad utilizando el lvcreate -s -L <size> -n <snapshot_name> <volume_name>

Aquí el nombre del volumen es el nombre del volumen cuya instantánea desea tomar. Para más detalles también puede ir a través de este tutorial

Bidyut
fuente
1
Buena guía! Sin embargo, tenga en cuenta que mis intenciones de proporcionar un medio para realizar copias de seguridad sin un medio de copia de seguridad . Como una forma de copia de seguridad perezosa. En los viejos tiempos esto era un salvavidas, con Norton GoBack y Windows 2000 :) Solía ​​estropear realmente los sistemas en los que trabajé, y poder contar con eso puedo revertir mis errores en muy poco tiempo. ! Las copias de seguridad son probablemente la forma correcta de ir en un servidor real, pero para una estación de trabajo que no se coloca en un VMWare / VirtualBox (que proporciona instantáneas externamente), creo que las instantáneas son el camino a seguir.
frotar