Btrfs

Elige para esta práctica uno de los dos sistemas de ficheros del título, instala una máquina con tres unidades adicionales y describe de forma detallada y mediante ejemplos las funcionalidades relevantes: RAID, volúmenes, montaje, cifrado, etc. Cuantas más funcionalidades describas mayor será el peso de la tarea.

Partimos de una máquina llamada nebula, con Debian Stretch con los siguientes volúmenes;

debian@nebula:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk 
└─vda1 254:1 0 10G 0 part /
vdb 254:16 0 1G 0 disk 
vdc 254:32 0 2G 0 disk 
vdd 254:48 0 3G 0 disk

INSTALACIÓN

sudo apt install btrfs-progs

FORMATEO Y MONTAJE

Puede crearse el sistema de ficheros sobre un disco directamente o sobre una partición con mkfs:

Creación de la partición vdc1:

root@nebula:/home/debian# fdisk /dev/vdc

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x89987763.

Command (m for help): n
Partition type
 p primary (0 primary, 0 extended, 4 free)
 e extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-4194303, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303):

Created a new partition 1 of type 'Linux' and of size 2 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@nebula:/home/debian# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk 
└─vda1 254:1 0 10G 0 part /
vdb 254:16 0 1G 0 disk 
vdc 254:32 0 2G 0 disk 
└─vdc1 254:33 0 2G 0 part 
vdd 254:48 0 3G 0 disk

FORMATO A DISCO

root@nebula:/home/debian# mkfs.btrfs /dev/vdb
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 1.00GiB
Block group profiles:
 Data: single 8.00MiB
 Metadata: DUP 51.19MiB
 System: DUP 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
root@nebula:/home/debian# mkfs.btrfs /dev/vdd
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 3.00GiB
Block group profiles:
 Data: single 8.00MiB
 Metadata: DUP 153.56MiB
 System: DUP 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
 ID SIZE PATH
 1 3.00GiB /dev/vdd

MONTAJE

root@nebula:/home/debian# mount /dev/vdb /mnt/disco/
root@nebula:/home/debian# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
vda 
└─vda1 ext4 4c114b65-2954-4955-a666-b5b8766a5848 /
vdb btrfs b6f2f587-2e1c-4d0e-a86a-97cf8f65e17c /mnt/disco
vdc 
└─vdc1 btrfs 41cd1694-218e-46ab-b58d-6ec7f942d2ca 
vdd btrfs 41cd1694-218e-46ab-b58d-6ec7f942d2ca 
root@nebula:/home/debian# df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 50M 3.3M 47M 7% /run
/dev/vda1 9.9G 959M 8.5G 10% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/1000
/dev/vdb 1.0G 17M 905M 2% /mnt/disco

FORMATO A PARTICIÓN

root@nebula:/home/debian# mkfs.btrfs /dev/vdc1
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 2.00GiB
Block group profiles:
 Data: single 8.00MiB
 Metadata: DUP 102.31MiB
 System: DUP 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
 ID SIZE PATH

En este caso se montaría como en el ejemplo anterior.

SISTEMA DE FICHEROS SOBRE MÚLTIPLES DISPOSITIVOS

Al hacerlo sobre varios dispositivos, crea un pool de almacenamiento con la capacidad de ambos discos, sin importar si son iguales o no.

root@nebula:/home/debian# mkfs.btrfs -f /dev/vdd /dev/vdc1
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 5.00GiB
Block group profiles:
 Data: RAID0 511.88MiB
 Metadata: RAID1 255.94MiB
 System: RAID1 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 2
Devices:
 ID SIZE PATH
 1 3.00GiB /dev/vdd
 2 2.00GiB /dev/vdc1

MONTAJE

Para montar estos dos dispositivos solo es necesario indicar uno de ellos en el comando:

root@nebula:/home/debian# mount /dev/vdd /mnt/pool/

root@nebula:/home/debian# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
vda 
└─vda1 ext4 4c114b65-2954-4955-a666-b5b8766a5848 /
vdb btrfs b6f2f587-2e1c-4d0e-a86a-97cf8f65e17c /mnt/disco
vdc 
└─vdc1 btrfs 41cd1694-218e-46ab-b58d-6ec7f942d2ca 
vdd btrfs 41cd1694-218e-46ab-b58d-6ec7f942d2ca /mnt/pool

root@nebula:/home/debian# df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 50M 3.3M 47M 7% /run
/dev/vda1 9.9G 959M 8.5G 10% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/1000
/dev/vdb 1.0G 17M 905M 2% /mnt/disco
/dev/vdd 5.0G 17M 3.5G 1% /mnt/pool

Si hacemos lsblk vemos que solo en el que hemos indicado tiene punto de montaje, pero al comprobar el tamaño de dicho directorio, tiene la suma de ambos discos (vdc1 tiene 2 GiB y vdd tiene 3).

GESTIÓN DEL POOL

Al pool creado anteriormente le podemos añadir los discos que queramos con el tamaño que veamos oportuno. Por ejemplo, si añadimos vdb, que tiene 1GiB, el pool pasará  tener 6 GiB:

root@nebula:/home/debian# btrfs device add -f /dev/vdb /mnt/pool/

root@nebula:/home/debian# df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 50M 3.3M 47M 7% /run
/dev/vda1 9.9G 959M 8.5G 10% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/1000
/dev/vdd 6.0G 17M 4.5G 1% /mnt/pool
root@nebula:/home/debian# btrfs filesystem show
Label: none uuid: 41cd1694-218e-46ab-b58d-6ec7f942d2ca
 Total devices 3 FS bytes used 256.00KiB
 devid 1 size 3.00GiB used 519.88MiB path /dev/vdd
 devid 2 size 2.00GiB used 519.88MiB path /dev/vdc1
 devid 3 size 1.00GiB used 0.00B path /dev/vdb

Para eliminar un disco el comando es muy parecido

root@nebula:/home/debian# btrfs device del /dev/vdc1 /mnt/pool/

Y vemos que el pool se ha reducido los 2 GiB del disco vdc1

root@nebula:/home/debian# df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 50M 3.3M 47M 7% /run
/dev/vda1 9.9G 959M 8.5G 10% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/1000
/dev/vdd 4.0G 17M 1.5G 2% /mnt/pool

Si le damos de nuevo formato y vemos los discos con btrfs:

root@nebula:/home/debian# mkfs.btrfs /dev/vdc1
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 2.00GiB
Block group profiles:
 Data: single 8.00MiB
 Metadata: DUP 102.31MiB
 System: DUP 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
 ID SIZE PATH
 1 2.00GiB /dev/vdc1
root@nebula:/home/debian# btrfs filesystem show
Label: none uuid: 41cd1694-218e-46ab-b58d-6ec7f942d2ca
 Total devices 2 FS bytes used 256.00KiB
 devid 1 size 3.00GiB used 496.00MiB path /dev/vdd
 devid 3 size 1.00GiB used 496.00MiB path /dev/vdb

Label: none uuid: d9239574-cfeb-413f-ae77-91c5a8b3e4a2
 Total devices 1 FS bytes used 112.00KiB
 devid 1 size 2.00GiB used 228.62MiB path /dev/vdc1

Btrfs tambień nos da la opción de hacer un balanceo de los datos cuando se agregan nuevos discos, distribuyendo los datos ya existentes entre el total de los discos, incluyendo los nuevos. Esto se hace con el comando btrfs filesystem balance.

 RAID Y REPARACIÓN DEL RAID

Btrfs permite raid de tipo raid0, raid1, raid5 ,raid6, raid10  y single. Es posible usar un tipo para los datos (opcion -d) y otro para los metadatos (opcion -m).

RAID 1 PARA TODO

root@nebula:/home/debian# mkfs.btrfs -f -d raid1 -m raid1 /dev/vdb /dev/vdc1
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 3.00GiB
Block group profiles:
 Data: RAID1 153.50MiB
 Metadata: RAID1 153.50MiB
 System: RAID1 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 2
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1

RAID 1 PARA DATOS Y RAID0 PARA METADATOS

root@nebula:/home/debian# mkfs.btrfs -f -d raid1 -m raid0 /dev/vdb /dev/vdc1
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

WARNING: metadata has lower redundancy than data!

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 3.00GiB
Block group profiles:
 Data: RAID1 153.50MiB
 Metadata: RAID0 307.00MiB
 System: RAID0 16.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 2
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1

RAID5

root@nebula:/home/debian# mkfs.btrfs -f -d raid5 -m raid5 /dev/vdb /dev/vdc1 /dev/vdd
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 6.00GiB
Block group profiles:
 Data: RAID5 409.50MiB
 Metadata: RAID5 409.50MiB
 System: RAID5 16.00MiB
SSD detected: no
Incompat features: extref, raid56, skinny-metadata
Number of devices: 3
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1
 3 3.00GiB /dev/vdd

RAID6

Se podría hacer con 3 discos pero es recomendable añadir alguno más:

root@nebula:/home/debian# mkfs.btrfs -f -d raid6 -m raid6 /dev/vdb /dev/vdc1 /dev/vdd
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

WARNING: RAID6 is not recommended on filesystem with 3 devices only
Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 6.00GiB
Block group profiles:
 Data: RAID6 204.75MiB
 Metadata: RAID6 204.75MiB
 System: RAID6 8.00MiB
SSD detected: no
Incompat features: extref, raid56, skinny-metadata
Number of devices: 3
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1
 3 3.00GiB /dev/vdd

Como para raid10 hacen falta al menos 4 discos, he añadido un más y hecho el raid6 de nuevo:

root@nebula:/home/debian# mkfs.btrfs -f -d raid6 -m raid6 /dev/vdb /dev/vdc1 /dev/vdd /dev/vde
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 10.00GiB
Block group profiles:
 Data: RAID6 511.88MiB
 Metadata: RAID6 511.88MiB
 System: RAID6 16.00MiB
SSD detected: no
Incompat features: extref, raid56, skinny-metadata
Number of devices: 4
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1
 3 3.00GiB /dev/vdd
 4 4.00GiB /dev/vde

RAID10

root@nebula:/home/debian# mkfs.btrfs -f -d raid10 -m raid10 /dev/vdb /dev/vdc1 /dev/vdd /dev/vde
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 10.00GiB
Block group profiles:
 Data: RAID10 511.88MiB
 Metadata: RAID10 511.88MiB
 System: RAID10 16.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 4
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1
 3 3.00GiB /dev/vdd
 4 4.00GiB /dev/vde

REPARACIÓN

Partimos de:

root@nebula:/home/debian# mkfs.btrfs -f -d raid1 -m raid1 /dev/vdb /dev/vdc1
root@nebula:/home/debian# mount /dev/vdc1 /mnt/pool

Copiamos el .bashrc en el directorio anterior:

root@nebula:/home/debian# cp .bashrc /mnt/pool/bashrc

Ahora sobreescribimos en uno de los discos:

root@nebula:/home/debian# dd if=/dev/zero of=/dev/vdb
dd: writing to '/dev/vdb': No space left on device
2097153+0 records in
2097152+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 228.248 s, 4.7 MB/s

Y comparamos el .bashrc original con la copia:

root@nebula:/home/debian# diff .bashrc /mnt/pool/bashrc
root@nebula:/home/debian#

Vemos que el fichero está correcto pero el disco vdb está corrupto, por lo que el sistema de archivos está degradado y hasta que no se arregle, solo se podrá montar con la opción -o degradaded.

Para arreglarlo habría que sustituir el disco, eliminarlo del pool y rebalancear la carga una vez se haya añadido uno nuevo.

COMPRESIÓN

Btrfs permite comprimir los datos cuando se escriben y descompimirlos cuando se van a utilizar sin que el usuario se dé cuenta, permitiendo almacenar aún más datos en un dispositivo.

root@nebula:/home/debian# mount -o compress=lzo /dev/vdd /mnt/disco/

Para los raid que tengamos también se puede usar esta opción:

root@nebula:/home/debian# btrfs filesystem show
Label: none uuid: dcff20ff-4b10-4fe2-a0c6-9c3a8ede4068
 Total devices 2 FS bytes used 260.00KiB
 devid 1 size 1.00GiB used 595.00MiB path /dev/vdb
 devid 2 size 2.00GiB used 595.00MiB path /dev/vdc1

root@nebula:/home/debian# mount -o compress=lzo /dev/vdc1 /mnt/pool/

COPY ON WRITE

Primero creamos un fichero de 512M

root@nebula:/home/debian# dd if=/dev/zero of=/mnt/original bs=1024 count=512k
524288+0 records in
524288+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 5.64106 s, 95.2 MB/s

Copiamos con cp y la opción –reflink=always el fichero original varias veces:

root@nebula:/mnt# cp --reflink=always original copia1
root@nebula:/mnt# 2
bash: 2: command not found
root@nebula:/mnt# cp --reflink=always original copia2
root@nebula:/mnt# cp --reflink=always original copia3
root@nebula:/mnt# ls -lh
total 2.0G
-rw-r--r-- 1 root root 512M Jan 27 15:58 copia1
-rw-r--r-- 1 root root 512M Jan 27 15:58 copia2
-rw-r--r-- 1 root root 512M Jan 27 15:58 copia3
-rw-r--r-- 1 root root 512M Jan 27 15:56 original

Se supone que en el pool habría  ocupados 2 GiB pero si vemos el espacio real, sólo está ocupado unos 512M:

root@nebula:/mnt# df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 50M 4.5M 45M 10% /run
/dev/vda1 9.9G 959M 8.5G 10% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
/dev/vdb 6.0G 530M 4.2G 12% /mnt
tmpfs 50M 0 50M 0% /run/user/1000

Esto es gracias al copy on write, que hace que realmente solo exista el fichero original y las copias apunten a él. En caso de modificar alguna de las copias, se genera otra copia para mantener la integridad de los datos.

SUBVOLÚMENES

Un subvolumen es equivalente a un sistema de ficheros contenido en el anfitrióm. Un ssistema de ficheros btrfs tiene como mínimo un subvolumen, pero pueden añadirse otros.

Primero se crea el sistema de ficheros

root@nebula:/home/debian# mkfs.btrfs -f /dev/vdb /dev/vdc1 /dev/vdd
btrfs-progs v4.7.3
See http://btrfs.wiki.kernel.org for more information.

Label: (null)
UUID: 
Node size: 16384
Sector size: 4096
Filesystem size: 6.00GiB
Block group profiles:
 Data: RAID0 614.25MiB
 Metadata: RAID1 307.12MiB
 System: RAID1 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 3
Devices:
 ID SIZE PATH
 1 1.00GiB /dev/vdb
 2 2.00GiB /dev/vdc1
 3 3.00GiB /dev/vdd

root@nebula:/home/debian# mount /dev/vdb /mnt

Luego definimos los subvolumenes:

root@nebula:/home/debian# btrfs subvolume create /mnt/sub1
Create subvolume '/mnt/sub1'
root@nebula:/home/debian# btrfs subvolume create /mnt/sub2
Create subvolume '/mnt/sub2'
root@nebula:/home/debian# btrfs subvolume create /mnt/sub3
Create subvolume '/mnt/sub3'
root@nebula:/home/debian# ls /mnt/
sub1 sub2 sub3

También los podemos listar con btrfs subvolume list [punto de montaje]

root@nebula:/home/debian# btrfs subvolume list /mnt
ID 258 gen 7 top level 5 path sub1
ID 259 gen 8 top level 5 path sub2
ID 260 gen 9 top level 5 path sub3

Si escribimos en sub1 y se monta, podemos ver su contenido

root@nebula:/home/debian# cp .bashrc /mnt/sub1
root@nebula:/home/debian# mkdir /mnt/test1
root@nebula:/home/debian# mount -o subvolid=258 /dev/vdb /mnt/test1
root@nebula:/home/debian# ls -la /mnt/test1/
total 20
drwxr-xr-x 1 root root 14 Jan 27 13:08 .
drwxr-xr-x 1 root root 34 Jan 27 13:08 ..
-rw-r--r-- 1 root root 3526 Jan 27 13:08 .bashrc

Los subvolumenes tienen la msima capacidad que el pool al que pertencen:

root@nebula:/home/debian# df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 50M 3.9M 46M 8% /run
/dev/vda1 9.9G 959M 8.5G 10% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/1000
/dev/vdb 6.0G 17M 4.7G 1% /mnt
/dev/vdb 6.0G 17M 4.7G 1% /mnt/test1

INSTATÁNEAS

Se pueden crear instantáneas de subvolúmenes de la siguiente forma:

root@nebula:/home/debian# btrfs subvolume snapshot /mnt/sub1 /mnt/sub1_snap
Create a snapshot of '/mnt/sub1' in '/mnt/sub1_snap'
root@nebula:/home/debian# btrfs subvolume list /mnt
ID 258 gen 13 top level 5 path sub1
ID 259 gen 8 top level 5 path sub2
ID 260 gen 9 top level 5 path sub3
ID 261 gen 13 top level 5 path sub1_snap

Si listamos el contenido de /mnt/sub1_snap, vemos que está el .bashrc copiado anteriormente

root@nebula:/home/debian# ls -la /mnt/sub1_snap/ total 20 drwxr-xr-x 1 root root 14 Jan 27 13:08 . drwxr-xr-x 1 root root 52 Jan 27 13:11 .. -rw-r–r– 1 root root 3526 Jan 27 13:08 .bashrc

CIFRADO

Para cifrar cualquier fichero o directorio vamos a necesitar el siguiente paquete:

apt install cryptsetup

Para cifrar voy a usar un keyfile, que se genera con dd en el directorio /root:

root@nebula:~# pwd
/root
root@nebula:~# dd if=/dev/random of=/root/KeyFile bs=1 count=4096

Como este proceso puede tardar bastante  y estamos en un entorno de prueba, voy a usar hacer el fichero a mano poniendo una key más corta. También se podría usar /dev/urandom

Es recomendable cambiarle los permisos a unos más restrictivos:

root@nebula:~# chmod 0400 /root/KeyFile

La clave la vamos a tener en nuestro disco, por comodidad a la hora de automontar, pero esto implica que el disco principal que lo contiene debería estar también cifrado.

Para cifrar los discos:

root@nebula:~# vgcreate vg2 /dev/vdc
WARNING: btrfs signature detected on /dev/vdc at offset 65600. Wipe it? [y/n]: y
 Wiping btrfs signature on /dev/vdc.
 Physical volume "/dev/vdc" successfully created.
 Volume group "vg2" successfully created
root@nebula:~# lvcreate -L 512M -n raid2 vg2
 Logical volume "raid2" created.
root@nebula:~# cryptsetup luksFormat --key-file /root/KeyFile /dev/vg2/raid2

WARNING!
========
This will overwrite data on /dev/vg2/raid2 irrevocably.

Are you sure? (Type uppercase yes): YES

Para abrir el disco:

root@nebula:~# cryptsetup open /dev/vg2/raid2 /dev/vg2/raid2

Se pueden configurar para ser automontados. Para ello hay que modificar los siguientes archivos con la siguiente estructura:

/etc/conf.d/dmcrypt

target=[nombre del disco]
source=/dev/disk/by-uuid/[uuid del disco]
key=/root/KeyFile

/etc/crypttab

[nombre del disco] UUID=[uuid del disco] /root/KeyFile luks

/etc/fstab

UUID=[uuid del disco] [ounto de montaje] btrfs nofail,compress=lzo,noatime,thread_pool=6,space_cache,autodefrag,commit=1800,device=/dev/[nombre del disco] 0 0

COMANDOS ÚTILES

btrfs filesystem show

root@nebula:/home/debian# btrfs filesystem show
Label: none uuid: 41cd1694-218e-46ab-b58d-6ec7f942d2ca
 Total devices 3 FS bytes used 256.00KiB
 devid 1 size 3.00GiB used 519.88MiB path /dev/vdd
 devid 2 size 2.00GiB used 519.88MiB path /dev/vdc1
 devid 3 size 1.00GiB used 0.00B path /dev/vdb

btrfs scrub start [punto de montaje]: Permite ver la integridad de los datos redundados

Partiendo del escenario creado en el apartado del raid degradado, ejecutamos el comando para ver cómo están nuestros datos:

root@nebula:/home/debian# btrfs scrub start /mnt/pool
scrub started on /mnt/pool, fsid dcff20ff-4b10-4fe2-a0c6-9c3a8ede4068 (pid=7544)
WARNING: errors detected during scrubbing, corrected

btrfs scrub sttus [punto de montaje]: estado del scrub

Con el ejemplo anterior de scrub start:

root@nebula:/home/debian# btrfs scrub status /mnt/pool
scrub status for dcff20ff-4b10-4fe2-a0c6-9c3a8ede4068
 scrub started at Sat Jan 27 12:20:34 2018 and finished after 00:00:00
 total bytes scrubbed: 520.00KiB with 5 errors
 error details: csum=5
 corrected errors: 5, uncorrectable errors: 0, unverified errors: 0

 


https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices

https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs

https://elpuig.xeill.net/Members/vcarceler/articulos/ejemplos-de-uso-de-btrfs

https://es.wikipedia.org/wiki/RAID

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *