LVM i odzyskiwanie po awarii


13

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?


1
Jeśli chcesz uniknąć redundancji nalotu, dużego nośnika i możesz żyć z awariami pojedynczego dysku, może Ci się to przydać: serverfault.com/a/543684/165065
DennisH

Odpowiedzi:


15

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?

Prawidłowe (zakładając, że system plików był pusty przed utworzeniem pliku).

Jeśli tak, to co mówi systemowi operacyjnemu, że fragment pliku znajduje się na jednym dysku, a drugi na drugim?

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.

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?

Tak, rozważ utratę danych.

Jeśli utworzysz mniejsze woluminy logiczne, możesz użyć pvmovepolecenia, aby przenieść je z dysku na dysk.

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?

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ć.


Jesteś pewien tego pierwszego? Myślałem, że LVM zwykle domyślnie rozbiera, więc plik 150 megapikseli będzie miał prawdopodobnie około 75 megabajtów na każdym dysku
freiheit

2
Paski nie są tworzone, chyba że określisz --stripes <num>(krótki -i <num>) podczas tworzenia woluminu logicznego.
str.

PS, moja odpowiedź tutaj zawiera skrypt, który pokaże, jakie PV wykorzystuje każdy LV: serverfault.com/questions/28592
pgs

@ freiheit, pgs ma rację, domyślnie jest to rozszerzenie, a nie pasowanie, wolumin.
Avery Payne,

jeśli chodzi o zarządzanie, jestem gotów utworzyć jedną grupę lvm na moich 3 dyskach twardych, ale tylko tworzyć logiczne woluminy ograniczone do woluminów fizycznych, a następnie używać tylko wolnych przestrzeni do tworzenia migawek; czy uważasz, że jest to najbezpieczniejsze dla użytkownika domowego (który nie ma nalotu ani pieniędzy, aby szybko wymienić rzeczy)?
Wodnik Moc

4

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.


3

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.


0

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).


0

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?

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 --mapspowinno być dobre, ale nie perfekcyjne (jak dla mnie).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.