Przenieś wolumin logiczny na nowy dysk fizyczny

14

Mam trzy woluminy logiczne w jednej grupie woluminów, używając jednego woluminu fizycznego (cały istniejący dysk / dev / sda).

Chcę teraz przenieść jeden z tych woluminów logicznych na nowy, szybszy dysk, tzn. Przechodząc z:

/dev/sda
    |-vg0-root → mounted to /
    |-vg0-foo  → mounted to /foo
    |-vg0-bar  → mounted to /bar

do:

/dev/sda
    |-vg0-root → mounted to /
    |-vg0-foo →  mounted to /foo

/dev/sdb
    |-vg1-bar  → mounted to /bar

Z tego, co rozumiem, nie mogę użyć pvmovelub vgsplitponieważ w istniejącej grupie woluminów jest tylko jeden wolumin fizyczny.

Jakie jest dobre podejście do osiągnięcia tego (najlepiej online, utworzenie nowej grupy woluminów dla nowego dysku nie jest wymagane)?

htorque
źródło
Sprawdziłem wiele podobnych pytań, ale o ile rozumiem, nie opisują mojej sytuacji. Dodatkowe pytanie: czy używanie całego dysku jako woluminu fizycznego jest złym pomysłem? Wygląda na to, że ta decyzja znacznie utrudniła rozwiązanie w moim przypadku.
htorque
2
Czy masz jakiś szczególny powód, dla którego nie chcesz dodawać nowego dysku fizycznego jako woluminu fizycznego do istniejącej grupy woluminów?
Ulrich Schwarz
Ani trochę. Jeśli to ułatwi, nowy dysk może być również częścią vg0.
htorque

Odpowiedzi:

21

Rozwiązanie dla jednej grupy woluminów:

 pvcreate /dev/sdb
 vgextend vg0 /dev/sdb
 pvmove -n /dev/vg0/bar /dev/sda /dev/sdb

Rozwiązanie dla dwóch grup woluminów:

 pvcreate /dev/sdb
 vgcreate vg1 /dev/sdb
 lvcreate -l100%FREE vg1
 mkfs -t ext4 /dev/vg1/lvol1
 mount /dev/vg1/lvol1 /mnt

Teraz trudna część, wszystkie działania MUSZĄ się zatrzymać /bar:

 cd /mnt ; ( cd /bat ; tar cf - * ) | tar xf -
 cd /
 umount /mnt
 mount /dev/vg1/lvol1 /bar

gdzie

  • pvcreate usuń wszystkie dane z dysku (i przygotuj się na LVM)
  • lvcreate powinien utworzyć wolumin logiczny lvol1, za pomocą którego określasz nazwę lv -n bar
  • Używam składni HP-UX dla lv, być może będziesz musiał użyć /dev/mapper/myvg-mylvskładni

Po zweryfikowaniu danych są OK, w nowym miejscu:

  • możesz bezpiecznie usunąć stare /bar
  • edytuj, /etc/fstababy użyć nowego/bar
Archemar
źródło
Wow, wygląda na to, że całkowicie źle odczytałem pvmovestronę podręcznika . W takim przypadku oczywiście zadowolę się rozwiązaniem dla jednej grupy woluminów. :)
htorque,
W rzeczywistości można użyć vgsplitpóźniej, pvmoveaby uzyskać rozwiązanie dwóch grup woluminów nieco łatwiej (jednak wolumin logiczny nadal musi zostać wyłączony za pomocą lvchange).
htorque
1
Przydatność „pvmove” jest bardzo dobrym powodem, aby używać jednego VG zamiast wielu VG.
tgharold
1
Wygląda na to, że vgreducemożna wtedy użyć do usunięcia starego woluminu, jeśli jest to wymagany (nie dotyczyło to konkretnego pytania, ale pytanie o przeniesienie wszystkich tomów prawdopodobnie oznaczono by jako duplikat)
Gert van den Berg
Moje obecne doświadczenie jest takie, że w pojedynczym rozwiązaniu vg pvmovewymaga -nflagi określającej wolumin logiczny. Lub mówi Physical volume /dev/vg0/bar not found Run `pvmove --help' for more information.komunikat o błędzie. Strona podręcznika mówi to samo. Czy mogę wstawić go do postu?
peterh - Przywróć Monikę