Co to jest lvmetad i dlaczego miałbym lub powinienem go używać?

28

Mam serwer Gentoo z LVM działający na macierzy RAID, z której korzystam od wielu lat. Ostatnio zaktualizowałem LVM do wersji 2.02.109 (nie pamiętam, jaka była wcześniej wersja) i otrzymałem komunikat podczas aktualizacji:

* Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want
* to enable lvm autoactivation and metadata caching.

Rozumiem, że mogę go włączyć poprzez ustawienie use_lvmetad = 1w /etc/lvm/lvm.conf.

Ale dlaczego miałbym potrzebować takiej funkcji? Rozumiem, że działa z regułami udev, aby utrzymać stan LVM w pamięci podręcznej, aby narzędzia LVM nie musiały skanować woluminów w celu uzyskania tych informacji. Czy to po prostu, że moja mała tablica nie może skorzystać z tego rodzaju funkcji? W jakich okolicznościach mogę / chcę tego użyć?

Steve Kalemkiewicz
źródło

Odpowiedzi:

1

Opis

Ze strony podręcznika lvmetad :

lvmetad to demon buforujący metadane dla LVM. Demon otrzymuje powiadomienia z reguł udev (które muszą być zainstalowane, aby LVM działał poprawnie, gdy lvmetad jest używany). Dzięki tym powiadomieniom lvmetad ma aktualny i spójny obraz grup woluminów dostępnych w systemie. Domyślnie lvmetad, nawet jeśli jest uruchomiony, nie jest używany przez LVM. Zobacz lvm.conf (5).


Przyjrzenie się temu trochę bliżej zasługuje na inną definicję. Wikipedia stwierdza:

System plików kronikowania to system plików, który śledzi zmiany, które zostaną wprowadzone w kronice (zwykle okrągły dziennik w wydzielonym obszarze systemu plików) przed zatwierdzeniem ich w głównym systemie plików. W przypadku awarii systemu lub awarii zasilania takie systemy plików szybciej wracają do trybu online i rzadziej ulegają uszkodzeniu.


Rozumowanie

Nie będę szczegółowo omawiać LVM, ponieważ PO już rozumie korzyści. Jako taki wyjaśnię tylko, dlaczego dodano księgowanie. Starsze wersje LVM nie miały demona dziennika, co oznacza, że ​​jeśli system ulegnie awarii, jedynym dziennikiem, którego można użyć, będzie wolumin fizyczny (dysk twardy). Stwarza to problem, gdy wolumin logiczny obejmuje wiele zakresów w grupach woluminów logicznych obejmujących wiele woluminów fizycznych.

Jeśli połowa transakcji arkusza istnieje na jednym woluminie fizycznym, a druga połowa istnieje na innym woluminie fizycznym, dziennik transakcji nie może zatwierdzić zmian w obu woluminach fizycznych, ponieważ woluminy fizyczne nie rozumieją, że są częścią grupy woluminów , ponieważ transakcja dziennik istnieje tylko w woluminie fizycznym.

Właśnie tam wchodzi nowy demon. Teraz zamiast dziennika dziennika dla każdego woluminu fizycznego LVM może utworzyć dziennik dziennika i utworzyć dla niego sekcję w grupie woluminów, która jest zarezerwowana tylko dla dziennika. Po wykonaniu tej czynności można znaleźć cały dziennik transakcji i odtworzyć go na poziomie grupy woluminów.

eyoung100
źródło
14
Twoja odpowiedź wydaje się sugerować, że lvmetad zapewnia usługę systemowi plików działającemu na nim, który pozwala mu poprawnie rejestrować. Ale inne źródła podają po prostu, że buforuje informacje o układzie LVM dla zestawu narzędzi wiersza poleceń lvm. Byłoby miło wspierać twoją wersję z niektórymi źródłami.
Pavel Šimerda
8
Muszę powtórzyć sceptycyzm @ PavelŠimerdy. Podręcznik lvmetad nie mówi nic o kronikowaniu. Nie wspominając już o tym, że LVM zacząłby być świadomy dzienników (byłoby to naruszenie warstw), ponieważ oznacza to, że musi wiedzieć, które systemy plików rejestrują dzienniki, a które nie, i musi wiedzieć, który system plików żyje na szczycie tego). Nie widzę też żadnego powodu, dla którego rozłożenie dziennika systemu plików na wiele woluminów fizycznych byłoby problemem. Dzieje się tak przez cały czas z innymi technologiami, takimi jak RAID 0.
Dan Molding
29

Z tego linku :

Zwykle każde polecenie LVM wykonuje skanowanie dysku w celu znalezienia wszystkich odpowiednich woluminów fizycznych i odczytania metadanych grupy woluminów. Jednak jeśli demon metadanych jest uruchomiony i włączony, to kosztowne skanowanie można pominąć ... Może to zaoszczędzić znaczną ilość operacji we / wy i skrócić czas wymagany do zakończenia operacji LVM, szczególnie na systemach z wieloma dyskami.

Uruchomiłbyś go w celu zwiększenia wydajności zarządzania LVM i operacji związanych ze statusem, kosztem wydajności uruchamiania i większej złożoności. Poziom wzrostu wydajności jest większy, gdy w systemie jest więcej dysków.

Matthew Sharp
źródło