Cómo hacer una copia de seguridad de las instantáneas de BTRFS a unidades externas

Cómo hacer una copia de seguridad de las instantáneas de BTRFS a unidades externas

De manera predeterminada, puede almacenar las instantáneas que toma de sus subvolúmenes BTRFS en el mismo sistema de archivos BTRFS, pero no es posible almacenar las instantáneas de un sistema de archivos BTRFS directamente a otro sistema de archivos BTRFS. Sin embargo, el sistema de archivos BTRFS le proporciona las herramientas necesarias para hacer una copia de seguridad de las instantáneas de un sistema de archivos BTRFS a otro sistema de archivos BTRFS. Este artículo le muestra cómo hacer una copia de seguridad de las instantáneas de BTRFS a un sistema de archivos BTRFS externo en una unidad externa.

Requisitos previos

Para probar los ejemplos incluidos en este artículo, debe cumplir con los siguientes requisitos previos:

  • Tener el sistema de archivos BTRFS instalado en su computadora.
  • Tener un disco duro o SSD con al menos 2 particiones gratuitas (de cualquier tamaño).

Tengo el disco duro de 20 GB, SDB, en mi máquina ubuntu. He creado dos particiones, sdb1 y sdb2, En este disco duro.

$ sudo lsblk -e7

Nota: Su disco duro o SSD tendrá un nombre diferente al mío, y también lo harán las particiones. Entonces, asegúrese de reemplazar estos nombres con los suyos de ahora en adelante.


Crearé los sistemas de archivos BTRFS en el sdb1 y el sdb2 particiones. Las instantáneas creadas en el sistema de archivos BTRFS (sdb1) se realizarán con el sistema de archivos BTRFS creado en el sdb2 dividir. El sistema de archivos BTRFS creado en el sdb2 La partición actuará como la unidad externa. También puede usar una unidad de pulgar USB o un disco duro externo; Solo asegúrese de formatearlo con el sistema de archivos BTRFS.

Para obtener ayuda para instalar el sistema de archivos BTRFS en Ubuntu, consulte la instalación de mi artículo y use BTRFS en Ubuntu 20.04 LTS.

Para obtener ayuda para instalar el sistema de archivos BTRFS en Fedora, consulte la instalación de mi artículo y use BTRFS en Fedora 33.

Creación de sistemas de archivos BTRFS requeridos

Formatearé ambos sdb1 y sdb2 particiones como btrfs. Usaré el sdb1 Partición para almacenar las instantáneas de datos y BTRFS. Usaré el sdb2 Partición para hacer una copia de seguridad de las instantáneas del sistema de archivos BTRFS creado en el sdb1 dividir.

Para crear un sistema de archivos BTRFS en el sdb1 Partition y brindarle los datos de la etiqueta del sistema de archivos, ejecute el siguiente comando:

$ sudo mkfs.BTRFS -L DATA /DEV /SDB1

Ahora se debe crear un sistema de archivos BTRFS en el sdb1 dividir.

Para crear un sistema de archivos BTRFS en el sdb2 Partición y brindarle las instantáneas de etiqueta del sistema de archivos, ejecute el siguiente comando:

$ sudo mkfs.BTRFS -L Snapshots /dev /sdb2

Ahora se debe crear un sistema de archivos BTRFS en el sdb2 dividir.

Crea los directorios /datos y /instantáneas por montar el sdb1 y sdb2 Particiones, respectivamente, como sigue:

$ sudo mkdir -v /datos, instantáneas

Monte el sistema de archivos BTRFS que ha creado en el sdb1 Partición en el directorio /Data, como sigue:

$ sudo monte /dev /sdb1 /data

De la misma manera, monte el sistema de archivos BTRFS que ha creado en el sdb2 partición en el /instantáneas Directorio, como sigue:

$ sudo monte /dev /sdb2 /instantáneas

Como puede ver en la captura de pantalla a continuación, tanto los sistemas de archivos BTRFS (sdb1 y sdb2 particiones) se han montado correctamente.

$ df -h -t btrfs

Tomar instantáneas de un sistema de archivos BTRFS

En esta sección, crearemos el proyecto ficticio Web1 sobre el /Data/Projects/Web1 Subvolumen BTRFS. Tomaremos una instantánea de ese subvolumen en esta sección, así como algunas otras instantáneas en secciones posteriores de este artículo.

Primero, cree el nuevo directorio /datos/proyectos, como sigue:

$ sudo mkdir -v /data /proyectos

A continuación, crea el nuevo Subvolumen Web1 en el /Directorio de datos/proyectos, como sigue:

$ sudo BTRFS Subvolume Create/Data/Projects/Web1

Finalmente, cree el nuevo índice de archivos.html en el /Data/Projects/Web1 Subvolumen con el editor de texto Nano, como sigue:

$ sudo nano/data/proyectos/web1/índice.html

Escriba las siguientes líneas de código en el índice.Archivo HTML:




Sitio web de demostración



Hola Mundo




Una vez que haya terminado, presione <Control> + X seguido por Y y <Ingresar> Para guardar el índice.archivo html.

De la misma manera, cree el nuevo archivo estilo.CSS en el /Data/Projects/Web1 Subvolumen como sigue:

$ sudo nano/data/proyectos/web1/estilo.CSS


Escriba las siguientes líneas de código en el estilo.CSS archivo:

H1
color verde;

Una vez que haya terminado, presione <Control> + X seguido por Y y <Ingresar> Para guardar el estilo.CSS archivo.

Ahora el /Data/Projects/Web1 Subvolumen contiene el índice.html y estilo.archivo CSS.

$ LS -LH/Data/Projects/Web1

Mantendremos todas las instantáneas de este sistema de archivos BTRFS en el /datos/.instantáneas directorio.

Primero, cree el /datos/.instantáneas directorio con el siguiente comando:

$ sudo mkdir -v /data /.instantáneas

A continuación, cree la instantánea de solo lectura /datos/.Instantáneas/Web1-2020-12-30 del /Data/Projects/Web1 Subvolumen Con el siguiente comando:

$ sudo BTRFS Subvolume Snapshot -R/Data/Projects/Web1/Data/.Instantáneas/Web1-2020-12-30

Como puede ver, la nueva instantánea /datos/.Instantáneas/Web1-2020-12-30 Ha sido creado.

$ SUDO BTRFS Lista /datos de subvolumen

Hacer una copia de seguridad de las instantáneas a la unidad externa

Para hacer una copia de seguridad de la instantánea /datos/.Instantáneas/Web1-2020-12-30 a otro sistema de archivos BTRFS (unidad externa SDB2, en este caso) montada en el /instantáneas directorio, ejecute el siguiente comando:

$ sudo btrfs envía /datos /.Instantáneas/Web1-2020-12-30 | sudo btrfs recibe /instantáneas

La instantánea /datos/.Instantáneas/Web1-2020-12-30 debe copiarse en el sistema de archivos BTRFS externo (sdb2) montado en el /instantáneas directorio.

Como puedes ver, el NUEVO SUBVOLUME WEB1-2020-12-30 se ha creado en el sistema de archivos BTRFS externo.

$ sudo BTRFS Lista /instantáneas

El Instantánea Web1-2020-12-30 Debería tener los mismos archivos/Directorios como el /datos/.Instantáneas/Web1-2020-12-30 instantánea.

$ árbol -a /instantáneas

Puede obtener más información sobre la instantánea con respaldo /Snapshosts/Web1-2020-12-30 como sigue:

$ sudo BTRFS Subvolume Show /Snapshots /Web1-2020-12-30

El respaldo incremental de las instantáneas a la unidad externa

Si hay muchos archivos en las instantáneas para hacer una copia de seguridad de una unidad externa, entonces las copias de seguridad incrementales lo ayudarán a acelerar la operación de respaldo. En este caso, BTRFS solo actualizará los archivos que han cambiado desde la última instantánea y copiarán nuevos archivos que no estaban disponibles en la última instantánea.

En esta sección, le mostraré cómo realizar copias de seguridad incrementales de instantáneas BTRFS a sistemas de archivos BTRFS externos.

Primero, abra el índice.archivo html desde el /Data/Projects/Web1 Subvolumen, como sigue:

$ sudo nano/data/proyectos/web1/índice.html

Hacer cualquier cambio que desee para el índice.archivo html. Una vez que haya terminado, presione <Control> + X seguido por Y y <Ingresar> Para guardar el índice.html archivo.

Tome una nueva instantánea de solo lectura del /Data/Projects/Web1 Subvolumen, como sigue:

$ sudo BTRFS Subvolume Snapshot -R/Data/Projects/Web1/Data/.Instantáneas/Web1-2020-12-31

Como puede ver, la nueva instantánea /datos/.Instantáneas/Web1-2020-12-31 del /Data/Projects/Web1 Subvolumen Ha sido creado.

$ SUDO BTRFS Lista /datos de subvolumen

Ahora, estamos listos para tomar una copia de seguridad incremental.

Para tomar una copia de seguridad incremental, necesitará una instantánea común de los sistemas de archivos BTRFS de origen y destino (unidad externa). La instantánea común suele ser la última instantánea de un subvolumen BTRFS. Cuando toma una nueva instantánea en el sistema de archivos BTRFS de origen, la nueva instantánea se compara con la última instantánea (disponible tanto en el sistema de archivos BTRFS de origen) del sistema de archivos BTRFS de origen). BTRFS calculará la diferencia y enviará solo los datos requeridos al sistema de archivos BTRFS de destino (la unidad externa).

Por ejemplo, tomar una copia de seguridad incremental del /datos/.Instantáneas/Web1-2020-12-31 Instantánea, Debe especificar la instantánea principal (la última instantánea disponible tanto en los sistemas de archivos BTRFS de origen como de destino), /datos/.Instantáneas/Web1-2020-12-30, también.

Una copia de seguridad incremental del /datos/.Instantáneas/Web1-2020-12-31 La instantánea se puede llevar a un sistema de archivos BTRFS externo, de la siguiente manera:

$ sudo btrfs enviar -p /data /.instantáneas/Web1-2020-12-30/datos/.Instantáneas/Web1-2020-12-31 | sudo btrfs recibe /instantáneas

Una copia de seguridad incremental del /datos/.Instantáneas/Web1-2020-12-31 Se debe tomar una instantánea.

Como puedes ver, el Web1-2020-12-31 instantánea ha sido respaldado al sistema de archivos BTRFS externo montado en el /instantáneas directorio.

$ sudo BTRFS Lista /instantáneas

Como puede ver en la captura de pantalla a continuación, los cambios que ha realizado en el índice.archivo html están disponibles en el Web1-2020-12-31 instantánea que se ha respaldado al sistema de archivos BTRFS externo.

$ Cat/Snapshots/Web1-2020-12-31/índice.html

De la misma manera, puede tomar tantas copias de seguridad incrementales de sus instantáneas como desee.

Te mostraré cómo hacer una copia de seguridad incremental una vez más. No me tomaré el tiempo para explicarlo de nuevo. En cambio, solo te mostraré el proceso de claridad.

Abre el índice.archivo html desde el /Data/Projects/Web1 Subvolumen, como sigue:

$ sudo nano/data/proyectos/web1/índice.html

Hacer cualquier cambio que desee para el índice.archivo html. Una vez que haya terminado, presione <Control> + X seguido por Y y <Ingresar> Para guardar el índice.archivo html.

Tome una nueva instantánea de solo lectura del /Data/Projects/Web1 Subvolumen, como sigue:

$ sudo BTRFS Subvolume Snapshot -R/Data/Projects/Web1/Data/.Instantáneas/Web1-2020-12-31_2

Tomar una copia de seguridad incremental del /datos/.Snapshots/Web1-2020-12-31_2 Instantánea a un sistema de archivos BTRFS externo, como sigue:

$ sudo btrfs enviar -p /data /.Instantáneas/Web1-2020-12-31/Data/.instantáneas/Web1-2020-12-31_2 | sudo btrfs recibe /instantáneas

Nota: Ahora, la instantánea de los padres a la que la /datos/.Snapshots/Web1-2020-12-31_2 Instantánea se comparará es /datos/.Instantáneas/Web1-2020-12-31.

Como puedes ver, el Web1-2020-12-31_2 La instantánea se ha realizado respaldo al sistema de archivos BTRFS externo montado en el /instantáneas directorio.

$ sudo BTRFS Lista /instantáneas

Como puede ver en la captura de pantalla a continuación, los cambios recientes realizados en el índice.archivo html están disponibles en el Web1-2020-12-31_2 Instantánea respaldado al sistema de archivos BTRFS externo.

$ Cat/Snapshots/Web1-2020-12-31_2/índice.html

Manteniendo las cosas limpias

Si hace una copia de seguridad de sus instantáneas BTRFS con frecuencia, terminará con muchas instantáneas, y puede ser difícil manejarlas. Afortunadamente, puede eliminar cualquier instantánea del sistema de archivos BTRFS.

Si está utilizando una unidad externa lo suficientemente grande para mantener copias de seguridad de las instantáneas BTRFS, puede mantener algunas instantáneas en su sistema de archivos BTRFS y hacer una copia de seguridad de todas las instantáneas en su unidad externa.

Si está utilizando una unidad externa más pequeña, puede mantener selectivamente solo las instantáneas más importantes respaldadas en la unidad externa.

Para realizar copias de seguridad de sus instantáneas BTRFS, debe mantener al menos la última instantánea tanto en la fuente (/datos/.instantáneas) y el destino (/instantáneas - unidad externa) BTRFS Files Systems. Por lo tanto, no dude en eliminar las instantáneas que no sean la última instantánea en ambos extremos.

Por ejemplo, en este caso, la última instantánea es Web1-2020-12-31_2. Entonces, para realizar copias de seguridad incrementales, esta instantánea debe mantenerse en la fuente y el destino (unidad externa) BTRFS Files Systems.

Supongamos que desea eliminar el /datos/.Instantáneas/Web1-2020-12-30 Instantánea.

Para hacer esto, ejecute el siguiente comando:

$ sudo btrfs subvolume eliminar /data /.Instantáneas/Web1-2020-12-30

La instantánea BTRFS /datos/.Instantáneas/Web1-2020-12-30 ahora debe eliminarse.

De la misma manera, puede eliminar el /datos/.Instantáneas/Web1-2020-12-31 Instantánea, como sigue:

$ sudo btrfs subvolume eliminar /data /.Instantáneas/Web1-2020-12-31

Ahora, solo la última instantánea, /datos/.Instantáneas/Web1-2020-12-31_2, está disponible en el sistema de archivos BTRFS, montado en el /datos directorio. Las otras instantáneas están respaldadas en la unidad externa, montadas en el /instantáneas directorio.

$ SUDO BTRFS Lista /datos de subvolumen
$ sudo BTRFS Lista /instantáneas

Restauración de instantáneas desde la unidad externa

Si ha hecho una copia de seguridad de sus instantáneas en la unidad externa, puede restaurarlas en cualquier momento desde la unidad externa.

Por ejemplo, he eliminado el Web1-2020-12-30 Instantánea de mi sistema de archivos BTRFS, montado en el /datos directorio. Pero, esta instantánea está respaldada en la unidad externa, montada en el /instantáneas directorio. Restauramos esta instantánea.

$ sudo BTRFS Lista /instantáneas

Para restaurar el Web1-2020-12-30 Instantánea Desde la unidad externa, ejecute el siguiente comando:

$ sudo btrfs enviar /instantáneas /web1-2020-12-30 | sudo btrfs recibe /data /.instantáneas

El Instantánea Web1-2020-12-30 debe restaurarse en el sistema de archivos BTRFS montado en el /datos directorio.

Como puedes ver, el Web1-2020-12-30 Instantánea se restaura en el sistema de archivos BTRFS montado en el /datos directorio.

$ SUDO BTRFS Lista /datos de subvolumen

Y, como puede ver, el contenido del índice.html archivo del Web1-2020-12-30 Instantánea. Esta es la primera versión del índice.html Archivo desde antes.

$ Cat /Data /.instantáneas/Web1-2020-12-30/índice.html

Conclusión

En este artículo, aprendió cómo hacer una copia de seguridad de las instantáneas de su sistema de archivos BTRFS a una unidad externa. También aprendió a tomar copias de seguridad incrementales de sus instantáneas BTRFS a una unidad externa. Finalmente, aprendió cómo eliminar las instantáneas existentes de un sistema de archivos BRTFS y restaurar las instantáneas de la unidad externa, también.