Situation:
Ich habe einen Server mit 4 1-TB-Laufwerken in LVM, wie unten gezeigt. Der Server ist ein OpenVZ-Hardwareknoten mit etwa einem Dutzend OpenVZ-Containern. Zu diesem Zeitpunkt verwendet jeder Container nur eine Festplatte. Dies wurde zu der Zeit entwickelt, um die meiste Kontrolle und Trennung über die Festplattenlast aufrechtzuerhalten.
# pvdisplay -s
Device "/dev/sdd1" has a capacity of 227.51 GiB
Device "/dev/sdc1" has a capacity of 427.51 GiB
Device "/dev/sdb1" has a capacity of 427.51 GiB
Device "/dev/sda2" has a capacity of 407.02 GiB
Geldautomat Jeder PV ist mit einem eigenen VG ausgestattet:
# vgdisplay -s
"vg04" 931.51 GiB [704.00 GiB used / 227.51 GiB free]
"vg03" 931.51 GiB [504.00 GiB used / 427.51 GiB free]
"vg02" 931.51 GiB [504.00 GiB used / 427.51 GiB free]
"vg01" 931.02 GiB [524.00 GiB used / 407.02 GiB free]
Über diesen VGs gibt es eine Reihe von LVs:
# lvdisplay | grep Name
LV Name /dev/vg04/swap
VG Name vg04
LV Name /dev/vg04/vz
VG Name vg04
LV Name /dev/vg03/swap
VG Name vg03
LV Name /dev/vg03/vz
VG Name vg03
LV Name /dev/vg02/swap
VG Name vg02
LV Name /dev/vg02/vz
VG Name vg02
LV Name /dev/vg01/swap
VG Name vg01
LV Name /dev/vg01/root
VG Name vg01
LV Name /dev/vg01/vz
VG Name vg01
Problem:
Ein Container ist jetzt so groß geworden, dass ich ihn auf zwei Festplatten aufteilen muss, um die Ladung aufnehmen zu können.
Im Wesentlichen möchte ich zwei LVs - / dev / vg03 / vz und / dev / vg04 / vz - zu einem LV zusammenführen, der über zwei Festplatten verteilt ist.
Wie schaffe ich das am besten? Wäre vgmerge dazu in der Lage? Die Manpage für vgmerge ist ziemlich kurz und ich konnte keine eingehendere Diskussion über ihre Verwendung finden.
Am Ende könnte ich das Ziel erreichen, indem ich Dinge bewege, aber es sind viele Daten im Spiel und dies sind Produktionsserver, daher würde ich lieber versuchen, dies nach Möglichkeit zu vermeiden.
Obwohl Sie die beiden VGs zusammenführen können, glaube ich nicht, dass Sie eine LV von
linear
in konvertieren können ,striped
ohne sie zuerst zu löschen und neu zu erstellen .In jedem Fall können Sie problemlos Tests mit Schleifengeräten an Dateien mit geringer Dichte durchführen, die kaum Speicherplatz beanspruchen:
quelle
Ich weiß nicht, wie ich das machen soll, ohne die beiden logischen Volumes
/dev/vg03/vz
und zu zerstören/dev/vg04/vz
und einen neuen LV zu erstellen, sobald Sie den Speicherplatz neu organisiert haben.Mit der folgenden Strategie sollten Sie (ich habe sie nicht getestet) die gewünschte Konfiguration ohne Ausfallzeiten für die anderen Volumes erhalten. Möglicherweise benötigen Sie temporären Speicherplatz auf einer Arbeitsdiskette, bis zur Größe der größten der zu löschenden LVs.
lvchange -an
).pvcreate
).vg03
(vgextend
) hinzu. Verschieben Sie die Extents am Endevg03
in den Arbeitsbereich mitpvmove /dev/sdXX:MMM-NNN
(ersetzen Sie siesdXX
durch den entsprechenden PartitionsspezifiziererMMM
undNNN
durch die richtigen Extent-Nummern). Verschieben Sie die Bereiche, die Sie für die Verwendung durch den neuen gestreiften LV konvertieren möchten.pvresize
an, um das physische Volume in der Volume-Gruppe zu verkleinern, in der Sie am Ende gerade etwas Speicherplatz freigegeben haben.fdisk
oderparted
, um die Partition zu verkleinern, die das gerade verkleinerte physische Volume enthält. Erstellen Sie währenddessen eine neue Partition für den Rest des Speicherplatzes.pvmove
erneut auf, um alle Daten vom Arbeitsbereich zurück in die ursprüngliche (jetzt verkleinerte) PV zu verschieben.vg04
. Danach benötigen Sie den Arbeitsbereich nicht mehr.pvcreate
) und erstellen Sie eine Volume-Gruppe für diese beiden PVs (vgcreate
).quelle