Guide d'administration Oracle Solaris ZFS

Gestion d'erreurs de création de pools de stockage ZFS

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.

Détection des périphériques utilisés

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 :

Système de fichiers monté

Le disque ou une de ses tranches contient un système de fichiers actuellement monté. La commande umount permet de corriger cette erreur.

Système de fichiers dans /etc/vfstab

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.

Périphérique de vidage dédié

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.

Elément d'un pool ZFS

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 :

Contient un système de fichiers

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.

Elément d'un volume

Le disque fait partie d'un volume Solaris Volume Manager.

Live upgrade

Le disque est en cours d'utilisation en tant qu'environnement d'initialisation de remplacement pour Oracle Solaris Live Upgrade.

Elément d'un pool ZFS exporté

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.

Niveaux de réplication incohérents

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.

Réalisation d'un test à la création d'un pool de stockage

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.

Point de montage par défaut pour les pools de stockage

Lors de la création d'un pool, le point de montage par défaut du jeu de données 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 jeu de données 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 jeu de données 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.