Próbuję dowiedzieć się, jak działają migawki LVM, aby móc je zaimplementować na moim serwerze plików, ale mam trudności ze znalezieniem w Google czegoś, co wyjaśnia, jak to działa, zamiast używania go w podstawowym systemie kopii zapasowych.
Z tego, co przeczytałem, myślę, że działa to mniej więcej tak:
- Masz LVM z partycją podstawową i dużą ilością nieprzydzielonego wolnego miejsca poza partycją
- Następnie wykonaj migawkę i zamontuj ją na nowym woluminie logicznym. Migawki powinny mieć zmiany, więc ta pierwsza migawka byłaby całą kopią, prawda?
- Następnego dnia robisz kolejną migawkę (rozmiar partycji nie musi być tak duży) i montujesz.
- W jakiś sposób LVM śledzi migawki i nie przechowuje niezmienionych bitów w głównym woluminie.
- Następnie decydujesz, że masz wystarczająco dużo migawek i pozbywasz się pierwszego. Nie mam pojęcia, jak to działa ani jak wpłynie to na następną migawkę.
Czy ktoś może mnie poprawić, gdy się mylę. W najlepszym razie zgaduję, że nie mogę nic znaleźć w Google.
vgdiplay
obu1: / home / jail / home / qps / backup / D # vgdisplay --- Grupa woluminów --- Nazwa serwera plików VGLVM ID systemu Sformatuj lvm2 Obszary metadanych 1 Sekwencja metadanych nr 3 VG Access odczyt / zapis Status VG można zmienić MAX LV 0 Cur LV 2 Otwórz LV 2 Max PV 0 Cur PV 1 Akt PV 1 Rozmiar VG 931,51 GB Rozmiar PE 4,00 MB Ogółem PE 238467 Alloc PE / Rozmiar 238336 / 931,00 GB Darmowy PE / Rozmiar 131 / 524,00 MB VG UUID qSGaG1-SQYO-D2bm-ohDf-d4eG-oGCY-4jOegU
Migawki LVM są przykładem rozwiązania migawkowego kopiowania przy zapisie, jak powiedział Evan. Jego działanie różni się nieco od sugerowanego przez Evana, ale nie za bardzo.
Gdy masz wolumin LVM bez migawek, zapisywanie w woluminie odbywa się zgodnie z oczekiwaniami. Blok się zmienia i to wszystko.
Po utworzeniu migawki LVM tworzy pulę bloków. Pula ta zawiera również pełną kopię metadanych LVM woluminu. Gdy do woluminu głównego, na przykład podczas aktualizowania i-węzła, dochodzi do zapisu, zastępowany blok jest kopiowany do nowej puli, a nowy blok jest zapisywany w głównym woluminie. To jest „kopiowanie przy zapisie”. Z tego powodu im więcej danych ulega zmianie między momentem wykonania migawki a bieżącym stanem woluminu głównego, tym więcej miejsca zajmie ta pula migawek.
Po zamontowaniu migawki metadane zapisane podczas wykonywania migawki umożliwiają mapowanie bloków puli migawek na zmienione bloki w woluminie (lub migawce wyższego poziomu). W ten sposób, gdy przychodzi dostęp do określonego bloku, LVM wie, który dostęp do bloku. Jeśli chodzi o system plików na tym woluminie, nie ma migawek.
James wskazał na jedną z wad tego systemu. Jeśli masz wiele migawek tego samego woluminu, za każdym razem, gdy piszesz do bloku w woluminie głównym, potencjalnie wyzwalasz zapis w każdej pojedynczej migawce. Jest tak, ponieważ każda migawka utrzymuje własną pulę zmienionych bloków. Ponadto w przypadku długich drzew migawek dostęp do migawki może spowodować sporo obliczeń na serwerze, aby dowiedzieć się, który dokładnie blok należy obsłużyć w celu uzyskania dostępu.
Kiedy pozbywasz się migawki, LVM po prostu upuszcza pulę migawek i aktualizuje drzewo migawek w razie potrzeby. Jeśli upuszczona migawka jest częścią drzewa migawek, niektóre bloki zostaną skopiowane do migawki niższego poziomu. Jeśli jest to najniższa migawka (lub jedyna), pula jest po prostu upuszczana, a operacja jest bardzo szybka.
Niektóre systemy plików oferują migawki wewnątrz systemu plików, ZFS i BTRFS to tylko dwa z bardziej znanych. Działają podobnie, chociaż sam system plików zarządza zmienionym / niezmienionym odwzorowaniem. Jest to prawdopodobnie lepszy sposób na zrobienie tego, ponieważ można sprawdzić spójność całej rodziny migawek, czego nie można zrobić z prostym LVM.
źródło
Nie określasz, czy korzystasz z systemu Linux, czy HP-UX. W HP-UX tworzysz wolumin logiczny i montujesz go jako migawkę innego woluminu logicznego. W systemie Linux tworzysz wolumin logiczny jako wolumin migawki.
Usuwanie migawki w systemie HP-UX odbywa się przez podłączenie woluminu; w Linuksie odbywa się to za pomocą lvremove do usunięcia woluminu logicznego.
W każdym razie zmiany są jedyną rzeczą przechowywaną w migawce. Im dłużej migawka pozostaje dostępna, tym więcej zmian gromadzi - i istnieje szansa, że zapełni się ona, jeśli nie będzie odpowiednio zwymiarowana lub zwolniona.
Szybkość dostępu do dysku na woluminie migawkowym jest wolniejsza niż na normalnym woluminie; musisz to wziąć pod uwagę.
źródło
Migawki LVM są nieefektywne, im więcej migawek, tym wolniej będzie działał system.
Obsługuję tylko xfs, ponieważ używamy tego, a xfs_freeze może służyć do zatrzymania nowego dostępu do systemu plików i utworzenia stabilnego obrazu na dysku.
Funkcja Kopiuj przy zapisie jest używana, więc miejsce na dysku jest efektywnie wykorzystywane.
Utworzono system plików w woluminie logicznym, który ma wolne miejsce na migawki.
To jest przykład z FAQ
źródło