ZFS a combiné le gestionnaire de volumes et le système de fichiers avec plusieurs fonctionnalités avancées.
Ceci est la première partie d'une série d'articles sur ZFS.
Dans cet article, nous fournirons une introduction de haut niveau à ZFS, expliquerons comment installer ZFS sur Linux, créerons un pool ZFS et plusieurs commandes ZFS zpool.
1. Présentation de ZFS
Voici quelques-unes des fonctionnalités du système de fichiers ZFS :
- Protection contre la corruption des données
- Prise en charge de capacités de stockage élevées
- Compression efficace des données
- Prendre des instantanés du système de fichiers
- Clones de copie sur écriture
- Prise en charge RAID Z
- Vérification de l'intégrité
- Réparation et prise en charge automatiques de la liste de contrôle d'accès NFSV4 native
Il a été développé à l'origine par Sun Microsystems pour la plate-forme Solaris. En 2010, Oracle a acquis les microsystèmes Sun et a apporté de nombreuses améliorations au système de fichiers ZFS.
ZFS est récemment devenu populaire sur Linux car il est devenu plus stable.
Le port ZFS sur Linux est produit par le Lawrence Livermore National Laboratory (LLNL).
ZFS sur Linux est un module de noyau que vous pouvez télécharger, compiler et installer. Vous n'avez pas besoin de patcher ou de recompiler votre noyau.
Vous pouvez télécharger les packages source pour votre distribution de système d'exploitation respective à partir d'ici.
2. Installer ZFS sur Linux
Dans cet article, nous allons installer ZFS sur le serveur CentOS. Mais, les commandes zfs mentionnées ci-dessous sont les mêmes pour presque toutes les distributions sur les distributions Linux, à l'exception de la partie installation.
Exécutez les commandes yum suivantes pour installer ZFS sur Redhat / CentOS.
# yum localinstall --nogpgcheck https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm # yum install kernel-devel zfs
Veuillez vous assurer que toutes les dépendances sont respectées. L'une des dépendances où l'installation échoue normalement serait l'obligation d'installer le compilateur GCC. Dans ce cas, veuillez installer le compilateur GCC avant d'installer ZFS.
Assurez-vous que les modules ZFS sont chargés avec la commande lsmod comme indiqué ci-dessous :
# lsmod | grep zfs zfs 1188621 0 zcommon 45591 1 zfs znvpair 81046 2 zfs,zcommon zavl 6900 1 zfs zunicode 323051 1 zfs spl 264548 5 zfs,zcommon,znvpair,zavl,zunicode
Dans le même ordre d'idées, vous voudrez peut-être lire les bases de la création des modules de noyau chargeables Linux.
Nous avons ajouté quelques disques sur ce serveur (/dev/sdb à /dev/sdf) pour tester la fonctionnalité ZFS.
# ls -l /dev/sd* brw-rw----. 1 root disk 8, 0 Jul 15 15:52 /dev/sda brw-rw----. 1 root disk 8, 1 Jul 15 15:52 /dev/sda1 brw-rw----. 1 root disk 8, 2 Jul 15 15:52 /dev/sda2 brw-rw----. 1 root disk 8, 3 Jul 15 15:52 /dev/sda3 brw-rw----. 1 root disk 8, 16 Jul 16 10:57 /dev/sdb brw-rw----. 1 root disk 8, 32 Jul 16 10:57 /dev/sdc brw-rw----. 1 root disk 8, 48 Jul 16 10:58 /dev/sdd brw-rw----. 1 root disk 8, 64 Jul 16 11:27 /dev/sde brw-rw----. 1 root disk 8, 80 Jul 16 11:27 /dev/sdf
3. Créer un zpool
Commande Zpool utilisée pour configurer les pools de stockage dans ZFS. Le pool de stockage est un ensemble de périphériques qui fournit le stockage physique et la réplication des données pour les ensembles de données zfs.
Ce qui suit crée un zpool.
# zpool create -f mypool raidz sdb sdc sdd sde sdf
Dans l'exemple ci-dessus :
- create représente la création d'un nouveau pool.
- L'option -f consiste à ignorer les étiquettes de partition de disque puisqu'il s'agit de nouveaux disques
- raidz est le niveau raid. RAIDZ n'est rien d'autre que la variante de RAID-5 qui permet une meilleure répartition de la parité et élimine le trou d'écriture "RAID-5" (incohérence des données et de la parité après une coupure de courant).
- Un groupe raidz peut avoir une parité simple, double ou tribale, ce qui signifie qu'il peut subir respectivement une, deux ou trois pannes sans perdre de données. Les données et la parité sont réparties sur tous les disques d'un groupe raidz.
Ensuite, vérifiez l'état du zpool que nous venons de créer.
# zpool status pool: mypool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 sde ONLINE 0 0 0 sdf ONLINE 0 0 0 errors: No known data errors
Une fois le pool créé, si vous faites df –h, vous verrez que le pool nouvellement créé est monté automatiquement sur le mountpount.
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vglocal-rootlv 14G 2.4G 11G 18% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 504M 46M 433M 10% /boot mypool 3.9G 0 3.9G 0% /mypool
4. Créer un pool en miroir
Pour créer un pool en miroir, utilisez la commande zpool create avec les options suivantes.
Si l'un des disques du groupe miroir particulier est défaillant, l'autre disque contient toujours les données. Dès que le disque défaillant est remplacé, le contenu est mis en miroir (également appelé réargenture) sur le disque nouvellement remplacé.
# zpool create -f mypool mirror sdb sdc mirror sdd sde
Ensuite, vérifiez l'état du zpool en miroir que nous venons de créer :
# zpool status -v pool: mypool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 sdd ONLINE 0 0 0 sde ONLINE 0 0 0 errors: No known data errors
5. Importation et exportation de Zpool
Dans certains cas, vous devrez peut-être migrer des pools zfs entre des systèmes.
ZFS rend cela possible en exportant un pool d'un système et en l'important vers un autre système.
Pour exporter n'importe quel pool, utilisez la commande zpool export et la commande zpool import est utilisée pour importer le pool comme indiqué dans l'exemple suivant :
# zpool export mypool # zpool import mypool
6. Afficher les statistiques d'E/S du pool ZFS
Pour afficher les statistiques d'E/S de zpool, utilisez la commande zpool iostat comme indiqué ci-dessous :
# zpool iostat -v mypool capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- mypool 147K 4.95G 0 0 33 252 mirror 54K 3.97G 0 0 10 84 sdb - - 0 0 536 612 sdc - - 0 0 282 612 mirror 93K 1008M 0 0 23 168 sdd - - 0 0 288 696 sde - - 0 0 294 696 ---------- ----- ----- ----- ----- ----- -----
7. Supprimer un pool ZFS
Pour détruire un pool, utilisez la commande zpool destroy comme indiqué ci-dessous :
# zpool destroy mypool
8. Remplacer le disque corrompu dans le pool ZFS
Pour remplacer un disque, après une panne ou une corruption, utilisez la commande suivante :
# zpool replace mypool sde sdf
9. Étendre le pool ZFS avec un nouveau disque
Pour étendre le zpool en ajoutant un nouveau disque, utilisez la commande zpool comme indiqué ci-dessous :
# zpool add -f mypool sde
10. Ajouter un disque de secours au pool ZFS
Vous pouvez également ajouter un disque de secours au pool zfs à l'aide de la commande ci-dessous, en ajoutant un périphérique de secours à un pool zfs.
Les disques défaillants sont automatiquement remplacés par le périphérique de secours et l'administrateur peut remplacer les disques défaillants ultérieurement.
Veuillez noter que vous pouvez également partager le périphérique de secours entre plusieurs pools ZFS.
# zpool add -f mypool spare sde
Dans la prochaine partie de l'article, nous expliquerons comment utiliser les pools ZFS pour créer un système de fichiers ZFS, monter le système de fichiers ZFS et le manipuler à partir de la ligne de commande.