Btrfs

Cómo utilizar las instantáneas de Btrfs

Cómo utilizar las instantáneas de Btrfs
El sistema de archivos Btrfs tiene soporte integrado para instantáneas a nivel de sistema de archivos. Puede crear un subvolumen en su sistema de archivos Btrfs y tomar instantáneas de los archivos / directorios en ese subvolumen. Tomar una instantánea de un subvolumen guardará el estado de los archivos / directorios en ese subvolumen. Puede recuperar cualquier archivo / directorio del subvolumen de la instantánea en caso de que lo necesite.

La función de instantánea del sistema de archivos Btrfs utiliza el principio de copia en escritura (CoW). Por lo tanto, no ocupa mucho espacio en el disco y puede tomar instantáneas de un subvolumen al instante.

El sistema de archivos Btrfs admite 2 tipos de instantáneas.

  1. Instantáneas grabables: Si toma una instantánea grabable, puede modificar los archivos / directorios de esa instantánea más tarde. Este es el tipo de instantánea predeterminado del sistema de archivos Btrfs.
  2. Instantáneas de solo lectura: Si toma una instantánea de solo lectura, no podrá modificar los archivos / directorios de esa instantánea más adelante.

Este artículo le mostrará cómo tomar instantáneas grabables y de solo lectura de sus subvolúmenes del sistema de archivos Btrfs. También le mostraré cómo actualizar una instantánea grabable y recuperar archivos de una instantánea. También te mostraré cómo eliminar una instantánea. Entonces empecemos.

Prerrequisitos

Para probar los ejemplos de este artículo,

Tengo un disco duro de 20 GB sdb en mi máquina Ubuntu. He creado 2 particiones sdb1 y sdb2 en este disco duro. Usaré la partición sdb1 en este articulo.

$ sudo lsblk -e7

Su disco duro o SSD puede tener un nombre diferente al mío, al igual que las particiones. Por lo tanto, asegúrese de reemplazarlos por los suyos a partir de ahora.

Si necesita ayuda para instalar el sistema de archivos Btrfs en Ubuntu, consulte mi artículo Instalar y usar Btrfs en Ubuntu 20.04 LTS.

Si necesita ayuda para instalar el sistema de archivos Btrfs en Fedora, consulte mi artículo Instalar y usar Btrfs en Fedora 33.

Creación de un sistema de archivos Btrfs

Para experimentar con subvolúmenes Btrfs, necesita crear un sistema de archivos Btrfs.

Para crear un sistema de archivos Btrfs con la etiqueta datos sobre el sdb1 partición, ejecute el siguiente comando:

$ sudo mkfs.btrfs -L datos / dev / sdb1

Se debe crear un sistema de archivos Btrfs.

Crea un directorio /datos con el siguiente comando:

$ sudo mkdir -v / data

Para montar el sistema de archivos Btrfs creado en el sdb1 partición en el /datos directorio, ejecute el siguiente comando:

$ sudo mount / dev / sdb1 / data

El sistema de archivos Btrfs debe estar montado como puede ver en la captura de pantalla a continuación.

$ df -h / datos

Preparación del sistema de archivos Btrfs para instantáneas

En Btrfs, solo puede tomar instantáneas de subvolúmenes Btrfs. La raíz principal de un sistema de archivos Btrfs también es un subvolumen. Por lo tanto, puede realizar la copia de seguridad de todo el sistema de archivos Btrfs, así como de subvolúmenes específicos.

Esta sección creará un subvolumen Btrfs / datos / proyectos / web1 y cree los archivos necesarios para las siguientes secciones de este artículo a continuación. También crearé un directorio donde puedes guardar tus instantáneas. En las siguientes secciones, le mostraré cómo tomar instantáneas (grabables y de solo lectura), actualizar una instantánea grabable y recuperar archivos de la instantánea. Entonces empecemos.

Primero, crea un nuevo directorio / datos / proyectos como sigue:

$ sudo mkdir -v / data / projects

Crea un nuevo subvolumen web1 en el / datos / proyectos directorio de la siguiente manera:

$ sudo btrfs subvolumen crear / datos / proyectos / web1

Crea un archivo nuevo índice.html en el / datos / proyectos / web1 subvolumen de la siguiente manera:

$ sudo nano / data / projects / web1 / index.html

Escriba las siguientes líneas de códigos en el índice.html expediente.




Sitio web de demostración



Hola mundo 4



Una vez que haya terminado, presione + X seguido por Y y para salvar el índice.html expediente.

Crea un archivo nuevo estilo.css en el / datos / proyectos / web1 subvolumen de la siguiente manera:

$ sudo nano / data / projects / web1 / style.css

Escriba las siguientes líneas de códigos en el estilo.css expediente.

h1
color verde;

Una vez que haya terminado, presione + X seguido por Y y para salvar el estilo.css expediente.

Ahora el / datos / proyectos / web1 subvolumen tiene el índice.html y estilo.css expediente.

$ ls -lh / datos / proyectos / web1

Quiero mantener todas las instantáneas de este sistema de archivos Btrfs en el /datos/.instantáneas directorio.

Crea el /datos/.instantáneas directorio con el siguiente comando:

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

Tomar instantáneas de un subvolumen

Para tomar una instantánea del / datos / proyectos / web1 subvolumen en el /datos/.instantáneas / web1-2020-12-25 directorio (se creará automáticamente), ejecute el siguiente comando:

$ sudo btrfs subvolumen instantánea / datos / proyectos / web1 / datos /.instantáneas / web1-2020-12-25

Una instantánea del / datos / proyectos / web1 El directorio debe crearse en el /datos/.instantáneas / web1-2020-12-25 directorio.

Como puede ver en la captura de pantalla a continuación, un nuevo subvolumen .instantáneas / web1-2020-12-25 es creado. Una instantánea es en realidad un subvolumen.

$ sudo btrfs lista de subvolúmenes / datos

Puede ver más información sobre la instantánea que ha creado en el /datos/.instantáneas / web1-2020-12-25 directorio de la siguiente manera:

$ sudo btrfs subvolumen show / data /.instantáneas / web1-2020-12-25

Como puede ver, todos los archivos que están en el / datos / proyectos / web1 subvolumen están en el /datos/.instantáneas / web1-2020-12-25 instantánea.

$ árbol -a / data

Recuperación de archivos de instantáneas

En esta sección, le mostraré cómo recuperar archivos de las instantáneas Btrfs.

Primero, le mostraré cómo recuperar un solo archivo de la instantánea.

Abre el / datos / proyectos / web1 / index.html archivo con el editor de texto nano de la siguiente manera:

$ sudo nano / data / projects / web1 / index.html

Realice los cambios que desee.

Una vez que haya terminado, presione + X seguido por Y y para guardar el archivo.

Como puede ver, el principal índice.html el archivo es diferente del índice.html archivo en la instantánea.

$ cat / data / projects / web1 / index.html
$ cat / data /.instantáneas / web1-2020-12-25 / index.html

Hemos realizado los cambios en la principal índice.html archivo no son deseados y queremos recuperar el índice.html archivo de la instantánea.

Puede restaurar el índice.html archivo de la instantánea de la siguiente manera:

$ sudo cp -v / data /.instantáneas / web1-2020-12-25 / index.html / data / projects / web1 / index.html

Como puede ver, el índice.html el archivo se restaura desde la instantánea.

$ cat / data / projects / web1 / index.html
$ cat / data /.instantáneas / web1-2020-12-25 / index.html

Ahora, veamos cómo recuperar todos los archivos / directorios de la instantánea.

Elimine todos los archivos de la / datos / proyectos / web1 instantánea de la siguiente manera:

$ sudo rm -rv / data / projects / web1 / *

Para recuperar todos los archivos / directorios de la instantánea, ejecute el siguiente comando:

$ sudo rsync -avz / data /.instantáneas / web1-2020-12-25 / / data / projects / web1 /

Como puede ver, los archivos / directorios se restauran desde la instantánea.

$ ls -lh / datos / proyectos / web1

Finalmente, veamos cómo recuperar archivos / directorios de la instantánea en modo espejo. En el modo espejo, los archivos / directorios del subvolumen serán los mismos que en la instantánea. Si hay archivos / directorios en el subvolumen que no están disponibles en la instantánea, se eliminarán.

Creemos un nuevo archivo en el subvolumen para diferenciar el árbol de archivos de la instantánea.

Crear un README.TXT archivo en el / datos / proyectos / web1 subvolumen de la siguiente manera:

$ echo "hola mundo 5" | sudo tee / data / projects / web1 / README.TXT

Como puede ver, el árbol de archivos del / datos / proyectos / web1 subvolumen es diferente del /datos/.instantáneas / web1-2020-12-25 instantánea.

$ árbol -a / data

Para restaurar los archivos / directorios del /datos/.instantáneas / web1-2020-12-25 instantánea a la / datos / proyectos / web1 subvolumen en modo espejo, ejecute el siguiente comando:

$ sudo rsync -avz --delete / data /.instantáneas / web1-2020-12-25 / / data / projects / web1 /

Todos los archivos / directorios del / datos / proyectos / web1 El subvolumen debe restaurarse (en modo espejo) desde /datos/.instantáneas / web1-2020-12-25 instantánea.

El árbol de archivos del / datos / proyectos / web1 subvolumen y el /datos/.instantáneas / web1-2020-12-25 la instantánea debe ser la misma.

Como puede ver, el índice.archivo y estilo html.El contenido del archivo css es el mismo en el / datos / proyectos / web1 subvolumen y el /datos/.instantáneas / web1-2020-12-25 instantánea.

Contenido del índice.html y estilo.css archivo en el / datos / proyectos / web1 subvolumen.

$ cat / data / projects / web1 / index.html
$ cat / data / projects / web1 / style.css

Contenido del índice.html y estilo.css archivo en el /datos/.instantáneas / web1-2020-12-25 instantánea.

$ cat / data / projects / web1 / index.html
$ cat / data / projects / web1 / style.css

Actualizar una instantánea

De forma predeterminada, el sistema de archivos Btrfs toma instantáneas grabables. Una instantánea de Btrfs es como un subvolumen. Entonces, puede modificar / actualizar los archivos / directorios de una instantánea grabable.

Actualicemos el índice.html archivo en el / datos / proyectos / web1 subvolumen.

Primero, abra el índice.html archivo de la / datos / proyectos / web1 subvolumen con el nano editor de texto de la siguiente manera:

$ sudo nano / data / projects / web1 / index.html

Realice los cambios que desee. Una vez que haya terminado, presione + X seguido por Y y para salvar el índice.html expediente.

Como puede ver, el índice.archivo html del / datos / proyectos / web1 subvolumen es diferente del /datos/.instantáneas / web1-2020-12-25 instantánea.

$ cat / data / projects / web1 / index.html
$ cat / data /.instantáneas / web1-2020-12-25 / index.html

Quieres mantener el índice.html archivo de la / datos / proyectos / web1 subvolumen.

Para actualizar el índice.html archivo en el /datos/.instantáneas / web1-2020-12-25 instantánea, ejecute el siguiente comando:

$ sudo cp -v / data / projects / web1 / index.html / data /.instantáneas / web1-2020-12-25 / index.html

Como puede ver, el índice.html archivo de la /datos/.instantáneas / web1-2020-12-25 la instantánea está actualizada.

Actualizar una instantánea es tan fácil como copiar archivos nuevos a la instantánea.

Tomar instantáneas de solo lectura de un subvolumen

A veces, no desea que las instantáneas que ha tomado se actualicen de ninguna manera. En ese caso, puede crear instantáneas de solo lectura.

Por ejemplo, para crear una instantánea de solo lectura /datos/.instantáneas / web1-2020-12-26 de El / datos / proyectos / web1 subvolumen, ejecute el siguiente comando:

$ sudo btrfs subvolumen instantánea -r / data / projects / web1 / data /.instantáneas / web1-2020-12-26

Como puede ver, un nuevo subvolumen .instantáneas / web1-2020-12-26 es creado.

$ sudo btrfs lista de subvolúmenes / datos

Como puede ver, la instantánea /datos/.instantáneas / web1-2020-12-26 es de solo lectura.

$ sudo btrfs subvolumen show / data /.instantáneas / web1-2020-12-26

Actualicemos el índice.html archivo de la / datos / proyectos / web1 subvolumen.

Para hacer eso, abra el índice.html archivo de la / datos / proyectos / web1 subvolumen con el nano editor de texto de la siguiente manera:

$ sudo nano / data / projects / web1 / index.html

Realice los cambios que desee. Una vez que haya terminado, presione + X seguido por Y y para guardar los cambios.

Como puede ver, el índice.html en el / datos / proyectos / web1 subvolumen es diferente del /datos/.instantáneas / web1-2020-12-26 instantánea.

$ cat / data / projects / web1 / index.html
$ cat / data /.instantáneas / web1-2020-12-26 / index.html

Intentemos actualizar el índice.html archivo en el /datos/.instantáneas / web1-2020-12-26 instantánea.

$ sudo cp -v / data / projects / web1 / index.html / data /.instantáneas / web1-2020-12-26 / index.html

Como puede ver, no puede actualizar el índice.html archivo de la /datos/.instantáneas / web1-2020-12-26 instantánea porque la instantánea es de solo lectura.

Eliminar una instantánea

Te dije antes que una instantánea Btrfs es como un subvolumen. Por lo tanto, puede eliminar una instantánea Btrfs del mismo modo que elimina un subvolumen Btrfs. Mismo comando.

Así es como se monta el árbol de archivos del sistema de archivos Btrfs en el /datos el directorio parece en este momento.

$ árbol -a / data

Quitemos el .instantáneas / web1-2020-12-25 instantánea.

$ sudo btrfs lista de subvolúmenes / datos

Para quitar el /datos/.instantáneas / web1-2020-12-25 instantánea, ejecute el siguiente comando:

$ sudo btrfs subvolumen eliminar / datos /.instantáneas / web1-2020-12-25

Como puede ver, la instantánea .instantáneas / web1-2020-12-25 no es mas.

$ sudo btrfs lista de subvolúmenes / datos

Como puede ver, los archivos / directorios del /datos/.instantáneas / web1-2020-12-25 la instantánea también se elimina.

$ árbol -a / data

Conclusión

Este artículo le ha mostrado cómo tomar instantáneas grabables y de solo lectura de sus subvolúmenes del sistema de archivos Btrfs. También le he mostrado cómo actualizar una instantánea grabable y recuperar archivos de una instantánea. También le he mostrado cómo eliminar una instantánea Btrfs. Este artículo debería ayudarlo a comenzar con la función de instantánea Btrfs.

Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...
OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...