Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris : Systèmes de fichiers ZFS Oracle Solaris 11 Information Library (Français) |
1. Système de fichiers Oracle Solaris ZFS (introduction)
2. Mise en route d'Oracle Solaris ZFS
3. Différences entre les systèmes de fichiers Oracle Solaris ZFS et classiques
4. Gestion des pools de stockage Oracle Solaris ZFS
Composants d'un pool de stockage ZFS
Utilisation de disques dans un pool de stockage ZFS
Utilisation de tranches dans un pool de stockage ZFS
Utilisation de fichiers dans un pool de stockage ZFS
Remarques relatives aux pools de stockage ZFS
Fonctions de réplication d'un pool de stockage ZFS
Configuration de pool de stockage mis en miroir
Configuration de pool de stockage RAID-Z
Données d'autorétablissement dans une configuration redondante
Entrelacement dynamique dans un pool de stockage
Création et destruction de pools de stockage ZFS
Création de pools de stockage ZFS
Création d'un pool de stockage de base
Création d'un pool de stockage mis en miroir
Création d'un pool de stockage RAID-Z
Création d'un pool de stockage ZFS avec des périphériques de journalisation
Création d'un pool de stockage ZFS avec des périphériques de cache
Précautions pour la création de pools de stockage
Affichage des informations d'un périphérique virtuel de pool de stockage
Gestion d'erreurs de création de pools de stockage ZFS
Détection des périphériques utilisés
Niveaux de réplication incohérents
Réalisation d'un test à la création d'un pool de stockage
Point de montage par défaut pour les pools de stockage
Gestion de périphériques dans un pool de stockage ZFS
Ajout de périphériques à un pool de stockage
Connexion et séparation de périphériques dans un pool de stockage
Création d'un pool par scission d'un pool de stockage ZFS mis en miroir
Mise en ligne et mise hors ligne de périphériques dans un pool de stockage
Mise hors ligne d'un périphérique
Mise en ligne d'un périphérique
Effacement des erreurs de périphérique de pool de stockage
Remplacement de périphériques dans un pool de stockage
Désignation des disques hot spare dans le pool de stockage
Activation et désactivation de disque hot spare dans le pool de stockage
Gestion des propriétés de pool de stockage ZFS
Requête d'état de pool de stockage ZFS
Affichage des informations des pools de stockage ZFS
Affichage des informations concernant tous les pools de stockage ou un pool spécifique
Affichage des périphériques de pool par emplacement physique
Affichage de statistiques spécifiques à un pool de stockage
Script de sortie du pool de stockage ZFS
Affichage de l'historique des commandes du pool de stockage ZFS
Visualisation des statistiques d'E/S des pools de stockage ZFS
Liste des statistiques d'E/S à l'échelle du pool
Liste des statistiques d'E/S des périphériques virtuels
Détermination de l'état de maintenance des pools de stockage ZFS
Etat de maintenance de base de pool de stockage
Collecte des informations sur l'état du pool de stockage ZFS
Migration de pools de stockage ZFS
Préparatifs de migration de pool de stockage ZFS
Exportation d'un pool de stockage ZFS
Définition des pools de stockage disponibles pour importation
Importation de pools de stockage ZFS à partir d'autres répertoires
Importation de pools de stockage ZFS
Importation d'un pool avec un périphérique de journalisation manquant
Importation d'un pool en mode lecture seule
Importation d'un pool via le chemin d'accès au périphérique
Récupération de pools de stockage ZFS détruits
Mise à niveau de pools de stockage ZFS
5. Gestion des composants du pool racine ZFS
6. Gestion des systèmes de fichiers Oracle Solaris ZFS
7. Utilisation des instantanés et des clones ZFS Oracle Solaris
8. Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS
9. Administration déléguée de ZFS dans Oracle Solaris
10. Rubriques avancées Oracle Solaris ZFS
11. Dépannage d'Oracle Solaris ZFS et récupération de pool
12. Archivage des instantanés et récupération du pool racine
13. Pratiques recommandées pour Oracle Solaris ZFS
Les sections suivantes illustrent différents scénarios de création et de destruction de pools de stockage ZFS :
La création et la destruction de pools est rapide et facile. Cependant, ces opérations doivent être réalisées avec prudence. Des vérifications sont effectuées pour éviter une utilisation de périphériques déjà utilisés dans un nouveau pool, mais ZFS n'est pas systématiquement en mesure de savoir si un périphérique est déjà en cours d'utilisation. Il est plus facile de détruire un pool que d'en créer un. Utilisez la commande zpool destroy avec précaution. L'exécution de cette commande simple a des conséquences considérables.
Pour créer un pool de stockage, exécutez la commande zpool create. Cette commande prend un nom de pool et un nombre illimité de périphériques virtuels en tant qu'arguments. Le nom de pool doit se conformer aux conventions d'attribution de noms décrites à la section Exigences d'attribution de noms de composants ZFS.
La commande suivante crée un pool appelé tank et composé des disques c1t0d0 et c1t1d0:
# zpool create tank c1t0d0 c1t1d0
Ces noms de périphériques représentant les disques entiers se trouvent dans le répertoire /dev/dsk et ont été étiquetés de façon adéquate par ZFS afin de contenir une tranche unique de grande taille. Les données sont entrelacées de façon dynamique sur les deux disques.
Pour créer un pool mis en miroir, utilisez le mot-clé mirror suivi du nombre de périphériques de stockage que doit contenir le miroir. Pour spécifier plusieurs miroirs, répétez le mot-clé mirror dans la ligne de commande. La commande suivante crée un pool avec deux miroirs bidirectionnels :
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
Le second mot-clé mirror indique qu'un nouveau périphérique virtuel de niveau supérieur est spécifié. Les données sont dynamiquement entrelacées sur les deux miroirs, ce qui les rend redondantes sur chaque disque.
Pour plus d'informations sur les configurations en miroir recommandées, reportez-vous au Chapitre 13, Pratiques recommandées pour Oracle Solaris ZFS.
Actuellement, les opérations suivantes sont prises en charge dans une configuration ZFS en miroir :
Ajout d'un autre jeu de disques comme périphérique virtuel (vdev) supplémentaire de niveau supérieur à une configuration en miroir existante. Pour plus d'informations, reportez-vous à la rubrique Ajout de périphériques à un pool de stockage.
Connexion de disques supplémentaires à une configuration en miroir existante ou connexion de disques supplémentaires à une configuration non répliquée pour créer une configuration en miroir. Pour plus d'informations, reportez-vous à la section Connexion et séparation de périphériques dans un pool de stockage .
Remplacement d'un ou de plusieurs disques dans une configuration en miroir existante, à condition que les disques de remplacement soient d'une taille supérieure ou égale à celle du périphérique remplacé. Pour plus d'informations, reportez-vous à la section Remplacement de périphériques dans un pool de stockage.
Retrait d'un ou de plusieurs disques dans une configuration en miroir, à condition que les périphériques restants procurent la redondance qui convient à la configuration. Pour plus d'informations, reportez-vous à la section Connexion et séparation de périphériques dans un pool de stockage .
Scission d'une configuration mise en miroir en déconnectant l'un des disques en vue de créer un nouveau pool identique. Pour plus d'informations, reportez-vous à la section Création d'un pool par scission d'un pool de stockage ZFS mis en miroir.
Vous ne pouvez pas forcer la suppression d'un périphérique qui n'est pas un périphérique de rechange, un périphérique de journalisation ou un périphérique de cache d'un pool de stockage mis en miroir.
Tenez compte des exigences suivantes applicables à la configuration du pool racine :
Les disques utilisés pour le pool racine doivent avoir une étiquette VTOC (SMI) et le pool doit être créé avec des tranches de disque.
Le pool racine doit être créé sous la forme d'une configuration en miroir ou d'une configuration à disque unique. Vous ne pouvez pas ajouter d'autres disques mis en miroir pour créer plusieurs périphériques virtuels de niveau supérieur à l'aide de la commande zpool add. Toutefois, vous pouvez étendre un périphérique virtuel mis en miroir à l'aide de la commande zpool attach.
Les configurations RAID-Z ou entrelacées ne sont pas prises en charge.
Un pool racine ne peut pas avoir de périphérique de journalisation distinct.
Si vous tentez d'utiliser une configuration non prise en charge pour un pool racine, un message tel que le suivant s'affiche :
ERROR: ZFS pool <pool-name> does not support boot environments
# zpool add -f rpool log c0t6d0s0 cannot add to 'rpool': root pool can not have multiple vdevs or separate logs
Pour plus d'informations sur l'installation et l'initialisation d'un système de fichiers racine ZFS, reportez-vous au Chapitre 5, Gestion des composants du pool racine ZFS .
La création d'un pool RAID-Z à parité simple est identique à celle d'un pool mis en miroir, à la seule différence que le mot-clé raidz ou raidz1 est utilisé à la place du mot-clé mirror. Les exemples suivants illustrent la création d'un pool avec un périphérique RAID-Z unique composé de cinq disques :
# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0
Cet exemple montre que les disques peuvent être spécifiés à l'aide de leurs noms de périphérique abrégés ou complets. Les deux éléments /dev/dsk/c5t0d0 et c5t0d0 font référence au même disque.
Vous pouvez créer une configuration RAID-Z à double ou à triple parité à l'aide du mot-clé raidz2 ou raidz3 lors de la création du pool. Par exemple :
# zpool create tank raidz2 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz2-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 errors: No known data errors
# zpool create tank raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 c8t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz3-0 ONLINE 0 0 0 c0t0d0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c6t0d0 ONLINE 0 0 0 c7t0d0 ONLINE 0 0 0 c8t0d0 ONLINE 0 0 0 errors: No known data errors
Actuellement, les opérations suivantes sont prises en charge dans une configuration RAID-Z ZFS :
Ajout d'un autre jeu de disques comme périphérique virtuel (vdev) supplémentaire de niveau supérieur à une configuration RAID-Z existante. Pour plus d'informations, reportez-vous à la rubrique Ajout de périphériques à un pool de stockage.
Remplacement d'un ou de plusieurs disques dans une configuration RAID-Z existante, à condition que les disques de remplacement soient d'une taille supérieure ou égale au celle du périphérique remplacé. Pour plus d'informations, reportez-vous à la section Remplacement de périphériques dans un pool de stockage.
Actuellement, les opérations suivantes ne sont pas prises en charge dans une configuration RAID-Z :
Connexion d'un disque supplémentaire à une configuration RAID-Z existante.
Déconnexion d'un disque d'une configuration RAID-Z, sauf lorsque vous déconnectez un disque qui est remplacé par un disque de rechange ou lorsque vous avez besoin de déconnecter un disque de rechange.
Vous ne pouvez pas forcer la suppression d'un périphérique qui n'est pas un périphérique de journalisation ni de cache à partir d'une configuration RAID-Z. Cette fonction fait l'objet d'une demande d'amélioration.
Pour obtenir des informations supplémentaire, reportez-vous à la section Configuration de pool de stockage RAID-Z.
Le journal d'intention ZFS (ZIL) permet de répondre aux exigences de la norme POSIX dans le cadre de transactions synchronisées. Par exemple, les transactions de base de données doivent souvent se trouver sur des périphériques de stockage stables lorsqu'elles sont obtenues à partir d'un appel système. NFS et d'autres applications peuvent également utiliser fsync() pour assurer la stabilité des données.
Par défaut, le ZIL est attribué à partir de blocs dans le pool principal. Il est cependant possible d'obtenir de meilleures performances en utilisant des périphériques de journalisation d'intention distincts, notamment une NVRAM ou un disque dédié.
Considérez les points suivants pour déterminer si la configuration d'un périphérique de journalisation ZFS convient à votre environnement :
Les périphériques de journalisation du ZIL ne sont pas liés aux fichiers journaux de base de données.
Toute amélioration des performances observée suite à l'implémentation d'un périphérique de journalisation distinct dépend du type de périphérique, de la configuration matérielle du pool et de la charge de travail de l'application. Pour des informations préliminaires sur les performances, consultez le blog suivant :
http://blogs.oracle.com/perrin/entry/slog_blog_or_blogging_on
Les périphériques de journalisation peuvent être mis en miroir et leur réplication peut être annulée, mais RAID-Z n'est pas pris en charge pour les périphériques de journalisation.
Si un périphérique de journalisation distinct n'est pas mis en miroir et que le périphérique contenant le journal échoue, le stockage des blocs de journal retourne sur le pool de stockage.
Les périphériques de journalisation peuvent être ajoutés, remplacés, connectés, déconnectés, importés et exportés en tant que partie du pool de stockage.
Vous pouvez connecter un périphérique de journalisation à un périphérique de journalisation existant afin de créer un périphérique mis en miroir. Cette opération est similaire à la connexion d'un périphérique à un pool de stockage qui n'est pas mis en miroir.
La taille minimale d'un périphérique de journalisation correspond à la taille minimale de chaque périphérique d'un pool, à savoir 64 Mo. La quantité de données en jeu pouvant être stockée sur un périphérique de journalisation est relativement petite. Les blocs de journal sont libérés lorsque la transaction du journal (appel système) est validée.
La taille maximale d'un périphérique de journalisation doit être approximativement égale à la moitié de la taille de la mémoire physique car il s'agit de la quantité maximale de données en jeu potentielles pouvant être stockée. Si un système dispose par exemple de 16 Go de mémoire physique, considérez une taille maximale de périphérique de journalisation de 8 Go.
Vous pouvez installer un périphérique de journalisation ZFS au moment de la création du pool de stockage ou après sa création.
L'exemple suivant explique comment créer un pool de stockage mis en miroir contenant des périphériques de journalisation mis en miroir :
# zpool create datap mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 log mirror c1t5d0 c1t8d0 # zpool status datap pool: datap state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM datap ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 c1t5d0 ONLINE 0 0 0 c1t8d0 ONLINE 0 0 0 errors: No known data errors
Pour plus d'informations sur la récupération suite à une défaillance de périphérique de journalisation, reportez-vous à l'Exemple 11-2.
Les périphériques de cache fournissent une couche de mise en cache supplémentaire entre la mémoire principale et le disque. L'utilisation de périphériques de cache constitue la meilleure amélioration de performances pour les charges de travail de lecture aléatoire constituées principalement de contenu statique.
Vous pouvez créer un pool de stockage avec des périphériques de cache afin de mettre en cache des données de pool de stockage. Par exemple :
# zpool create tank mirror c2t0d0 c2t1d0 c2t3d0 cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 cache c2t5d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 errors: No known data errors
Une fois les périphériques de cache ajoutés, ils se remplissent progressivement de contenu provenant de la mémoire principale. En fonction de la taille du périphérique de cache, le remplissage peut prendre plus d'une heure. La capacité et les lectures sont contrôlables à l'aide de la commande zpool iostat comme indiqué ci-dessous :
# zpool iostat -v pool 5
Une fois le pool créé, vous pouvez y ajouter des périphériques de cache ou les en supprimer.
Tenez compte des points suivants lorsque vous envisagez de créer un pool de stockage ZFS avec des périphériques de cache :
L'utilisation de périphériques de cache constitue la meilleure amélioration de performances pour les charges de travail de lecture aléatoire constituées principalement de contenu statique.
La capacité et les lectures sont contrôlables à l'aide de la commande zpool iostat.
Lors de la création du pool, vous pouvez ajouter un ou plusieurs caches. Ils peuvent également être ajoutés ou supprimés après la création du pool. Pour plus d'informations, reportez-vous à l'Exemple 4-4.
Les périphériques de cache ne peuvent pas être mis en miroir ou faire partie d'une configuration RAID-Z.
Si une erreur de lecture est détectée sur un périphérique de cache, cette E/S de lecture est à nouveau exécutée sur le périphérique de pool de stockage d'origine, qui peut faire partie d'une configuration RAID-Z ou en miroir. Le contenu des périphériques de cache est considéré comme volatile, comme les autres caches système.
Tenez compte des mises en garde suivantes lors de la création et de la gestion de pools de stockage ZFS.
Ne repartitionnez ou ne réétiquetez pas des disques qui font partie d'un pool de stockage existant. Si vous tentez de repartitionner ou de réétiqueter un disque de pool racine, vous devrez peut-être réinstaller le système d'exploitation.
Ne créez pas de pool de stockage contenant des composants d'un autre pool de stockage, tels que des fichiers ou des volumes. Des interblocages peuvent se produire dans cette configuration non prise en charge.
Un pool créé avec une tranche unique ou un disque unique n'a aucune redondance et risque de perdre des données. Un pool créé avec plusieurs tranches mais sans redondance risque également de perdre des données. Un pool créé avec plusieurs tranches réparties sur plusieurs disques est plus difficile à gérer qu'un pool créé avec des disques entiers.
Un pool créé sans redondance ZFS (RAIDZ ou miroir) peut uniquement signaler les incohérences de données. Il ne peut pas réparer les incohérences de données.
Bien qu'un pool créé avec redondance ZFS permette de réduire le temps d'inactivité dû à des pannes matérielles, il n'est pas à l'abri de pannes matérielles, de pannes de courant ou de déconnexions de câbles. Veillez à sauvegarder régulièrement vos données. Il est important d'effectuer des sauvegardes de routine des données de pools si le matériel n'est pas de niveau professionnel.
Un pool ne peut pas être partagé par différents systèmes. ZFS n'est pas un système de fichiers de cluster.
Chaque pool de stockage contient un ou plusieurs périphériques virtuels. Un périphérique virtuel est une représentation interne du pool de stockage qui décrit la disposition du stockage physique et les caractéristiques par défaut du pool de stockage. Ainsi, un périphérique virtuel représente les périphériques de disque ou les fichiers utilisés pour créer le pool de stockage. Un pool peut contenir un nombre quelconque de périphériques virtuels dans le niveau supérieur de la configuration. Ces périphériques sont appelés top-level vdev.
Si le périphérique virtuel de niveau supérieur contient deux ou plusieurs périphériques physiques, la configuration assure la redondance des données en tant que périphériques virtuels RAID-Z ou miroir. Ces périphériques virtuels se composent de disques, de tranches de disques ou de fichiers. Un disque de rechange (spare) est un périphérique virtuel spécial qui effectue le suivi des disques hot spare disponibles d'un pool.
L'exemple suivant illustre la création d'un pool composé de deux périphériques virtuels de niveau supérieur, chacun étant un miroir de deux disques :
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
L'exemple suivant illustre la création d'un pool composé d'un périphérique virtuel de niveau supérieur comportant quatre disques :
# zpool create mypool raidz2 c1d0 c2d0 c3d0 c4d0
Vous pouvez ajouter un autre périphérique virtuel de niveau supérieur à ce pool en utilisant la commande zpool add. Par exemple :
# zpool add mypool raidz2 c2d1 c3d1 c4d1 c5d1
Les disques, tranches de disque ou fichiers utilisés dans des pools non redondants fonctionnent en tant que périphériques virtuels de niveau supérieur. Les pools de stockage contiennent en règle générale plusieurs périphériques virtuels de niveau supérieur. ZFS entrelace automatiquement les données entre l'ensemble des périphériques virtuels de niveau supérieur dans un pool.
Les périphériques virtuels et les périphériques physiques contenus dans un pool de stockage ZFS s'affichent avec la commande zpool status. Par exemple :
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors
Les erreurs de création de pool peuvent se produire pour de nombreuses raisons. Certaines raisons sont évidentes, par exemple lorsqu'un périphérique spécifié n'existe pas, mais d'autres le sont moins.
Avant de formater un périphérique, ZFS vérifie que le disque n'est pas utilisé par ZFS ou une autre partie du système d'exploitation. Si le disque est en cours d'utilisation, les erreurs suivantes peuvent se produire :
# zpool create tank c1t0d0 c1t1d0 invalid vdev specification use '-f' to override the following errors: /dev/dsk/c1t0d0s0 is currently mounted on /. Please see umount(1M). /dev/dsk/c1t0d0s1 is currently mounted on swap. Please see swap(1M). /dev/dsk/c1t1d0s0 is part of active ZFS pool zeepool. Please see zpool(1M).
Certaines erreurs peuvent être ignorées à l'aide de l'option -f, mais pas toutes. Les conditions suivantes ne peuvent pas à être ignorées via l'option - f et doivent être corrigées manuellement :
Le disque ou une de ses tranches contient un système de fichiers actuellement monté. La commande umount permet de corriger cette erreur.
Le disque contient un système de fichiers répertorié dans le fichier /etc/vfstab, mais le système de fichiers n'est pas monté. Pour corriger cette erreur, supprimez ou commentez la ligne dans le fichier /etc/vfstab.
Le disque est utilisé en tant que périphérique de vidage dédié pour le système. La commande dumpadm permet de corriger cette erreur.
Le disque ou fichier fait partie d'un pool de stockage ZFS. Pour corriger cette erreur, utilisez la commande zpool destroy afin de détruire l'autre pool s'il est obsolète. Utilisez sinon la commande zpool detach pour déconnecter le disque de l'autre pool. Vous pouvez déconnecter un disque que s'il est connecté à un pool de stockage mis en miroir.
Les vérifications en cours d'utilisation suivantes constituent des avertissements. Pour les ignorer, appliquez l'option -f afin de créer le pool :
Le disque contient un système de fichiers connu bien qu'il ne soir pas monté et n'apparaisse pas comme étant en cours d'utilisation.
Le disque fait partie d'un volume Solaris Volume Manager.
Le disque fait partie d'un pool de stockage exporté ou supprimé manuellement d'un système. Dans le deuxième cas, le pool est signalé comme étant potentiellement actif, dans la mesure où il peut s'agir d'un disque connecté au réseau en cours d'utilisation par un autre système. Faites attention lorsque vous ignorez un pool potentiellement activé.
L'exemple suivant illustre l'utilisation de l'option -f :
# zpool create tank c1t0d0 invalid vdev specification use '-f' to override the following errors: /dev/dsk/c1t0d0s0 contains a ufs filesystem. # zpool create -f tank c1t0d0
Si possible, corrigez les erreurs au lieu d'utiliser l'option -f pour les ignorer.
Il est déconseillé de créer des pools avec des périphériques virtuels de niveau de réplication différents. La commande zpool tente de vous empêcher de créer par inadvertance un pool comprenant des niveaux de redondance différents. Si vous tentez de créer un pool avec un telle configuration, les erreurs suivantes s'affichent :
# zpool create tank c1t0d0 mirror c2t0d0 c3t0d0 invalid vdev specification use '-f' to override the following errors: mismatched replication level: both disk and mirror vdevs are present # zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 c5t0d0 invalid vdev specification use '-f' to override the following errors: mismatched replication level: 2-way mirror and 3-way mirror vdevs are present
Vous pouvez ignorer ces erreurs avec l'option -f. Toutefois, cette pratique est déconseillée. La commande affiche également un avertissement relatif à la création d'un pool RAID-Z ou mis en miroir à l'aide de périphériques de tailles différentes. Même si cette configuration est autorisée, les niveaux de redondance sont incohérents. Par conséquent, l'espace disque du périphérique de plus grande taille n'est pas utilisé. Vous devez spécifier l'option -f pour ignorer l'avertissement.
Les tentatives de création d'un pool peuvent échouer soudainement de plusieurs façons ; vous pouvez formater les disques, mais cela peut avoir des conséquences négatives. C'est pourquoi la commande zpool create dispose d'une option supplémentaire, à savoir l'option -n, qui simule la création du pool sans écrire les données sur le périphérique. Cette option de test vérifie le périphérique en cours d'utilisation et valide le niveau de réplication, puis répertorie les erreurs survenues au cours du processus. Si aucune erreur n'est détectée, la sortie est similaire à la suivante :
# zpool create -n tank mirror c1t0d0 c1t1d0 would create 'tank' with the following layout: tank mirror c1t0d0 c1t1d0
Certaines erreurs sont impossibles à détecter sans création effective du pool. L'exemple le plus courant consiste à spécifier le même périphérique deux fois dans la même configuration. Cette erreur ne peut pas être détectée de façon fiable sans l'enregistrement effectif des données. Par conséquent, la commande zpool create -n peut indiquer que l'opération a réussi sans pour autant parvenir à créer le pool, lors de son exécution sans cette option.
Lors de la création d'un pool, le point de montage par défaut du système de fichiers de niveau supérieur est /pool-name . Le répertoire doit être inexistant ou vide. Le répertoire est créé automatiquement s'il n'existe pas. Si le répertoire est vide, le système de fichiers racine est monté sur le répertoire existant. Pour créer un pool avec un point de montage par défaut différent, utilisez l'option - m de la commande zpool create : Par exemple :
# zpool create home c1t0d0 default mountpoint '/home' exists and is not empty use '-m' option to provide a different default # zpool create -m /export/zfs home c1t0d0
Cette commande crée le pool home et le système de fichiers home avec le point de montage /export/zfs.
Pour de plus amples informations sur les points de montage, reportez-vous à la section Gestion des points de montage ZFS.
La commande zpool destroy permet de détruire les pools. Cette commande détruit le pool même s'il contient des jeux de données montés.
# zpool destroy tank
Attention - Faites très attention lorsque vous détruisez un pool. Assurez-vous de détruire le pool souhaité et de toujours disposer de copies de vos données. En cas de destruction accidentelle d'un pool, vous pouvez tenter de le récupérer. Pour obtenir des informations supplémentaires, reportez-vous à la section Récupération de pools de stockage ZFS détruits. |
Si vous détruisez un pool à l'aide de la commande zpool destroy, le pool reste disponible pour l'importation, comme décrit dans la section Récupération de pools de stockage ZFS détruits. Cela signifie que des données confidentielles peuvent subsister sur les disques qui faisaient partie du pool. Si vous souhaitez détruire les données placées sur les disques du pool détruit, vous devez utiliser une fonctionnalité telle que l'option analyze->purge de l'utilitaire format sur tous les disques du pool détruit.
Une autre possibilité pour préserver la confidentialité de données de systèmes de fichiers est de créer des systèmes de fichiers ZFS chiffrés. Lorsqu'un pool contenant un système de fichiers chiffré est détruit, les données ne sont pas accessibles sans les clés de chiffrement, même si le pool détruit est récupéré. Pour plus d'informations, reportez-vous à la section Chiffrement des systèmes de fichiers ZFS.
La destruction d'un pool requiert l'écriture des données sur le disque pour indiquer que le pool n'est désormais plus valide. Ces informations d'état évitent que les périphériques ne s'affichent en tant que pool potentiel lorsque vous effectuez une importation. La destruction du pool est tout de même possible si un ou plusieurs périphériques ne sont pas disponibles. Cependant, les informations d'état requises ne sont pas écrites sur ces périphériques indisponibles.
Ces périphériques, lorsqu'ils sont correctement réparés, sont signalés comme potentiellement actifs, lors de la création d'un pool. Lorsque vous recherchez des pools à importer, ils s'affichent en tant que périphériques valides. Si un pool a tant de périphérique défaillants que le pool lui-même est défaillant (en d'autres termes, un périphérique virtuel de niveau supérieur est défaillant), alors la commande émet un avertissement et ne peut pas s'exécuter sans l'option -f. Cette option est requise car l'ouverture du pool est impossible et il est impossible de savoir si des données y sont stockées. Par exemple :
# zpool destroy tank cannot destroy 'tank': pool is faulted use '-f' to force destruction anyway # zpool destroy -f tank
Pour de plus amples informations sur les pools et la maintenance des périphériques, reportez-vous à la section Détermination de l'état de maintenance des pools de stockage ZFS.
Pour de plus amples informations sur l'importation de pools, reportez-vous à la section Importation de pools de stockage ZFS.