Rozumiem, czym jest LVM i co osiąga, ale wydaje mi się, że brakuje mi niektórych rzeczy.
Powiedzmy, że mamy dwa dyski fizyczne: sda i sdb. Oba mają 100 megabajtów. Umieszczam je w VolumeGroup1 i tworzę jeden 200-megapikselowy LogicalVolume1.
Co by się stało, jeśli utworzę plik 150 megapikseli? Czy 100 megabajtów fizycznie byłoby na sda, a 50 na sdb? Jeśli tak, to co mówi systemowi operacyjnemu, że fragment pliku znajduje się na jednym dysku, a drugi na drugim?
Co z awarią napędu? Zakładając brak RAID, jeśli sdb ulegnie awarii, czy wszystkie dane na sda zostaną utracone? Czy w ogóle można kontrolować, jakie pliki znajdują się na jakich dyskach fizycznych?
Jak ogólnie zarządzasz LVM? Czy tworzysz jedną lub dwie duże grupy woluminów, a następnie tworzysz partycje, jeśli ma to sens? Jakieś inne wskazówki?
Odpowiedzi:
Prawidłowe (zakładając, że system plików był pusty przed utworzeniem pliku).
LVM informuje system operacyjny, że istnieje jeden pojedynczy dysk 200 MB. Część LVM jądra (składa się z dwóch części, narzędzi do zarządzania przestrzenią użytkownika i sterowników jądra) mapuje następnie to, co system operacyjny widzi do fizycznych lokalizacji / bloków na dyskach.
Tak, rozważ utratę danych.
Jeśli utworzysz mniejsze woluminy logiczne, możesz użyć
pvmove
polecenia, aby przenieść je z dysku na dysk.Zwykle tworzę duże grupy woluminów, a następnie w razie potrzeby tworzę woluminy logiczne. Nie ma potrzeby pełnego przydzielania całego miejsca w grupie woluminów; alokuj, kiedy jest to potrzebne. Zwiększenie wielkości woluminu logicznego jest łatwe, a praktycznie wszystkie współczesne systemy plików można łatwo rozbudować.
źródło
--stripes <num>
(krótki-i <num>
) podczas tworzenia woluminu logicznego.Podstawową rzeczą, która pozwala LVM i Software Raid w Linuksie, jest część jądra zawierająca mapowanie urządzeń. To właśnie abstrakuje adresy bloków fizycznych urządzeń do wirtualnych urządzeń blokowych, których używasz.
Korzystając z LVM, podobnie jak w przypadku innych danych, musisz zdawać sobie sprawę z konsekwencji dostępności danych. Nie oznacza to, że LVM jest niebezpieczny, gdy stosowane są odpowiednie praktyki, jego wpływ na dostępność jest minimalny.
W scenariuszu, który sugerujesz w swoim pytaniu, dostępność twoich danych byłaby taka sama jak RAID0, w przypadku awarii dowolnego dysku prowadziłoby to do utraty danych.
W praktyce nie używałbym LVM bez uruchamiania go na jakimś RAID. Użyłem LVM na serwerze plików 30 TB, który miał około 20 sprzętowych woluminów RAID5 w jednym VG. Ale jeśli masz wystarczającą liczbę wolnych zakresów, możesz użyć pvmove do migracji danych z jednego lub więcej PV, jeśli zacznie to powodować problemy.
Ale zawsze należy mieć strategię tworzenia kopii zapasowych, która jest od czasu do czasu testowana.
źródło
Jak ogólnie zarządzasz LVM? Czy tworzysz jedną lub dwie duże grupy woluminów, a następnie tworzysz partycje, jeśli ma to sens?
Moją ogólną strategią jest umieszczenie w osobnej grupie woluminów fizycznych woluminów, które mogą być migrowane (jako cały zestaw) do innego systemu.
Jeśli masz pamięć zewnętrzną, dobrze jest umieścić ją w osobnej grupie woluminów. Fizycznie łatwo jest odłączyć go od tego komputera i połączyć z innym, więc podobnie logicznie powinno być łatwo wyeksportować / zaimportować go do LVM, zachowując nienaruszone dane.
Jeśli masz już vg00 na wewnętrznych dyskach, a następnie kupujesz inny dysk wewnętrzny dla swojego komputera, zadaj sobie pytanie: czy dane na nowym dysku zostaną powiązane z vg00 i nigdy nie będzie sensu się przenosić dane do innego systemu? W takim przypadku powinien być częścią vg00. W przeciwnym razie stworzyłbym vg01, ponieważ można go łatwo eksportować / importować samodzielnie.
źródło
Jeśli masz dwa dyski jako woluminy fizyczne w takiej grupie, to masz tablicę JBOD (Just a Bunch Of Disks). Jeśli jeden z dysków ulegnie awarii, nie będziesz lepiej chroniony niż dyski ustawione w macierzy RAID0.
Nie możesz bezpośrednio kontrolować, co dzieje się na dwóch dyskach, jeśli masz jeden wolumin logiczny w grupie woluminów (ponieważ będzie on kontrolowany przez system plików w woluminie, a nie LVM), ale jeśli podzielisz grupę woluminów na wiele woluminów logicznych, może ręcznie zamówić ich utworzenie tak, aby dany wolumin logiczny znajdował się na danym dysku.
Uważam, że każdy teledysk w VG ma kopię układu LV, a dane nie są usuwane, jak w przypadku RAID0, więc masz większą szansę na odzyskanie czegoś, jeśli jeden z dysków ulegnie awarii, ale jeśli utrata danych jest w ogóle problemem W ogóle nie rozważałbym użycia dwóch dysków w ten sposób (przez LVM lub RAID0).
źródło
LVM (Logical Volume Manager) zbiera woluminy fizyczne na grupy woluminów. Każdy wolumin fizyczny (sam dysk) ma małe elementy zwane rozmiarami fizycznymi. Te zakresy mają na dysku identyfikator uniq. W rzeczywistości są one kolejno ponumerowane. Podczas tworzenia woluminu logicznego został on zbudowany z zakresu logicznego sparowanego z zakresami fizycznymi. Zakres logiczny ma unikatowy identyfikator w woluminie logicznym. W systemie HP-UX można sprawdzić, jaki zasięg logiczny jest sparowany z jakim zasięgiem fizycznym. W SLES11 nie wiem, jak to sprawdzić.
lvdisplay --maps
powinno być dobre, ale nie perfekcyjne (jak dla mnie).źródło