fbpx

IL BLOG DEGLI RHCE ITALIANI

VDO Virtual Data Optimizer per la migliore gestione dello spazio disco con la De-Duplica su RHEL8 e CentOS8

Fabio Felici
Fabio Felici
RHCSA

Virtual Data Optimizer (VDO) – RHEL8/CentOS8


Con Virtual Data Optimizer ( VDO ) in RHEL8 e CentOS8 introduciamo un concetto di partizionamento di un volume a livello logico, un volume VDO provvede ad una riduzione in linea dei dati in Linux offrendo un sistema di Deduplicazione, Compressione e Thin Provisioning.

Con questa tecnologia, è possibile scambiare risorse CPU / RAM con spazio su disco. La disponibilità di VDO è uno dei risultati dell’acquisizione di Permabit Technology Corporation da parte di Red Hat nel 2017. Il codice è disponibile negli RPM di origine e vengono stabiliti progetti a monte.

Requisiti

VDO richiede spazio di archiviazione sia per i metadati VDO che per l’indice di deduplicazione UDS effettivo.

UDS Kernel Module (uds)

L’indice UDS fornisce le basi del prodotto VDO. Per ogni nuovo pezzo di dati, determina rapidamente se quel pezzo è identico a qualsiasi pezzo di dati precedentemente memorizzato. Se l’indice trova corrispondenza, il sistema di archiviazione può quindi fare riferimento internamente all’item esistente per evitare di memorizzare le stesse informazioni più di una volta.
L’indice UDS viene eseguito all’interno del kernel come modulo del kernel uds.

VDO scrive due tipi di metadati nella memoria fisica sottostante:


VDO Volume

In RHEL8 e CentOS8 VDO utilizza un dispositivo a blocchi come archivio di backup, che può includere un’aggregazione di archiviazione fisica costituita da uno o più dischi, partizioni o persino file flat. Quando un volume VDO viene creato da uno strumento di gestione della memoria, VDO riserva spazio dal volume sia per un indice UDS che per il volume VDO, che interagiscono insieme per fornire spazio di archiviazione deduplicato agli utenti e alle applicazioni.

Slabs

La memoria fisica del volume VDO è divisa in un numero di slabs, ognuna delle quali è una regione contigua dello spazio fisico. Tutte le slabs per un determinato volume avranno le stesse dimensioni, che possono essere qualsiasi potenza di 2 multipli di 128 MB fino a 32 GB. La dimensione predefinita della slab è di 2 GB per facilitare la valutazione di VDO su sistemi di test più piccoli. Un singolo volume VDO può avere fino a 8096 slabs. Pertanto, nella configurazione predefinita con slabs da 2 GB, la memoria fisica massima consentita è di 16 TB. Quando si utilizzano slabs da 32 GB, la memoria fisica massima consentita è di 256 TB. Almeno un’intera slab è riservata da VDO per i metadati e pertanto non può essere utilizzata per l’archiviazione dei dati utente. La dimensione della slab non ha alcun effetto sulle prestazioni del volume VDO.

Installazione VDO

In RHEL8 e CentOS8 VDO necessità di due RPM:

Usare dnf package manager per installare gli RPM necessari

# dnf install vdo kmod-kvdo -y

Creazione di un volume VDO

Creazione di un volume per un block device. Nota che più VDO possono essere creati con differenti device nella stessa macchina, ma bisognerà un nome e device differente per ogni istanza VDO nel sistema.

In questa casistica sostituire:

# vdo create \
--name=vdo-name \
--device=block-device \
--vdoLogicalSize=logical-size

Creazione del filesystem

Creazione di un normale file system ext4 o xfs:

# mkfs.xfs -K /dev/mapper/vdo_name
# mkfs.ext4 -E nodiscard /dev/mapper/vdo_name

Eseguire il mount del file system con la creazione di una directory ( es. /mnt/vdo_name ):

# mkdir -m 1777 /mnt/vdo_name
# mount /dev/mapper/vdo_name /mnt/vdo_name

Mount Automatico in fase di Bootstrap:

In RHEL8 e CentOS8 per configurare il file system per essere montato automaticamente, abbiamo a disposizione due modalità:

  1. Scrivere il classico punto di mount automatica nel file /etc/fstab
  2. Creare un Systemd Mount Unit File con un nome del file appropriato

Se si decide di usare il file di configurazione /etc/fstab aggiungere le seguenti linee a seconda del tipo di File System:

/dev/mapper/vdo_name /mnt/vdo_name xfs defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
/dev/mapper/vdo_name /mnt/vdo_name ext4 defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0

Se si decide invece di usare un Systemd Mount Unit File, bisogna creare un file di configurazione per systemd con questa dicitura:

# vim /etc/systemd/system/mnt-vdo_name.mount

Con il seguente contenuto:

[Unit]
Description = VDO unit file to mount file system
name = vdo_name.mount
Requires = vdo.service
After = multi-user.target
Conflicts = umount.target

[Mount]
What = /dev/mapper/vdo_name
Where = /mnt/vdo_name
Type = xfs

[Install]
WantedBy = multi-user.target

Sostituire vdo_name con il nome del vostro VDO. E’ disponibile un esempio di un file systemd unit in /usr/share/doc/vdo/examples/systemd/VDO.mount.example

Monitorare VDO

Poiché VDO è Thin Provisioned, il file system e le applicazioni percepiranno soltanto lo Spazio Logico in uso e non saranno consapevoli di quello fisico disponibile effettivo. L’occupazione totale può essere monitorata usando vdostats:

# vdostats --human-readable
Device 		        1K-blocks Used 	  Available 	Use% 	Space saving%
/dev/mapper/node1osd1   926.5G 	  21.0G   905.5G 	2% 	73%
/dev/mapper/node1osd2   926.5G 	  28.2G   898.3G 	3% 	64%

Quando lo spazio fisico di un volume VDO sarà in fase di esaurimento, VDO riporterà un warning nel system log, come questo:

Feb 18 14:13:39 system lvm[13863]: Monitoring VDO pool vdo_name.
Feb 18 14:27:39 system lvm[13863]: WARNING: VDO pool vdo_name is now 80.69%
full.
Feb 18 14:28:19 system lvm[13863]: WARNING: VDO pool vdo_name is now 85.25%
full.
Feb 18 14:29:39 system lvm[13863]: WARNING: VDO pool vdo_name is now 90.64%
full.
Feb 18 14:30:29 system lvm[13863]: WARNING: VDO pool vdo_name is now 96.07% full.

Importante

Monitorare lo spazio fisico sui volumi VDO per evitare situazioni di spazio insufficiente. L’esaurimento dei blocchi fisici potrebbe comportare la perdita di dati scritti di recente e non riconosciuti sul volume VDO.

Se vuoi approfondire questo tema puoi farlo!

Questo tema viene approfondito nei nostri corsi ufficiali Red Hat RH134 e relativo esame di certificazione EX200 per la RHCSA.


“Con l’aggiunta degli strumenti di deduplicazione e compressione dei dati di Permabit a Red Hat Enterprise Linux, Red Hat sarà pronta a supportare queste organizzazioni nel tentativo di ottenere un’impronta di archiviazione più efficiente per alimentare l’innovazione aziendale.”

JIM TOTTONVICE PRESIDENT AND GENERAL MANAGER, RED HAT
Info about author
Fabio Felici

Fabio Felici

Prenota subito il tuo corso ufficiale Red Hat

GUARDA I CORSI