LVM kasutamine operatsioonisüsteemiga Debian Squeeze
Sissejuhatus
TODO
Seadistusfaili /etc/lvm/lvm.conf kasutamine
Seadistusfaili /etc/lvm/lvm.conf abil saab juhtida lvm tööd, nt
- filter abil määrata, millistelt plokkseadmetelt LVM'i kasutatakse
- preferred_names abil määrata, milliseid füüsiliste seadmete nimesid kasutatakse pvdisplay väljundis
filter
filter = [ "r|/dev/md/kvm|", "r|/dev/md/openvz|", \ "r|/dev/md123|", "r|/dev/md124|", "r|/dev/md125|", "r|/dev/md126|", "r|/dev/md127|", \ "r|/dev/block/|", "r|/dev/disk/|", "r|/dev/disk/|", "a/.*/" ]
preferred_names
preferred_names = [ "^/dev/cciss", "^/dev/mapper" ]
nt suhteliselt raskesti arusaadav
# pvdisplay --- Physical volume --- PV Name /dev/dm-24 VG Name c_md0 PV Size 1.09 TiB / not usable 1020.00 KiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 286165 Free PE 0 Allocated PE 286165 PV UUID I30b6D-W4Uy-df7j-A5ek-tcQ7-0lv1-lxefTM
muutub selliseks (c_seafour on cryptsetup seadme nimi, kirjas /etc/crypttab failis)
# pvdisplay --- Physical volume --- PV Name /dev/mapper/c_seafour VG Name c_md0 PV Size 1.09 TiB / not usable 1020.00 KiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 286165 Free PE 0 Allocated PE 286165 PV UUID I30b6D-W4Uy-df7j-A5ek-tcQ7-0lv1-lxefTM
Snapshoti merge
# lvconvert --merge /dev/test_vg/test_lv_ss Merging of volume test_lv_ss started. test_lv: Merged: 21.7% test_lv: Merged: 18.5% ... test_lv: Merged: 2.8% test_lv: Merged: 0.0% Merge of snapshot into logical volume test_lv has finished. Logical volume "test_lv_ss" successfully removed
Haldamine
# lvm dumpconfig devices { dir="/dev" scan="/dev" preferred_names=[] filter="a/.*/" cache_dir="/etc/lvm/cache" cache_file_prefix="" write_cache_state=1 sysfs_scan=1 md_component_detection=1 ignore_suspended_devices=0 } activation { ... } global { ... } shell { history_size=100 } backup { ... } log { ... }
LVM siltide kasutamine
Kõigi köidete nimekirja esitamine, koos siltidega (ingl. k. tag)
# lvs -o +lv_tags
Kõigei pve-vm-115 siltidega köidete esitamine
# lvs @pve-vm-115 LV VG Attr LSize Origin Snap% Move Log Copy% Convert vm-115-disk-1 data -wi-a- 256.00M vm-115-disk-2 data -wi-a- 12.00G vm-115-disk-3 data -wi-a- 36.00G
Sildi pve-vm-116 kustutamiseks köitelt /dev/data/vm-117-disk-1
# lvchange --deltag @pve-vm-116 /dev/data/vm-117-disk-1
Sildi köitele lisamiseks
# lvchange --addtag @pve-vm-117 /dev/data/vm-117-disk-1
Nimekonfliktide lahendamine
LVM kasutamisel võivad tekkida suhteliselt kergesti konfliktid, nt kui arvutisse on ühendatud mitu füüsilist seadet ning need vastavad sama nimelistele köitegruppidele, antud juhul töötas varem süsteemis /dev/md127 ja lisati /dev/mapper/c_md_sdg2
# pvs -o pv_name,pv_uuid,vg_name,vg_uuid WARNING: Duplicate VG name pve: 1NAscV-0Oxt-dQRW-q95y-GAeS-JKls-a1s6jz (created here) takes precedence over NFfChL-7l5p-nlEG-qGQN-FPih-C3rU-UhZZre WARNING: Duplicate VG name pve: Existing 1NAscV-0Oxt-dQRW-q95y-GAeS-JKls-a1s6jz (created here) takes precedence over NFfChL-7l5p-nlEG-qGQN-FPih-C3rU-UhZZre PV PV UUID VG VG UUID ... /dev/mapper/c_md_sdg2 G1FcdT-1m9L-YfXv-FG1N-XG9z-qjT9-grKVyL pve NFfChL-7l5p-nlEG-qGQN-FPih-C3rU-UhZZre /dev/md127 0wkwNy-otB1-1ojB-P1Pj-DbwN-6QdN-hg9GwB pve 1NAscV-0Oxt-dQRW-q95y-GAeS-JKls-a1s6jz
Sellisel juhtumil (eeldusel, et UUID väärtused on siiski erinevad) on asjakohane nimetada UUID'i kasutades üks köitegrupp ümber
# vgrename NFfChL-7l5p-nlEG-qGQN-FPih-C3rU-UhZZre pve_pm1
Tulemusena
# pvs -o pv_name,pv_uuid,vg_name,vg_uuid PV PV UUID VG VG UUID ... /dev/mapper/c_md_sdg2 G1FcdT-1m9L-YfXv-FG1N-XG9z-qjT9-grKVyL pve_pm1 NFfChL-7l5p-nlEG-qGQN-FPih-C3rU-UhZZre /dev/md127 0wkwNy-otB1-1ojB-P1Pj-DbwN-6QdN-hg9GwB pve 1NAscV-0Oxt-dQRW-q95y-GAeS-JKls-a1s6jz
Selliste käskudega saab viia kokku füüsilist seadet ja plokkseadet
Extentide ümberpaigutamine
LVM töötab andmetega nn extent (ingl. k. ulatus) nimeliste tükkide kaupa, tavaliselt on üks extent suur 4MB. Loogilise või füüsilise seadme extentide kasutust saab küsida selliselt
# pvdisplay -m --- Physical volume --- PV Name /dev/cciss/c0d0p2 VG Name pve PV Size 32.00 GiB / not usable 3.81 MiB Allocatable yes PE Size 4.00 MiB Total PE 8191 Free PE 2559 Allocated PE 5632 PV UUID 0YDiZt-yIpD-JqjT-gjgs-0A96-G13i-jJ1j4g --- Physical Segments --- Physical extent 0 to 511: Logical volume /dev/pve/swap Logical extents 0 to 511 Physical extent 512 to 5631: Logical volume /dev/pve/root Logical extents 0 to 5119 Physical extent 5632 to 8190: FREE
kus
- füüsilisi extente 0 - 511 kasutab LVM köide /dev/pve/swap
- füüsilisi extente 512 - 5631 kasutab LVM köide /dev/pve/root
- 5632 - 8190 on vaba extentid
# lvdisplay -m ... --- Segments --- Logical extent 0 to 511: Type linear Physical volume /dev/cciss/c0d0p2 Physical extents 0 to 511
Extentide ümberpaigutamine sama PV seadme peal
Vahel on tarvis extentisid plokkseadmel ümber paigutada, nt pvresize ütlemise jaoks, seda sobib teha sarnaselt
# pvmove --alloc anywhere /dev/cciss/c0d0p2:10205-15324 /dev/cciss/c0d0p2:512-5631
Seejuures tuleb teha käsitsi kindlaks kasutatavad arvud. Tõenäoliselt on kõige lihtsam ümber paigutada nö tavalisi köiteid kasutava LVM'i extente (st kui pole snapshotte, mitte-lineaarset tüüpi kasutust jms).
Extentide ümberpaigutamine ühelt PV seadmelt teisele
Olgu kasutada üks VG (vgnimi), millele vastab üks PV (/dev/vdc1), kusjuures on LV köide /dev/vgnimi/lvnimi millel on failisüsteem ja see on monteeritud olekus, nt /mnt/lvnimi kataloogi all. Arvutis on lisaks kasutamata olekus /dev/vdc1 plokkseadmest suurem plokkseade /dev/vdd1 ning eesmärgiks on asendada VG sees üks PV teisega. Selleks sobib
- moodustada suuremale seadmele PV
# pvcreate /dev/vdd1
- lisada uus PV VG sisse
# vgextend vgnimi /dev/vdd1
- liigutada extentid ümber
# pvmove /dev/vdc1 /dev/vdd1
- veenduda, et PV on tühi
# pvdisplay -m /dev/vdc1
- eemaldada /dev/vdc1
# vgreduce vgnimi /dev/vdc1
- eemaldada PV markerid
# pvremove /dev/vdc1
Kogu protseduuri sooritamise ajal võib olla /dev/vgnimi/lvnimi failisüsteem monteeritud olekus ja kasutuses. Tundub, et vahel ütleb pvmove töö lõpus nii ja sellest ei ole tingimata midagi halba
/dev/drbd0: Moved: 00.0% .. /dev/drbd0: Moved: 99.9% /dev/drbd0: Moved: 100.0% /dev/drbd0: no pvmove in progress - already finished or aborted.
Märkused
- Liigutada saab ka LVM köite täpsusega
# pvmove -h köitenimi /dev/vdc1 /dev/vdd1
- Peale liigutamise käsu andmist paistavad vanal ja uuel PV seadmel asjassepuutuvad köited selliste nimedega
# pvdisplay -m seadmenimi .. Physical extent 3072 to 6143: Logical volume /dev/pvmvg/pvmove0 Logical extents 0 to 3071 Physical extent 6144 to 9215: Logical volume /dev/pvmvg/pvmove0 Logical extents 3072 to 6143 ...
- Kui liigutamise ajal tekitatakse köiteid juurde, siis neid ei liigutata
- Kui liigutamise ajal kustutatakse köiteid, siis seda peab katsetama
- Tõenäoliselt tekib probleeme selle seadme extentide ümberpaigutamisel, kus töötab operatsioonisüsteem ise
VG resize
VG ruumi lisamiseks
- süsteemis peab olema kasutada vaba plokkseade, nt /dev/sdc, millest saab PV
# pvcreate /dev/sdc
- /dev/sdc lisatakse VG koosseisu, tulemusena suureneb vaba ruum kõnealuses volume grupis
# vgextend pgdata /dev/sdc
- lõpuks suurendatakse LV, eeludsel, et ta oli enne nt 60 G
# lvresize -L96G /dev/pgdata/data_postgresql
- ning vastava failisüsteem
# resize2fs -p /dev/pgdata/data_postgresql
lvresize suurust saab ette anda mitmel viisil protsentuaalselt
- %FREE - parasjagu volume grupis kasutamata olevate extentide protsent (-l tegeleb extentidega, + lisab juurde ja 95%FREE näitab, et kasutatakse 95 % VG kasutamata extentidest lisaks ära)
# lvresize -l +95%FREE /dev/dp_data/fl
Märkused
- ext3 failisüsteemi write barrier ei mõju läbi LVM kihi
- initramfs promptis saab vajadusel LVM volume group nime muuta lvs -> vgchange käsuga
- kui arvuti jääb alglaadimisel ootama
... Volume Groups ...
juurde, võib olla põhjus selles, et mõnu fstab abil monteeritava failisüsteemile vastav snapshot on INACTIVE olekusse sattunud. Sel juhul aitab bootida arvuti 'break=mount' abil initramfs prmopti ja seal öelda
(initramfs) lvm (initramfs) lvm> lvdisplay (initramfs) lvm> lvremove /dev/data/suur_snapshot