Vous pouvez rapidement cloner un pool de stockage ZFS mis en miroir en tant que pool de sauvegarde avec la commande zpool split.
Cette fonctionnalité ne peut actuellement pas être utilisée pour scinder un pool racine mis en miroir.
Vous pouvez utiliser la commande zpool split pour déconnecter les disques à partir d'un pool de stockage ZFS mis en miroir afin de créer un pool de stockage avec l'un des disques déconnectés. Le nouveau pool contiendra les mêmes données que le pool de stockage ZFS d'origine mis en miroir.
Par défaut, une opération zpool split sur un pool mis en miroir déconnecte le dernier disque du nouveau pool. Une fois l'opération de scission terminée, importez le nouveau pool. 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 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool split tank tank2 # zpool import tank2 # zpool status tank tank2 pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 errors: No known data errors pool: tank2 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank2 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors |
Vous pouvez identifier le disque à utiliser par le nouveau pool en le définissant avec la commande zpool split. Exemple :
# zpool split tank tank2 c1t0d0 |
Avant l'opération de scission, les données de la mémoire sont vidées vers les disques mis en miroir. Une fois les données vidées, le disque est déconnecté du pool et reçoit un nouveau GUID de pool. Un pool GUID est généré pour que le pool puisse être importé sur le même système que celui sur lequel il a été scindé.
Si le pool à scinder ne contient aucun point de montage de jeu de données par défaut et que le nouveau pool est créé sur le même système, vous devrez utiliser l'option zpool split -R pour identifier un autre répertoire racine pour le nouveau pool afin d'éviter tout conflit entre les points de montage existants le cas échéant. Exemple :
# zpool split -R /tank2 tank tank2 |
Si vous n'utilisez pas l'option zpool split -R et que des points de montage entrent en conflit lorsque vous tentez d'importer le nouveau pool, importez celui-ci à l'aide de l'option -R. Si le nouveau pool est créé sur un autre système, vous ne devez pas spécifier un autre répertoire racine, sauf en cas de conflits entre les points de montage.
Avant d'utiliser la fonctionnalité zpool split, veuillez prendre en compte les points suivants :
Cette fonction n'est pas disponible dans une configuration RAID-Z ou un pool non redondant composé de plusieurs disques.
Avant de tenter une opération zpool split, les opérations des données et des applications doivent être suspendues.
Si vous voulez que les disques effectuent les opérations demandées et qu'ils ne les ignorent pas, la commande de mise en cache des enregistrements de vidage des disques est importante.
Vous ne pouvez pas scinder un pool si une réargenture est en cours.
Lorsqu'un pool mis en miroir est composé de deux à trois disques dans lesquels le dernier disque du pool d'origine est utilisé pour le nouveau pool créé, la meilleure solution consiste à scinder le pool mis en miroir. Vous pouvez ensuite utiliser la commande zpool attach pour recréer votre pool de stockage d'origine mis en miroir ou convertir votre nouveau pool dans un pool de stockage mis en miroir. Il n'existe actuellement aucun moyen de créer un nouveau pool mis en miroir à partir d'un des pools mis en miroir existants en utilisant cette fonction.
Si le pool existant est un miroir tri-directionnel, le nouveau pool contiendra un disque après l'opération de scission. Si le pool existant est un miroir bi-directionnel composé de deux disques, cela donne deux pools non redondants composés de deux disques. Vous devez connecter deux disques supplémentaires pour convertir les pools non redondants en pools mis en miroir.
Pour conserver vos données redondantes lors d'une scission, scindez un pool de stockage mis en miroir composé de trois disques pour que le pool d'origine soit composé de deux disques après la scission.
Dans l'exemple suivant, un pool de stockage mis en miroir nommé trinity et contenant trois disques (c1t0d0, c1t2d0 et c1t3d0) est scindé. Les deux pools correspondants sont le pool mis en miroir trinity contenant les disques c1t0d0 et c1t2d0 et le nouveau pool neo contenant le disque c1t3d0. Chaque pool contient les mêmes données.
# zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors # zpool split trinity neo # zpool import neo # zpool status trinity neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors |