Mit dem AIX LVM Kommando migratelp können einzelne Physical Partitions in einem Logical Volume ausgetauscht werden. Im Artikel soll genauer angeschaut werden, wie das Kommando migratelp arbeitet.
Unsere Test-Umgebung
In unserer Test-Umgebung haben wir eine Scalable Volume Group vg00 angelegt. Für die VG vg00 stehen 9 Physical Volumes zur Verfügung, welche von 3 unterschiedlichen Rechenzentren bereitgestellt werden:
- hdisk10, hdisk11 und hdisk12 (grün) aus Rechenzentrum DC01
- hdisk13, hdisk14 und hdisk15 (rot) aus Rechenzentrum DC02
- hdisk16, hdisk17 und hdisk18 (blau) aus Rechenzentrum DC03
Das Kommando migratelp
Die Syntax des Kommandos migratelp ist:
migratelp lv/lp[/copy] pv[/pp]
Es verschiebt genau eine Physical Partition auf das/die angegebene(n) Ziel Physical Volume(s) pv. Die Quell Physical Partition wird als lp/lp (Logical Volume, Logical Partition Nummer, Kopie 1) oder als lv/lp/copy (Logical Volume, Logical Partition Nummer, Kopie Nummer) angegeben. Optional kann die gewünschte Physical Partition Nummer auf dem Ziel Physical Volume angegeben werden. Z.B.:
migratelp lv01/109/2 hdisk17
Fall: ungespiegeltes Logical Volume
Wir erzeugen ein kleines LV (10 LPs) mit dem folgenden Mapping File:
# cat unmirrored.map
hdisk10:1-3
hdisk14:1-3
hdisk12:1-3
hdisk14:4
# mklv -m unmirrored.map vg00 10
lv00
#
Das resultierende Logical Volume sieht dann so aus:
Die ersten 3 Physical Partitions liegen auf hdisk10 (DC01), die nächsten 3 Physical Partitions liegen auf hdisk14 (DC02), usw.
Die 4 Physical Partitions auf hdisk14 (0004, 0005, 0006 und 0010) sollen auf die hdisk11 (DC01) verschoben werden.
Wir zeigen nur das Verschieben einer Physical Partition. Für die anderen Physical Partitons geht dies analog. Die Arbeit von migratelp verfolgen wir im folgenden graphisch.
# migratelp lv00/4 hdisk11
Das resultierende Logical Volume sieht dann so aus:
# lslv -m lv00
lv00:N/A
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0001 hdisk10
0002 0002 hdisk10
0003 0003 hdisk10
0004 0009 hdisk11
0005 0002 hdisk14
0006 0003 hdisk14
0007 0001 hdisk12
0008 0002 hdisk12
0009 0003 hdisk12
0010 0004 hdisk14
#
Die erste und einzige Kopie von LP 0004 liegt jetzt auf hdisk11 (DC01). Analog kann man die weiteren Physical Partitions von hdisk14 (DC02) nach hdisk11 (DC01) verschieben. Mit dem migratepv Kommando geht das natürlich deutlich einfacher!
Die Arbeitsweise von migratelp im Falle eines ungespiegelten Logical Volumes:
- Hinzufügen einer zweiten Spiegel-Kopie für die zu verschiebende Logical Partition auf dem Ziel Physical Volume.
- Aufsynchronisieren der neuen Spiegel-Kopie.
- Ersetzen der ersten Spiegel-Kopie durch die zweite Spiegel-Kopie.
2. Fall: gespiegeltes Logical Volume (2 Kopien)
Wir erzeugen ein kleines LV (10 LPs) mit dem folgenden Mapping File:
# cat mirrored.map
hdisk10:1-3
hdisk14:1-3
hdisk10:4-6
hdisk14:4
hdisk13:1-3
hdisk11:1-3
hdisk13:4-6
hdisk11:4
# mklv -c 2 —m mirrored.map vg00 10
lv00
#
Das resultierende Logical Volume sieht dann wie folgt aus:
# lslv -m lv00
lv00:N/A
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0001 hdisk10 0001 hdisk13
0002 0002 hdisk10 0002 hdisk13
0003 0003 hdisk10 0003 hdisk13
0004 0001 hdisk14 0001 hdisk11
0005 0002 hdisk14 0002 hdisk11
0006 0003 hdisk14 0003 hdisk11
0007 0004 hdisk10 0004 hdisk13
0008 0005 hdisk10 0005 hdisk13
0009 0006 hdisk10 0006 hdisk13
0010 0004 hdisk14 0004 hdisk11
#
Auch bei gespiegelten LVs erzeugt migratelp temporär eine zusätzliche Spiegel-Kopie. Im Falle von gespiegelten LVs hängt die Arbeitsweise von migratelp allerdings davon ab, ob die Spiegel-Kopie 1 oder die Spiegel-Kopie 2 einer Logical Partition verschoben wird.
- Variante 1: Wird die Spiegel-Kopie 1 auf ein anderes Physical Volume verschoben, dann wird die zusätzliche Spiegel-Kopie vor der Spiegel-Kopie 1 eingefügt. D.h. die existierende Spiegel-Kopie 1 wird zur Kopie 2 und die existierende Spiegel-Kopie 2 wird zur Kopie 3.
- Variante 2: Wird die Spiegel-Kopie 2 auf ein anderes Physical Volume verschoben, dann wird die zusätzliche Spiegel-Kopie wie gehabt hinten angefügt und ist in diesem Falle die Kopie 3.
Variante 1
Wir schauen uns zunächst die Variante 1 genauer an. Hierzu verschieben wir die erste Kopie der Logical Partition 0004 von hdisk14 (DC02) nach hdisk12 (DC01).
Wir verfolgen die Arbeit von migratelp wieder graphisch.
# migratelp lv00/4 hdisk12
Das resultierende Logical Volume sieht dann so aus:
# lslv -m lv00
lv00:N/A
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0001 hdisk10 0001 hdisk13
0002 0002 hdisk10 0002 hdisk13
0003 0003 hdisk10 0003 hdisk13
0004 0009 hdisk12 0001 hdisk11
0005 0010 hdisk14 0002 hdisk11
0006 0011 hdisk14 0003 hdisk11
0007 0004 hdisk10 0004 hdisk13
0008 0005 hdisk10 0005 hdisk13
0009 0006 hdisk10 0006 hdisk13
0010 0012 hdisk14 0004 hdisk11
#
Die erste Kopie von LP 0004 liegt jetzt auf hdisk12 (DC01).
Die Arbeitsweise von migratelp im Falle eines gespiegelten LVs (2 Kopien) und Verschieben einer Physical Partition in der Spiegel-Kopie 1:
- Spiegel-Kopie 2 wird zu Kopie 3 und Spiegel-Kopie 1 wird zu Kopie 2. Die zu ersetzende Physical Partition ist damit in der Spiegel-Kopie 2, nicht mehr in der Spiegel-Kopie 1!
- Einfügen der Physical Partition auf dem Ziel Physical Volume als Spiegel-Kopie 1.
- Aufsynchronisieren der neuen Spiegel-Kopie 1.
- Ersetzen der Spiegel-Kopie 2 durch die Kopie 3.
Variante 2
Die Variante 2, bei der in der zweiten Spiegel-Kopie verschoben wird, ist ähnlich dem ungespiegelten Fall. Hierzu verschieben wir die zweite Kopie der Logical Partition 0004 von hdisk11 (DC01) nach hdisk15 (DC02).
Wir verfolgen die Arbeit von migratelp wieder graphisch.
# migratelp lv00/4/2 hdisk15
Das resultierende Logical Volume sieht dann so aus:
# lslv -m lv00
lv00:N/A
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0001 hdisk10 0001 hdisk13
0002 0002 hdisk10 0002 hdisk13
0003 0003 hdisk10 0003 hdisk13
0004 0001 hdisk14 0009 hdisk15
0005 0002 hdisk14 0002 hdisk11
0006 0003 hdisk14 0003 hdisk11
0007 0004 hdisk10 0004 hdisk13
0008 0005 hdisk10 0005 hdisk13
0009 0006 hdisk10 0006 hdisk13
0010 0004 hdisk14 0004 hdisk11
#
Die zweite Kopie von LP 0004 liegt jetzt auf hdisk15 (DC02).
Die Arbeitsweise von migratelp im Falle eines gespiegelten LVs (2 Kopien) und Verschieben einer Physical Partition in der Spiegel-Kopie 2:
- Hinzufügen der Spiegel-Kopie 3 auf dem Ziel Physical Volume.
- Aufsynchronisieren der neuen Spiegel-Kopie 3.
- Ersetzen der Spiegel-Kopie 2 durch die Spiegel-Kopie 3.
Mirror Pools und migratelp
Beim migratelp Kommando findet keine Überprüfung statt ob das ausgewählte Ziel Physical Volume im richtigen Mirror Pool liegt!
Der Fall eines Logical Volumes mit 3 Spiegel-Kopien wird in einem separaten Artikel betrachtet.
Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.