btrfs-logo

Btrfs es un sistema de archivos copy on write para GNU/Linux. Este tiene muchísimas opciones y permite una gran flexibilidad, una de las cosas que más me gustan son las snapshots. Estas permiten crear una copia de un subvolumen instantáneamente, estas copias en principio no ocupan espacio, ya que los ficheros no se duplican, en su lugar apuntan a los originales hasta que se realiza un cambio, en ese momento la snapshot creada empezara a ocupar espacio, podríamos decir que equivale a una copia incremental.

Por lo tanto tenemos una forma muy barata (en tiempo y espacio) para crear copias de todo el sistema. La restauración de las copias también es inmediata, ya que unicamente se deben de mover un par de subvolumenes que también es instantáneo. En el articulo voy a explicar como se realiza una copia de forma manual y en una segunda parte veremos como automatizar el proceso que es la parte interesante.

Antes de empezar hay que tener en cuenta que se requiere que los datos NO estén en la raíz del volumen, ya que si están en la raíz luego no se puede restaurar con facilida. Un esquema de ejemplo:

btrfs-1

Voy a suponer que ya tenemos todo configurado como se hace normalmente al instalar Btrfs, que básicamente es instalar el sistema o meter todos los datos en subvolumenes, por ejemplo en Ubuntu, Manjaro o Suse al seleccionar Btrfs ya realiza todo automáticamente para tener un esquema similar al superior. Evidentemente otras distros como Void, Gentoo o Arch se les puede instalar empleando este esquema montando el subvolumen como raiz a la hora de instalar. Por norma general la raíz del sistema se instala en “@” y el home en “@home”.

Lo primero es tener un punto de montaje en la raíz directamente:

# mkdir /btrfs

Montamos el volumen correspondiente

# lsblk
# mount /dev/sda /btrfs

Creamos la carpeta donde irán las copias:

# mkdir /btrfs/TimeMachine

Ahora ya podemos hacer unas pruebas, por ejemplo crear una copia manualmente:

# btrfs subvolume snapshot -r /btrfs/@ /btrfs/TimeMachine/Copia-2017

En este momento podemos explorar todos los ficheros que se han copiado y ver como se ha creado exitosamente, pero hay que tener en cuenta que no se crean copias recursivamente de otros subvolumenes, es decir, no se copian los subvolumenes que estan dentro del que se quiere copiar. Esto se puede aprovechar para no copiar determinados directorios o separar las copias. Tened en cuenta que un subvolumens es como una carpeta más del sistema.

Finalmente nos queda saber como restaurar una copia de seguridad. Lo más fácil es mover el subvolumen renombrándolo y haciendo una snapshot de la que queramos usar:

# mv /btrfs/@ /btrfs/@Original
# btrfs subvolume snapshot /btrfs/TimeMachine/Copia-2017 /btrfs/@

Y cuando vayamos a arrancar nuestro sistema estará exactamente igual que el momento el que se hizo la copia.

Como alternativa se puede no mover el subvolumen original y al restaurar la copia lo llamamos “@2” por ejemplo, luego se puede agregar una entrada manualmente en el GRUB tocando el fichero “/boot/grub/grub.cfg” o estando en GRUB podemos modificar la opción “rootflags=subvol=@” con el nombre deseado pulsando la tecla “e”. Pero en este caso también se debería de modificar el fichero “/etc/fstab” para reflejar esos cambios.

Si conocéis distribuciones que automáticamente instalen el sistema bajo un subvolumen comentadlo y aprendemos todos.

 

Fuente: lignux

¿Quién está en línea?

Hay 4250 invitados y ningún miembro en línea