LVM kasutamine operatsioonisüsteemiga Debian Squeeze

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

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

Kasulikud lisamaterjalid