Ostatnio zacząłem używać LVM na niektórych serwerach dla dysków twardych większych niż 1 TB. Są przydatne, rozszerzalne i dość łatwe w instalacji. Nie mogłem jednak znaleźć żadnych danych na temat zagrożeń i zastrzeżeń związanych z LVM.
Jakie są wady korzystania z LVM?
linux
filesystems
lvm
data-integrity
advanced-format
Adam Matan
źródło
źródło
Odpowiedzi:
Podsumowanie
Ryzyko związane z używaniem LVM:
Dwa pierwsze problemy LVM łączą się: jeśli buforowanie zapisu nie działa poprawnie i występuje utrata zasilania (np. Awaria zasilacza lub zasilacza UPS), być może trzeba będzie zregenerować dane po wykonaniu kopii zapasowej, co oznacza znaczne przestoje. Kluczowym powodem korzystania z LVM jest dłuższy czas pracy (podczas dodawania dysków, zmiany rozmiaru systemów plików itp.), Ale ważne jest, aby ustawić poprawną konfigurację buforowania zapisu, aby uniknąć faktycznego skrócenia czasu pracy LVM.
- Zaktualizowano grudzień 2018: zaktualizowano materiał migawki, w tym stabilność ZFS i btrfs jako alternatywy dla migawek LVM
Łagodzenie ryzyka
LVM może nadal działać dobrze, jeśli:
Detale
W przeszłości badałem to dość często, ponieważ doświadczyłem utraty danych związanej z LVM. Główne ryzyka i problemy związane z LVM, o których wiem, to:
Podatne na buforowanie zapisu na dysku twardym ze względu na hiperwizory VM, buforowanie dysku lub stare jądra Linuksa i utrudniają odzyskiwanie danych z powodu bardziej złożonych struktur na dysku - szczegółowe informacje znajdują się poniżej. Widziałem, że kompletne konfiguracje LVM na kilku dyskach ulegają uszkodzeniu bez szansy na odzyskanie, a buforowanie zapisu LVM i dysku twardego jest niebezpieczną kombinacją.
data=ordered
opcji ext3 (lubdata=journal
dla dodatkowego bezpieczeństwa), a także,barrier=1
aby upewnić się, że buforowanie jądra nie wpływa na integralność. (Lub użyj ext4, który domyślnie włącza bariery .) Jest to najprostsza opcja i zapewnia dobrą integralność danych kosztem wydajności. (Linux zmienił domyślną opcję ext3 na bardziej niebezpiecznądata=writeback
jakiś czas temu, więc nie polegaj na domyślnych ustawieniach FS.)hdparm -q -W0 /dev/sdX
dla wszystkich dysków w/etc/rc.local
(dla SATA) lub użyj sdparm dla SCSI / SAS. Jednak zgodnie z tym wpisem w często zadawanych pytaniach dotyczących systemu plików XFS (co jest bardzo dobre w tym temacie) dysk SATA może zapomnieć o tym ustawieniu po odzyskaniu błędu dysku - więc powinieneś użyć SCSI / SAS lub jeśli musisz użyć SATA, to umieść Komenda hdparm w zadaniu cron uruchamianym co około minutę.Włączanie buforowania zapisu w celu zwiększenia wydajności (i radzenia sobie z leżącymi dyskami)
Bardziej złożoną, ale wydajniejszą opcją jest włączenie buforowania zapisu SSD / dysku twardego i poleganie na barierach zapisu jądra pracujących z LVM na jądrze 2.6.33+ (sprawdź dwukrotnie, szukając komunikatów „barier” w logach).
Powinieneś także upewnić się, że konfiguracja RAID, konfiguracja hiperwizora VM i system plików używają barier zapisu (tj. Wymaga, aby dysk wyczyścił oczekujące zapisy przed i po zapisaniu kluczowych metadanych / dziennika). XFS domyślnie używa barier, ale ext3 nie , więc z ext3 powinieneś używać
barrier=1
opcji montowania i nadal używaćdata=ordered
lubdata=journal
jak wyżej.Dyski SSD są problematyczne, ponieważ użycie pamięci podręcznej zapisu ma kluczowe znaczenie dla żywotności dysku SSD. Najlepiej jest użyć dysku SSD, który ma superkondensator (aby umożliwić opróżnianie pamięci podręcznej w przypadku awarii zasilania, a tym samym umożliwić buforowaniu zapisywanie z powrotem, a nie zapisywanie).
Zaawansowana konfiguracja napędu - buforowanie zapisu, wyrównanie, RAID, GPT
pvcreate
aby wyrównać PV. Ten wątek listy e-mail LVM wskazuje na pracę wykonaną w jądrach w 2011 r. I problem z częściowymi zapisami blokowymi podczas mieszania dysków z 512 bajtami i 4 sektorami KiB w jednym LV.Trudniejsze do odzyskania dane z powodu bardziej złożonych struktur na dysku :
/etc/lvm
, co może pomóc przywrócić podstawową strukturę LV, VG i PV, ale nie pomoże w utraconych metadanych systemu plików.Trudniejsze do prawidłowej zmiany rozmiaru systemów plików - łatwa zmiana rozmiaru systemu plików jest często podawana jako zaleta LVM, ale musisz wykonać pół tuzina poleceń powłoki, aby zmienić rozmiar FS opartego na LVM - można to zrobić, gdy cały serwer jest włączony, aw niektórych przypadkach z zainstalowanym FS, ale nigdy nie zaryzykowałbym tego ostatniego bez aktualnych kopii zapasowych i korzystania z poleceń wstępnie przetestowanych na równoważnym serwerze (np. klon odzyskiwania po awarii serwera produkcyjnego).
lvextend
obsługują opcję-r
(--resizefs
) - jeśli jest dostępna, jest to bezpieczniejszy i szybszy sposób zmiany rozmiaru LV i systemu plików, szczególnie jeśli zmniejszasz FS, i możesz w większości pominąć tę sekcję.resize2fs
Dla ext3 i dolvextend
lublvreduce
. Bez szczególnej uwagi rozmiary mogą się nieznacznie różnić ze względu na różnicę między 1 GB (10 ^ 9) a 1 GiB (2 ^ 30) lub sposób, w jaki różne narzędzia zaokrąglają rozmiary w górę lub w dół.Wygląda na to, że rozmiar LV powinien być większy niż rozmiar FS o 2 x rozmiar LVM fizycznego zasięgu (PE) - ale sprawdź link powyżej, aby uzyskać szczegółowe informacje, ponieważ źródło tego nie jest wiarygodne. Często wystarczające jest zezwolenie na 8 MiB, ale może być lepiej pozwolić na więcej, np. 100 MiB lub 1 GiB, dla bezpieczeństwa. Aby sprawdzić rozmiar PE i wolumin logiczny + rozmiary FS, używając 4 bloków KiB = 4096 bajtów:
Pokazuje rozmiar PE w KiB:
vgdisplay --units k myVGname | grep "PE Size"
Rozmiar wszystkich LV:
lvs --units 4096b
Rozmiar (ext3) FS, zakłada rozmiar bloku 4 KiB FS:
tune2fs -l /dev/myVGname/myLVname | grep 'Block count'
Natomiast konfiguracja bez LVM sprawia, że zmiana rozmiaru FS jest bardzo niezawodna i łatwa - uruchom Gparted i zmień rozmiar wymaganych FS, wtedy zrobi wszystko za Ciebie. Na serwerach możesz używać
parted
z powłoki.Migawki są trudne w użyciu, powolne i zawierają błędy - jeśli migawka zabraknie wstępnie przydzielonego miejsca, zostanie automatycznie upuszczona . Każda migawka danego LV jest różnicą w stosunku do tej LV (nie w porównaniu z poprzednimi migawkami), która może wymagać dużo miejsca podczas migawek systemów plików ze znaczną aktywnością zapisu (każda migawka jest większa niż poprzednia). Można bezpiecznie utworzyć migawkę LV o takim samym rozmiarze jak oryginalna LV, ponieważ migawka nigdy nie zabraknie wolnego miejsca.
Migawki mogą być również bardzo wolne (co oznacza 3 do 6 razy wolniejsze niż bez LVM dla tych testów MySQL ) - zobacz tę odpowiedź dotyczącą różnych problemów z migawkami . Powolność jest częściowo spowodowana tym, że migawki wymagają wielu zapisów synchronicznych .
Migawki miały kilka istotnych błędów, np. W niektórych przypadkach mogą spowalniać uruchamianie bardzo wolno lub powodować całkowite niepowodzenie rozruchu (ponieważ jądro może przekroczyć limit czasu oczekiwania na root FS, gdy jest to migawka LVM [naprawione w
initramfs-tools
aktualizacji Debiana , marzec 2015] ).Alternatywne migawki - systemy plików i hiperwizory maszyn wirtualnych
Migawki maszyny wirtualnej / chmury:
Migawki systemu plików:
migawki na poziomie systemu plików z ZFS lub btrfs są łatwe w użyciu i ogólnie lepsze niż LVM, jeśli używasz goły komputer (ale ZFS wydaje się o wiele bardziej dojrzały, po prostu więcej problemów z instalacją):
Migawki dla kopii zapasowych online i fsck
Migawek można użyć w celu zapewnienia spójnego źródła kopii zapasowych, o ile zachowasz ostrożność przy przydzielaniu miejsca (najlepiej, że migawka ma taki sam rozmiar jak kopia zapasowa LV). Doskonały rsnapshot (od 1.3.1) nawet zarządza tworzeniem / usuwaniem migawek LVM - zobacz to HOWTO na rsnapshot przy użyciu LVM . Należy jednak pamiętać o ogólnych problemach z migawkami i że migawki nie należy uważać za kopię zapasową samą w sobie.
Możesz także użyć migawek LVM, aby wykonać fsck online: migawkę LV i fsck migawkę, przy jednoczesnym użyciu głównego nie-migawkowego FS - opisanego tutaj - jednak nie jest to całkowicie proste, więc najlepiej użyć e2croncheck zgodnie z opisem Ted Ts „o , opiekun ext3.
Powinieneś tymczasowo „zamrozić” system plików podczas robienia migawki - niektóre systemy plików, takie jak ext3 i XFS, zrobią to automatycznie, gdy LVM utworzy migawkę.
Wnioski
Mimo to nadal używam LVM na niektórych systemach, ale dla konfiguracji pulpitu wolę partycje raw. Główną korzyścią, którą widzę z LVM, jest elastyczność przenoszenia i zmiany rozmiaru FS, kiedy musisz mieć długi czas pracy na serwerze - jeśli nie potrzebujesz tego, gparted jest łatwiejszy i ma mniejsze ryzyko utraty danych.
LVM wymaga dużej ostrożności przy konfiguracji buforowania zapisu ze względu na hiperwizory VM, buforowanie zapisu na dysku twardym / SSD itd. - ale to samo dotyczy używania Linuksa jako serwera DB. Brak wsparcia ze strony większości narzędzi (w
gparted
tym obliczeń wielkości krytycznychtestdisk
itp.) Sprawia, że korzystanie z niego jest trudniejsze niż powinno.Jeśli używasz LVM, zachowaj szczególną ostrożność przy tworzeniu migawek: w miarę możliwości używaj migawek VM / chmury lub zbadaj ZFS / btrfs, aby całkowicie uniknąć LVM - możesz stwierdzić, że ZFS lub btrs są wystarczająco dojrzałe w porównaniu do LVM z migawkami.
Konkluzja: Jeśli nie wiesz o powyższych problemach i jak je rozwiązać, najlepiej nie używać LVM.
źródło
Daję +1 temu postowi i przynajmniej dla mnie myślę, że większość problemów istnieje. Widziałem je podczas uruchamiania kilku 100 serwerów i kilku 100 TB danych. Dla mnie LVM2 w Linuksie wydaje się być „sprytnym pomysłem”, jaki ktoś miał. Jak niektóre z nich okazują się czasami „nie sprytne”. Tzn., Że nie ma ściśle oddzielonych stanów jądra i przestrzeni użytkownika (lvmtab), mogłem poczuć się naprawdę mądry, aby zlikwidować, ponieważ mogą wystąpić problemy z korupcją (jeśli nie uda się poprawnie uzyskać kodu)
Cóż, po prostu ten podział był z jakiegoś powodu - różnice pokazują, jak radzić sobie z utratą PV, i ponowną aktywację online VG z np. Brakującymi PV, aby przywrócić je do gry - Co to jest proste na „oryginalnych LVM” (AIX , HP-UX) zamienia się w bzdury na LVM2, ponieważ obsługa stanu nie jest wystarczająco dobra. I nawet nie zrozumcie mnie mówisz wykrywania strat Quorum (haha) lub stan obsługi (jeśli usunąć dysku, który nie zostanie oznaczony jako niedostępny. To nawet nie mieć kolumnę stanu cholerną)
Re: stabilność pvmove ... dlaczego jest
taki artykuł na najwyższym blogu na moim blogu, hmmm? Właśnie teraz patrzę na dysk, na którym fiskalne dane lvm są nadal zawieszone na stanie od połowy pvmove. Myślę, że były pewne memleaki, a ogólny pomysł, że dobrze jest kopiować dane z bloków na żywo z przestrzeni użytkownika, jest po prostu smutny. Ładny cytat z listy lvm „wydaje się, że vgreduce - brak obsługi nie obsługuje pvmove” Oznacza to, że jeśli dysk zostanie odłączony podczas pvmove, to narzędzie do zarządzania lvm zmienia się z lvm na vi. Aha, wystąpił również błąd, w którym pvmove kontynuuje działanie po błędzie odczytu / zapisu bloku i w rzeczywistości nie zapisuje już danych do urządzenia docelowego. WTF?
Re: Migawki CoW odbywa się niepewnie, poprzez aktualizację NOWYCH danych w obszarze lv migawki, a następnie scalanie z powrotem po usunięciu migawki. Oznacza to, że masz duże skoki we / wy podczas ostatecznego scalania nowych danych do pierwotnej LV i, co ważniejsze, oczywiście masz również znacznie większe ryzyko uszkodzenia danych, ponieważ migawka nie zostanie przerwana, gdy trafisz na ściana, ale oryginał.
Zaletą jest wydajność, wykonanie 1 zapisu zamiast 3. Wybranie szybkiego, ale nieprzejrzystego algorytmu jest czymś, czego oczywiście oczekuje się od ludzi takich jak VMware i MS, na „Unixie” raczej bym pomyślał, że wszystko byłoby zrobione „dobrze”. Nie widziałem wielu problemów z wydajnością, o ile mam magazyn kopii zapasowych migawek na innym dysku niż dane podstawowe (i oczywiście kopię zapasową na innym dysku)
Re: Bariery Nie jestem pewien, czy można winić LVM. O ile mi wiadomo, była to sprawa devmapper. Ale może być wina, że tak naprawdę nie przejmujemy się tym problemem, przynajmniej od jądra 2.6 aż do 2.6.33 AFAIK Xen jest jedynym hypervisorem używającym O_DIRECT dla maszyn wirtualnych. nadal będzie buforować przy użyciu tego. Virtualbox ma przynajmniej pewne ustawienia, aby wyłączyć takie rzeczy, a Qemu / KVM ogólnie wydaje się zezwalać na buforowanie. Wszystkie FUSE FS również mają tam problemy (brak O_DIRECT)
Re: Rozmiary Myślę, że LVM „zaokrągla” wyświetlany rozmiar. Lub używa GiB. W każdym razie musisz użyć rozmiaru Pe VG i pomnożyć go przez numer LE LV. To powinno dać prawidłowy rozmiar sieci, a ten problem jest zawsze problemem użytkowania. Sytuację pogarszają systemy plików, które nie zauważają czegoś takiego podczas fsck / mount (hello, ext3) lub nie mają działającego online „fsck -n” (hello, ext3)
Oczywiście mówi to, że nie można znaleźć dobrych źródeł takich informacji. „ile LE dla VRA?” „jaka jest kompensacja fiskalna dla PVRA, VGDA, ... itd.”
W porównaniu z oryginalnym LVM2 jest doskonałym przykładem: „Ci, którzy nie rozumieją UNIX, skazani są na jego ponowne wynalezienie, słabo”.
Zaktualizuj kilka miesięcy później: do tej pory testowałem scenariusz „pełnej migawki”. Jeśli się zapełni, migawka blokuje, a nie oryginalna LV. Myliłem się, kiedy pierwszy raz to opublikowałem. Wybrałem złe informacje od jakiegoś doktora, a może to zrozumiałem. W moich ustawieniach zawsze byłem bardzo paranoikiem, aby nie pozwolić im się zapełnić, więc nigdy nie skończyłem. Możliwe jest również przedłużanie / zmniejszanie migawek, co jest przyjemnością.
Wciąż nie jestem w stanie rozwiązać, jak rozpoznać wiek migawki. Jeśli chodzi o ich wydajność, na stronie projektu „cienki” fedora znajduje się informacja, że technika migawki jest modyfikowana, aby nie ulegała spowolnieniu z każdą migawką. Nie wiem, jak to wdrażają.
źródło
jeśli planujesz używać migawek do tworzenia kopii zapasowych - przygotuj się na poważny spadek wydajności, gdy migawka jest obecna. czytaj więcej tutaj . inaczej wszystko będzie dobrze. Używam lvm w produkcji od kilku lat na kilkudziesięciu serwerach, chociaż moim głównym powodem, dla którego go używam, jest migawka atomowa, a nie możliwość łatwego powiększania woluminów.
btw, jeśli zamierzasz używać dysku 1 TB, pamiętaj o wyrównaniu partycji - ten dysk najprawdopodobniej ma sektory fizyczne 4kB.
źródło
Adam,
Kolejna zaleta: możesz dodać nowy wolumin fizyczny (PV), przenieść wszystkie dane do tego PV, a następnie usunąć stare PV bez zakłóceń usługi. Korzystałem z tej możliwości co najmniej cztery razy w ciągu ostatnich pięciu lat.
Wada, której jeszcze nie zauważyłem, wyraźnie wskazała: LVM2 ma dość stromą krzywą uczenia się. Głównie w abstrakcji tworzy się między twoimi plikami a mediami. Jeśli pracujesz tylko z kilkoma osobami, które dzielą się obowiązkami na zestawie serwerów, dodatkowa złożoność może być przytłaczająca dla całego zespołu. Większe zespoły zajmujące się pracą IT zazwyczaj nie będą miały takiego problemu.
Na przykład, używamy go szeroko tutaj w mojej pracy i poświęciliśmy czas na nauczenie całego zespołu podstaw, języka i podstawowych zasad odzyskiwania systemów, które nie uruchamiają się poprawnie.
Należy zwrócić uwagę na jedną ostrożność: jeśli uruchamiasz system z woluminu logicznego LVM2, utrudniasz odzyskiwanie po awarii serwera. Knoppix i przyjaciele nie zawsze mają do tego odpowiednie rzeczy. Zdecydowaliśmy więc, że nasz katalog / boot będzie na własnej partycji i zawsze będzie mały i natywny.
Ogólnie jestem fanem LVM2.
źródło
/boot
odrębny zawsze jest dobrym pomysłemvgchange -ay
aby znaleźć woluminy LVM.