[FreeNAS]Changement de Pool (Party)

Hello les gens, j’ai un serveur sous TrueNAS avec la config disque suivante :

  • 2 Ironwolf de 8 To en RAID 1 avec:
    • 5 datasets de données diverses
  • 1 Seagate de 4 To avec:
    • Le dataset SystemApps
  • 1 Toshiba de 5 To avec:
    • Le dataset Apps
    • 3 datasets de données diverses

Le but est de racheter des disques pour avoir plus de place et être future-proof. Si les prix changent pas trop d’ici la fin d’année, je prendrai 2x14 To. L’idée sera donc d’avoir 2 RAID1 de respectivement 8 et 14 To.

La question est : comment passer de 2x8 +4 +5 à 2x8 + 2x14? Voilà ce que j’envisage:

  1. Fusionner les HDD de 4 et 5 To dans un RAID1 de 4To : oui je sais que je vais perdre 1To vu que la taille exploitable du RAID1 va se calquer sur le disque de plus petite taille, c’est temporaire et c’est pas grave (j’ai actuellement suffisamment d’espace dispo pour que ça ne soit pas un problème). Du coup on va appeler ce RAID Jpop. Tandis que le RAID1 existant en 2x8 on va l’appeler Kpop :ninja:
  2. Enlever un disque de Kpop, le remplacer par un 14
  3. Laisser le NAS recréer Kpop. Là on est en 14+8.
  4. Enlever le deuxième disque de 8 To de Kpop et le remplacer par l’autre 14To.
  5. Laisser le NAS recréer Kpop. Là on est bien dans sa forme finale de 2x14.
  6. Enlever le disque de 5To de Jpop et le remplacer par un 8To.
  7. Laisser le NAS recréer Jpop. Là on est en 4+8.
  8. Enlever le disque de 4To de Jpop et le remplacer par un 8To.
  9. Laisser le NAS recréer Jpop. Là on est bien dans sa forme finale de 2x8.

Est-ce que cette procédure vous paraît OK? Ou bien il vaut mieux préférer un big bang en essayant de remplacer deux disques à la fois pour créer directement le nouveau RAID1 quitte à sauvegarder temporairement les données ailleurs?

Si on on part sur ma procédure, en fait j’ai plein de questions sur comment fusionner les deux disques (de 4 et 5 To) proprement, ce qui m’a l’air compliqué vu que chacun des deux a un dataset “sensible” (Apps et SystemApps). Dans TrueNAS, je n’ai pas vu de fonctionnalité de migration d’un dataset d’un Pool vers un autre, mais je n’ai peut-être pas bien regardé. Quelles sont vos recommandations?

EDIT : je vais essayer de détailler le process que je pense faire en y mettant mes questions au bon endroit.

  1. Copier ou migrer des Datasets existants vers un autre Pool. Il me semble que je peux utiliser la fonction Export Pool. Je ne suis pas allé tester l’interface car j’ai peur de faire quelque chose d’irréversible mais comment lui dire d’exporter vers un autre Pool de mon choix? De plus, est-ce que la fonction d’export migrera également les datasets existants?
  2. Adapter les apps existantes pour qu’elle pointent vers le bon chemin : est-ce que si je peux migrer un dataset ou carrément un pool ça fera la modification automagiquement ou je dois updater les configs de chaque app installée?
  3. Une fois un des deux disques configurés correctement et l’autre “vidé” je voudrai donc ajouter le HDD vide en tant que second disque de RAID1. Si j’ai bien compris j’irai dans Storage => Manage Devices (sur le Pool qui va bien) => VDEV => Extend => Select New Disk. J’imagine que là je pourrai choisir “Mirrored”.

Question bonus : une fois les deux disques de 8To enlevés de Kpop, est-ce que je dois obligatoirement les formater avant de les replacer un par un dans le NAS pour recréer Jpop? Si j’ai bien compris, si je remets un disque pas vide/formaté dans le NAS, le GUI de TrueNAS ne l’affichera pas, par mesure de sécurité. Puis-je utiliser une ligne de commande pour formatter le disque, de manière à ce qu’il devienne visible et que je puisse faire la manip’ décrite au point 3?

Merci d’avance pour votre aide!

Ca fait très longtemps que je n’ai pas touché à du ZFS, mais ta procédure en 9 points me semble OK.
Je crois que tu peux même faire un 3-way mirror pour revenir à un 2-way mirror. Cela aura l’avantage de te permettre de conserver la haute disponibilité en tout temps.

Pour les migration de datasets d’un zpool à un autre, je ne saurais pas te répondre, mes connaissances sont trop vieilles. Quant à migrer un zpool, cela ne me semble pas possible dans la mesure où ce que tu veux faire est plutôt une fusion des zpool du Seagate + du Toshiba.

Concernant ta question bonus, un zpool labelclear device devrait faire le job (voir le man).

Sinon, je te conseille fortement de tester tes opérations dans une VM (avec des tailles de disque réduites bien entendu) avec VirtualBox par exemple. Ça permettra de valider le principe de ta procédure.

2 « J'aime »

Ayé la première phase est faite!

  1. J’ai prix le Pool avec le dataset SystemApps comme Pool cible, et le Pool avec le dataset Apps comme source
  2. J’ai créé, sur le Pool cible, des datasets identiques à ceux de source et copié les données à la mano. Ça a prix du temps mais c’était pas bien dur.
  3. Bizarrement le dataset Apps était vide… Du coup j’ai pas eu besoin de modifier quoi que ce soit dans la config des apps installées (mais faut encore que je comprenne où ce bazar est stocké…).
  4. Du coup j’ai pu wipe le Pool source sans scrupules.
  5. Cela a libéré le disque et j’ai pu l’utiliser pour Extend le VDEV du Pool cible
  6. Au moment de l’Extend j’ai eu un peu peur parce qu’il ne m’a pas proposé de choisir un mode, mais par défaut il a bien mis les deux disques en Mirror, c’est-à-dire RAID1 :slight_smile:
  7. Une fois le RAID1 créé, il a automatiquement lancé le Resilvering! Au moment où j’écris ces lignes (héhé moi aussi je peux me sentier comme un journaliste!), il est encore en cours mais les apps fonctionnent toujours sans soucis :slight_smile:

Bref maintenant je pense que je suis paré pour, dans un futur pas trop lointain j’espère, installer de plus gros disques! Et surtout, je m’enlève l’épée de Damoclès d’avoir laissé deux disques sans aucune redondance pendant de si longues années… Quand je pense qu’un des disques était un modèle Desktop en plus… :ninja:

2 « J'aime »