ZFS permet la mise en ligne ou hors ligne de périphériques. Lorsque le matériel n'est pas fiable ou fonctionne mal, ZFS continue de lire ou d'écrire les données dans le périphérique en partant du principe que le problème est temporaire. Dans le cas contraire, vous pouvez indiquer à ZFS d'ignorer le périphérique en le mettant hors ligne. Le système de fichiers ZFS n'envoie aucune demande à un périphérique déconnecté.
Il est inutile de mettre les périphériques hors ligne pour les remplacer.
Vous pouvez utiliser la commande zpool offline pour déconnecter temporairement le stockage. Par exemple, si vous devez déconnecter physiquement une baie d'un jeu de commutateurs Fibre Channel et la connecter à un autre jeu, vous pouvez mettre les LUN hors ligne dans la baie utilisée dans les pools de stockage ZFS. Une fois la baie reconnectée et opérationnelle sur le nouveau jeu de commutateurs, vous pouvez mettre les mêmes LUN en ligne. La resynchronisation des données ajoutées aux pools de stockage alors que les LUN étaient hors ligne s'effectue sur les LUN, une fois ceux-ci en ligne.
Ce scénario est possible si les systèmes en question ont accès au stockage une fois qu'il est connecté aux nouveaux commutateurs, éventuellement par le biais de contrôleurs différents, et si les pools sont définis en tant que configurations RAID-Z ou en miroir.
La commande zpool offline permet de mettre un périphérique hors ligne. Vous pouvez spécifier le périphérique via son chemin ou via son nom abrégé s'il s'agit d'un disque. Exemple :
# zpool offline tank c1t0d0 bringing device c1t0d0 offline |
Lors de la déconnexion d'un périphérique, veuillez prendre en compte les points suivants :
Vous ne pouvez pas mettre un périphérique hors ligne au point où il devient défaillant. Vous ne pouvez par exemple pas mettre hors ligne deux périphériques d'une configuration raid-z1, ni ne pouvez mettre hors ligne un périphérique virtuel de niveau supérieur.
# zpool offline tank c1t0d0 cannot offline c1t0d0: no valid replicas |
Par défaut, l'état OFFLINE est persistant. Le périphérique reste hors ligne lors du redémarrage du système.
Pour mettre un périphérique hors ligne temporairement, utilisez l'option -t de la commande zpool offline. Exemple :
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline |
En cas de réinitialisation du système, ce périphérique revient automatiquement à l'état ONLINE.
Lorsqu'un périphérique est mis hors ligne, il n'est pas séparé du pool de stockage. En cas de tentative d'utilisation du périphérique hors ligne dans un autre pool, même en cas de destruction du pool d'origine, un message similaire au suivant s'affiche :
device is part of exported or potentially active ZFS pool. Please see zpool(1M) |
Si vous souhaitez utiliser le périphérique hors ligne dans un autre pool de stockage après destruction du pool de stockage d'origine, remettez le périphérique en ligne puis détruisez le pool de stockage d'origine.
Une autre mode d'utilisation d'un périphérique provenant d'un autre pool de stockage si vous souhaitez conserver le pool de stockage d'origine consiste à remplacer le périphérique existant dans le pool de stockage d'origine par un autre périphérique similaire. Pour obtenir des informations sur le remplacement de périphériques, reportez-vous à la section Remplacement de périphériques dans un pool de stockage.
Les périphériques mis hors ligne s'affichent dans l'état OFFLINE en cas de requête de l'état de pool. Pour obtenir des informations sur les requêtes d'état de pool, reportez-vous à la section Requête d'état de pool de stockage ZFS.
Pour de plus amples informations sur la maintenance des périphériques, reportez-vous à la section Détermination de l'état de maintenance des pools de stockage ZFS.
Lorsqu'un périphérique est mis hors ligne, il peut être restauré grâce à la commande zpool online. Exemple :
# zpool online tank c1t0d0 bringing device c1t0d0 online |
Lorsqu'un périphérique est mis en ligne, toute donnée écrite dans le pool est resynchronisée sur le périphérique nouvellement disponible. Notez que vous ne pouvez pas utiliser la mise en ligne d'un périphérique pour remplacer un disque. Si vous mettez un périphérique hors ligne, le remplacez, puis tentez de le mettre en ligne, son état continue à indiquer qu'il est défaillant.
Si vous tentez de mettre un périphérique défaillant en ligne, un message similaire au suivant s'affiche :
# zpool online tank c1t0d0 warning: device 'c1t0d0' onlined, but remains in faulted state use 'zpool replace' to replace devices that are no longer present |
Vous pouvez également afficher les messages de disques erronés dans la console ou les messages enregistrés dans le fichier /var/adm/messages. Exemple :
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device. |
Pour obtenir des informations sur le remplacement d'un périphérique défaillant, reportez-vous à la section Réparation d'un périphérique manquant.
Vous pouvez utiliser la commande zpool online -e pour étendre un LUN. Par défaut, un LUN ajouté à un pool n'est pas étendu à sa taille maximale, à moins que la propriété autoexpand du pool ne soit activée. Vous pouvez étendre automatiquement le LUN en utilisant la commande zpool online -e, même si le LUN est déjà en ligne ou s'il est actuellement hors ligne. Exemple :
# zpool online -e tank c1t13d0 |