Usuń dysk z miękkiej macierzy RAID

11

Mam serwer dedykowany z 3 dyskami SSD w RAID 1. Wyjście cat / proc / mdstat:

    Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md4 : active raid1 sdc4[2] sdb4[1] sda4[0]
      106738624 blocks [3/3] [UUU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md2 : active raid1 sdc2[2] sda2[0] sdb2[1]
      5497792 blocks [3/3] [UUU]

md1 : active raid1 sda1[0] sdc1[2] sdb1[1]
      259008 blocks [3/3] [UUU]

unused devices: <none>

Jak można bezpiecznie usunąć dysk z rajdu bez utraty danych? Chciałbym usunąć dysk z macierzy, aby sformatować go i używać go niezależnie, zachowując jednocześnie najważniejsze dane.

Z góry dziękuję

Raul
źródło

Odpowiedzi:

20

Masz tam lustro trójdrożne: każdy dysk ma pełną kopię wszystkich danych. Zakładając, że dysk, który chcesz usunąć to /dev/sdci chcesz go usunąć z wszystkich trzech tablic, można wykonać następujące kroki /dev/sdc1, /dev/sdc2i /dev/sdc4.

Krok 1: Wyjmij dysk z macierzy. Nie można usunąć aktywnego urządzenia z tablicy, dlatego najpierw należy oznaczyć je jako nieudane.

mdadm /dev/md1 --fail /dev/sdc1
mdadm /dev/md1 --remove /dev/sdc1

Krok 2: Usuń metadane RAID, aby jądro nie próbowało ponownie go dodać:

wipefs -a /dev/sdc1

Krok 3: Zmniejsz tablicę, aby była tylko lustrem dwukierunkowym, a nie trójdrożnym z brakującym dyskiem:

mdadm --grow /dev/md1 --raid-devices=2

Być może będziesz musiał usunąć bitmapę przeznaczoną do zapisu /dev/md4przed jej zmniejszeniem (instrukcja nie jest jasna w tym zakresie), w którym to przypadku zrobiłbyś to tuż przed krokiem 3 mdadm --grow /dev/md4 --bitmap=none, a następnie odłożył ją z powrotem mdadm --grow /dev/md4 --bitmap=internal.

znak
źródło
Czy to pozwala zachować dane na dysku, który usuwasz? Czy możesz później uzyskać dostęp do danych znajdujących się w macierzy RAID również z oddzielnego dysku?
Nikt
2
@ Nikt, jeśli chcesz odczytać dane z usuniętego dysku, powinieneś pominąć krok 2. Praktycznie wszystkie dane są nadal dostępne po uruchomieniu wipefs(usuwa tylko kilka kluczowych bajtów wymaganych do rozpoznania systemu plików), ale odczytanie staje się ćwiczeniem w odzyskiwaniu danych, a nie tylko w podłączaniu dysku.
Mark
0

man mdadm:

   -r, --remove
          remove listed devices.  They must  not  be  active.   i.e.  they
          should be failed or spare devices.

          As well as the name of a device file (e.g.  /dev/sda1) the words
          failed, detached and names like set-A can be given to  --remove.
          The  first  causes  all failed device to be removed.  The second
          causes any device which is no longer  connected  to  the  system
          (i.e  an  'open'  returns  ENXIO) to be removed.  The third will
          remove a set as describe below under --fail.
Ipor Sircer
źródło