Développez une matrice Linux MD RAID 10 pour utiliser des disques plus gros

11

D'après ce que je comprends, c'est possible, mais je ne trouve nulle part une réponse directe sur la façon exacte de procéder, et je ne veux pas risquer de perdre des données en l'expérimentant moi-même, alors je pose la question ici.

J'ai un serveur domestique avec cinq disques exécutant CentOS. L'un est un SSD contenant le système d'exploitation. Les quatre disques restants sont des disques durs de 4 To configurés en RAID10 avec mdraid. Le système de fichiers utilisé est xfs.

J'envisage d'essayer de remplacer les disques de 4 To par des disques de 8 To. Que faut-il faire exactement pour que ce remplacement se produise sans avoir à reconfigurer un nouveau RAID et à perdre des données?

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1
Kefka
la source

Réponses:

14

Effectuez les étapes suivantes pour chaque disque; remplacez-les /dev/sda1par d'autres disques si nécessaire. Vous devez effectuer toutes ces étapes pour un disque avant de pouvoir passer au disque suivant.

  • Marquez le disque comme ayant échoué afin que MD cesse de l'utiliser: mdadm --manage /dev/md127 --fail /dev/sda1
  • Retirez le disque de la baie: mdadm --manage /dev/md127 --remove /dev/sda1
  • Remplacez physiquement le disque.
  • Partitionnez le nouveau disque à l'aide de type 0xDAavec une partition couvrant l'ensemble du disque.
  • Ajoutez le nouveau disque à la baie: mdadm --manage /dev/md127 --add /dev/sda1

MD reconstruira la baie une fois que vous aurez ajouté le disque de remplacement. Assurez-vous que la reconstruction est terminée avant de passer au disque suivant. Vous pouvez vérifier l'état de la baie en exécutant cat /proc/mdstat.

Une fois que tous les disques ont été remplacés et la baie reconstruite, développez la baie pour remplir la capacité maximale de tous les disques avec mdadm --grow /dev/md127 --size=max. Vous pouvez redimensionner le système de fichiers à partir de là pour remplir le RAID étendu; dans votre cas, utilisez la xfs_growfscommande.

Plus d'informations sur la croissance d'une matrice MD sont disponibles sur le wiki Linux RAID .

Comme pour toute autre tâche de manipulation de disque, vous devez effectuer une sauvegarde avant de commencer.

bwDraco
la source
1
Ajoutez peut-être comment vous vérifiez la progression de la reconstruction ->tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
djsmiley2kStaysInside
2

Vous voudriez d'abord échanger chaque disque un par un.

Pour ce faire, vous devez «échouer» chaque disque et le remplacer par son nouveau remplacement de 8 To, en fait, si vous avez les ports de rechange, vous pouvez ajouter les disques supplémentaires, puis faire remplacer «mdadm» au lieu de retirer un disque de le raid et ayant un risque d'échec plus élevé.

Cette question détaille la meilleure façon de le faire en toute sécurité

Une fois que vous avez fait cela, vous voudrez simplement étendre le FS existant dans l'espace nouvellement créé. Il semble que la commande pour cela soit 'xfs_growfs' mais je n'ai pas d'expérience avec xfs pour expliquer exactement comment vous feriez cela.

Comme toujours, préparez les sauvegardes (et le raid n'est pas une sauvegarde!).

djsmiley2kStaysInside
la source
Étant installé avec un raid10 et mdraid, l'espace supplémentaire serait-il même reconnu? Dois-je échanger deux à la fois, un de chaque paire en miroir?
Kefka
Vous n'ajoutez l'espace qu'après avoir échangé tous les disques, puis oui, il sera reconnu.
djsmiley2kStaysInside