Czy istnieje prosty sposób przenoszenia / kopiowania woluminu logicznego z jednej grupy woluminów do drugiej? (LVM2)
15
W domu przestawiam kilka dysków na swoim serwerze i mogę przenieść kilka woluminów logicznych LVM do innej grupy woluminów. Czy istnieje prosty sposób to zrobić? Widziałem wzmiankę o cplvpoleceniu, ale wydaje się, że jest albo stare, albo nie jest to coś, co kiedykolwiek było dostępne dla Linuksa.
Jeśli możesz ustawić wolumin logiczny na oddzielnym podzbiorze woluminów fizycznych od reszty źródłowej grupy woluminów ( lvconvert sourcevg/sourcelv /dev/pv1 ...może to pomóc), możesz użyć, vgsplitaby podzielić lv na nową vg i vgmergepołączyć nową vg z cel vg.
Chociaż LVM ma funkcję kopii lustrzanej, nie możesz (zdrowo) użyć jej do wykonania kopii między grupami woluminów, ponieważ obie nogi kopii lustrzanej muszą żyć na tej samej vg i powiązanie nie może zostać zerwane .
Możesz skopiować wolumin LVM do innego w sposób, w jaki kopiujesz dowolny wolumin do innego: utwórz docelową wartość LV o odpowiednim rozmiarze, a następnie skopiuj zawartość za pomocą dd if=/dev/sourcevg/sourcelv of=/dev/targetvg/targetlv bs=4M. Jeśli wolumin źródłowy jest aktywny, możesz użyć LVM, aby utworzyć spójną kopię: najpierw wykonaj migawkę źródła lv za pomocą lvcreate -s, a następnie skopiuj migawkę.
Brilliant Gilles .... vgsplit / vgmerge prawdopodobnie będzie w porządku: po tym mogę użyć pvmove, aby przenieść fizyczne zakresy na nowy dysk, a następnie usunąć stary wolumin z VG.
jkp
Szkoda, że to ostatecznie nie działało ze względu na różne rozmiary zasięgu. Jeśli nie jest to dla ciebie problemem, sugeruję, że ta metoda byłaby najłatwiejsza.
jkp
Po dd(jeśli nie spieszysz się ze zrzuceniem starych woluminów), nie zapomnij zmienić UUID nowych systemów plików: tune2fs -U random / dev / targetvg / targetlv
Powtarzam: to nie działa dla dwóch osobnych grup tomów
kissgyorgy
Najpierw vgextendvg1 z nowym pv, a następnie pvmovelv do nowego pv, vgsplittymczasowe vg, które masz vgmergew vg2. Następnie pvmoveponownie lv na vg2 oryginalny pv, vgreducevg2, aby odczytać pośredni pv. Lub, aby uniknąć pośredniej kopii, możesz po prostu najpierw połączyć vg1 z vg2, pvmovelv1 i vgsplitponownie vg1 z vg2. To powinno odpowiedzieć na zarzuty @ MattBianco i @kissgyorgy i jest równoważne rozwiązaniu @Gilles, ale zastępuje migawkę i niski poziom ddprzezpvmove
marcz
1
Począwszy od LVM w odcinku Debiana (9.0), a mianowicie 2.02.168-2, jest możliwe do wykonania kopii objętości logicznego w grupach objętości za pomocą kombinacji vgmerge, lvconverti vgsplit. Ponieważ przeniesienie jest kombinacją kopii i usunięcia, zadziała to również w przypadku przeniesienia.
dd
(jeśli nie spieszysz się ze zrzuceniem starych woluminów), nie zapomnij zmienić UUID nowych systemów plików: tune2fs -U random / dev / targetvg / targetlvpvmove może przenosić dane między woluminami fizycznymi: Podręcznik administratora LVM
źródło
vgextend
vg1 z nowym pv, a następniepvmove
lv do nowego pv,vgsplit
tymczasowe vg, które maszvgmerge
w vg2. Następniepvmove
ponownie lv na vg2 oryginalny pv,vgreduce
vg2, aby odczytać pośredni pv. Lub, aby uniknąć pośredniej kopii, możesz po prostu najpierw połączyć vg1 z vg2,pvmove
lv1 ivgsplit
ponownie vg1 z vg2. To powinno odpowiedzieć na zarzuty @ MattBianco i @kissgyorgy i jest równoważne rozwiązaniu @Gilles, ale zastępuje migawkę i niski poziomdd
przezpvmove
Począwszy od LVM w odcinku Debiana (9.0), a mianowicie 2.02.168-2, jest możliwe do wykonania kopii objętości logicznego w grupach objętości za pomocą kombinacji
vgmerge
,lvconvert
ivgsplit
. Ponieważ przeniesienie jest kombinacją kopii i usunięcia, zadziała to również w przypadku przeniesienia.Alternatywnie możesz użyć
pvmove
do przeniesienia głośności.Kompletna, samodzielna przykładowa sesja z wykorzystaniem urządzeń pętli i
lvconvert
następnych.Podsumowanie: tworzymy grupę woluminów
vg1
z woluminem logicznymlv1
oraz zavg2
pomocąlv2
i tworzymy kopięlv1
wvg2
.Utwórz pliki.
Skonfiguruj urządzenia pętlowe na plikach.
Utwórz woluminy fizyczne na urządzeniach pętli (zainicjuj urządzenia pętli do użytku przez LVM).
Tworzenie grup woluminów
vg1
ivg2
na/dev/loop1
i/dev/loop2
odpowiednio.Tworzenie woluminów logicznych
lv1
ilv2
navg1
ivg2
odpowiednio.Twórz systemy plików ext4 na
lv1
ilv2
.Opcjonalnie napisz coś,
lv1
aby później sprawdzić, czy kopia została poprawnie utworzona. Dokonajvg1
nieaktywna.Uruchom polecenie scalania w trybie testowym. To łączy się
lv1
wlv2
.A potem naprawdę.
Następnie utwórz parę kopii RAID 1
lv1
przy użyciulvconvert
. Argument <> mówi,lvconvert
aby kopia lustrzana byłalv1_copy
włączona/dev/loop2
.Następnie podziel lustro. Nowa LV jest teraz
lv1_copy
.Dokonaj
vg2
nieaktywna.Następnie (tryb testowy)
Na serio
Wynikowy wynik:
UWAGI:
1) Większość tych poleceń będzie musiała być uruchomiona jako root.
2) W przypadku jakiegokolwiek powielenia nazw woluminów logicznych w dwóch grupach woluminów
vgmerge
odmówi kontynuowania.3) Po scaleniu:
I przy podziale:
źródło