Rozwiń macierz Linux MD RAID 10, aby korzystać z większych dysków

11

Z tego, co rozumiem, jest to możliwe, ale nie mogę nigdzie znaleźć prostej odpowiedzi na temat tego, jak to zrobić, i nie chcę ryzykować utraty danych, eksperymentując z tym sam, więc pytam tutaj.

Mam serwer domowy z pięcioma dyskami z systemem CentOS. Jednym z nich jest dysk SSD z systemem operacyjnym. Pozostałe cztery dyski to dyski twarde o pojemności 4 TB skonfigurowane w RAID10 z mdraid. Używany system plików to xfs.

Zastanawiam się nad próbą zastąpienia dysków 4 TB dyskami 8 TB. Co dokładnie należy zrobić, aby ta wymiana miała miejsce bez konieczności ponownej konfiguracji nowej macierzy RAID i utraty danych?

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
źródło

Odpowiedzi:

14

Wykonaj następujące kroki dla każdego dysku; /dev/sda1w razie potrzeby wymień na inne dyski. Aby przejść do następnego dysku, musisz wykonać wszystkie te kroki dla jednego dysku.

  • Oznacz dysk jako uszkodzony, aby MD przestał go używać: mdadm --manage /dev/md127 --fail /dev/sda1
  • Wyjmij dysk z tablicy: mdadm --manage /dev/md127 --remove /dev/sda1
  • Wymień fizycznie dysk.
  • Podziel nowy dysk na partycje, używając typu 0xDAz jedną partycją obejmującą cały dysk.
  • Dodaj nowy dysk do tablicy: mdadm --manage /dev/md127 --add /dev/sda1

MD odbuduje macierz po dodaniu dysku zastępczego. Upewnij się, że odbudowanie zostało zakończone, zanim przejdziesz do następnego dysku. Możesz sprawdzić status tablicy, uruchamiając cat /proc/mdstat.

Po wymianie wszystkich dysków i przebudowaniu macierzy rozwiń ją, aby wypełnić maksymalną pojemność wszystkich dysków mdadm --grow /dev/md127 --size=max. Możesz zmienić rozmiar systemu plików, aby wypełnić rozszerzoną macierz RAID; w twoim przypadku użyj xfs_growfspolecenia.

Więcej informacji na temat rozwijania macierzy MD można znaleźć na wiki Linux RAID .

Podobnie jak w przypadku każdego innego zadania manipulacji dyskiem, przed rozpoczęciem należy wykonać kopię zapasową.

bwDraco
źródło
1
Może dodaj, jak sprawdzasz postęp przebudowy ->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

Najpierw chciałbyś wymienić każdy dysk jeden po drugim.

Aby to zrobić, należy „zawieść” każdy dysk i zastąpić go nowym zamiennikiem 8 TB, w rzeczywistości jeśli masz wolne porty, możesz dodać dodatkowe dyski, a następnie mdadm „wymienić” na miejscu zamiast wyjmować dysk z nalot i większe ryzyko niepowodzenia.

To pytanie szczegółowo opisuje najlepszy sposób, w jaki mogę to zrobić „bezpiecznie”

Gdy to zrobisz, będziesz chciał po prostu rozszerzyć istniejący FS do nowo utworzonej przestrzeni. Wygląda na to, że polecenie to brzmi „xfs_growfs”, jednak nie mam doświadczenia z xfs, aby wyjaśnić, jak dokładnie to zrobiłbyś.

Jak zawsze, przygotuj kopie zapasowe (a nalot nie jest kopią zapasową!).

djsmiley2kStaysInside
źródło
Czy mając do czynienia z rajdem10 i mdraid, czy dodatkowa przestrzeń zostanie w ogóle rozpoznana? Czy powinienem zamieniać dwa na raz, po jednym z każdej pary lustrzanej?
Kefka
Dodajesz spację dopiero po zamianie wszystkich dysków, a następnie tak, zostanie rozpoznany.
djsmiley2kStaysInside