Tutoriel | Tuto ZFS Linux

Article publiée le 6 Mai 2016

Article mise à jour le 23 Juin 2017

 

Un petit tuto sur le système (et gestionnaire de volume) ZFS. En travaillant sur des serveurs ayant ce système de fichiers, j’ai pu voir son incroyable potentiel !

IL est courant que ZFS fasse peur à tort étant donnée que la corruption de données n’existe pas avec ce système de fichiers…En effet, avec ZFS, aurevoir fsck et compagnie!

ZFS est un système de fichiers développé à l’origine par SUN. Les caractéristiques de ZFS sont quasiment illimités:

  • 248 : le nombre d’instantanés maximal ;
  • 248 : le nombre de fichiers dans chaque système de fichiers ;
  • 16 exbioctets : la taille maximum du système de fichiers ;
  • 16 exbioctets : la taille maximum d’un seul fichier ;
  • 256 : le nombre maximal théorique de fichiers par répertoire (en réalité limité à 248 par le nombre maximal de fichiers dans un système de fichiers).

De plus ZFS possède un système de snapshots incroyablement puissant!

Ci-dessous un petit tuto expliquant comment utiliser ZFS.

1) Installation

1.1) Sous Debian/Ubuntu

ZFS est disponible dans les dépots backport.

Ajouter les dépots Backport puis installez ZFS

Installez maintenant ZFS: apt-get update && apt-get install zfs-dkms zfsutils-linux zfsutils-linux

 

1.2) Sous RedHat/Centos (Redhat7 / Centos7 ou supérieu)

 

Installez ZFS : yum install zfs-dracut

Activer le module ZFS: modprobe zfs

 

2) Création d’un volume ZFS (ZPOOL)

2.1) Création d’un ZPOOL simple

Nous allons pour cela créer un zpool. Un zpool est comparable à un VG dans LVM sauf que l’on peut directement le monter en tant que volume étant donnée qu’il est nativement en ZFS:

zpool create -f <nom de votre zpool> <votre disque>

Exemple: zpool create -f zfspool sdb

 

2.2) Création d’un RAID

zpool create -f mypool <type de raid> <vos disques>

Exemple: zpool create -f zfspool raidz sdb sdc sdd sde sdf

Vous devez renseigner l’argument <type de raid> par le RAID que vous souhaitez créer :

MIRROR: RAID1

RAIDZ: Equivalent RAID5 amélioré

RAIDZ-1: Avec un disque de parité supplémentaire.

RAIDZ-2: Avec deux disques de parité supplémentaire.

RAIDZ-3: Avec trois disques de parité supplémentaire.

2.3) Lister les ZPOOL

Nous allons maintenant lister notre ZPOOL fraîchement crée:

zpool list

Vous devriez obtenir ceci:

Vous pouvez également avoir un statut global de votre ZPOOL:

zpool status

2.4) Supprimer un ZPOOL

zfs destroy <zpool>

Exemple:

zfs destroy zfspool

2.5) démonter un ZPOOL

Vous pouvez monter votre ZPOOL avec la commande:

zfs umount <nom de votre zpool>

Exemple:

zfs umount zfspool

 

2.6) Agrandir un ZPOOL

Admettons que vous ayez besoin d’espace supplémentaire.

Après avoir rajouté votre disque où volume il suffit d’utiliser la commande suivante:

zpool add <nom de votre zpool> <nom de votre volume>

Exemple:

zpool add zfspool  sdc

 

2.6) Modifier les paramètres d’un ZPOOL

2.6.1 Changer le point de montage d’un ZPOOL

Par défaut les points de montage ZFS sont créés à la racine.

Vous pouvez modifier le point de montage avec la commande :  zfs set mountpoint= <le chemin de votre point de montage> <nom de votre zpool>

Exemple:

zfs set mountpoint=/mnt/zfs zfspool

 

3) Gestion des partitions ZFS

3.1) Créer une partition 

zfs create <nom de votre zpool><nom de votre nouvelle partition>

Exemple:

zfs create zfspool/partition1

3.2) Renommer une partition

zfs rename <zpool><votre partition> <zpool><nom de votre nouvelle partition>

Exemple:

zfs rename zfspool/partition1 zfspool/partitionnew

 

3.3) Supprimer une partition

zfs destroy <zpool><votre partition>

Exemple:

zfs destroy zfspool/partition1

4) Monter un ZPOOL

Vous pouvez monter votre ZPOOL avec la commande:

zfs mount <nom de votre zpool>

Exemple:

zfs mount zfspool

 

5) Snapshot

5.1 Créer un snapshot 

zfs snapshot <zpool ou partition>@<nom de votre snapshot>

Exemple:

zfs snapshot zfspool@07052016

 

5.2 Lister les snapshot

zfs list -t snapshot

5.3 Utiliser un snapshot

Commande: zfs rollback <nom de votre snapshot>

Exemple:

Nous allons créer un fichier:

Nous allons créer un snapshot:

Nous allons maintenant supprimer le fichier:

Nous allons utiliser notre snapshot pour le restaurer:

(enjoy ;))

5.4 Supprimer un snapshot

zfs destroy <nom de votre snapshot>

Exemple:

zfs destroy zfspool/partition2@aujourdhui

 

 

 

Autres tutoriels sur les systèmes de fichiers:

LVM: http://journaldunadminlinux.fr/tutoriel-gerez-votre-systeme-de-fichier-grace-a-lvm-logical-volume-management/

BTRFS: http://journaldunadminlinux.fr/presentation-de-btrfs-et-comment-migrer/