web-dev-qa-db-fra.com

Mdadm - Supprimer le disque de raid0

Donc, j'aimerais savoir, est possible de faire ce qui suit avec Mdadm:

  1. Je commence par la configuration RAID0 sur 2 disques: sda et sdb.
  2. J'aimerais ajouter un autre disque au tableau, sdc et déplacez toutes les données de sdb dessus.
  3. Déconnecter sdb.

En ce moment, je ne vois qu'une seule option - j'arrête la matrice, copie sdb _ à sdc avec dd ou tout autre outil de copie de bloc et démarrez le tableau arrière.

Est-ce que ça me manque quelque chose? Est-il possible de le faire avec Mdadm?

11
maniaque

Tout d'abord: à ceux qui croient toujours à "RAID0 n'a pas de rechange chaude". Cela pourrait avoir une réserve manuelle, faite par l'homme, qui comprennent les niveaux de raid et Mdadm. Mdadm est un raid logiciel, de sorte qu'il pourrait faire beaucoup de choses intéressantes.

Crédits à Zorecheche pour l'idée!

Donc, la situation:

  • vous avez un tableau RAID0 de deux disques
  • vous souhaitez remplacer l'un d'eux sans temps d'arrêt du tableau

Si le temps d'arrêt est acceptable, vous pouvez toujours simplement effectuer une copie de bloc de disque avec DD et remonter le tableau, Mdadm fera OK.

Solution: Utilisez RAID4 comme solution intermédiaire

RAID0 -> RAID4 -> RAID0

Donc, si vous ne vous souvenez pas RAID4, c'est simple. Il a un bloc de parité, mais contrairement à RAID5, il n'est pas distribué sur le tableau, mais réside sur un disque. C'est le point, c'est important et c'est la raison pour laquelle RAID5 ne fonctionnera pas.

Ce dont vous aurez besoin: deux autres disques de la même taille, comme le disque que vous souhaitez remplacer.

Environnement:

  • Ubuntu 14.04 THRUSTY THAR
  • mDADM - V3.2.5 - 18 mai 2012
  • / dev/sdb - commence avec elle, le remplacera
  • / dev/sdc - commencez par
  • / dev/sdd - sera utilisé temporaire
  • / dev/sde - sera utilisé à la place de SDB

Le guide MDADM Ultimate RAID0 HOT-Recours;)

Sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]

md0 : active raid0 sdc[1] sdb[0]
      2096128 blocks super 1.2 512k chunks

Nous avons créé RAID0 Array, il a l'air doux.

Sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

Ceci est notre point de contrôle - si même un bit va différer en résultant /dev/md0 - nous avons échoué.

Sudo mdadm /dev/md0 --grow --level=4

md0 : active raid4 sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

Donc, nous avons grandi notre tableau pour être RAID4. Nous n'avons pas encore ajouté le disque de parité, alors faisons-le. La croissance sera instantanée - il n'y a rien à recalculer ou à recalculer.

Sudo mdadm /dev/md0 -a /dev/sdd

md0 : active raid4 sdd[3] sdc[1] sdb[0]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [===>.................]  recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec

Nous avons ajouté sdd comme disque de parité. Ceci est important à vous rappeler - l'ordre des disques de la première rangée n'est pas syncronisé avec la photo en deuxième rangée! [Uu_]

sdd est affiché d'abord, mais il est en fait la dernière et ne contient pas les données, mais la parité.

Sudo mdadm /dev/md0 -f /dev/sdb

md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

Nous avons rendu notre disque SDB défectueux, pour la supprimer dans les étapes suivantes.

Sudo mdadm --detail /dev/md0

State : clean, degraded

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

       0       8       16        -      faulty spare   /dev/sdb

Les détails montrent-nous la suppression du premier disque et nous pouvons voir ici le véritable ordre des disques de la matrice. Il est important de suivre le disque avec la parité, nous ne devrions pas le laisser dans la matrice lorsque vous revenez à RAID0.

Sudo mdadm /dev/md0 -r /dev/sdb

md0 : active raid4 sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]

sdb est complètement enlevé, pourrait être enlevé.

Sudo mdadm /dev/md0 -a /dev/sde

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
      [==>..................]  recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec

Nous avons ajouté le remplacement de notre disque SDB. Et ici, nous allons: maintenant les données de SDB est en cours de récupération à l'aide de la parité. sweeeeet.

md0 : active raid4 sde[4] sdd[3] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]

Terminé. À l'heure actuelle, nous sommes complètement sûrs - toutes les données de SDB sont récupérées et nous devons maintenant supprimer SDD (rappelez-vous, il contient la parité).

Sudo mdadm /dev/md0 -f /dev/sdd

md0 : active raid4 sde[4] sdd[3](F) sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

Fait SDD défectueux.

Sudo mdadm /dev/md0 -r /dev/sdd

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]

Supprimé SDD de notre tableau. Nous sommes prêts à devenir raid0 à nouveau.

Sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup

md0 : active raid4 sde[4] sdc[1]
      2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
      [=>...................]  reshape =  7.0% (73728/1048064) finish=1.5min speed=10532K/sec

Aaaaaaand bang!

md0 : active raid0 sde[4] sdc[1]
      2096128 blocks super 1.2 512k chunks

Terminé. Regardons le checksum MD5.

Sudo md5sum /dev/md0

b422ba644a3c83cdf28adfa94cb658f3  /dev/md0

D'autres questions? Donc raid0 pourrait avoir une eau de rechange chaude. Ça s'appelle "utilisateur";)

17
maniaque

Pour autant que je sache une fois que vous avez configuré un RAID0, vous ne pouvez pas changer l'un des disques. Vous pouvez prendre une sauvegarde et commuter les disques et restaurer la sauvegarde. Je voudrais juste raid5 ces 3 disques que vous avez. De cette façon à l'avenir, vous pouvez laisser tomber un disque et la reconstruire toujours.

1
joeg1ff

RAID 0 ne fournit pas de redondance.

Donc, il ne prend pas en charge le remplacement du lecteur chaud.

0
user2743554