Ich habe ein Problem mit LVM RAID 5, das mir nicht erlaubt, ein LV zu erstellen, das den Speicherplatz auf allen vier Laufwerken im VG nutzt. Besonders ärgerlich ist, dass ich genau dieses VG/LV vor zwei Jahren mit demselben Laufwerksmodell erstellt habe und mich nicht daran erinnern kann, dieses Problem gehabt zu haben.
Hier ist die Ausgabe von pvs und vgs, bevor ich versuche, das RAID 5 LV zu erstellen:
Ausgabe von pvs:
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_sklad02 lvm2 a-- 2.73t 2.73t
/dev/sdb1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sdc1 vg_sklad02 lvm2 a-- 2.73t 2.73t
/dev/sdd1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sde1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sdf1 vg_sklad02 lvm2 a-- 2.73t 2.73t
/dev/sdg1 vg_sklad02 lvm2 a-- 2.73t 2.73t
/dev/sdh1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sdi2 vg_bootdisk lvm2 a-- 118.75g 40.00m
/dev/sdj2 vg_bootdisk lvm2 a-- 118.75g 40.00m
Ausgabe von vgs:
VG #PV #LV #SN Attr VSize VFree
vg_bootdisk 2 2 0 wz--n- 237.50g 80.00m
vg_sklad01 4 1 0 wz--n- 10.92t 0
vg_sklad02 4 0 0 wz--n- 10.92t 10.92t
Der Befehl, den ich letztes Mal zum Erstellen von LV mit denselben Laufwerksmodellen auf demselben System verwendet habe, lautet:
lvcreate --type raid5 -L 8.18T -n lv_sklad01 vg_sklad01
Wenn ich denselben Befehl ausgebe und die VG- und LV-Zielnamen ändere, erhalte ich:
lvcreate --type raid5 -L 8.18T -n lv_sklad02 vg_sklad02
Using default stripesize 64.00 KiB.
Rounding up size to full physical extent 8.18 TiB
Insufficient free space: 3216510 extents needed, but only 2861584 available
Das ergibt keinen Sinn, da ich vier Laufwerke mit einer Kapazität von 2,73 T habe. 4 * 2,73 = 10,92. Wenn ich eins für die Parität abziehe, erhalte ich 8,19 T, was der Größe des ursprünglichen LV entspricht, das ich auf diesem System habe. Ich schlage meinen Kopf gegen den Monitor. :?
Ich klammerte mich an jeden Strohhalm und versuchte auch Folgendes:
[root@sklad ~]# lvcreate --type raid5 -l 100%VG -n lv_sklad02 vg_sklad02
Using default stripesize 64.00 KiB.
Logical volume "lv_sklad02" created.
Das Ergebnis ist ein LV mit 2/3 der erwarteten Größe. Ausgabe von LVs:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_root vg_bootdisk rwi-aor--- 102.70g 100.00
lv_swap vg_bootdisk rwi-aor--- 16.00g 100.00
lv_sklad01 vg_sklad01 rwi-aor--- 8.19t 100.00
lv_sklad02 vg_sklad02 rwi-a-r--- 5.46t 0.18
Nach der Eingabe des obigen lvcreate-Befehls lautet die Ausgabe von pvs, vgs und lvs wie folgt:
[root@sklad ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_sklad02 lvm2 a-- 2.73t 0
/dev/sdb1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sdc1 vg_sklad02 lvm2 a-- 2.73t 0
/dev/sdd1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sde1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sdf1 vg_sklad02 lvm2 a-- 2.73t 0
/dev/sdg1 vg_sklad02 lvm2 a-- 2.73t 2.73t
/dev/sdh1 vg_sklad01 lvm2 a-- 2.73t 0
/dev/sdi2 vg_bootdisk lvm2 a-- 118.75g 40.00m
/dev/sdj2 vg_bootdisk lvm2 a-- 118.75g 40.00m
[root@sklad ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_bootdisk 2 2 0 wz--n- 237.50g 80.00m
vg_sklad01 4 1 0 wz--n- 10.92t 0
vg_sklad02 4 1 0 wz--n- 10.92t 2.73t
[root@sklad ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_root vg_bootdisk rwi-aor--- 102.70g 100.00
lv_swap vg_bootdisk rwi-aor--- 16.00g 100.00
lv_sklad01 vg_sklad01 rwi-aor--- 8.19t 100.00
lv_sklad02 vg_sklad02 rwi-a-r--- 5.46t 2.31
Aus irgendeinem Grund gibt es in vg_sklad02 (der VG, an der ich arbeite) nicht zugewiesenen Speicherplatz. Sollte -l 100%VG nicht den gesamten verfügbaren Speicherplatz in der VG nutzen?
LV lv_sklad01 und lv_sklad02 sollten dieselbe Größe haben, da sie von denselben Laufwerken erstellt werden, und soweit ich mich erinnere, habe ich versucht, denselben Erstellungsbefehl zu verwenden.
Hat jemand einen Vorschlag, was ich falsch mache?
Antwort1
Wie ich in meiner Frage sagte, habe ich das schon einmal gemacht und habe ein Protokoll darüber, was ich vor zwei Jahren getan habe, um es zu erreichen. Aus irgendeinem Grund funktionierte der identische Befehl lvcreate nicht. Um dieses LV zu erstellen, musste ich die Anzahl der Streifen mit -i 3 angeben. Der funktionierende Befehl war also:
lvcreate -i 3 --type raid5 -L 8.18T -n lv_sklad02 vg_sklad02
Ich vermute, dass sich bei den Updates der LVM-Tools etwas geändert hat?
AKTUALISIEREN
Sie haben tatsächlich eine Änderung an LVM2 vorgenommen. Von rpm -q --changelog lvm2
* Fri Jul 29 2016 Peter Rajnoha <[email protected]> - 7:2.02.162-1
<...>
- Add allocation/raid_stripe_all_devices to reinstate previous behaviour.
- Create raid stripes across fixed small numbers of PVs instead of all PVs.
<...>
Schön zu wissen, dass ich nicht völlig verrückt war. :-) Ich habe das Handbuch gelesen, aber vermutlich nicht das richtige Handbuch. :-))