Utilizo mucho Virtual Box para fines de pruebas de distribución / aplicaciones.
Una de las características que simplemente me encantan son las instantáneas de máquinas virtuales, guarda el estado de una máquina virtual y puede restaurarla a su gloria anterior si algo que hiciste salió mal sin ningún problema y sin consumir todo el espacio en tu disco duro.
En mis sistemas en vivo, sé cómo crear una imagen 1: 1 del sistema de archivos, pero todas las soluciones que he conocido crearán una nueva imagen del sistema de archivos completo.
¿Hay algún programa / sistema de archivos que sea capaz de tomar una instantánea de un sistema de archivos actual, guardarlo en otra ubicación pero en lugar de crear una nueva imagen completa, crea copias de seguridad incrementales?
Para describir fácilmente lo que quiero, debería ser como dd
imágenes de un sistema de archivos, pero en lugar de solo una copia de seguridad completa, también crearía incremental.
No estoy buscando clonezilla, etc. Debe ejecutarse dentro del sistema en sí sin intervención (o casi ninguna) del usuario, pero debe contener todos los datos de los sistemas de archivos. Tampoco estoy buscando una duplicity
copia de seguridad de todo su sistema, excepto algunas carpetas script + dd
para guardar su mbr. Puedo hacerlo yo mismo, buscando delicadeza extra.
Estoy buscando algo que pueda hacer antes de hacer cambios masivos en un sistema y luego, si algo está mal o si quemé mi disco duro después de derramar café sobre él, puedo arrancar desde un liveCD y restaurar una instantánea que funcione en un disco duro.
No necesita ser diario, ni siquiera necesita un horario. Simplemente ejecute de vez en cuando y deje que funcione y preferiblemente basado en RAW y no en copia de archivos.
fuente
Respuestas:
Para explicar la respuesta de cprofitt (ya que su respuesta es incremental, como explicaré) ...
Primero necesitas saber sobre enlaces duros.
Los enlaces duros apuntan a los datos que están realmente en el disco (la ubicación física) y puede acceder a los datos utilizando el enlace duro. Cada archivo y directorio es un enlace rígido a la ubicación de los datos en el disco físico. Por lo tanto, si hay dos archivos (enlaces duros) que apuntan a la misma ubicación, los datos solo se almacenan una vez .
El proceso dado por cprofitt involucra:
Gire las copias de seguridad para crear un lugar para una nueva. ("La copia de seguridad de hoy" de ayer se convierte en "Copia de seguridad de ayer", "Copia de seguridad de ayer" de hace dos días se convierte en "Copia de seguridad de hace dos días", etc.)
Copie la última instantánea que haya hecho (por ejemplo, "Copia de seguridad de ayer") en el lugar de la nueva (por ejemplo, "Copia de seguridad de hoy"), creando nuevos enlaces duros a los archivos existentes sin copiar el archivo. Por lo tanto, todos los archivos de la nueva instantánea apuntan a la misma ubicación que la anterior .
Un ejemplo ilustrado
En la imagen a continuación, los archivos del mismo color que tienen el mismo nombre de archivo son enlaces duros al mismo archivo en el disco. Aquí solo tratamos con dos instantáneas y algunos archivos, pero el ejemplo se escala. (Excepto por el hecho de que estoy moviendo instantáneas de manera opuesta a los scripts en la respuesta de cproffit)
El proceso es este:
Hay una instantánea del sistema.
La instantánea es copias (creando enlaces duros a los archivos existentes)
Rsync se ejecuta para actualizar la instantánea. Cuando se cambian los archivos, almacena el nuevo archivo como una nueva copia en el disco duro (por lo que la instantánea anterior no se modifica). En este ejemplo, el archivo B ha sido cambiado. Nota: ahora solo tenemos 1 copia del Archivo A y el Archivo C y dos copias del Archivo B almacenadas en el disco duro
Gire las instantáneas (en este caso, la instantánea 0 'se cae' y se elimina y cambio el nombre de la instantánea 1 a la instantánea 0)
Copie la instantánea de nuevo (repetición del paso 2)
Rsync nuevamente. (Repita el paso 3). Ahora tenemos 1 copia del archivo A y 2 copias del archivo B y el archivo C
Una versión simplificada de la [primera] secuencia de comandos (que no debe ejecutarse, solo como un trampolín) es esta:
Ahora el guión completo tiene la explicación completa aquí (como cprofitt vinculado a) y es más exhaustivo, pero es básicamente como el anterior. El otro script es para agrupar instantáneas y la otra parte de la respuesta de cprofitt habla sobre hacer que el proceso sea automático (usando cron) y verificar que la copia de seguridad se realizó correctamente.
Puede cambiar los nombres, por lo que en lugar de que los directorios se llamen "por hora ..." se denominan de otra manera y el script se ejecuta manualmente.
Para restaurar todo el lote, copie la última instantánea (o una anterior) nuevamente en el directorio del que estaba haciendo las copias de seguridad.
Para restaurar un solo archivo que todavía está en una instantánea, vaya a la instantánea y cópiela nuevamente a donde pertenece.
El medio de respaldo puede ser un disco duro externo (debe ser ext2 / ext3 / ext4). Si usted fue una copia de seguridad
/
(sobre todo/boot
,/home
,/etc
/root
y/usr
), entonces, digamos ...Usted monta la unidad externa, realiza la copia de seguridad y crea la última instantánea.
Desmontar el disco.
Recuerde que eliminó un archivo (incluso de la papelera) que deseaba.
Conecte la unidad externa y recupere el archivo.
Haga una copia de seguridad (solo para estar seguro)
Desconecte la unidad y vaya a viajar ...
Tenga en cuenta que una computadora portátil y la lava no se mezclan.
Con su nueva computadora portátil ejecutando un CD en vivo, formatee la unidad interna, monte su unidad externa y luego
cp -a /media/external/snapshot-0/* /media/internal-drive
(suponiendo que la instantánea 0 es la última instantánea)Instale grub en el MBR (sí, tiene que estar separado), o
dd
úselo para respaldar el mbr, como ha dicho cprofitt al final de su respuesta.Reiniciar.
El script debe ser refinado (para obtener solo lo que desea) y el procedimiento a continuación supone que no tiene una
/home
partición. Si lo hace (o lo hizo), cree uno nuevo en el disco y móntelo en su lugarmount /dev/sdxy /media/external/home
antes de copiarlo.fuente
100 x <average size of snapshot>
espacio en disco. 100 de estos costarán<size of snapshot> + <size of changed files>
. He usado esto para poner varias instantáneas de / home (~ 400GB) en un disco de 500GB.cp -al
está haciendo enlaces duros a los archivos de origen en lugar de copiar los archivos de origen. Sus cifras también deberían reflejar eso, por ejemplo, mostrando que los archivos A en la figura 2 son el mismo archivo.Puedes usar rsync.
y el segundo:
Después de crear el script según sus necesidades, agréguelo a los trabajos cron.
agregue lo siguiente:
Causan que make_snapshot.sh se ejecute cada cuatro horas por hora y daily_snapshot_rotate.sh se ejecute todos los días a las 13:00 (es decir, 1:00 PM).
fuente: http://www.mikerubel.org/computers/rsync_snapshots/
Si desea que se ejecute cada hora, agregará un trabajo cron por cada hora.
Otra opción posible es usar rsnapshot
Instale rsnapshot (disponible en el centro de software)
Configurar rsnapshot y especificar directorio de origen de respaldo
Abra /etc/rsnapshot.conf y descomente las siguientes líneas.
Defina sus directorios de copia de seguridad de destino en /etc/rsnapshot.conf como se muestra a continuación. En este ejemplo,
/ home - directorio de origen que debe ser respaldado localhost / - directorio de destino donde se almacenará la copia de respaldo. Tenga en cuenta que este directorio se creará en el directorio /.snapshots/{internal.n}/ como se muestra en el último paso.
nano /etc/rsnapshot.conf
copia de seguridad / inicio / localhost /
Probar la configuración de rsnapshot
Realice la prueba de configuración para asegurarse de que rsnapshot esté configurado correctamente y listo para realizar la copia de seguridad de rsync de Linux.
Puede realizar copias de seguridad de directorios o archivos de Linux a varios intervalos. De manera predeterminada, se configuran las copias de seguridad por hora y por día.
Verifique la configuración de copia de seguridad por hora.
Verifique que el proceso diario de copia de seguridad rsnapshot cwrsync esté configurado correctamente
Una vez que haya verificado que las configuraciones de copia de seguridad rsync por hora y diaria están configuradas correctamente en la utilidad rsnapshot cwrsync, es hora de configurar este cachorro en el crontab como se muestra a continuación.
fuente: http://www.thegeekstuff.com/2009/08/tutorial-backup-linux-using-rsnapshot-rsync-utility/
---- Recuperación de metal desnudo
Usaría dd y tar para hacer la recuperación de metal desnudo.
Copia de seguridad de metadatos importantes:
Copia de seguridad del sistema operativo:
Yo personalmente tendería a desconectar mi sistema si quisiera hacer un archivo de restauración de metal desnudo.
fuente
dd
no es incremental. Nada de esto es lo que estoy preguntando. Puede ser interesante buscar el último 10%, pero todo el resto del volcado de información realmente no lo es.Hay 2 formas de hacer copias de seguridad incrementales basadas en bloques
Instantáneas basadas en el sistema de archivos
Tanto ZFS como BTRFS proporcionan instantáneas incrementales basadas en bloques ( BTRFS , ZFS (página 25) ). Podría tener una unidad que sincronice con ZFS o BTRFS e instantánea.
También hay instantáneas LVM (mencionadas por cprofitt) que proporcionan las mismas instantáneas incrementales basadas en bloques.
Instantáneas basadas en programas
Hay varios programas de respaldo , sin embargo, algunos sobresalen para este propósito:
Sé que mencionaste específicamente que no estás buscando algo como la duplicidad, sin embargo, pensé que podría mencionar algunas características.
Sin embargo, estos programas requieren que los instales para restaurar. La belleza de algo como rsync es que casi todas las instalaciones de Linux tienen rsync (por ejemplo, falta un núcleo pequeño (una distribución de 10 MB)) de forma predeterminada.
Duplicidad
Simplemente almacena el diff (nivel de bloque) y luego los comprime y los cifra. Esto conduce a un almacenamiento aún menor que el método rsync, sin embargo (al menos en la forma en que lo veo) el sistema de archivos necesitará ser reconstruido, lo que llevará tiempo (si está utilizando copias de seguridad incrementales con él, y depende del tiempo desde última copia de seguridad completa)
La página del manual explica cómo funciona.
Rdiff-backup
Un programa cliente-servidor que crea, como duplicidad, diferencias de nivel de bloque, sin embargo almacena los cambios desde el último punto de restauración, por lo que la última instantánea es la más rápida de restaurar. Retroceder en el tiempo (no la última instantánea) requiere que se analicen más diferencias y, por lo tanto, es más lento.
Algunas personas comparan rdiff-backup con rsnapshot (parece una forma más automática del método rsync). Casi todos los procedimientos se centran en usar rdiff en la red, sin embargo, encontré uno que menciona cómo hacerlo en localhost .
fuente
duplicity
realmente es.Deberías echar un vistazo a ddar ( página de inicio ).
Es incremental en el sentido de no transferir las partes idénticas de la instantánea. No es incremental en el significado clásico de la palabra, ya que se trata de instantáneas.
Nota: No lo he intentado yo mismo (pero confío en el autor). Es posible que no haga lo que le gustaría lograr de forma inmediata, pero aún existen soluciones más similares en la página (por ejemplo, ZFS ), por lo que, como punto de partida, podría resultar útil.
fuente
Creo que puede hacer esto con LVM, que es solo teórico, y desperdiciará una gran cantidad de disco duro. Mi teoría es que puede hacer que su sistema raíz viva en un volumen lógico, luego, si desea hacer una prueba, puede crear una instantánea y reiniciar la máquina usando el nuevo volumen.
Las instantáneas LVM necesitan el volumen original para funcionar. Esto se debe a que el nuevo volumen mantiene la diferencia entre la instantánea y el sistema de archivos real.
Si deja el sistema en este estado, comenzará a desperdiciar espacio en disco a medida que cambie el nuevo sistema de archivos. No sé si hay una manera de consolidar el sistema de archivos instantáneo y definitivo. Seguramente puede acceder a otro volumen lógico, pero para esto necesitará el doble del espacio de su sistema de archivos más la diferencia entre su "punto de recuperación" y el estado actual.
Y todo esto requiere reinicios y está lejos de ser automático.
También se supone que varios sistemas de archivos modernos van de esta manera, como zfs en sistemas solaris o los btrfs experimentales.
fuente
Esto está un poco sobre mi cabeza, pero parece que parte de lo que quieres hacer es hacer copias de seguridad parciales de archivos binarios (como archivos de imagen de partición). Hay un paquete diseñado para hacer eso (acabo de leerlo, no lo he probado).
Echa un vistazo a bup.
https://github.com/apenwarr/bup
Puede darte algunas ideas.
fuente