Jak przekonwertować LV lub MD RAID1 i 0 do RAID5 bez utraty danych
W tym poradniku wyjaśnię jak przekonwertować z RAID 0 lub 1 do RAID 5. Jak przekonwertować oprogramowanie RAID1(0) do RAID5 w systemie Linux na mdadm lub LVM z zachowaniem wszystkich przechowywanych informacji.
- Jak przekonwertować RAID1 (mirror) do RAID5 (parity)
- Jak zmienić RAID 0 (striping) na RAID5 (parzystość)
- Jak przekonwertować LVRAID1 na LVRAID5
- Jak przekonwertować LVRAID0 na LVRAID5
- Jak odzyskać dane z uszkodzonych macierzy RAID
- Podsumowanie
- Pytania i odpowiedzi
- Komentarze
Macierze RAID0 wyróżniają się wysoką prędkością dostępu do danych i są stosowane tylko ze względu na znaczne zwiększenie prędkości odczytu/zapisu danych. Jednak ich niezawodność i odporność na błędy pozostawiają wiele do życzenia. Ponieważ w przypadku awarii co najmniej jednego nośnika – wszystkie zapisane informacje nie będą dostępne. Przywrócenie go jest niezwykle trudnym zadaniem, a dane, które będzie można uzyskać, na pewno zostaną uszkodzone. Ten typ może być tylko pozornie uważany za tablicę, ponieważ nie ma absolutnie żadnej redundancji.
Typ RAID1 wyróżnia się solidnością i odpornością na awarie, ponieważ wszystkie dane są mirrorowane, tworząc kompletne “lustro” na drugim nośniku. Ale prędkość odczytu/zapisu cierpi i nie może dorównać wydajności “zero” typu.
Jeśli macie dodatkowe miejsce, możecie rozszerzyć “typ 1”do poziomu 5. To z kolei zapewnia dodatkowy poziom niezawodności w stosunku do “poziomu 0”, a także znacznie większe prędkości odczytu/zapisu niż “poziom 1”. Na wyjściu otrzymujemy całkiem solidną, odporną na błędy i szybką macierz RAID5.
Parametr | RAID 0 | RAID 1 | RAID 5 |
---|---|---|---|
Struktura | Striping | Lustrowanie | Striping z parzystością |
Liczba dysków | Minimum 2 | Minimum 2 | Minimum 3 |
Wydajność | Wysoka | Średnia | Wysoka |
Wykorzystanie miejsca | 100% | 50% | (n-1)/n |
Wytrzymałość | Niska | Wysoka | Średnia |
Odzyskiwanie | Brak | Łatwe | Bardziej skomplikowane |
Zastosowanie | Dla prędkości | Dla danych krytycznych | Dla równowagi między prędkością a niezawodnością |
Jak przekonwertować RAID1 (mirror) do RAID5 (parity)
Mamy więc programowy md_RAID1 utworzony w systemie operacyjnym Linux. Ta macierz składa się z dwóch dysków.
Musimy przekonwertować go do RAID5 i dodać kolejny dysk, a informacje na nim muszą pozostać na swoim miejscu. Na macierzy dyskowej znajduje się wiele plików: zdjęcia, filmy, dokumenty itd.
Przed rozpoczęciem operacji konwersji zaleca się wykonanie kopii zapasowej, gdyż w wyniku nieprawidłowego wykonania poleceń może dojść do utraty ważnych informacji.
Otwórzcie terminal, aby polecenia mogły być wykonywane jako root wykonajcie polecenie:
sudo -i
i wprowadźcie hasło.
Następnie, jeśli tablica jest zamontowana, musicie ją odmontować, więc wpiszcie następującą komendę:
umount /dev/md0
lub
umount /mnt
Jeśli system pisze, że cel jest zajęty, spróbujcie go wymusić:
umount -f /dev/md0
Wtedy należy zatrzymać RAID1, wykonajcie następujące polecenie:
mdadm --stop /dev/md0
(md0 lub inna nazwa, aby zobaczyć ścieżkę)
gdzie md0 jest identyfikatorem naszego RAID.
Jeśli bootujecie z tego raidu, to oczywiście nie ma sposobu, aby to zatrzymać, musisz użyć jakiegoś LiveCD.
Teraz musimy nadpisać metadane starego RAID1, więc tworzymy nad nim RAID5 używając tych samych dysków, które były w RAID1, sdb i sdc wpisując następującą komendę:
mdadm --create /dev/md0 -a yes -l 5 -n 2 /dev/sdb1 /dev/sdc1
gdzie,
l5 jest poziomem tablicy,
n2 - to liczba dysków, z których się składa, a następnie określacie te dyski.
Po wykonaniu polecenia, program wyświetli ostrzeżenie, że te dyski są już używane w RAID1, naciśnij Enter, aby kontynuować.
Aby sprawdzić, czy konwersja się powiodła, wpiszcie polecenie:
cat /proc/mdstat
Teraz musimy poczekać na zakończenie odbudowy RAID5, wartość procentowa wskazuje jej status.
Po zakończeniu pracy polecenie cat /proc/mdstat wyświetli następujące dane.
Później można dodać nowy dysk do macierzy i uczynić z niej pełną macierz RAID5. Nowy dysk zostanie dodany jako zapasowy. Aby go dodać wpisz następującą komendę:
mdadm --add /dev/md0 /dev/sdd1
Następnie należy rozszerzyć raid do trzech aktywnych dysków, używając dysku zapasowego, za pomocą tego polecenia:
mdadm --grow /dev/md0 --raid-disks=3
Sprawdźcie, co wyszło z tego z polecenia:
cat /proc/mdstat
Rajd ma teraz 3 dyski sdb, sdc, sdd i proces reshapingu został rozpoczęty.
W procentach widać jego postęp i czekamy na jego zakończenie.
Po zakończeniu sprawdźmy, czy w macierzy dyskowej nie ma błędów, wykonując następujące polecenie:
e2fsck -f /dev/md0
i rozwinąć go za pomocą następującego polecenia:
resize2fs -p /dev/md0
A na koniec należy zaktualizować plik konfiguracyjny, wykonując to polecenie:
mdadm --examine --scan >> /etc/mdadm.conf
Jeśli podczas wykonywania tych poleceń nie wystąpią żadne awarie, wszystkie dane, które znajdowały się na macierzy RAID1 zostaną przeniesione do nowej macierzy RAID5.
Zamontujcie dysk i sprawdźcie, czy wszystkie pliki są nienaruszone, a poziom 5 macierzy został zmieniony.
Jak zmienić RAID 0 (striping) na RAID5 (parzystość)
Nie ma sposobu na konwersję z RAID0 do RAID5 bez formatowania i utraty informacji. Zamiast tego istnieje szybki sposób na wykonanie konwersji za pomocą jednego polecenia.
Migracja z RAID0 do RAID5 jest możliwa tylko w przypadku użycia dwóch dysków, gdzie RAID0 jest wygodnie taki sam jak RAID5. To po prostu zmienia poziom RAID bez wpływu na informacje na dyskach.
Ta komenda konwertuje RAID0 z dwoma dyskami do RAID5 z trzema dyskami.
mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd --backup-file=/tmp/grow_md0.bak
Przed wykonaniem tej czynności należy odmontować dysk.
Sprawdźcie za pomocą komendy:
cat /proc/mdstat
Oczekiwanie na reshap-a
Po konwersji do RAID-5, można dodać dodatkowe dyski do macierzy tak jak napisałem powyżej:
mdadm --add /dev/md0 /dev/sdc1
Po ponownym uruchomieniu w zarządzaniu dyskami jego nazwa zmieni się na RAID5.
Jeśli w RAID0 znajdują się więcej niż dwa dyski, należy najpierw zredukować ich liczbę, zanim będzie można przekształcić ją w RAID5.
Jak przekonwertować LVRAID1 na LVRAID5
Jeśli użyto funkcji LVM do utworzenia macierzy RAID, można przekonwertować jeden typ na drugi za pomocą następującego polecenia:
lvconvert
Postępujcie zgodnie z poleceniem
pvdisplay
aby zobaczyć informacje o grupie dysków.
Więcej szczegółów na temat tworzenia macierzy RAID MD i LV można znaleźć w jednym z poprzednich filmów.
Tak więc, aby rozpocząć konwersję, trzeba odmontować wolumin logiczny. Wpiszcie polecenie:
umount /dev/vg1/lv1
Należy przekonwertować poziom RAID wpisując następujące polecenie:
lvconvert --type raid5 /dev/vg1/lv1
Teraz pozostaje tylko dodać trzeci dysk do istniejącej grupy dysków, wykonując polecenie:
vgextend vg1 /dev/sdd1
Po wykonaniu tego polecenia zostaniecie poproszone o potwierdzenie, że dysk jest już podzielony na partycje, więc wpiszcie yes, aby potwierdzić i naciśnijcie enter.
Jeśli chcecie wiedzieć, czy dysk został dodany do grupy, możecie to zrobić uruchamiając
pvdisplay
Jak widać w grupie znajdują się 3 dyski.
Zamontujcie nasz dysk ponownie i otwórzcie go w menadżerze plików, jak widać wszystkie dane nadal tam są.
Jak przekonwertować LVRAID0 na LVRAID5
To samo polecenie jest używane do konwersji RAID0 do RAID5. Jedyną rzeczą, którą należy zrobić przed wykonaniem konwersji, jest dodanie trzeciego dysku do grupy, w przeciwnym razie system poinformuje, że nie ma wystarczającej ilości miejsca do wykonania polecenia.
Dodajcie trzeci dysk:
Aby rozwiązać poziom RAID, wprowadź następujące polecenie:
lvconvert --type raid5 /dev/vg1/lv1
Montujemy naszą tablicę i sprawdzamy co na niej zostało. Jak widać, wszystkie pliki są na miejscu.
Jak odzyskać dane z uszkodzonych macierzy RAID
Jeśli wystąpi awaria podczas konwersji z jednego poziomu RAID na inny, lub jeśli przypadkowo nadpisać informacje, można użyć oprogramowania do odzyskiwania danych, Hetman RAID Recovery. To narzędzie wyodrębnia z systemu wszystkie informacje o kontrolerze, płycie głównej lub oprogramowaniu, na którym została utworzona macierz dyskowa.
Odtworzy on zniszczony RAID i pozwoli na skopiowanie z niego utraconych informacji.
Więcej szczegółów na temat odzyskiwania RAID MD LV można zobaczyć w jednym z poprzednich filmów, zostawię link w opisie.
Podsumowanie
Modyfikacja z jednego typu RAID na inny wymaga tylko kilku kroków. Najpierw musicie przekonwertować tablicę na typ średni, a następnie ponownie na typ, który chcecie. Na przykład, aby przekonwertować z "pierwszego" typu do "szóstego" musielibyście najpierw przekonwertować go do "piątego" poziomu i dopiero potem możecie go przekonwertować do szóstego poziomu
Spróbujcie zamontować md1 na dowolnym punkcie montowania przed ponownym uruchomieniem komputera (nie wprowadzaj zmian w pliku fstab, dopóki nie będziesz mógł zamontować z powodzeniem)
Może nie montować, bo trzeba zmienić rozmiar md1 przed montażem.
Odmontujcie wszystkie systemy plików hostowane na woluminach LVM za pomocą polecenia umount, dezaktywujcie grupę woluminów vg0 LVM za pomocą polecenia: vgchange -an vg0,
dezaktywować macierz RAID za pomocą polecenia: mdadm --stop /dev/md0,
usunąć urządzenie RAID za pomocą polecenia: mdadm --delete /dev/md0
i dopiero potem wyzerować superblok na sda4 przez mdadm --zero-superblock /dev/sda4.