Z jakich poleceń należy korzystać w LVM, jeśli chcę:
- utworzyć migawkę woluminu tylko do odczytu;
- (wykonaj kilka eksperymentów w tomie);
- a następnie przywrócić wolumin do migawki?
Myślę, że szukasz lvconvert --merge
. Ze strony podręcznika:
--łączyć
Scala migawkę z woluminem źródłowym. Aby sprawdzić, czy twoje jądro obsługuje tę funkcję, poszukaj
snapshot-merge
w danych wyjściowychdmsetup targets
. Jeśli zarówno źródło, jak i wolumin migawki nie są otwarte, scalanie rozpocznie się natychmiast. W przeciwnym razie scalanie rozpocznie się przy pierwszej aktywacji źródła lub migawki i oba zostaną zamknięte. Scalanie migawki w źródle, którego nie można zamknąć, na przykład w głównym systemie plików, jest odraczane do czasu kolejnej aktywacji woluminu źródłowego. Po rozpoczęciu łączenia wynikowy wolumin logiczny będzie miał nazwę źródła, numer podrzędny i identyfikator UUID.
Podczas scalania odczyty lub zapisy do źródła pojawiają się, gdy zostały skierowane do scalania migawki.Po zakończeniu scalania scalona migawka jest usuwana. W wierszu poleceń można podać wiele migawek lub @tag może być użyty do określenia, że wiele migawek ma zostać scalonych z ich odpowiednimi źródłami.
Załóżmy, że masz wolumin logiczny vg0 / system zawierający system plików /.
# create a read-only snapshot
lvcreate -pr --snapshot --name system_snapshot vg0/system
# upgrade or something
# if it fails, reboot and do this from a livecd
lvconvert --merge vg0/system_snapshot
# reboot again and you have your old system back
Ponowne uruchomienie jest potrzebne tylko dlatego, że w tym scenariuszu nie można odmontować systemu plików. Jeśli nie jest to / fs, wystarczy odmontować.
Pamiętaj, że migawka zostanie usunięta po scaleniu.
-pr
(--permission r
)lvcreate
, czy migawka będzie domyślnie tylko do odczytu? ( Czy LVM w ogóle zezwala na zapisywanie migawek ? Jeśli tak, może być możliwy alternatywny scenariusz, w którym tymczasowe eksperymenty nie byłyby widoczne w głównym tomie, ale byłyby przeprowadzone w tymczasowej zapisywalnej