Mai nap kolléga szögezte nekem a kérdést, hogy hogy is lehet AIX alatt LV-t csökkenteni (úgy, hogy az FS és az LV mérete nem egyezik meg). Nos.. Mint kiderült van egy hivatalos, meg egy kevésbé hivatalos mód is a kérdés megválaszolására (utóbbi a viccesebb), ezért gondoltam ezt meg is osztanám akkor már:
Adott a szituáció:
Van egy szimpla VG-nk, azon belül egy LV-nk, azon belül meg egy JFS2 filerendszer.. Eddig semmi szokatlan..
Hivatalosan ezt az alábbi módon kéne megtennünk:
Első körben az FS-t felnöveljük az LV méretére:
A felállás ugyan az, mint eddig:
Hogy teljes legyen a kép, még kérjük ki az LV azonosítóját is
És akkor innen induljon a móka:
Amire még figyelnünk kell: Ez a parancs nem csak az ODM-ben turkál, hanem magában a VGDA-ban is, így óvatosan a használatával, tekintve, hogy ha nem figyelünk, akkor könnyen kitudunk hozni egy ilyesmi állást is :)
Adott a szituáció:
Van egy szimpla VG-nk, azon belül egy LV-nk, azon belül meg egy JFS2 filerendszer.. Eddig semmi szokatlan..
[test_server:root:/home/root:] lsfs -ql /kennyAz eredeti kérdésünk szerint az FS nem tölti ki teljesen az LV-t, így növeljük meg 1 PP-vel, hogy ezt elő is hozzuk:
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/test2lv -- /kenny jfs2 524288 rw no no
(lv size: 524288, fs size: 524288, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
[test_server:root:/home/root:] /usr/sbin/extendlv test2lv 1A játék innen indul - állítsuk vissza az eredeti állapotot..
[test_server:root:/home/root:] lsfs -ql /kenny
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/test2lv -- /kenny jfs2 524288 rw no no
(lv size: 655360, fs size: 524288, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
Hivatalosan ezt az alábbi módon kéne megtennünk:
Első körben az FS-t felnöveljük az LV méretére:
[test_server:root:/home/root:] chfs -a size=655360 /kennyMajd visszacsökkentjük az FS-t az eredeti méretére:
Filesystem size changed to 655360
[test_server:root:/home/root:] lsfs -ql /kenny
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/test2lv -- /kenny jfs2 655360 rw no no
(lv size: 655360, fs size: 655360, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
[test_server:root:/home/root:] chfs -a size=524288 /kennyA második módszer ennél kicsit veszélyesebb, de ennél fogva viccesebb is..
Filesystem size changed to 524288
[test_server:root:/home/root:] lsfs -ql /kenny
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/test2lv -- /kenny jfs2 524288 rw no no
(lv size: 524288, fs size: 524288, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
A felállás ugyan az, mint eddig:
[test_server:root:/home/root:] lsfs -ql /kennyNézzük meg a PP, és az LP összefüggéseket, csak hogy lássuk mink is van:
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/test2lv -- /kenny jfs2 524288 rw yes no
(lv size: 655360, fs size: 524288, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
[test_server:root:/home/root:] lquerylv -L `getlvodm -l test2lv` -rNa szóval.. 1 FS, 5 LP, és 10 PP (azaz LVM mirror).
0057d91de041890e 3 1
0057d91ddb713a8c 54 1
0057d91de041890e 4 2
0057d91ddb713a8c 55 2
0057d91de041890e 5 3
0057d91ddb713a8c 56 3
0057d91de041890e 6 4
0057d91ddb713a8c 57 4
0057d91de041890e 2 5
0057d91ddb713a8c 53 5
Az egyszerűség kedvéért ugyan ez lslv-vel
[test_server:root:/home/root:] lslv -m test2lv
test2lv:/kenny
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0003 hdisk0 0054 hdisk1
0002 0004 hdisk0 0055 hdisk1
0003 0005 hdisk0 0056 hdisk1
0004 0006 hdisk0 0057 hdisk1
0005 0002 hdisk0 0053 hdisk1
Hogy teljes legyen a kép, még kérjük ki az LV azonosítóját is
[test_server:root:/home/root:] getlvodm -l test2lvNa és akkor innen indul a móka: Mind azt amit eddig kikértünk rakjuk bele egy file-ba:
0057d91d00004c0000000128b0057d95.17
[test_server:root:/home/root:] lquerylv -L `getlvodm -l test2lv` -r |awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' > /tmp/mapfile
Alapvetően az awk-os mókára nem lenne szükség (amúgy tac-ot emulál a drágája), viszont itt direkt azt akartam, hogy az utolsó LP-hez tartozó bejegyzések a file elején helyezkedjenek el.És akkor innen induljon a móka:
[test_server:root:/home/root:] lreducelv -l `getlvodm -l test2lv` -s 2 /tmp/mapfile
Majd a visszaellenőrzés:[test_server:root:/home/root:] lslv -m test2lvKis magyarázat: Az lreducelv parancs AIX alatt a map file alapján töröl PP-ket az adott LV-ből. A -s paraméterrel tudjuk megmondani, hogy pontosan hányat is töröljön (2 kellett jelen esetben a mirroring miatt), viszont van egy olyan rossz szokása, hogy a map file elejétől indul, és az onnan felvett értékekkel dolgozik (jelen esetben az első 2 sorban meghatározott PP került törlésre (ha nem fordítottam volna meg a map file-t, akkor az első 2őt törölte volna, ami nagyon nem lett volna egészséges))
test2lv:/kenny
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0003 hdisk0 0054 hdisk1
0002 0004 hdisk0 0055 hdisk1
0003 0005 hdisk0 0056 hdisk1
0004 0006 hdisk0 0057 hdisk1
[test_server:root:/home/root:] lsfs -ql /kenny
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/test2lv -- /kenny jfs2 524288 rw no no
(lv size: 524288, fs size: 524288, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
Amire még figyelnünk kell: Ez a parancs nem csak az ODM-ben turkál, hanem magában a VGDA-ban is, így óvatosan a használatával, tekintve, hogy ha nem figyelünk, akkor könnyen kitudunk hozni egy ilyesmi állást is :)
[test_server:root:/home/root:] lslv test2lv=> Ez a leírás inkább csak olyan érdekesség képen született, tessék a hivatalos utat használni ilyen esetben :)
LOGICAL VOLUME: test2lv VOLUME GROUP: testvg
LV IDENTIFIER: 0057d91d00004c0000000128b0057d95.17 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: jfs2 WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 64 megabyte(s)
COPIES: SCHED POLICY: parallel
LPs: 0 PPs: 0
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 32
MOUNT POINT: /kenny LABEL: /kenny
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
Nincsenek megjegyzések:
Megjegyzés küldése