¿Sería posible hacer una copia en caliente de un sistema?

10

Me gustaría hacer una copia de seguridad de mi sistema sin apagarlo. El clon del sistema también debería poder ejecutarse en otra máquina.

Intenté "dd" la partición completa del sistema en otro disco, después de eso me aseguré de que no se inicien tareas administrativas. Creo que tuve que decirle al grub que arranque en ese disco, así que ejecuté el comando:

grub-install  /dev/sdc1 

pero recibí este error:

The file /boot/grub/stage1 not read correctly.

Sé que lo que estoy haciendo no es muy limpio, así que ¿tienes una buena solución para alcanzar mis objetivos o una idea para resolver el problema de la comida?

gaélico
fuente
Si tiene que mantenerlo funcionando, eso implica que en realidad está haciendo algo. Si ese es el caso, es casi seguro que el contenido de su sistema cambiará durante la copia de seguridad. Esto hace que los resultados sean algo impredecibles: pruebe mucho antes de usar en producción.
Joe

Respuestas:

8

Hay varias opciones que cada una tiene compensaciones. No puede usar ddpara clonar un sistema de archivos mientras está montado lectura / escritura o el clon terminará dañado ya que el origen se cambia durante la copia, por lo que el destino estará parcialmente desactualizado y parcialmente no. Si realmente desea poder usar dduna copia en caliente de una partición, puede hacerlo con instantáneas LVM . Esto requiere que haya instalado el sistema usando LVM en primer lugar, pero luego puede crear una instantánea en cualquier momento, y dado que la instantánea está congelada y no montada, puede capturar ddla instantánea de forma segura y luego eliminar la instantánea. El otro inconveniente de usarddes que desperdicia tiempo copiando todo el espacio no utilizado en el volumen, y requiere que el destino sea al menos igual de grande, incluso si la mayor parte del origen no se utiliza.

En lugar de usar dd, simplemente puede usar herramientas de copia de seguridad tradicionales como taro dumppara hacer una copia de seguridad de la instantánea. Esto tiene la ventaja de no perder el tiempo copiando espacio libre, y se puede restaurar a una partición más pequeña siempre que tenga espacio para los archivos. También puede extraer solo algunos de los archivos para realizar una restauración parcial. Tampoco tiene que usar LVM con este método: siempre y cuando esté razonablemente seguro de que no se modificarán archivos cuando realice la copia de seguridad, es seguro hacerlo en un sistema de archivos montado. Lo peor que puede suceder es que un archivo individual que se modifica durante la copia de seguridad esté dañado, en lugar de que la copia de seguridad completa esté corrupta, como puede suceder dd.

Como parece haberse dado cuenta, después de restaurar el sistema de archivos, aún necesita reinstalar grub para que el sistema arranque. No estoy seguro de por qué recibió ese error cuando lo intentó, pero parece que estaba usando grub-legacy, ya que grub2 no tiene una etapa1.

psusi
fuente
No utilicé LVM, pero pude, estoy buscando una solución duradera. ¿es suficiente copiar todo el árbol del sistema (excluyendo proc) y luego modificar el grub?
Gael
@Gael, es suficiente copiar todos los archivos y reinstalar grub, sí. También es posible que deba actualizar los UUID en / etc / fstab. Tenga en cuenta que si está utilizando tardesea excluir no solo / proc, sino también / dev, / sys y / run también, o use el --one-file-systeminterruptor para evitar que descienda a otros sistemas de archivos.
psusi
gracias, lo intentaré con alquitrán. Esta solución puede permitir un control total de la copia de seguridad.
Gael
3

Usar algo como rsynco tarpara copiar la partición puede ser más simple. Montaría la partición en un segundo punto de montaje como /mntantes de la copia. Estas opciones también le permiten cambiar el tamaño o tipo de partición. También puede tener estructuras en particiones adicionales. A menudo tengo particiones separadas para /vary /usr. Estos también deberán ser considerados.

Es posible que deba profundizar en la grubdocumentación para determinar cómo apuntar el disco y la partición correctamente. install-grubpuede hacer suposiciones incorrectas que no hacen lo que quieres.

Existen herramientas como las mondoque le permiten crear un CD de recuperación de arranque con su sistema operativo instalado.

BillThor
fuente
Estaba usando dd porque me decía que otras herramientas de copia de archivos solo copiarán archivos, no mbr y la tabla de particiones. Le eché un vistazo a Mondo, y podría ser la solución más simple. Gracias
Gael
@Gael Si solo está clonando SD1, no obtendrá el MBR. Hay una serie de herramientas que actualizarán el MBR si es necesario. Normalmente ya tiene código para buscar un registro de arranque.
BillThor
1

Creo que no hay una opción real para hacer una copia de seguridad confiable de un sistema en ejecución a nivel de dispositivo: su sistema de archivos se corrompería demasiado ya que no puede congelar el estado actual y la operación de copia de seguridad lleva una cantidad de tiempo considerable.

Sin embargo, puedes probar las siguientes opciones:

  1. Ejecute el sistema dentro de una VM. Puede crear una instantánea del sistema y luego hacer una copia de seguridad de esta instantánea. Cuando se realiza la copia de seguridad, la instantánea se puede descartar fácilmente. Esto resuelve los problemas mencionados anteriormente.
  2. Realice la copia de seguridad en el nivel del sistema de archivos, no en el nivel del dispositivo. Puedo recomendar rsnapshot para esto.
Vilmantas Baranauskas
fuente
Estoy buscando una solución que permita hacer una copia de seguridad de un sistema sin apagarlo. Entonces, independientemente del método utilizado, el sistema debe estar funcionando. Si es suficiente copiar solo el sistema de archivos para copiar el sistema, rsync hará el trabajo, ¿qué trae rsnapshot?
Gael
rsnapshot le proporciona tantas copias de seguridad incrementales múltiples como necesite (por hora, diariamente, semanalmente, mensualmente) y las copias de seguridad están disponibles en una estructura de directorio completa a pesar de que son incrementales.
Vilmantas Baranauskas