Explorant d'un sistema de fitxers avançat: zfs
En aquesta secció, explorarem el sistema de fitxers ZFS (Zettabyte File System). ZFS és un sistema de fitxers avançat que ofereix moltes característiques interessants com ara la integritat de les dades, la compressió, la deduplicació, la replicació, la instantània, la clonació, etc. Per fer-ho utilitzarem la màquina virtual amb Almalinux 9.4.
-
Instal·la el repositori EPEL:
dnf install epel-release -y ```
-
Afegeix el repositori ZFS:
dnf install https://zfsonlinux.org/epel/zfs-release-2-3$(rpm --eval "%{dist}").noarch.rpm -y
-
Instal·lació dels paquets necessaris:
dnf install kernel-devel
-
Actualitzar el sistema:
dnf update -y
-
Segons la documentació, veure Getting Started: Per defecte, el paquet zfs-release està configurat per instal·lar paquets de tipus DKMS perquè funcionin amb una àmplia gamma de kernels. Per poder instal·lar els mòduls kABI-tracking, cal canviar el repositori predeterminat de zfs a zfs-kmod.
dnf config-manager --disable zfs dnf config-manager --enable zfs-kmod dnf install zfs
-
Reinicieu la màquina virtual:
reboot
-
Carregeu el modul zfs al kernel de linux:
modprobe zfs
Creació d'un pool ZFS
Una pool ZFS és un conjunt de dispositius de blocs que es poden utilitzar per emmagatzemar dades. Aquesta pool pot estar formada per un o més dispositius de blocs. Aquests dispositius poden ser discos durs, SSD, dispositius de xarxa, etc. Aquesta pool es pot utilitzar per crear conjunts de dades i sistemes de fitxers ZFS. Utiltizarem el disc /etc/vdb per crear la pool.
-
Creació de la pool:
zpool create -f zfspool /dev/vdb
-
Comprovació de la pool:
zpool status
pool: zfspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zfspool ONLINE 0 0 0 vdb ONLINE 0 0 0 errors: No known data errors
-
Creació d'un sistema de fitxers que anomenarem (dades):
zfs create zfspool/dades
-
Comprovació del conjunt de dades:
zfs list
NAME USED AVAIL REFER MOUNTPOINT zfspool 135K 352M 25.5K /zfspool zfspool/dades 24K 352M 24K /zfspool/dades
NOTA: Ara mateix tenim muntats dos sistemes de fitxers: zfspool i zfspool/dades. Per defecte, els sistemes de fitxers ZFS es muntaran a /zfspool i /zfspool/dades. Però, podem canviar aquest comportament i muntar els sistemes de fitxers a un altre directori.
-
Anem a canviar el punt de muntatge de zfspool/dades a /mnt/dades:
mkdir /mnt/dades
zfs set mountpoint=/mnt/dades zfspool/dades
zfs list
NAME USED AVAIL REFER MOUNTPOINT zfspool 135K 352M 25.5K /zfspool zfspool/dades 24K 352M 24K /mnt/dades
-
Ara crearem uns quants fitxers i directoris a /mnt/data:
mkdir /mnt/dades/sergi mkdir /mnt/dades/adria touch /mnt/dades/sergi/a.txt touch /mnt/dades/sergi/a.c mkdir /mnt/dades/adria/config touch /mnt/dades/adria/config/.vim
-
ZFS ens permet crear snapshots (instantànies) dels nostres sistemes de fitxers. Aquestes instantànies són còpies de seguretat dels nostres sistemes de fitxers en un moment determinat. Aquestes instantànies es poden utilitzar per restaurar els nostres sistemes de fitxers en cas de fallada o error. Crearem una instantània del nostre sistema de fitxers zfspool/dades:
zfs snapshot zfspool/dades@snap1
-
Ara eliminarem el directori /mnt/dades/adria/config:
rm -rf /mnt/dades/adria/config
-
Podem utilitzar la comanda zfs rollback per restaurar el nostre sistema de fitxers a l'estat de l'instantània:
zfs rollback zfspool/dades@snap1
-
Comprovem que el directori /mnt/dades/adria/config ha estat restaurat:
ls -la /mnt/dades/adria/config
total 2 drwxr-xr-x. 2 root root 3 Oct 3 10:01 . drwxr-xr-x. 3 root root 3 Oct 3 10:01 .. -rw-r--r--. 1 root root 0 Oct 3 10:01 .vim
-
Podem utilitzar la comanda zfs clone per crear un clon del nostre sistema de fitxers zfspool/dades:
zfs clone zfspool/dades@snap1 zfspool/dades/clone1
OBSERVACIÓ 1: Els clons en ZFS permeten realitzar migracions de dades eficients i segures. Abans d'efectuar canvis en el sistema de producció o transferir dades a un nou sistema, es pot crear un clon de les dades existents per provar la migració sense afectar les dades originals
OBSERVACIÓ 2: Quan es requereix realitzar operacions de processament, anàlisi o transformació de dades, els clons permeten fer-ho sense modificar o posar en perill les dades originals.
zfs list
NAME USED AVAIL REFER MOUNTPOINT zfspool 217K 352M 24K /zfspool zfspool/dades 43K 352M 29K /mnt/dades zfspool/dades/clone1 0B 352M 29K /mnt/dades/clone1
-
Per eliminar un clon, utilitzarem la comanda zfs destroy:
zfs destroy zfspool/dades/clone1
-
Per eliminar una instantània, utilitzarem la comanda zfs destroy:
zfs destroy zfspool/dades@snap1
-
Per eliminar un sistema de fitxers, utilitzarem la comanda zfs destroy:
zfs destroy zfspool/dades
NOTA: Si enlloc d'eliminar volem únicament desmuntar, utilitzarem la comanda zfs umount. Per exemple:
zfs umount zfspool/dades
. -
Per eliminar una pool, utilitzarem la comanda zpool destroy:
zpool destroy zfspool