Verschieben Sie das logische Volume auf eine neue physische Festplatte

14

Ich habe drei logische Volumes in einer einzelnen Volume-Gruppe, die ein einzelnes physisches Volume verwenden (die gesamte vorhandene Festplatte / dev / sda).

Ich möchte jetzt eines dieser logischen Volumes auf eine neue, schnellere Festplatte verschieben, dh von:

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

zu:

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

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

Soweit ich weiß, kann ich es nicht verwenden pvmoveoder vgsplitweil es nur ein physisches Volume in der vorhandenen Volume-Gruppe gibt.

Was ist ein guter Ansatz, um dies zu erreichen (vorzugsweise online, das Erstellen einer neuen Datenträgergruppe für die neue Festplatte ist nicht erforderlich)?

htorque
quelle
Ich habe die vielen ähnlichen Fragen überprüft, aber soweit ich verstehe, beschreiben diese nicht meine Situation. Bonusfrage: Ist die Verwendung einer ganzen Festplatte als physisches Volume per se eine schlechte Idee? Es scheint, dass diese Entscheidung die Lösung in meinem Fall viel schwieriger gemacht hat.
Htorque
2
Haben Sie einen bestimmten Grund, warum Sie Ihre neue physische Festplatte nicht als physisches Volume zur vorhandenen Volume-Gruppe hinzufügen möchten?
Ulrich Schwarz
Überhaupt nicht. Wenn es die Sache einfacher macht, kann die neue Festplatte auch Teil von vg0 sein.
Htorque

Antworten:

20

Eine Volumengruppenlösung:

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

Zwei-Volumen-Gruppenlösung:

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

Jetzt schwieriger Teil, alle Aktivitäten müssen aufhören /bar:

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

wo

  • pvcreate Löschen Sie alle Daten auf der Festplatte (und bereiten Sie sich auf LVM vor).
  • lvcreate Um ein logisches Volume lvol1 zu erstellen, geben Sie lv name mit an -n bar
  • Ich verwende die HP-UX-Syntax für lv. Möglicherweise müssen Sie die /dev/mapper/myvg-mylvSyntax verwenden

Sobald Sie überprüft haben, dass die Daten in Ordnung sind, an einem neuen Ort:

  • Sie können sicher alte löschen /bar
  • bearbeiten /etc/fstab, um neu zu verwenden/bar
Archemar
quelle
Wow, anscheinend habe ich die pvmoveManpage völlig falsch verstanden . In diesem Fall werde ich mich natürlich mit der Ein-Volumen-Gruppenlösung zufrieden geben. :)
htorque
Tatsächlich könnte man vgsplitnachher verwenden pvmove, um die Zwei-Volumen-Gruppenlösung etwas einfacher zu erreichen (das logische Volumen muss jedoch noch mit deaktiviert werden lvchange).
Htorque
1
Die Nützlichkeit von "pvmove" ist ein sehr guter Grund, eine einzelne VG anstelle mehrerer VGs zu verwenden.
tgharold
1
Es scheint, als könnte vgreduceman dann das alte Volume entfernen, wenn dies erforderlich ist (es war nicht für die spezifische Frage, aber eine Frage zum Verschieben aller Volumes würde wahrscheinlich als Duplikat markiert)
Gert van den Berg
Meine aktuelle Erfahrung ist, dass in der Single-VG-Lösung pvmoveein -nFlag erforderlich ist , um das logische Volume anzugeben. Oder es wird eine Physical volume /dev/vg0/bar not found Run `pvmove --help' for more information.Fehlermeldung angezeigt. Die Manpage sagt dasselbe. Darf ich es in die Post einfügen?
Peterh - Wiedereinsetzung Monica