Btrfs Raid 1 - Remplacement de disque

Tags: #<Tag:0x00007f509fe86a60>

Bonjour,

J’utilise le système de fichier BTRFS en mode Raid-1 depuis près d’un an sur un serveur Debian Jessie Stable et ça fonctionne bien.

Mon serveur possède 6 baies pour des disques et toutes les baies sont utilisées.

Baie 1 - 3 TB WD Red (Partitition Boot, partition Swap, et BTRFS raid-1)
Baie 2 - 3 TB WD Red
Baie 3 - 6 TB WD Red
Baie 4 - 6 TB WD Red
Baie 5 - 8 TB WD Red
Baie 6 - 6 TB WD Red

Il ne me reste plus beaucoup d’espace disponible est je veux remplacer le disque de la baie #2 pour un disque plus gros (8 TB).

La dernière fois, j’ai utilisé :

  • Btrfs device delete sur le disque à remplacer
  • Btrfs balance start / &
  • Btrfs device add (nouveau dev id)
  • Btrfs balance start /

Le processus fonctionne mais est vraiment long à réaliser. Étant donné que je ne remplace pas le disque par qu’il ne fonctionne plus, mais bien pour augmenter la capacité, je me demandais s’il n’y avait pas un méthode plus efficace.

J’ai lu un peu et j’ai pensé à :

  • btrfs device replace, mais je n’ai pas de baies supplémentaire de disponible pour installer le nouveau disque avant d’enlever l’ancien.

-monter le disque en mode «degraded», installer le nouveau disque et lancer un balance, mais je ne sais pas si ç’est la bonne façon de faire.

Pour finir, je vais devoir grossir mon disque à la baie 1 qui contient la partition boot, la partition Swap et le reste en btrfs. Est-ce qu’il y a un moyen facile de procéder sans devoir tout réinstaller et/ou faire des essais/erreur avec le boot loader (grub).

Merci pour votre aide.

Je ne peux pas t’aider car je n’ai jamais utilisé le RAID de btrfs, mais pour quelle raison n’as-tu pas mis /boot et le swap en RAID (standard/md, pas btrfs) ?

Je n’ai pas utilisé le raid md surtout parce que voulais essayer BTRFS et bénéficier des avantages que ce système de fichier procure (Snapshots de sous-volume, CoW, etc.).

Je parlais des partitions boot et swap qui, si j’ai bien compris la description, sont uniquement stockées sur le disque de la baie 1 et ne sont pas en RAID.

Je ne vois aucun avantage à mettre la partition Swap en raid avec un serveur avec 16 Gb de mémoire ECC.

Pour la partition Boot, je voulais l’inclure dans le BTRFS au début. J’ai lu que Grub2 prenait en charge btrfs Raid 0 et 1, mais je n’ai pas réussi à «booter» sur cette partition. Peut-être parce que le Bios est de type EFI ?

J’ai fait plusieurs essais avec l’installateur dans tous les modes possibles (graphique, expert, hybride, etc.) et à chaque fois j’obtenais une erreur avec une ligne de commande Grub. J’étais capable de voir les partitions, mais il semblait y avoir un problème avec les sous-volumes BTRFS.

Lors de l’intallation de Debian Jessie, il faut dire que BTRFS n’était pas supporté directement par l’installateur. Il fallait aller en ligne de commande et créer les partitions avec mkfs.btrfs puis continuer avec l’installateur.

Je ne sais pas si l’installateur supporte maintenant BTRFS ou bien si Debian Stretch le supportera…

Un swap qui flanche, c’est comme une puce de RAM qui flanche. Si le swap est utilisé, alors une défaillance du disque qui le contient peut altérer la disponibilité du système. C’est bien beau d’avoir du RAID pour le reste, mais si le système plante ça ne sert pas à grand-chose.

De deux choses l’une : soit le swap est inutile parce qu’il y a assez de RAM et il ne faut pas l’utiliser, soit le swap est utile et il doit être en RAID.

Je ne pense pas, au contraire. Certains BIOS sont buggés et ne peuvent accéder au contenu des disques au delà d’une limite, typiquement 2 Tio, mais un firmware UEFI ne devrait pas avoir ce genre de limitation puisque la spécification UEFI inclut le format de table de partition GPT qui permet d’exploiter les disques de plus de 2 Tio.

GRUB est-il amorcé en mode EFI natif (avec grub-efi-amd64 et partitions système EFI) ou en mode de compatibilité BIOS (grub-pc) ?

Mais à mon avis ce n’était pas une bonne idée de mettre /boot dans un système de fichiers btrfs étendu sur 6 disques. A mon avis la solution la plus fiable pour avoir de la redondance avec l’amorçage est de mettre /boot en RAID 1 logiciel classique (md) avec une partition membre au début de chaque disque.

Pourtant je suis sûr que btrfs est proposé dans la liste des systèmes de fichiers, ayant testé une fois l’installation de Jessie en RAID(md)+LVM+btrfs. C’est peut-être le RAID de btrfs et/ou les sous-volumes qui ne sont pas pris en charge.

Salut Pascal,

Qu’est ce que ça va changer s’il met /boot sur du raid 1 et le reste sur du btrfs “en raid”, le tout sur les même 6 disques, au final si un disque se fait la malle ce sera perdu?

Alors l’installateur propose bien btrfs comme système de fichiers, mais au niveau de l’installation c’est très basique par rapport aux fonctionnalités de btrfs, et notamment par rapport aux sous-volumes. L’installateur installe le système dans “le volume racine btrfs” et il est impossible (à ma connaissance, depuis la dernière fois que j’ai tripatouillé btrfs à l’installation…) pour l’instant de créer des sous-volumes et paramétrer quel point de montage attribuer à quel sous-volume, en mode graphique.
Il faut passer par le shell de l’installateur, créer ses sous-volumes, écrire à la main le fstab, puis quitter le shell et relancer l’installation à l’étape “installer le système de base”.

Pourquoi serait-ce perdu ? Le RAID 1 apporte de la redondance et de la tolérance de panne.
L’intérêt de /boot en RAID (+GRUB) sur tous les disques, c’est de pouvoir redémarrer sur n’importe quel autre disque de la grappe après la panne du disque qui bootait jusqu’ici.

C’est ce que je voulais dire, mais des mots se sont perdus en chemin et je ne me suis pas relu.

Laisse tomber le “perdu” j’etais dans les nuages au moment où j’ai ecrit ça, ce que je voulais dire c’est que btrfs gère bien maintenant le RAID 0 et 1 (similaire à ZFS avec la quantité de RAM en moins :smiley: ), et notamment avec toutes ses commandes c’est souple d’utilisation pour ajouter/retirer un volume, faire un balance/scrub…
Par contre il est toujours déconseillé d’utiliser du RAID 5 ou 6 (avec btrfs) en production car apparemment il y a encore des problèmes avec ça.