W swojej odpowiedzi na pytanie „mieszane typy RAID” HBruijn sugeruje użycie LVM do wdrożenia RAID w porównaniu do bardziej standardowego MDRAID.
Po krótkim badaniu wydaje się, że LVM obsługuje również funkcje RAID. W przeszłości korzystałem z LVM na platformie MDRAID i do tej pory nie wiedziałem, że LVM obsługuje również funkcje RAID. Wydaje się, że jest to stosunkowo nowy rozwój, ale nie dowiedziałem się dokładnie, kiedy to zostało wdrożone.
Są to więc alternatywne sposoby implementacji oprogramowania RAID w systemie Linux. Jakie są zalety i wady tych dwóch różnych podejść? Szukam porównań funkcji między tymi dwoma podejściami, aby ludzie mogli zdecydować, który jest dla nich lepszy. Wnioski oparte na eksperymentach (jak w tej funkcji, ta funkcja nie działa tak dobrze, jak ta funkcja i oto dlaczego) są również w porządku, pod warunkiem, że w odpowiedzi podasz swoje dane.
Niektóre konkretne problemy do rozwiązania:
- Załóżmy, że chcę wykonać sw RAID + LVM (typowy scenariusz). Czy powinienem używać wsparcia LVM dla SW RAID, a tym samym używać jednego narzędzia zamiast dwóch? Czy to bardziej zintegrowane podejście ma jakieś zalety?
- Czy obsługa LVM dla sw RAID ma znaczące wady w porównaniu z bardziej dojrzałym MDADM? W szczególności, jak stabilna / wolna od błędów jest obsługa LVM dla SW RAID? Wygląda na to, że ta obsługa sięga tylko 2011 roku (patrz poniżej), podczas gdy MDADM jest znacznie starszy. A jak to porównać pod względem zestawu funkcji? Czy ma znaczące braki funkcji w porównaniu do MDADM? I odwrotnie, czy obsługuje jakieś funkcje SW RAID, których nie ma MDADM?
UWAGI:
Szczegółowa dyskusja znajduje się na stronie http://www.olearycomputers.com/ll/linux_mirrors.html, ale nie mogłem dowiedzieć się, w której dacie napisano.
Podobne pytanie na temat błędu serwera: Linux LVM Mirror vs. MD Mirror . Pytanie to zostało jednak zadane w 2010 roku i odpowiedzi mogą być nieaktualne.
Wpis dziennika zmian dla wersji 2.02.87 - 12 sierpnia 2011 r. Ma
Dodaj config --with-raid dla nowego 'raid' segtype dla obsługi MD RAID 1/4/5/6
Wygląda więc na to, że obsługa RAID w LVM ma około 3 lata.
źródło
md
woluminów. Więc maszlvextend
ipvmove
możesz poruszać się między urządzeniami, podczasmd
gdy proces jest znacznie bardziej ręczny, bez wyraźnych korzyści.Odpowiedzi:
Jak dojrzała i funkcjonalna jest LVM RAID?
LVM-RAID tak naprawdę boi się pod kołdrą. Zasadniczo działa, tworząc dwa woluminy logiczne na urządzenie RAID (jeden dla danych, zwany „rimage”; drugi dla metadanych, zwanych „rmeta”). Następnie przekazuje je obecnym kierowcom mdraid. Tak więc rzeczy takie jak obsługa błędów odczytu dysku, równoważenie obciążenia we / wy itp. Powinny być dość dojrzałe.
To dobra wiadomość.
Przybory
Nie możesz
mdadm
z niego korzystać (przynajmniej nie w łatwy sposób¹), a narzędzia LVM RAID nie są tak dojrzałe. Na przykład w Debian Wheezylvs
nie mogę powiedzieć ci statusu synchronizacji RAID5. Bardzo wątpię, aby naprawa i odzyskiwanie (szczególnie z sytuacji, w których „to nigdy nie powinno się zdarzyć!”) Jest tak dobre, jak mdadm (i przypadkowo wpadłem na jedną z tych w moich testach, i w końcu zrezygnowałem z odzyskiwania - odzyskiwanie z mdadm byłoby łatwe).Zwłaszcza jeśli nie używasz najnowszych wersji wszystkich narzędzi, jest coraz gorzej.
Brakujące funkcje
Obecne wersje LVM-RAID nie obsługują zmniejszania (
lvreduce
) woluminu logicznego RAID. Nie obsługują też zmiany liczby dysków ani poziomu RAID (lvconvert
wyświetla komunikat o błędzie informujący, że nie jest jeszcze obsługiwany).lvextend
działa, a nawet może zwiększyć poziomy RAID, które mdraid dopiero niedawno uzyskały wsparcie, takie jak RAID10. Z mojego doświadczenia wynika, że wydłużanie LV jest znacznie częstsze niż ich zmniejszanie, więc jest to właściwie uzasadnione.Niektóre inne funkcje mdraid nie są obecne, a zwłaszcza nie można dostosować wszystkich opcji dostępnych w mdadm.
W starszych wersjach (jak na przykład w Debian Wheezy) LVM RAID również nie obsługuje rozwijania. Na przykład w Wheezy:
Ogólnie rzecz biorąc, nie chcesz uruchamiać wersji Wheezy.
Powyższe jest po zainstalowaniu. To też nie jest trywialny proces.
Problemy z narzędziem
Grając z moją maszyną wirtualną Jessie, odłączyłem (praktycznie) jeden dysk. To działało, maszyna nadal działała.
lvs
nie dał jednak żadnych wskazówek, że tablice uległy degradacji. Ponownie podłączyłem dysk i usunąłem sekundę. Pozostał uruchomiony (to jest raid6). Ponownie dołączony, nadal brak wskazań zlvs
. Uruchomiłemlvconvert --repair
wolumin, powiedział mi, że jest OK. Potem wyciągnąłem trzeci dysk ... i maszyna zginęła. Włóż go ponownie, uruchomiłem ponownie i nie jestem pewien, jak to naprawić.mdadm --force --assemble
naprawiłoby to; wydaje się, że anivgchange
nielvchange
ma tej opcji (lvchange akceptuje--force
, ale wydaje się, że nic nie robi). Nawet próbującdmsetup
bezpośrednio nakarmić tabelę mapowania do jądra, nie mogłem wymyślić, jak ją odzyskać.Również
mdadm
to dedykowane narzędzie do zarządzania tylko RAID. LVM robi o wiele więcej, ale wydaje mi się (i przyznaję, że jest to dość subiektywne), jakby funkcja RAID została tam wrzucona; to nie do końca pasuje.Jak faktycznie zainstalować system z LVM RAID?
Oto krótki zarys instalacji w Debian Jessie lub Wheezy. Jessie jest o wiele łatwiejsza; uwaga, jeśli zamierzasz wypróbować to na Wheezy, najpierw przeczytaj całość…
Do instalacji użyj pełnego obrazu CD, a nie obrazu netinst.
Postępuj normalnie, przejdź do partycjonowania dysku, skonfiguruj woluminy fizyczne LVM. Państwo mogą umieścić
/boot
na LVM-RAID (na Jessie, a na świszczące z niektórych prac szczegółowo poniżej).Utwórz grupy woluminów. Pozostaw to w menu LVM.
Pierwsza odrobina zabawy - instalator nie ma
dm-raid.ko
załadowanego modułu, a nawet nie jest dostępny! Możesz więc pobrać go z pakietu linux-image, który zostanie zainstalowany. Przełącz na konsolę (np. Alt- F2) i:Instalator nie wie, jak utworzyć LVM-RAID LV, więc musisz to zrobić za pomocą wiersza poleceń. Uwaga: nie przeprowadzałem żadnych testów porównawczych; rozmiar paska (
-I
) poniżej jest całkowicie zgadnięciem dla mojej konfiguracji maszyny wirtualnej:W Jessie możesz użyć RAID10 do wymiany. W Wheezy RAID10 nie jest obsługiwany. Zamiast tego możesz użyć dwóch partycji wymiany, każdej RAID1. Ale musi to powiedzieć dokładnie, jakie fizyczne woluminy, aby umieścić je na albo kładzie obie połówki lustra na tym samym dysku . Tak. Poważnie. W każdym razie wygląda to tak:
Na koniec przełącz się z powrotem do instalatora i naciśnij „Zakończ” w menu LVM. Pojawi się teraz wiele logicznych woluminów. To instalator nie rozumie, co się dzieje; zignoruj wszystko za pomocą
rimage
lubrmeta
w ich imieniu (zobacz pierwszy akapit powyżej, aby uzyskać wyjaśnienie, co to jest).Śmiało i twórz systemy plików, wymieniaj partycje itp. Jak zwykle. Zainstaluj system podstawowy itp., Aż pojawi się monit o grub.
Na Jessie grub2 będzie działać, jeśli zostanie zainstalowany w MBR (lub prawdopodobnie z EFI, ale tego nie testowałem). Na Wheezy instalacja zakończy się niepowodzeniem, a jedynym rozwiązaniem jest backportowanie grub2 Jessie. To jest właściwie dość łatwe, kompiluje się czysto na Wheezy. Jakoś przenieś swoje paczki z grubymi plikami do
/target
(lub zrób to w sekundę po chroocie), a następnie:Właściwie na moim najnowszym Jessie VM grub-install zawiesił się. Przejście do F2 i zrobienie tego
while kill $(pidof vgs); do sleep 0.25; done
, po czym to samolvs
, przeszło przez grub-install. Wyglądało na to, aby wygenerować poprawny config mimo to, ale na wszelki wypadek zrobiłemchroot /target /bin/bash
, się/proc
i/sys
zostały zamontowane, i zrobiłupdate-grub
. Tym razem zakończyło się. Następnie zrobiłem a,dpkg-reconfigure grub-pc
aby wybrać instalację gruba na MBR wszystkich wirtualnych dysków.Na Wheezy, po wykonaniu powyższych czynności, wybierz „kontynuuj bez bootloadera”.
Zakończ instalację. Uruchomi się. Prawdopodobnie.
Wiedza społeczności
Istnieje spora liczba osób, które wiedzą o tym
mdadm
i mają duże doświadczenie w zakresie wdrażania. Google prawdopodobnie odpowie na większość pytań na ten temat. Zasadniczo można się tutaj spodziewać pytania, aby uzyskać odpowiedzi, prawdopodobnie w ciągu jednego dnia.Tego samego nie można powiedzieć o LVM RAID. Trudno znaleźć przewodniki. Większość wyszukiwań w Google, które uruchomiłem, zamiast tego znalazły mi rzeczy na temat używania tablic mdadm jako PV. Szczerze mówiąc, dzieje się tak prawdopodobnie dlatego, że jest nowszy i rzadziej używany. W pewnym sensie niesprawiedliwe jest utrzymywanie tego przeciwko sobie - ale jeśli coś pójdzie nie tak, znacznie większa istniejąca społeczność wokół mdadm zwiększa prawdopodobieństwo odzyskania moich danych.
Wniosek
LVM-RAID rozwija się dość szybko. W Wheezy nie jest tak naprawdę użyteczny (przynajmniej bez robienia backportów LVM i jądra). Wcześniej, w 2014 roku, podczas testowania Debiana, wydawało się to ciekawym, ale niedokończonym pomysłem. Obecne testy, w zasadzie to, co stanie się Jessie, wydają się być czymś, czego można by użyć, jeśli często trzeba tworzyć małe wycinki z różnymi konfiguracjami RAID (coś, co jest koszmarem administracyjnym
mdadm
).Jeśli twoje potrzeby są odpowiednio zaspokojone przez kilka dużych macierzy RAID mdadm, podzielonych na partycje przy użyciu LVM, sugeruję kontynuowanie korzystania z nich. Jeśli zamiast tego musisz utworzyć wiele tablic (lub nawet tablic woluminów logicznych), rozważ przejście na LVM-RAID. Ale miej dobre kopie zapasowe.
Wiele zastosowań LVM RAID (a nawet mdadm RAID) jest przejmowanych przez takie rzeczy, jak klastrowe systemy przechowywania / obiektów, ZFS i btrfs. Polecam również zbadanie tych, które mogą lepiej zaspokoić Twoje potrzeby.
Dziękuję
Chciałbym podziękować psusi za nakłonienie mnie do powrotu do stanu LVM-RAID i zaktualizowania tego postu.
Przypisy
Podejrzewam, że można użyć mapera urządzeń do sklejenia metadanych i danych w taki sposób,
mdadm --assemble
aby je zabrał. Oczywiście możesz po prostu dobrze działaćmdadm
na woluminach logicznych ... i byłoby to rozsądniejsze.Podczas instalacji Wheezy nie udało mi się tego po raz pierwszy i zakończyłem bez konfiguracji grub. Musiałem uruchomić system, wprowadzając wszystkie informacje w monicie grub. Po uruchomieniu zadziałało, więc myślę, że będzie działało dobrze z poziomu instalatora. Jeśli skończysz po wyświetleniu monitu o grub, oto magiczne linie do wpisania:
PS: Minęło trochę czasu, odkąd faktycznie przeprowadziłem oryginalne eksperymenty. Udostępniłem moje oryginalne notatki . Zauważ, że zrobiłem teraz nowsze, omówione w tej odpowiedzi, a nie w tych notatkach.
źródło
dpkg-deb
zapewnia czystszy sposób na wyodrębnianie plików z pakietów deb, bez konieczności przeskakiwania etapami.dpkg-deb
dostępny w środowisku instalatora? To nie było ... Upewnij się też, żeby sprawdzić Wheezy.ar -x
powinien również działać, aby rozpakować archiwa deb, choć jest to bardziej niezgrabne. A co powiesz na aktualizację swojej odpowiedzi z obecnym statusem?Nie wiedziałem też, że LVM może zrobić RAID. Osobiście trzymałbym się mdadm, ponieważ jest to znacznie bardziej dojrzałe oprogramowanie, które robi to samo. Jeśli coś zepsuje się w LVM RAID, prawdopodobnie nie będziesz w stanie uzyskać tak dużego wsparcia, jak w przypadku korzystania z mdadm. Ponadto nie ufałbym LVM RAID, ponieważ LVM od dawna nie jest najsolidniejszym oprogramowaniem.
ZFS i BTRFS to przyszłość. Korzyści, które dają, wykraczają poza to, co jest możliwe w warstwie blokowej. O ile nie dążę do kompatybilności, nie będę już używać LVM / mdadm. ZFS i BTRFS mają wiele funkcji, takich jak kompresja, deduplikacja i kopiowanie przy zapisie, ale nie będę wchodził w to tutaj, ponieważ byłoby to trochę poza zakresem.
Na koniec przeprowadź badania i wykorzystaj to, co odpowiada Twoim potrzebom / pragnieniom.
źródło
LVM+XFS
zmierzać bardziej w kierunku niż BTRFS. Obsługują BTRFS, ale to raczej kwestia Oracle / SuSE.