Aus Leistungsgründen kann anstelle eines großen LVM-Volumes dieses durch mehrere kleine Striping-Volumes (RAID0) ersetzt werden. Es gibt keinen Befehl zum direkten Umwandeln eines logischen Datenträgers mit einer einzelnen Platte in einen logischen Stripe-Datenträger. Dieser Beitrag erklärt das Verfahren zur Durchführung der Konvertierung.
Hinweis :Bevor Sie beginnen, erstellen Sie eine vollständige Sicherung des Volumes oder Dateisystems.Dieses Verfahren kann in einem Live-System durchgeführt werden, ohne dass ein Neustart erforderlich ist. Das Verfahren besteht darin, eine Spiegelung zwischen dem ursprünglichen Volume und den neuen Stripeset-Volumes zu erstellen. Sobald die Spiegelung abgeschlossen ist, können wir das ursprüngliche Volume aus der Spiegelung entfernen und nur die Striping-Volumes zurücklassen.
Um die Konvertierung durchführen zu können, muss die Anzahl der Logical Extents (LE) im Logical Volume (LV) des LVM durch die Anzahl der Physical Volumes (PV) teilbar sein, die im zukünftigen Striped LV verwendet werden.
Überprüfen Sie die Nummer der zugewiesenen LE:
# lvdisplay --- Logical volume --- LV Path /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> LV Name <LOGICAL_VOLUME> VG Name <VOLUME_GROUP> LV UUID <VOLUME_UUID> LV Write Access read/write LV Creation host, time <HOSTNAME>, 2020-12-10 08:38:44 +0000 LV Status available # open 1 LV Size <10.00 GiB Current LE 2559 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0
In diesem Fall ist die Anzahl der LE 2559.
Um die Anzahl der benötigten LE zu erfahren, können Sie Folgendes verwenden:
– le =Nummer der zugewiesenen LE, vom vorherigen Befehl (in diesem Fall 2559)
– pv =Anzahl der künftig zu verwendenden gestreiften PV (z. B. 5)
$ le=2559; pv=5; echo $((le%pv?(le/pv+1)*pv:le)) 2560
In diesem Fall wird eine zusätzliche LE benötigt. Beispiel zur Erweiterung des LV:
# lvresize --extents +1 /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/sdb Size of logical volume <VOLUME_GROUP>/<LOGICAL_VOLUME> changed from <10 GiB (2559 extents) to <10 giB (2560 extents). Logical volume <VOLUME_GROUP>/<LOGICAL_VOLUME> successfully resized.
Nachdem das LV vorbereitet ist, fahren Sie fort:
1. Fügen Sie die neuen PVs zum LV hinzu und erstellen Sie eine gestreifte Spiegelung. Die Anzahl der Stripes sollte der Anzahl der PVs entsprechen:
# lvconvert --type mirror -m 1 --mirrorlog core --stripes 2 /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/<PV1> /dev/<PV2> ... /dev/<PV5>
2. Entfernen Sie das anfängliche PV aus dem LV:
# lvconvert -m0 <VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/<INITIAL_PV>
3. Entfernen Sie das PV aus LVM:
# vgreduce <VOLUME_GROUP> /dev/<INITIAL_PV> # pvremove /dev/<INITIAL_PV>