Oprogramowanie RAID dla systemu Linux za pomocą mdadm

mdadm - narzędzie do pracy z oprogramowaniem RAID-tablice w systemie Linux. W artykule przyjrzymy się, jak pracować z narzędziem mdadm (administrator wielu dysków), aby utworzyć tablicę, dodać dyski, zarządzać dyskami, dodać hot-spare i wiele innych przydatnych informacji.

Treść

  • Zainstaluj oprogramowanie RAID Management Utility - mdadm
  • Tworzenie RAID z 2 dysków
  • Tworzenie systemu plików w RAID, montowanie
  • Wyświetl status, sprawdź integralność macierzy RAID
  • Odzyskiwanie RAID po awarii, wymiana dysku
  • Dodawanie i usuwanie dysków w macierzy RAID w systemie Linux
  • Dodawanie dysku Hot-Spare do macierzy RAID
  • Usuń tablicę
  • Mdmonitor: Monitorowanie stanu RAID i alertów e-mail
  • Macierz RAID nieaktywna

Zainstaluj oprogramowanie RAID Management Utility - mdadm

Aby zainstalować narzędzie mdadm, uruchom polecenie instalacji:

  • W przypadku Centos / Red Hat używa się yum / dnf: mniam zainstaluj mdadm
  • W przypadku Ubuntu / Debian: apt-get install mdadm

W rezultacie narzędzie mdadm i niezbędne biblioteki zostaną zainstalowane w systemie:

Uruchamianie transakcji Instalacja: libreport-filesystem-2.1.11-43.el7.centos.x86_64 1/2 Instalacja: mdadm-4.1-1.el7.x86_64 2/2 Weryfikacja: mdadm-4.1-1.el7.x86_64 1/2 Weryfikacja: libreport-filesystem-2.1.11-43.el7.centos.x86_64 2/2 Zainstalowano: mdadm.x86_64 0: 4.1-1.el7 Zainstalowano zależność: libreport-filesystem.x86_64 0: 2.1.11-43.el7. centos Complete!

Tworzenie RAID z 2 dysków

Mam dwa dodatkowe dyski zainstalowane na serwerze i chcę obniżyć wersję oprogramowania Mirror (RAID1). Dyski są puste, dane nie zostały do ​​nich zapisane. Najpierw musisz wyzerować wszystkie superbloki na dyskach, które dodamy do macierzy RAID:

# mdadm --zero-superblock --force / dev / vd b, c

Mam dwa, mam dwa puste dyski VDB i VDC.

mdadm: Nierozpoznane urządzenie komponentu md - / dev / vdb mdadm: Nierozpoznane urządzenie komponentu md - / dev / vdc

Ta lista oznacza, że ​​żaden z dysków nie został wcześniej dodany do tablicy..

Aby złożyć oprogramowanie RAID1 z dwóch dysków w urządzeniu / dev / md0 użyj polecenia:

# mdadm --create --verbose / dev / md0 -l 1 -n 2 / dev / vd b, c

Gdzie „-l 1„Jest typem macierzy, w naszym przypadku RAID1

-n 2„Jest liczbą dysków dodanych do tablicy.

Jeśli chcesz utworzyć RAID0 w trybie paskowym, aby zwiększyć szybkość odczytu / zapisu danych przez równoległe wykonywanie poleceń między kilkoma dyskami fizycznymi, użyj polecenia:

# mdadm --create --verbose / dev / md0 --level = 0 --raid-devices = 2 / dev / vdb / dev / vdc

RAID 5 trzech lub więcej dysków:

# mdadm --create --verbose / dev / md0 --level = 5 --raid-devices = 3 / dev / vdb / dev / vdc / dev / vdd

Po uruchomieniu polecenia musisz potwierdzić działania, a tablica zostanie utworzona:

Teraz, przeglądając informacje o dysku, widzimy naszą tablicę:

# lsblk

NAZWA MAJ: MIN RM ROZMIAR RO TYPE MOUNTPOINT vda 253: 0 0 20G 0 dysk ├─vda1 253: 1 0 512M 0 część / boot └─vda2 253: 2 0 19,5G 0 część / vdb 253: 16 0 20G 0 dysk └ 0md0 9: 0 0 20G 0 raid1 vdc 253: 32 0 20G 0 dysk └─md0 9: 0 0 20G 0 raid1

Tworzenie systemu plików w RAID, montowanie

Aby utworzyć system plików ext4 na naszej macierzy RAID1 dwóch dysków, użyj polecenia:

# mkfs.ext4 / dev / md0

Utwórz katalog kopii zapasowej i podłącz na nim urządzenie RAID:

# mkdir / backup
# mount / dev / md0 / backup /

# df -h

Używany system plików Dostępny Wykorzystanie% Zamontowany na devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 44M 452M 9% / run tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 20G 1,4G 19G 7% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0 / dev / md0 20G 45M 19G 1% / backup 

Tablica została zamontowana bez błędów. Aby nie montować urządzenia za każdym razem ręcznie, dokonamy zmian w fstab:

# nano / etc / fstab

/ dev / md0 / backup ext4 defaults 1 2

Wyświetl status, sprawdź integralność macierzy RAID

Aby sprawdzić integralność danych w tablicy, użyj polecenia:

#echo 'check'> / sys / block / md0 / md / sync współdziałanie

Następnie musisz spojrzeć na dane wyjściowe pliku:

#cat / sys / block / md0 / md / mismatch_cnt

Jeśli w rezultacie otrzymasz 0, wszystko jest w porządku z tablicą:

Aby zatrzymać sprawdzanie poprawności, użyj polecenia:

#echo 'idle'> / sys / block / md0 / md / sync współdziałanie

Aby sprawdzić status wszystkich macierzy RAID dostępnych na serwerze, użyj polecenia:

# cat / proc / mdstat

Osobowości: [raid1] md0: active raid1 vdc [1] vdb [0] 20954112 blokuje super 1.2 [2/2] [UU]

Na liście drużyn widzimy informacje o naszym wcześniej utworzonym nalocie.

Aby uzyskać więcej informacji o określonej tablicy rajdowej, zobacz polecenie:

# mdadm -D / dev / md0

Przeanalizujmy główne punkty listy drużyn:

  • Wersja - wersja metadanych;
  • Creation Time - data i godzina utworzenia tablicy raid;
  • Poziom nalotu - poziom tablicy nalotów;
  • Rozmiar tablicy - miejsce na dysku dla tablicy RAID;
  • Used Dev Size - używana objętość dla urządzeń;
  • Raid Device - liczba dysków w macierzy RAID;
  • Total Devices - liczba dysków dodanych do tablicy RAID;
  • Stan - aktualny stan (czysty - wszystko jest OK);
  • Aktywne urządzenia - liczba aktywnych dysków w macierzy RAID;
  • Working Devises - liczba dysków roboczych w macierzy RAID;
  • Failed Devices - liczba urządzeń z awariami w macierzy RAID;
  • Zapasowe urządzenia - liczba zapasowych dysków w macierzy RAID;
  • Polityka spójności - parametr określający typ synchronizacji po awarii w macierzy RAID, rsync - pełna synchronizacja po odzyskaniu macierzy RAID (dostępne są tryby bitmapy, dziennika, ppl);
  • UUID - identyfikator macierzy RAID

Krótkie informacje można wyświetlić za pomocą narzędzia fdisk:

# fdisk -l / dev / md0

Dysk / dev / md0: 21,5 GB, 21457010688 bajtów, 41908224 sektorów Jednostki = sektory 1 * 512 = 512 bajtów Rozmiar sektora (logiczny / fizyczny): 512 bajtów / 512 bajtów Rozmiar we / wy (minimum / optymalnie): 512 bajtów / 512 bajtów

Odzyskiwanie RAID po awarii, wymiana dysku

Jeśli jeden z dysków w macierzy RAID ulegnie awarii lub uszkodzeniu, możesz go wymienić na inny. Najpierw ustalmy, czy dysk jest uszkodzony i który dysk należy zmienić..

# cat / proc / mdstat

Osobowości: [raid1] md0: active raid1 vdb [0] 20954112 blokuje super 1.2 [2/1] [U_] 

Z polecenia listing widać, że tylko jeden dysk jest aktywny. Mówi także o problemie [U_]. Gdy oba dyski działają, dane wyjściowe będą wynosić [UU].

Szczegółowe informacje RAID pokazują również, że występują problemy:

# mdadm -D / dev / md0

/ dev / md0: Wersja: 1.2 Czas tworzenia: Wt 29 października 12:39:22 PM Poziom nalotu: raid1 Rozmiar macierzy: 20954112 (19,98 GiB 21,46 GB) Użyty rozmiar dewelopera: 20954112 (19,98 GiB 21,46 GB) Urządzenia RAID: 2 Razem Urządzenia: 2 Trwałość: Superblock jest trwały Czas aktualizacji: Wt 29 października 14:41:13 2019 Stan: czysty, zdegradowany Urządzenia aktywne: 1 Urządzenia działające: 1 Urządzenia uszkodzone: 1 

Stan: czysty, zdegradowany - ta linia wskazuje, że dysk w macierzy RAID jest uszkodzony.

W naszym przypadku musimy wymienić uszkodzony dysk / dev / vdc. Aby przywrócić tablicę, musisz usunąć dysk bezczynny i dodać nowy.

Wyjmowanie niewłaściwego dysku:

# mdadm / dev / md0 --remove / dev / vdc

Dodaj nowy dysk do tablicy:

# mdadm / dev / md0 --add / dev / vdd

Odzyskiwanie dysku rozpocznie się automatycznie po dodaniu nowego dysku:

# mdadm -D / dev / md0

/ dev / md0: Wersja: 1.2 Czas tworzenia: Wt 29 października 12:39:22 PM Poziom nalotu: raid1 Rozmiar macierzy: 20954112 (19,98 GiB 21,46 GB) Użyty rozmiar dewelopera: 20954112 (19,98 GiB 21,46 GB) Urządzenia RAID: 2 Razem Urządzenia: 2 Trwałość: Superblock jest trwały Czas aktualizacji: Wt 29 października 14:50:20 2019 Stan: czysty, zdegradowany, odzyskuje Urządzenia aktywne: 1 Działające urządzenia: 2 Urządzenia uszkodzone: 0 Urządzenia zapasowe: 1 Polityka spójności: resynchronizacja Stan odbudowy: 69% kompletna Nazwa: server.vpn.rucript (lokalny do hosta server.vpn.ru) UUID: 9d59b1fb: 7b0a7b6d: 15a75459: 8b1637a2 Zdarzenia: 42 Numer Major Drobne Raid Stan urządzenia 0 253 16 0 aktywna synchronizacja / dev / vdb 2 253 48 1 zapasowa przebudowa / dev / vdd 

status odbudowy: ukończono 69% - pokazuje bieżący stan odzyskiwania macierzy.

zapasowa przebudowa / dev / vdd - pokazuje, który dysk jest dodawany do tablicy.

Po przywróceniu macierzy lista dysków wygląda następująco:

Stan: czysty Aktywne urządzenia: 2 Działające urządzenia: 2 Urządzenia uszkodzone: 0 Urządzenia zapasowe: 0 

Dodawanie i usuwanie dysków w macierzy RAID w systemie Linux

Aby przeanalizować wcześniej utworzoną tablicę, musisz ją odmontować:

# umount / backup

I wykonaj polecenie:

# mdadm -S / dev / md0

mdadm: zatrzymany / dev / md0

Po parsowaniu tablicy nie należy jej definiować jako urządzenia:

# mdadm -S / dev / md0

mdadm: błąd otwierania / dev / md0: Brak takiego pliku lub katalogu

Aby złożyć tablicę, którą wcześniej przeanalizowaliśmy ręcznie, uruchom polecenie:

# mdadm --assemble -scan

To polecenie skanuje dyski ze zdemontowanej lub zwiniętej macierzy RAID i próbuje zebrać od nich RAID za pomocą metadanych.

Aby usunąć dysk roboczy z macierzy i zastąpić go innym, najpierw należy zaznaczyć dysk roboczy jako niedziałający:

# mdadm / dev / md0 --fail / dev / vdc

Następnie dysk można usunąć za pomocą polecenia:

# mdadm / dev / md0 --remove / dev / vdc

Dodaje się nowy dysk, podobnie jak w przypadku niedziałającego dysku:

# mdadm / dev / md0 --add / dev / vdd

Dodawanie dysku Hot-Spare do macierzy RAID

Możesz dodać do tablicy gorący zapas dysk z możliwością wymiany podczas pracy, jeśli jeden z aktywnych dysków ulegnie awarii. Dodaj wolny dysk do wybranej tablicy:

# mdadm / dev / md0 --add / dev / vdc

Po sprawdzeniu statusu macierzy RAID, zobaczymy ten dysk jako zapasowy:

Aby sprawdzić, czy „hot swap ” dysk, zaznacz dowolny z dysków jako niedziałający i sprawdź status macierzy RAID:

# mdadm / dev / md0 --fail / dev / vdb

Następnie, sprawdzając status tablicy, zobaczysz, że rozpoczęła się odbudowa tablicy:

Jedź / dev / vdb oznaczony jako niedziałający, a dysk zapasowy stał się jednym z aktywnych dysków RAID i rozpoczął się proces odzyskiwania.

Aby dodać dodatkowy dysk roboczy do RAID, musisz wykonać dwa kroki.

Dodaj pusty dysk do tablicy:

# mdadm / dev / md0 --add / dev / vdb

Teraz ten dysk wyświetli się jako gorący zapas, aby to działało, rozwiń tablicę RAID:

# mdadm -G / dev / md0 -raid-devices = 3

Następnie rozpocznie się proces odbudowywania tablicy:

Po odbudowaniu wszystkie dyski stały się aktywne:

Liczba Major Minor Raid Stan urządzenia 3 253 32 0 aktywna synchronizacja / dev / vdc 2 253 48 1 aktywna synchronizacja / dev / vdd 4 253 16 2 aktywna synchronizacja / dev / vdb 

Usuń tablicę

Jeśli chcesz trwale usunąć tablicę rajdową, użyj następującego schematu:

# umount / backup - odmontuj tablicę z katalogu

# mdadm -S / dev / md0 - zatrzymaj urządzenie RAID

Następnie usuwamy wszystkie superbloki na dyskach, z których został złożony:

# mdadm --zero-superblock / dev / vdb
# mdadm --zero-superblock / dev / vdc

Mdmonitor: Monitorowanie stanu RAID i alertów e-mail

Możesz użyć tej usługi do monitorowania stanu macierzy RAID. mdmonitor. Najpierw musisz utworzyć plik /etc/mdadm.conf z konfiguracją bieżącej tablicy:

# mdadm -detail -scan> /etc/mdadm.conf

Plik konfiguracyjny mdadm.conf nie jest tworzony automatycznie. Musi zostać utworzony i zaktualizowany ręcznie..

Na końcu pliku /etc/mdadm.conf dodaj adres e-mail administratora, na który należy wysyłać powiadomienia o problemach z macierzą RAID:

MAILADDR [email protected]

Przestał ponownie uruchamiać usługę mdmonitor poprzez systemctl:

# systemctl restart mdmonitor

Następnie system powiadomi Cię e-mailem o błędach w mdadm i wadliwych dyskach.

Macierz RAID nieaktywna

W przypadku awarii sprzętu lub wyłączenia awaryjnego tablica może przejść do stanu nieaktywny. Wszystkie dyski są oznaczone jako nieaktywne, ale na dyskach nie ma błędów.

# cat / proc / mdstat

Osobowości: [liniowy] [wielościeżkowy] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0: nieaktywny vdc [1] vdb [0] 20954112 blokuje super nieużywane urządzenia:  

W takim przypadku musisz zatrzymać tablicę za pomocą polecenia:

# mdadm --stop / dev / md0

I odbuduj to:

# mdadm --assemble --scan -force

Jeśli tablica jest zarejestrowana w / etc / fstab, musisz ponownie zamontować ją za pomocą polecenia:

# mount -a

Istnieją sposoby tworzenia oprogramowania RAID w już zainstalowanym systemie operacyjnym. W takim przypadku będziesz musiał ręcznie skopiować tabele wszystkich partycji na nowy dysk i ręcznie przenieść zawartość dysku systemowego do RAID z jednego dysku, wyczyścić pierwszy dysk i dodać go do RAID, a następnie naprawić initramfs i boot GRUB. Dlatego nadal lepiej jest wybrać tryb, zainstalować CentOS na programowej macierzy RAID podczas wdrażania serwera.

Utility mdadm upraszcza pracę z macierzami RAID w systemie Linux. W tym artykule opisałem główne punkty pracy z tym narzędziem, a także poruszyłem najczęstsze pytania, które pojawiają się podczas pracy z nalot-tablice za pomocą narzędzia mdadm.