Jakie są zalety Logical Volume Manager [zamknięte]

11

Jakie są funkcje i potencjalne korzyści Logical Volume Manager poza tym, co jest szczegółowo opisane na stronie Wikipedii?

LanceBaynes
źródło
1
W przeciwieństwie do czego? Naprawdę, to jest zbyt niejasne pytanie ... nic dziwnego, że został przegłosowany.
Nandhini Anand,
Proszę opracować opcje.
Ori
1
Wow - przeformułowanie tego pytania otrzymało świetną odpowiedź od Matta Simmonsa!
dunxd
1
Dla kompletności warto również przyjrzeć się zagrożeniom i zastrzeżeniom związanym z LVM: serverfault.com/questions/279571/lvm-dangers-and-caveats
RichVel

Odpowiedzi:

33

Zaczerpnięte bezpośrednio z mojego wpisu na blogu: http://www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/

Po pierwsze, omówmy życie bez LVM. W dawnych, złych czasach miałeś twardy dysk. Ten dysk twardy może mieć partycje. Możesz zainstalować systemy plików na tych partycjach, a następnie użyć tych systemów plików. Podążaj w obie strony. Wyglądało to tak:

Masz rzeczywisty napęd, w tym przypadku sda. Na tym dysku są dwie partycje, sda1 i sda2. Jest też trochę niewykorzystanego wolnego miejsca. Każda z partycji ma zamontowany system plików. Rzeczywisty typ systemu plików jest dowolny. Możesz to nazwać ext3, reiserfs lub cokolwiek innego. Należy zauważyć, że między partycjami dyskowymi a możliwymi systemami plików istnieje bezpośrednia korolacja jeden do jednego.

Dodajmy logiczne zarządzanie woluminami, które odtwarza dokładnie tę samą strukturę:

Teraz widzisz te same partycje, jednak nad nimi znajduje się warstwa zwana „Grupą woluminów”, dosłownie grupą woluminów, w tym przypadku partycjami dyskowymi. Można uznać to za dysk wirtualny, który można podzielić na partycje. Ponieważ dokładnie dopasowujemy naszą poprzednią konfigurację, nie widzisz jeszcze mocnych stron systemu. Można zauważyć, że nad grupą woluminów utworzyliśmy woluminy logiczne, które można by uznać za partycje wirtualne i na ich podstawie budujemy nasze systemy plików.

Zobaczmy, co się stanie, gdy dodamy więcej niż jeden wolumin fizyczny:

Tutaj mamy trzy dyski fizyczne, sda, sdb i sdc. Każdy z pierwszych dwóch dysków ma jedną partycję zajmującą całe miejsce. Ostatni, sdc, ma jedną partycję zajmującą połowę dysku, a połowę pozostało niepodzielonym wolnym miejscem.

Widzimy grupę woluminów powyżej tej, która obejmuje wszystkie aktualnie dostępne woluminy. Oto jeden z największych punktów sprzedaży. Możesz zbudować partycję logiczną tak dużą jak suma dysków. Pod wieloma względami jest to podobne do działania RAID poziomu 0, z tym wyjątkiem, że w ogóle nie ma pasowania. Dane są w większości zapisywane liniowo. Jeśli potrzebujesz redundancji lub zwiększenia wydajności zapewnianej przez RAID, pamiętaj, aby umieścić woluminy logiczne na wierzchu macierzy RAID. Plasterki RAID działają tutaj dokładnie tak, jak dyski fizyczne.

Teraz mamy tę grupę woluminów, która zajmuje 2 i 1/2 dysków. Został on wyrzeźbiony na dwa logiczne woluminy, z których pierwszy jest większy niż dowolny z dysków. Woluminy logiczne nie dbają o to, jak duże są rzeczywiste dyski fizyczne, ponieważ widzą tylko, że zostały one wykute w myVolumeGroup01. Ta warstwa abstrakcji jest ważna, jak się przekonamy.

Co się stanie, jeśli zdecydujemy, że potrzebujemy niewykorzystanego miejsca, ponieważ dodaliśmy więcej użytkowników?

Zwykle bylibyśmy trochę zasmuceni, gdybyśmy użyli mapowania jeden na jeden, ale z logicznymi woluminami, oto co możemy zrobić:

Tutaj zajęliśmy wcześniej wolne miejsce na / dev / sdc i stworzyliśmy / dev / sdc2. Następnie dodaliśmy to do listy woluminów, które zawierają myVolumeGroup01. Po wykonaniu tej czynności mogliśmy dowolnie rozbudowywać jeden z woluminów logicznych. Od kiedy dodaliśmy użytkowników, wyhodowaliśmy myLogicalVolume2. W tym momencie, o ile system plików / home go obsługiwał, mogliśmy go rozwijać, aby wypełnić dodatkową przestrzeń. Wszystko dlatego, że wyodrębniliśmy naszą pamięć z fizycznych dysków, na których ona żyje.

W porządku, to dotyczy podstawowego powodu logicznego zarządzania woluminami. Ponieważ jestem pewien, że masz ochotę dowiedzieć się więcej o tym, jak przygotować i zbudować własne systemy, oto kilka doskonałych zasobów na początek:

http://www.pma.caltech.edu/~laurence/Linux/lvm.html
http://www.freeos.com/articles/3921/
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html

Matt Simmons
źródło
2
+1 za doskonały opis i wizualizację.
Daemon of Chaos
5

Możesz użyć LVM do robienia wielu rzeczy na dyskach. Główną zaletą jest możliwość rozwijania systemów plików w locie. Załóżmy, że konfigurujesz serwer dziennika, a wiesz, że w przyszłości będziesz mieć mnóstwo danych. Ext3 obsługuje maksymalnie 16 TB (więcej w zależności od twojego jądra i wersji EL). Ale co, jeśli wiesz, że za 2 lata będziesz potrzebować 1PB przestrzeni dyskowej? To stwarza pewne problemy. Po pierwsze, twój szef spojrzy na ciebie z jelonkiem w oczach reflektorów, gdy podasz mu cenę tego sprzętu do przechowywania. Prowadzi to do kolejnego problemu - musisz zacząć od małego rozwiązania, które można skalować w górę. LVM daje tę opcję. Zaczynasz z kilkoma dyskami. Następnie dodajesz więcej, zamieniasz je w grupę logiczną, dodajesz do pierwszego woluminu logicznego, zwiększasz rozmiar woluminu i wreszcie rozbudowujesz system plików. Voila, ty

Dzięki temu nie musisz przenosić danych z urządzenia, formatować jednostek LUN, a następnie cofać wszystko z powrotem, aby wykonać aktualizację. Przepraszam za zwięzłość, mam nadzieję, że to ma sens.

Edycja: Powinienem również zauważyć, że jeśli masz do czynienia z 1PB, nie będziesz chciał używać Ext3 ... prawdopodobnie XFS.

Mateusz
źródło
Naprawdę nie kupuję LVM jako mechanizmu skalowania od 16 TB do 1 PB - naprawdę potrzebujesz ZFS lub podobnego, który umożliwia „cienkie przydzielanie”, tj. Tworzysz pulę pamięci ZFS o łącznej wielkości około 1 PB, ale jest on tylko częściowo wspierany przez prawdziwe bloki pamięci. W miarę wzrostu dodajesz pamięć w tej samej puli. Korzystając z LVM, poświęciłbyś ogromną ilość czasu na zmianę rozmiaru FS (s) i robienie fsck (s) za każdym razem, gdy dodawałeś pamięć.
RichVel
4

Istnieje wiele pośrednich korzyści LVM. Najważniejsze, co robi LVM, to oderwanie dysków fizycznych od systemu operacyjnego . Główną zaletą tego jest po prostu elastyczność . Większość zalet LVM jest realizowanych tylko wtedy, gdy masz system plików, który obsługuje zmianę rozmiaru w locie. Podstawową czynność LVM opisano poniżej:

Partycje systemowe istnieją jedna warstwa nad dyskiem

Bez LVM Linux używa partycji znajdujących się fizycznie na dysku. Partycje to bezpośrednie nazwy urządzeń. Tabela partycji znajduje się w MBR i zwykle (w przypadku logicznych partycji rozszerzonych) w rozszerzonym rekordzie rozruchowym (co pozwala na utworzenie większej liczby partycji). Partycje określają rozmiar i typwśród innych atrybutów (a dokładniej definiują one początkowy i końcowy cylinder, który zasadniczo określa rozmiar). Ponieważ są one tak ściśle powiązane z dyskiem, ważne jest ustawienie „poprawnego” schematu partycjonowania podczas instalacji. Jeśli nagle funkcja maszyny ulegnie zmianie lub jeśli jesteś nowicjuszem i nie zrozumiałeś konsekwencji partycjonowania, lub jeśli gdzieś nie doceniasz użycia dysku lub dzienników konkretnej aplikacji, zmiana tego partycjonowania może być kłopotliwa. Są do tego narzędzia, ale na ogół musisz przenieść dane z partycji, aby to zmienić. Oczywiście, jeśli masz cztery partycje, zmiana cylindra końca drugiej partycji powoduje, że trzecia i czwarta partycja uruchamiają cylindry, więc wpadniesz w bałagan.

Naiwni mogą zalecać użycie pojedynczej dużej partycji, ale możesz się cofnąć, gdy będziesz musiał wprowadzić przydziały lub odizolować nieuczciwe procesy wypełniające części twojego systemu (np. / Var / log, / tmp itp.)

Korzyści z tego są:

Dodawanie / usuwanie pamięci

Dodawanie pamięci jest na ogół trywialne. Jeśli korzystasz ze sprzętowej lub programowej macierzy RAID i dodajesz więcej dysków, często będziesz musiał bawić się dowiązaniami symbolicznymi, aby odbudować macierz RAID, aby Linux udostępnił nową pamięć w wybranych lokalizacjach.

Weźmy przykład dużego katalogu domowego, który się zapełnia. Istnieje na istniejącym woluminie RAID 1 z dwoma dyskami. Chcesz dodać jeszcze dwa dyski. Ustawiasz je w konfiguracji sprzętowej RAID 1. Bez LVM masz kilka opcji:

  1. Odbuduj pełną tablicę rajdową w konfiguracji 1 + 0, która wymaga przeniesienia danych z komputera, przebudowania i przeniesienia go z powrotem.
  2. Utwórz nową grupę woluminów RAID 1, która będzie oddzielna. Linux ma już pierwszy wolumin RAID zamontowany na / home, więc musisz zamontować drugi wolumin RAID na / home1 lub podobnym. Teraz, aby uzyskać odpowiednie ścieżki dla użytkowników, które są zgodne z pierwszym, konieczne może być użycie dowiązań symbolicznych, aby uzyskać ten sam efekt. Ponadto to rozwiązanie wymaga stałej konserwacji oryginalnego woluminu RAID i potencjalnej migracji danych z oryginalnej partycji.

Dzięki LVM możesz po prostu dodać nową grupę woluminów RAID 1 do dodatkowej puli pamięci, zmienić rozmiar systemu plików (pod warunkiem, że obsługuje) i voila, / home jest teraz nagle większy. Nie musisz niczego symbolizować ani przeprowadzać konserwacji potencjalnie przenoszących dane z / home do / home1 i odwrotnie. Opłucz, umyj i powtórz dla przyszłych aktualizacji dysku.

Konserwacja online

Większość zadań LVM, pod warunkiem, że sprzęt je obsługuje, można wykonać online, bez ponownego uruchamiania komputera. Jeśli możesz wymieniać dyski podczas pracy w systemie, możesz dodawać nowe dyski, a następnie usuwać stare (być może mniejsze) dyski, aby zwiększyć wymagania dotyczące pamięci systemowej.

Jednym z głównych problemów z woluminami LVM jest to, że w miarę zbliżania się do pojemności, fragmentacja może stać się problemem z mojego doświadczenia. Objętości> 90%, a naprawdę> 95%, mogą oznaczać, że możesz skończyć się złą fragmentacją dysku w zależności od użycia dysku i typów plików. Rzadko trzeba się tym zbytnio przejmować, tak jest w przypadku każdego rodzaju zarządzania woluminami / partycjami, ale fragmentacja na warstwie woluminów w przeciwieństwie do partycji, o którą tu chodzi.

Philip Reynolds
źródło
Dobra odpowiedź na temat korzyści, ale w twoim punkcie (2) myślę, że masz na myśli „stwórz nowy wolumin RAID 1, który ...” zamiast tworzyć VG, ponieważ jest to przypadek inny niż LVM i prawdopodobnie używasz sprzętowego RAID, jak wspomniano .
RichVel
1

Powinieneś podać więcej informacji o sytuacji, w której zamierzasz to zastosować, w ten sposób możemy udzielić ukierunkowanych odpowiedzi zamiast ogólnych, możliwie niezwiązanych odpowiedzi (nie mogę komentować, powiedziałbym to w komentarzu).

Jeśli chodzi o samo pytanie, masz łatwe tworzenie, zmianę rozmiaru i usuwanie woluminów (zwanych też partycjami), a kolejną miłą funkcją (w zależności od twojej sytuacji) jest możliwość tworzenia migawek woluminu.

Niedostępne
źródło
1

Mimo że wybrano już najlepszą odpowiedź, chciałbym przekazać moją opinię na ten temat. Z mojego doświadczenia zakwestionowałbym przydatność LVM, jeśli masz jeden dysk fizyczny lub nawet jeśli masz kilka dysków (ja osobiście nigdy nie używam LVM na dysku systemowym). Jednak tam, gdzie LVM jest naprawdę niezbędny, znajduje się na sprzętowej macierzy RAID. Pozwala to wyraźnie oddzielić funkcje RAID i LVM - używasz RAID do zarządzania niezawodnością i charakterystyką wydajności pamięci, a LVM do przydzielania rzeczywistych woluminów do systemu. Czasami ta funkcja nakłada się, tj. LVM może zapewniać funkcjonalność RAID-0 i RAID-1, ale nie zalecałbym używania żadnego z tych dwóch przy poważnej kompilacji.

Zasadniczo RAID i LVM należą do siebie, użycie jednego bez drugiego jest zwykle nieoptymalne.

dtoubelis
źródło