Ich möchte auf einem System ein Thin LVM erstellen und dieses grundsätzlich einmal überbuchen und nur wenn Notwendig erweiternn. Ich bin dazu gerade am Testen auf einem Centos7 Server (ESX VM) (Linux centos_test 3.10.0-327.36.1.el7.x86_64 #1 SMP Sun Sep 18 13:04:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux) und ich habe das ein für mich unbegreifliches Problem, installierte LVM Pakete sind:
lvm2-libs-2.02.130-5.el7_2.5.x86_64
lvm2-2.02.130-5.el7_2.5.x86_64
Ich habe der VM eine extra Disk mit 6GB zugewiesen und LVM wie folgt konfiguriert:
>pvcreate /dev/sdb
>vgcreate vg01 /dev/sdb
>lvcreate -l 50%FREE --thinpool thinlv01 vg01
>lvcreate -V 5G --thin -n lv01 vg01/thinlv01
WARNING: Sum of all thin volume sizes (5,00 GiB) exceeds the size of thin pool vg01/thinlv01 and the amount of free space in volume group (3,00 GiB)!
Logical volume "lv01" created.
>mkfs.ext4 /dev/mapper/vg01-lv01
>lvs -a
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 17,47g
swap centos -wi-ao---- 2,00g
lv01 vg01 Vwi-a-tz-- 5,00g thinlv01 2,57
[lvol0_pmspare] vg01 ewi------- 4,00m
thinlv01 vg01 twi-aotz-- 2,99g 4,29 2,73
[thinlv01_tdata] vg01 Twi-ao---- 2,99g
[thinlv01_tmeta] vg01 ewi-ao---- 4,00m
>mount -t ext4 /dev/mapper/vg01-lv01 /mnt -o rw
>df -h
...
/dev/mapper/vg01-lv01 4,8G 20M 4,6G 1% /mnt
"lv01" hat nun im prinzip eine Virtuelle Größe von ca. 5GB was ich auch in "df" sehen kann. Das Thin LV hat jedoch nur 2,99GB. Soweit sogut.
Wenn ich nun wie folgt Dateien anlege:
dd if=/dev/zero of=./test1.txt bs=1M count=500
dd if=/dev/zero of=./test2.txt bs=1M count=500
dd if=/dev/zero of=./test3.txt bs=1M count=500
dd if=/dev/zero of=./test4.txt bs=1M count=500
Würde ich mir Erwarten das entweder "Data%" bzw. "Meta%" ansteigen sobald der Speicherplatz knapp wird an die 100% anzeigen wenn ich "lvs -a" aufrufe. Dem ist aber nicht so, spätestens beim anlegen der 4 Datei wird das Filesystem unter "/mnt" als Readonly gemountet und im Normalfall ist das LV "lv01" dann auch nicht mehr zu gebrauchen.
Mit den 4 Dateien zu jeweils 500MB erreiche ich sowohl das Limit des LV bzw. des Thin LV nicht, darum verstehe ich nicht warum das LV unbrauchbar wird. Ich dachte erst daran dass ev. der Metadatenpool vollläuft, was aber offensichtlich nicht der Fall ist. In meinem Fall ist die PE auf 4MB eingestellt und der Metadatenpool wird auch mit 4MB angelegt, ich habe es auch schon mit einem Metadatenpool von 8MB versucht, verhält sich aber annähernd gleich.
Kann mir jemand sagen wo mein Denkfehler liegt?
Ich hätte auch noch eine Frage zum Metadatenpool, was wird darin eigentlich genau gespeichert und wie Groß soll man diesen dimensionieren? Liegt darin nur die Konfiguration oder auch irgendwelche zB. Zuordnungen von Logical Extents zu Physical Extents oder warum muss der Pool einige MB groß sein?
lvm2-libs-2.02.130-5.el7_2.5.x86_64
lvm2-2.02.130-5.el7_2.5.x86_64
Ich habe der VM eine extra Disk mit 6GB zugewiesen und LVM wie folgt konfiguriert:
>pvcreate /dev/sdb
>vgcreate vg01 /dev/sdb
>lvcreate -l 50%FREE --thinpool thinlv01 vg01
>lvcreate -V 5G --thin -n lv01 vg01/thinlv01
WARNING: Sum of all thin volume sizes (5,00 GiB) exceeds the size of thin pool vg01/thinlv01 and the amount of free space in volume group (3,00 GiB)!
Logical volume "lv01" created.
>mkfs.ext4 /dev/mapper/vg01-lv01
>lvs -a
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 17,47g
swap centos -wi-ao---- 2,00g
lv01 vg01 Vwi-a-tz-- 5,00g thinlv01 2,57
[lvol0_pmspare] vg01 ewi------- 4,00m
thinlv01 vg01 twi-aotz-- 2,99g 4,29 2,73
[thinlv01_tdata] vg01 Twi-ao---- 2,99g
[thinlv01_tmeta] vg01 ewi-ao---- 4,00m
>mount -t ext4 /dev/mapper/vg01-lv01 /mnt -o rw
>df -h
...
/dev/mapper/vg01-lv01 4,8G 20M 4,6G 1% /mnt
"lv01" hat nun im prinzip eine Virtuelle Größe von ca. 5GB was ich auch in "df" sehen kann. Das Thin LV hat jedoch nur 2,99GB. Soweit sogut.
Wenn ich nun wie folgt Dateien anlege:
dd if=/dev/zero of=./test1.txt bs=1M count=500
dd if=/dev/zero of=./test2.txt bs=1M count=500
dd if=/dev/zero of=./test3.txt bs=1M count=500
dd if=/dev/zero of=./test4.txt bs=1M count=500
Würde ich mir Erwarten das entweder "Data%" bzw. "Meta%" ansteigen sobald der Speicherplatz knapp wird an die 100% anzeigen wenn ich "lvs -a" aufrufe. Dem ist aber nicht so, spätestens beim anlegen der 4 Datei wird das Filesystem unter "/mnt" als Readonly gemountet und im Normalfall ist das LV "lv01" dann auch nicht mehr zu gebrauchen.
Mit den 4 Dateien zu jeweils 500MB erreiche ich sowohl das Limit des LV bzw. des Thin LV nicht, darum verstehe ich nicht warum das LV unbrauchbar wird. Ich dachte erst daran dass ev. der Metadatenpool vollläuft, was aber offensichtlich nicht der Fall ist. In meinem Fall ist die PE auf 4MB eingestellt und der Metadatenpool wird auch mit 4MB angelegt, ich habe es auch schon mit einem Metadatenpool von 8MB versucht, verhält sich aber annähernd gleich.
Kann mir jemand sagen wo mein Denkfehler liegt?
Ich hätte auch noch eine Frage zum Metadatenpool, was wird darin eigentlich genau gespeichert und wie Groß soll man diesen dimensionieren? Liegt darin nur die Konfiguration oder auch irgendwelche zB. Zuordnungen von Logical Extents zu Physical Extents oder warum muss der Pool einige MB groß sein?
0 commentaires:
Enregistrer un commentaire