GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo crear y montar instantáneas de Btrfs

Btrfs es un sistema de archivos de propósito general y código abierto para Linux. El nombre deriva del uso de árboles B para almacenar estructuras internas del sistema de archivos. Se utilizan diferentes nombres para el sistema de archivos, incluidos "Butter F S" y "B-tree F S". El desarrollo de Btrfs comenzó en Oracle en 2007 y ahora varias empresas (incluidas Red Hat, Fujitsu, Intel, SUSE y muchas otras) están contribuyendo al esfuerzo de desarrollo. Btrfs está incluido en el kernel principal de Linux.

Instantáneas Btrfs

Los subvolúmenes de Btrfs se pueden tomar instantáneas y clonar, lo que crea árboles B adicionales. Una instantánea comienza como una copia de un subvolumen tomada en un momento dado. Puede hacer que se pueda escribir en una instantánea y usarla como un clon en evolución del subvolumen original. O puede utilizar la instantánea como una imagen estable de un subvolumen con fines de copia de seguridad o para la migración a otros sistemas. Las instantáneas se pueden crear rápidamente e inicialmente consumen muy poco espacio en disco.

Utilice el comando de instantánea de subvolumen btrfs para crear una instantánea de escritura/lectura de un subvolumen. El siguiente ejemplo crea una instantánea del subvolumen SV1:

# btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1/SV1-snap'

Use la instantánea de subvolumen btrfs -r opción para crear una instantánea de solo lectura:

# btrfs subvolume snapshot -r /btrfs/SV1 /btrfs/SV1-rosnap
Create a readonly snapshot of '/btrfs/SV1' in '/btrfs/SV1-rosnap'

Las instantáneas aparecen como un directorio normal cuando se usa el comando ls. Las instantáneas también aparecen en la salida del comando btrfs subvolume list.

# btrfs subvolume list /btrfs
ID 257 gen 10 top level 5 path SV1
ID 258 gen 9 top level 257 path SV1/SV1-snap
ID 259 gen 10 top level 5 path SV1-rosnap

Tomar una instantánea de un archivo

Puede utilizar el “cp –reflink Comando para tomar una instantánea de un archivo. Con esta opción, el sistema de archivos no crea un nuevo enlace que apunta a un inodo existente, sino que crea un nuevo inodo que comparte los mismos bloques de disco que la copia original. El nuevo archivo parece ser una copia del archivo original pero los bloques de datos no están duplicados. Esto permite que la copia sea casi instantánea y también ahorra espacio en disco. A medida que el contenido del archivo diverge con el tiempo, crece la cantidad de almacenamiento requerido. Una restricción es que esta operación solo puede funcionar dentro de los límites del mismo sistema de archivos y dentro del mismo subvolumen.

El siguiente ejemplo copia un archivo usando el comando cp –reflink. El espacio utilizado se proporciona tanto antes como después de la operación de copia. Tenga en cuenta que el espacio utilizado no aumenta.

# df -hP /btrfs
Filesystem       Size  Used   Avail  Use%   Mounted on
/dev/sda         10G   23M    8.0G    1%    /btrfs
# cp --reflink /btrfs/SV1/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1/copy_of_vmlinuz
# df -h /btrfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda         10G   23M  8.0G   1% /btrfs

Montar un subvolumen o una instantánea

De forma predeterminada, Linux monta el volumen principal Btrfs, que tiene un ID de 0. En este ejemplo, se emitió el siguiente comando de montaje antes de crear subvolúmenes e instantáneas:

# mount /dev/sdb /btrfs

El subvolumen SV1 se creó en /btrfs. El comando ls muestra el subvolumen:

# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:01 SV1

El siguiente ejemplo copia archivos en SV1, crea una instantánea de SV1 y verifica que tanto el subvolumen como la instantánea contienen los mismos archivos:

# cp -p /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1
# btrfs sub snapshot /btrfs/SV1 /btrfs/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1-snap'
# ls /btrfs/SV1*
/btrfs/SV1:
vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
vmlinuz-3.10.0-693.17.1.el7.x86_64

Si desmonta /btrfs y lo vuelve a montar, el volumen principal Btrfs se monta de forma predeterminada:

# ls /btrfs/
SV1  SV1-snap
# umount /btrfs
# mount /dev/sda /btrfs/
# ls /btrfs/
SV1  SV1-snap

Sin embargo, puede montar un subvolumen btrfs o una instantánea como si fuera un dispositivo de disco. Si monta una instantánea en lugar de su subvolumen principal, revierte efectivamente el estado del sistema de archivos al momento en que se tomó la instantánea. El siguiente ejemplo copia un archivo a SV1 para que el contenido sea diferente de SV1-snap:

# cp testfile /btrfs/SV1
# ls -l /btrfs/SV1*
/btrfs/SV1:
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
total 5756
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Para montar un subvolumen o una instantánea, primero debe determinar el número de ID del subvolumen que desea montar. Utilice el comando btrfs subvolume list para mostrar los números de identificación. En el siguiente ejemplo, el ID del subvolumen raíz es 257:

# btrfs sub list /btrfs
ID 257 gen 12 top level 5 path SV1
ID 258 gen 9 top level 5 path SV1-snap

Use el btrfs "subvolume set-default ” para establecer el subvolumen predeterminado de un sistema de archivos. Por ejemplo, para montar el subvolumen SV1 Btrfs, que tiene un ID de 257:

# btrfs subvolume set-default 257 /btrfs

A continuación, debe desmontar y volver a montar el sistema de archivos Btrfs. El nivel raíz entonces contiene el contenido del subvolumen SV1 y el subvolumen raíz ya no es visible:

# ls -l /btrfs
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

También puede usar el “-o subvolid ” al comando de montaje para montar el subvolumen raíz, un subvolumen o una instantánea. Por ejemplo, para montar el subvolumen raíz:

# umount /btrfs
# mount -o subvolid=5 /dev/sda /btrfs
# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:44 SV1
drwxr-xr-x. 1 root root 68 Mar 29 11:17 SV1-snap
Cómo crear y montar un sistema de archivos Btrfs (explicado con ejemplos)
Cómo cambiar el tamaño/expandir un volumen/sistema de archivos Btrfs


Cent OS
  1. Cómo crear y habilitar la partición de intercambio en Centos/RHEL 8

  2. Cómo montar y desmontar unidades en Linux

  3. ¿Cómo crear un archivo y montarlo como un sistema de archivos?

  4. Cómo crear una instantánea de volúmenes delgados LVM usando el comando snapper

  5. Cómo crear/eliminar y montar un sistema de archivos Stratis en CentOS/RHEL 8

Cómo crear usuarios de MariaDB y otorgar privilegios

Cómo crear y ejecutar un script de Shell en CentOS 8

Cómo crear y restaurar instantáneas de máquinas virtuales en VirtualBox

Cómo crear, restaurar y eliminar instantáneas de imágenes de máquinas virtuales en RedHat Virtualization

Cómo crear y montar sistemas de archivos en Linux

Cómo crear y consultar un sistema de archivos BTRFS