GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer et configurer ZFS sur Linux avec Debian Jessie 8.1

Sur cette page

  1. Prérequis :
  • Étape 1 :Mettre à jour le référentiel et mettre à jour le système Debian Linux
  • Étape 2 - Installer zfsonlinux
  • Étape 3 – Créer et configurer un pool
  • Étape 5 :Créer et configurer le système de fichiers ZFS
  • Conclusion
  • ZFS est un système de fichiers et un gestionnaire de volumes logiques combinés. Les fonctionnalités de ZFS incluent la protection contre la corruption des données, la prise en charge de capacités de stockage élevées, une compression efficace des données, l'intégration du système de fichiers et du concept de gestion des volumes, les instantanés et les clones de copie sur écriture, la vérification continue de l'intégrité et la réparation automatique, RAID-Z et natif ACL NFSv4.

    ZFS a été initialement implémenté en tant que logiciel open source, sous licence sous la licence commune de développement et de distribution (CDDL).

    Lorsque nous parlons du système de fichiers ZFS, nous pouvons souligner les concepts clés suivants :

    • Intégrité des données.
    • Administration simple du stockage avec seulement deux commandes :zfs et zpool.
    • Tout peut être fait pendant que le système de fichiers est en ligne.

    Pour un aperçu complet et une description de toutes les fonctionnalités disponibles, consultez cet article détaillé de wikipedia.

    Dans ce tutoriel, je vais vous guider pas à pas dans l'installation du système de fichiers ZFS sur Debian 8.1 (Jessie). Je vais vous montrer comment créer et configurer des pools en utilisant raid0 (bande), raid1 (Miroir) et RAID-Z (Raid avec parité) et expliquer comment configurer un système de fichiers avec ZFS.

    D'après les informations du site Web www.zfsonlinux.org, ZFS n'est pris en charge que sur l'architecture AMD64 et Intel 64 bits (amd64). Commençons par la configuration.

    Prérequis :

    • Debian 8 avec noyau 64 bits.
    • privilèges racine.

    Étape 1 - Mettre à jour le référentiel et mettre à jour le système Debian Linux

    Pour ajouter le référentiel zfsonlinux à notre système, téléchargez et installez le package zfsonlinux comme indiqué ci-dessous. Cela ajoutera les fichiers /etc/apt/sources.list.d/zfsonlinux.list et /etc/apt/trusted.gpg.d/zfsonlinux.gpg sur votre ordinateur. Ensuite, vous pouvez installer zfs comme n'importe quel autre paquet Debian avec la commande apt-get. Un autre avantage de l'utilisation du référentiel zfsonlinux est que vous obtenez automatiquement les mises à jour en exécutant "apt-get update &&apt-get upgrade".

    Connectez-vous au serveur Debian avec un accès SSH, devenez utilisateur root, puis exécutez les commandes suivantes.

    # uname -a
    Linux debian-zfs 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux
    # wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
    # dpkg -i zfsonlinux_6_all.deb
    # apt-get update

    Étape 2 - Installer zfsonlinux

    Zfsonlinux a de nombreuses dépendances logicielles qui sont automatiquement installées par apt. Ce processus prendra un certain temps. Une fois l'installation terminée, redémarrez le serveur.

    # apt-get install lsb-release
    # apt-get install debian-zfs
    # shutdown -r now

    Étape 3 - Créer et configurer un pool

    Une fois le serveur redémarré, vérifiez que zfsonlinux est installé et fonctionne correctement.

    # dpkg -l | grep zfs 
    ii debian-zfs 7 ~ jessie amd64 natif de fichiers zfs natif métapackage pour Debian.
    ii libzfs2 0.6.5.2-2 AMD64 Native Zfs Library pour Linux
    II ZFS-DKMS 0.6.5.2 -2 Modules de noyau de fichiers ZFS natifs pour Linux
    II ZFSONLINUX 6 Tous archive.zfsonlinux.org Trust Package
    II ZFSUTILS 0.6.5.2-2-2 AMD64 OUTILS DE LIGNE DE COMMANDE Pour gérer ZFS FileSystems

    Le résultat ci-dessus montre que zfs sur Linux est déjà installé, nous pouvons donc continuer avec la création du premier pool.

    J'ai ajouté cinq disques à ce serveur, chacun d'une taille de 2 Go. Nous pouvons vérifier les disques disponibles avec cette commande :

    # ls /dev/sd*
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sdf /dev/sdg

    Nous pouvons voir que nous avons /dev/sda jusqu'à ce que /dev/sdg, /dev/sda soit utilisé pour le système d'exploitation Debian Linux Jessie 8.1. Nous utiliserons /dev/sdb jusqu'à /dev/sdg pour le système de fichiers ZFS.

    Maintenant nous pouvons commencer à créer le pool, pour le premier je vais vous montrer comment créer un raid0 (stripe).

    # zpool list
    aucun pool disponible
    # zpool create -f pool0 /dev/sdb
    # zpool list
    NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    pool0  1.98G    64K  1.98G         -     0 %     0%  1.00 x EN LIGNE -

    La commande "zpool list" montre que nous avons créé avec succès un pool zfs raid0, le nom du pool est pool0 et la taille est de 2 Go.

    Ensuite, nous allons créer un raid1 (miroir) avec les autres disques.

    # zpool create -f pool1 mirror /dev/sdc /dev/sdd
    # zpool list
    NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    pool0  1.98G    64K  1.98G         - 0     0 %  1,00x  EN LIGNE  -
    pool1  1,98 G    64 K  1,98 G         -     0 %     0 %  1,00x  EN LIGNE  -

    Nous pouvons voir que nous avons maintenant deux pools, pool0 pour raid0 et pool1 pour raid1.

    Pour vérifier l'état du pool, nous pouvons utiliser la commande ci-dessous :

    # zpool status
      pool :pool0
     état :ONLINE
      scan :aucun demandé
    config :

            NAME        STATE     READ WRITE CKSUM
            pool0       EN LIGNE       0     0     0
              sdb       EN LIGNE       0     0     0

    erreurs :aucune erreur de données connue

      pool :pool1
     état :EN LIGNE
    SCAN:Aucune demandée
    Config:

    Nom State Read Write Cksum
    Pool1 Online 0 0 0
    Mirror-0 Online 0 0 0
    SDC en ligne 0     0     0
                sdd     EN LIGNE       0     0     0

    erreurs :aucune erreur de données connue

    Nous pouvons vérifier l'état du pool avec la commande "zpool status". Nous pouvons voir la différence entre pool0 et pool1, pool0 n'a qu'un seul disque et pool1 a deux disques et l'état des disques est miroir (mirror-0).

    Ensuite, nous allons créer un pool avec RAID-Z, RAID-Z est un schéma de distribution de données/parité comme RAID-5, mais il utilise une largeur de bande dynamique :chaque bloc a sa propre bande RAID, quelle que soit la taille du bloc, ce qui fait que chaque écriture RAID-Z est une écriture sur bande complète.

    RAID-Z nécessite un minimum de trois disques durs et est en quelque sorte un compromis entre RAID 0 et RAID 1. Dans un pool RAID-Z :si un seul disque de votre pool meurt, remplacez simplement ce disque et ZFS reconstruira automatiquement les données sur la base des informations de parité des autres disques. Pour perdre toutes les informations de votre pool de stockage, deux disques devraient mourir. Pour rendre la configuration du disque encore plus redondante, vous pouvez utiliser RAID 6 (RAID-Z2 dans le cas de ZFS) pour obtenir une double parité.

    Créons d'abord un pool RAID-Z avec une parité.

    # zpool create -f poolz1 raidz sde sdf sdg
    # zpool list poolz1
    NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    poolz1  5.94G   117K  5.94G         -     0 %  1,00 x EN LIGNE -
    # zpool status poolz1
      pool :poolz1
     état :EN LIGNE
      analyse :aucune requête
    config :

            NAME        STATE     READ WRITE CKSUM
    Cette br />errors :aucune erreur de données connue
    # df -h /poolz1
    Système de fichiers      Taille  Utilisé Disponible Utilisation % Monté sur
    poolz1          3,9 G     0  3,9 G   0 % /poolz1

    Comme nous pouvons le voir, df -h montre que notre pool de 6 Go a maintenant été réduit à 4 Go, 2 Go sont utilisés pour conserver les informations de parité. Avec la commande zpool status, nous voyons que notre pool utilise maintenant RAID-Z.

    Ensuite, nous allons créer RAID-Z2 (raid 6), pour cela nous devons supprimer le pool existant car il n'y a plus de disques disponibles. Supprimer un pool est très simple, nous pouvons utiliser la commande zpool destroy pour cela.

     # Zpool Liste 
    Nom Taille alloc Free Expandsz Frag Cap Dedup Health Altroot
    Pool0 1,98G 64K 1.98G - 0% 0% 1.00x en ligne -
    Pool1 1.98G 64K 1.98G - 0      0 %  1,00x  EN LIGNE  -
    poolz1  5,94 G   117 K   5,94 G         -     0 %     0 %  1,00x  EN LIGNE  -
    # zpool destroy pool0
    # zpool destroy pool1
    # zpool destroy poolz1
    # zpool list
    aucun pool disponible

    Maintenant, tous nos zpools ont disparu, nous pouvons donc créer un pool RAID-Z2.

    # zpool create poolz2 raidz2 sdb sdc sdd sde
    # zpool list
    NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    poolz2  7.94G   135K  7.94G          -     0     EN LIGNE -
    # df -h /poolz2
    Système de fichiers      Taille  Utilisé Disponible Utilisation % Monté sur
    poolz2          3,9 G     0  3,9 G   0 % /poolz2
    # zpool status poolz2
      pool :poolz2
     état :EN LIGNE
      analyse :aucune requête
    config :

            NAME        STATE     READ WRITE CKSUM
    /> Poolz2 en ligne 0 0 0
    raidz2-0 en ligne 0 0 0
    sdb en ligne 0 0 0
    sdc en ligne 0 0 0
    sdd en ligne 0 0 0
    sde EN LIGNE       0     0     0

    erreurs :aucune erreur de données connue

    Comme nous pouvons le voir, df -h montre que notre pool de 8 Go a maintenant été réduit à 4 Go, puisque 4 Go sont utilisés pour contenir deux fois les informations de parité. Avec la commande "zpool status", nous voyons que notre pool utilise maintenant RAID-Z2.

    Étape 4 – Simuler une panne de disque

    Dans cette étape, nous allons simuler une panne de disque catastrophique (c'est-à-dire que l'un des disques durs du zpool cesse de fonctionner).

    Créez un fichier dans le poolz2 et assurez-vous que nous pouvons y accéder.

    # echo "Test uniquement"> /poolz2/test.txt
    # cat /poolz2/test.txt
    Test uniquement

    Avant de simuler l'échec :vérifiez l'état de poolz2 et assurez-vous que l'état est en ligne et que l'état de tous les disques est en ligne.

    L'échec est simulé en écrivant des données aléatoires avec la commande dd dans /dev/sdb .

    # dd if=/dev/urandom of=/dev/sdb bs=1024 count=20480
    # zpool scrub poolz2
    # zpool status
      pool :poolz2
     state :Statut EN LIGNE
     :un ou plusieurs appareils ont rencontré une erreur irrécupérable. Une
            tentative a été effectuée pour corriger l'erreur. Les applications ne sont pas affectées.
    action :déterminez si l'appareil doit être remplacé et effacez les erreurs
            à l'aide de « zpool clear » ou remplacez l'appareil par « zpool replace ».
       voir :http ://zfsonlinux.org/msg/ZFS-8000-9P
      scan :17 Ko réparés en 0h0m avec 0 erreur le mardi 8 décembre 22:37:49 2015
    config :

    Nom State Read Write Cksum
    Poolz2 en ligne 0 0 0
    raidz2-0 en ligne 0 0 0
    sdb en ligne 0 0 25
    sdc en ligne 0 0 0
    sdd en ligne 0     0     0
                sde     EN LIGNE       0     0     0

    erreurs :aucune erreur de données connue

    Nous pouvons maintenant voir qu'un ou plusieurs disques ont rencontré une erreur irrécupérable, nous devons donc remplacer le disque. Dans ce cas, nous remplaçons le disque /dev/sdb par /dev/sdf.

    # zpool replace poolz2 sdb sdf
    # zpool status
      pool :poolz2
     état :ONLINE
      scan :réargenté 49,5 K en 0h0m avec 0 erreur le mar. décembre 8 22 :43:35 2015
    Config:

    Nom State Read Write Cksum
    Poolz2 en ligne 0 0 0
    raidz2-0 en ligne 0 0 0
    sdf en ligne 0 0 0
    sdc en ligne 0 0 0
    sdd en ligne 0 0 0
    sde online 0 0 0

    Erreurs:aucune erreur de données connue

    Après avoir remplacé /dev/sdb par /dev/sdf, l'erreur a disparu et nous pouvons toujours accéder au fichier de test que nous avons créé auparavant.

    # cat /poolz2/test.txt
    Test uniquement

    Jusqu'à cette étape, nous savons comment créer et configurer un zpool.

    Étape 5 - Créer et configurer le système de fichiers ZFS

    Dans l'étape suivante, nous apprendrons comment créer et configurer le système de fichiers ZFS.

    # liste zfs
    NOM     UTILISÉ  DISPONIBLE  REFER  POINT DE MONTAGE
    poolz2   105K  3.83G  26.1K  /poolz2

    Nous avons déjà un système de fichiers ZFS, celui-ci est automatiquement ajouté lorsque nous créons le zpool. Nous allons maintenant créer un autre système de fichiers ZFS.

    # zfs create poolz2/tank
    # zfs list
    NOM          UTILISÉ          UTILISÉ  DISPONIBLE        /poolz2/tank
    # df -h | grep poolz2
    poolz2          3.9G  128K  3.9G   1 % /poolz2
    poolz2/tank     3.9G  128K  3.9G   1% /poolz2/tank

    Très facile non ? Nous créons un nouveau système de fichiers ZFS appelé tank et le montons automatiquement en tant que /poolz2/tank.

    Comment créer un point de montage personnalisé pour un système de fichiers ZFS ? Utilisez la commande ci-dessous :

    # zfs create poolz2/data -o mountpoint=/data
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0 % /poolz2
    poolz2/tank     3.9G     0  3.9G   0 % /poolz2/tank
    poolz2/data     3.9G     0  3.9G   0 % /data

    Comment modifier le point de montage existant ? Nous pouvons le faire avec la commande ci-dessous :

    # zfs set mountpoint=/tank poolz2/tank
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0 % /poolz2
    poolz2/data     3.9G     0  3.9G   0 % /data
    poolz2/tank     3.9G     0  3.9G    0 % /tank

    Pour monter et démonter un système de fichiers, utilisez la commande ci-dessous :

    # zfs unmount /data
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0 % /poolz2
    poolz2/réservoir     3.9G     0  3.9G   0 % /réservoir
    # zfs mount poolz2/data
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0 % /poolz2
    poolz2/tank     3.9G     0  3.9G   0 % /tank
    poolz2/data     3.9G     0  3.9G   0 % /data

    Supprimer un système de fichiers zfs est très simple, nous pouvons utiliser la commande zfs destroy pour cela.

    # zfs destroy poolz2/data
    # zfs list
    NOM          UTILISÉ          UTILISÉ  DISPONIBLE       
    poolz2        152K  3,83 G  26,1K  /poolz2
    poolz2/tank  25,4K  3,83G  25,4K /réservoir

    Le système de fichiers /data a disparu.

    Conclusion

    Le système de fichiers ZFS est un nouveau système de fichiers révolutionnaire qui change fondamentalement la façon dont les systèmes de fichiers sont administrés sur les systèmes d'exploitation de type Unix. ZFS fournit des fonctionnalités et des avantages qui n'ont été trouvés dans aucun autre système de fichiers disponible aujourd'hui. ZFS est robuste, évolutif et facile à administrer.


    Debian
    1. Comment installer et configurer docker sur Debian 11

    2. Comment installer et configurer Mariadb 10 dans Debian 11

    3. Comment installer et configurer MongoDB 5 sur Debian 11

    4. Comment installer et configurer Redis 6 sur Debian 11

    5. Comment installer et configurer Node.js et npm dans Ubuntu, Debian ou Linux Mint

    Comment installer et configurer Monit sur Debian 9

    Comment installer et configurer vsftpd avec TLS sur Debian 8 (Jessie)

    Comment installer et configurer Nagios sous Linux

    Comment installer et configurer Git dans Debian 11

    Comment installer et configurer KVM sur Debian 11 Bullseye Linux

    Comment installer et configurer Apache sur Debian 11 ?