Activer la déduplication de données avec ZFS

Nous avons vu la dernière fois ce qu’était la déduplication de données ainsi que les applications (essentiellement libres) de cette technologie. Nous allons désormais nous intéresser à la mise en place de cette technologie dans le cas d’un système de fichiers ZFS.

Si vous avez un système de fichiers ZFS, cela signifie que vous avez soit un OpenSolaris soit un BSD. Vous ne pourrez pas faire de déduplication de données avec votre BSD car les versions actuellement implémentées ne supportent pas cette technologie. Vous devrez donc avoir un OpenSolaris sous le coude. De plus, la déduplication a été ajouté au build 128 d’OpenSolaris. Si vous avez une version 2009.06, vous allez devoir faire une mise à jour vers les dépôts de développement ou bien attendre la nouvelle version (qui aurait du être 2010.03). Je parlerais de la mise à jour très prochainement.

Vérifions donc que vous avez la bonne version d’OpenSolaris en regardant le fichier /etc/release. Vous devez avoir une information indiquant un numéro de version supérieur à 128. Dans le cas de mon OpenSolaris, ce fichier contenait, entre autre, la ligne suivante : OpenSolaris Development snv_134 X86.

Par défaut, la déduplication n’est activée sur aucun pool ZFS. Si vous avez fait la montée de version sans demander de fonctionnalités supplémentaires de ZFS, il est probable que votre version de ZFS soit antérieure à celle supportant la déduplication.

Vérifiez donc la liste des volumes ZFS à mettre à jour.

# zpool upgrade
This system is currently running ZFS pool version 22.

The following pools are out of date, and can be upgraded. After being
upgraded, these pools will no longer be accessible by older software versions.

VER POOL
— ————
14 rpool

Use ‘zpool upgrade -v’ for a list of available versions and their associated features.

Nous allons donc mettre à jour nos pools ZFS afin de pouvoir bénéficier de la déduplication.

# pfexec zpool upgrade -a
This system is currently running ZFS pool version 22.

Successfully upgraded ‘rpool’

Nous avons donc mis à jour notre pool ZFS. Il nous reste plus qu’à activer la fonctionnalité.

$ zfs get dedup rpool
NAME PROPERTY VALUE SOURCE
rpool dedup off default
$ pfexec zfs set dedup=on rpool
$ zfs get dedup rpool
NAME PROPERTY VALUE SOURCE
rpool dedup on local
$ zpool list rpool
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
rpool   19.9G 10.7G   9.19G  53% 1.00x     ONLINE       –

Le tour est joué ! Le facteur de déduplication vous indique la quantité d’espace disque que vous avez économisé. Lorsque vous activez la déduplication sur un volume, ce facteur est de 1x par défaut. Les données actuellement présentes sur le volume ne seront pas dédupliquées, il faudra attendre que de nouvelles données soient ajoutées.

Source : CTIStrategy