2 votes

Le pool ZFS est déréglé

Je suis en train de passer d'un raid mdadm classique à un pool zfs, et j'ai fait quelques faux pas dont j'essaie de me remettre.

A l'origine, j'avais deux disques de 4 To dans un miroir Raid 1.

J'ai ensuite mis deux nouveaux disques de 4 To dans la machine et déconnecté les originaux. J'ai créé un zpool avec les nouveaux disques dans un miroir, mais j'ai utilisé /dev/sda y /dev/sdb parce que c'est ce que le guide que j'utilisais m'a dit de faire, et je n'ai pas réfléchi.

Alors bien sûr, quand j'ai reconnecté les anciens disques pour copier les données, ils ont pris /dev/sdb y /dev/sdc ce qui a fait qu'un de mes deux disques zfs /dev/sdd ce qui, bien sûr, a perturbé le pool zfs et en a montré un en tant que UNAVAIL

Après avoir travaillé avec quelqu'un en ligne, j'ai réussi à obtenir le pool zfs en mode UUID en zpool export pool et ensuite zpool import -d /dev/disk/by-uuid pool

Cela m'a ensuite permis de détacher le UNAVAIL que j'ai ensuite nettoyé, puis réintroduit dans le zfs en tant que miroir du premier en utilisant ses /dev/disk/by-id . Après quelques jours, il s'est remis en marche avec succès.

Maintenant, j'ai un zpool avec un périphérique ayant un entier long comme identifiant, et un autre avec une chaîne de caractères du type ata-WDC_WD... . Je voulais qu'ils soient tous sur la même page, donc je prévoyais de détacher le premier disque avec l'identificateur entier, et de le réinsérer en utilisant son identificateur /dev/disk/by-id . Cependant, la tentative de détachement me donne l'erreur : cannot detach 13419994393693470939: only applicable to mirror and replacing vdevs .

Ok, donc j'ai essayé de le remplacer par un autre disque, et j'ai eu cette erreur : cannot open '13419994393693470939': name must begin with a letter

Pendant que la piscine fonctionne, j'aimerais que tout soit dans un état cohérent. I pourrait utiliser les deux anciens disques pour créer un nouveau pool et recopier les données, puis détruire l'ancien pool et ajouter ces disques au nouveau (ce qui m'oblige à renommer les pools, ce qui entraîne quelques interruptions de service entre-temps), mais j'espère qu'il existe un moyen de contourner ce problème que je n'ai pas trouvé.

2voto

Dan Points 330

Il suffit de réexécuter le processus que vous avez utilisé pour ré-identifier les disques la première fois :

  1. zpool export pool
  2. zpool import -d /dev/disk/by-id pool

Cela permettra d'unifier les lecteurs au by-id format. Vous pouvez utiliser by-uuid si vous préférez qu'il soit dans ce format.

Les deux erreurs que vous obtenez sont :

  • cannot detach : Ce détachement est refusé car ZFS pense qu'il n'y a pas d'autres répliques valides des données. Êtes-vous sûr d'avoir correctement configuré le pool dans un miroir ? Il est également possible que le CLI interprète mal l'erreur et vous donne un message d'erreur absurde ; peut-être que vous exécutez la commande avec le mauvais nom pour le lecteur par accident (voir le point suivant ci-dessous).
  • cannot open : Je ne peux pas vraiment dire à partir des informations que vous avez données, mais je soupçonne que vous devez donner le chemin d'accès complet à ce périphérique au lieu de simplement son UUID.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X