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.

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.

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

Autor: , Pisarz techniczny

Oksana Volyniuk jest autorem pracującym w Hetman Software. Ma prawie trzyletnie doświadczenie w zakresie technologii IT, a wcześniej pracowała jako HR menedżer w IT kompanii. Oksana kocha technologię i jest zapalona tworzeniem każdego aktykułu, który może pomóć ludziom.

Redaktor: , Pisarz techniczny

Michał Mirosznyczenko jest jednym z czołowych programistów firmy Hetman Software. Bazując na piętnastoletnim doświadczeniu w tworzeniu oprogramowania, dzieli się swoją wiedzą z czytelnikami naszego bloga. Oprócz programowania Michał jest ekspertem w dziedzinie odzyskiwania danych, systemów plików, urządzeń do przechowywania danych i macierzy RAID.

Rekomendujemy