Erinevus lehekülje "LVM" redaktsioonide vahel

Allikas: Kuutõrvaja
(LVM)
(LVM)
8. rida: 8. rida:
 
* Füüsilised plokkseadmed
 
* Füüsilised plokkseadmed
  
LVM võimaldab teha failisüsteemidest snapshotte ning kui failisüsteem seda toetab, siis ka olemasoleva failisüsteemi suurust muuta. Üks LVM eelis nö fdisk partitsioonide kasutamise ees on, et kui mingil moel kasutusel olevate partitsioonidega kõvakette partitsioonitabelit muuta, nt tekitada kõvakettale partitsioon juurde, siis muudatuse kehtestamiseks tuleb operatsioonisüsteem alglaadida, LVM puhul ei ole see vajalik.
+
LVM pakub selliseid võimalusi
 +
 
 +
* failisüsteemide snapshotide kasutamine, ainult loetavad või loetavad-kirjutatavad
 +
* eeldusel, et failisüsteem toetab, muuta olemasoleva failisüsteemi suurust
 +
* erinevalt nö fdisk partitsioonide kasutamisest, kui mingil moel kasutusel olevate partitsioonidega kõvakette partitsioonitabelit muuta, nt tekitada kõvakettale partitsioon juurde, siis muudatuse kehtestamiseks tuleb operatsioonisüsteem alglaadida, LVM puhul ei ole see vajalik
 +
* korraldada online'is andmete migreerimist füüsiliste kõvaketaste vahel (kuigi nö põhimõtteliselt õigem on seda teostada mdadm RAID vahenditega)
 +
* ühendada kokku väiksemaid füüsilised plokkseadmed üheks suuremaks loogiliseks seadmeks (jällegi, seda võib olla õigem teha mdadm vahenditega)
 +
 
 +
LVMi kasutamisel tuleb arvestada selliste puudustega
 +
 
 +
* tõenäoliselt on LVM köited kasutatavad ainult Linux operatsioonisüsteemiga
  
 
===Tuuma seadistamine===
 
===Tuuma seadistamine===

Redaktsioon: 5. november 2009, kell 21:01

LVM

LVM moodustab kihi failisüsteemi ja füüsilise kõvaketta vahele. Kui kasutusel on ka RAID, siis võiks kujutleda kihte selliselt

  • Failisüsteemid
  • LVM
  • RAID
  • Füüsilised plokkseadmed

LVM pakub selliseid võimalusi

  • failisüsteemide snapshotide kasutamine, ainult loetavad või loetavad-kirjutatavad
  • eeldusel, et failisüsteem toetab, muuta olemasoleva failisüsteemi suurust
  • erinevalt nö fdisk partitsioonide kasutamisest, kui mingil moel kasutusel olevate partitsioonidega kõvakette partitsioonitabelit muuta, nt tekitada kõvakettale partitsioon juurde, siis muudatuse kehtestamiseks tuleb operatsioonisüsteem alglaadida, LVM puhul ei ole see vajalik
  • korraldada online'is andmete migreerimist füüsiliste kõvaketaste vahel (kuigi nö põhimõtteliselt õigem on seda teostada mdadm RAID vahenditega)
  • ühendada kokku väiksemaid füüsilised plokkseadmed üheks suuremaks loogiliseks seadmeks (jällegi, seda võib olla õigem teha mdadm vahenditega)

LVMi kasutamisel tuleb arvestada selliste puudustega

  • tõenäoliselt on LVM köited kasutatavad ainult Linux operatsioonisüsteemiga

Tuuma seadistamine

Linuxi 2.6 tuuma puhul on oluline lisaks füüsiliste ketaste draiveritele valida eriti device-mapper, ühe olulise mooduli nimi on dm_mod, fail dm-mod.ko

Device Drivers -> Multi-device support (RAID and LVM) -> valida kõik

2009 aastal aga on vaevalt tarvis tavakasutajal reeglina omale ise tuuma kompileerima hakata, sobib ja on soovitav kasutada distributsiooni tuuma.

LVM seadistamine

LVM lahenduse seadistamiseks sobib kasutada tarkvara lvm2 http://sourceware.org/lvm2/, reeglina on see distributsiooni jaoks pakendatud.

LVMi tuleks käsitleda kolmekihilisena

  1. Plokkseadmed tuleb LVM juures kasutamiseks spetsiaalselt märgistada.
  2. Plokkseadmed on organiseeritud voluum gruppidesse, mis on konteinerid loogilistele voluumidele.
  3. Loogilised voluumid on kõige otsekohesemalt kasutatavad, sinna peale moodustatakse tavaliselt failisüsteemid.

Iga kihi tegevusteks kasutatakse oma utiliite, vastavalt nimedega pv*, vg* ja lv*.

Esmalt tuleb olemasolevad blokkseadmed (füüsilised kõvakettad või RAID seadmed) märkida füüsilisteks voluumideks

aix:~# pvcreate /dev/md0

Tulemust näeb sedasi

aix:~# pvdisplay
 --- Physical volume ---
 PV Name               /dev/md0
 VG Name               voluum
 PV Size               465.77 GB / not usable 0   
 Allocatable           yes 
 PE Size (KByte)       4096
 Total PE              119237
 Free PE               106949
 Allocated PE          12288
 PV UUID               dC1zcu-3caT-Uirt-sbB9-r7j0-Yf06-FUGVmP

Seejärel tuleb moodustada loogiline grupp

aix:~# vgcreate voluum /dev/md0

Tulemust näeb selliselt

aix:~# vgdisplay voluum
 --- Volume group ---
 VG Name               voluum
 System ID             
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  16
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                3
 Open LV               0
 Max PV                0
 Cur PV                1
 Act PV                1
 VG Size               465.77 GB
 PE Size               4.00 MB
 Total PE              119237
 Alloc PE / Size       12288 / 48.00 GB
 Free  PE / Size       106949 / 417.77 GB
 VG UUID               j8OONB-HABJ-HH1g-7Ywx-RLVG-1OzZ-IA68j9


Lõpuks moodustada loogilised voluumid

aix:~# lvcreate -L 16G -n vm01 voluum     
 Logical volume "vm01" created
aix:~# lvcreate -L 16G -n vm02 voluum
 Logical volume "vm02" created
aix:~# lvcreate -L 16G -n vm03 voluum
 Logical volume "vm03" created

Tulemust näeb selliselt

aix:~# lvdisplay /dev/voluum/vm01
 --- Logical volume ---
 LV Name                /dev/voluum/vm01
 VG Name                voluum
 LV UUID                dXfxk5-0jmz-TfQY-hTwz-XxKw-XtgS-H1IOvz
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                16.00 GB
 Current LE             4096
 Segments               1
 Allocation             inherit
 Read ahead sectors     0
 Block device           253:0

Voluum saab olla available või NOT available olekus. Kasutada saab available voluume, kusjuures lvcreate järgselt viiakse voluum automaatselt available olekusse.

Voluumi eemaldamiseks tuleb esmalt ta viia NOT available olekusse

aix:~# lvchange -a n /dev/voluum/vm01

ning seejärel

aix:~# lvremove /dev/voluum/vm01

Voluumigruppide eemaldamiseks tuleks öelda

aix:~# vgremove /dev/voluum

Peale arvuti käivitamist tuleb näiteks Debian GNU/Linuxi puhul öelda

aix:~# /etc/init.d/lvm start

/dev kataloogi seadmete moodustamiseks ning ennem arvuti seiskamist

aix:~# /etc/init.d/lvm stop

Snapshot

Snapshot Logical Volume (SLV) on koopia tema moodustamise ajahetkel vastava loogilise seadme olekust, mida saab seejärel kasutada nagu tavalist failisüsteemi. Snapshoti tegemise eelduseks on, et samas voluumi grupis on piisavalt vaba kasutamata ruumi, st mida pole omistatud ühelegi loogilisele voluumile.

# lvcreate -L2G -s -n vm01_snapshot /dev/voluum/vm01

Tavaliselt on snapshoti moodustamise põhjuseks soov olemasoleva failisüsteemi seisuga mingi muudatus järgi proovida, näiteks tarkvara uuendamine ilma, et see töötavat süsteemi segaks. Sel juhul tuleb peale snapshoti moodustamist ta külge ühendada

# mount /dev/voluum/vm01_snapshot /mnt/vm01_snapshot

Snapshoti vabastamiseks tuleb esmalt ta lahti ühendada ja siis öelda

# lvremove /dev/voluum/vm01_snapshot

Snapshoti moodustamine kasutab mõni MB arvuti mälu, mis snapshoti eemaldamisel vabastatakse. Lisaks tuleb arvestada, et kui labelit kasutavast juurifailisüsteemist teha snapshot, siis on sama label kahel failisüsteemil ning operatsioonisüsteemi alglaadimine ei õnnestu sellises olukorras. Lahenduseks võiks olla snapshotile muu labeli omistamine öeldes

# e2label /dev/voluum/juurikas uuslabel

Snapshotile ruumi juurde andmiseks sobib öelda, kusjuures etteantud uus ruum peab olema suurem kui olemasoleva snapshot ruum

# lvresize -L4G /dev/voluum/vm01_snapshot

LVM kolimine ühelt füüsiliselt kettalt teisele

Kui soovida kolida juurpartitsiooni sisaldav LVM voluum teisele füüsilisele kettale või mdadm abil tehtud mirrorile, siis kõigepealt installeerime mdadm

 apt-get install mdadm

Siin tuleks valida küsimusele vastuseks "all" devices

Järgnevalt teeme mirrori

 debian:~# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdc2 missing

Ning kolime juurfailisüsteemi sisaldava voluumgrupi ümber /dev/md0

 debian:~# lvm
 lvm> pvcreate /dev/md0
   Physical volume "/dev/md0" successfully created
 lvm> vgextend juur /dev/md0
   Volume group "juur" successfully extended
 lvm> pvmove /dev/sda2 /dev/md0

Ootame, kuni move käsk lõpetab töö ja edasi:

 lvm> vgreduce juur /dev/sda2
 lvm> quit

Kui /dev/sda2 on täpselt sama suur, kui /dev/sdc2, siis soovitavalt peale rebooti saame panna sda2 lisaks md0 mirrorisse.

Antud kolimise näide peaks kehtima juhul, kui partitsioon, kuhu kolitakse on piisavalt suur, et mahutada kõik sellel kettal olevad Logical Volumed (lvm -> käsk pvs), samuti peaks see võimaldama kopeerida ka ainult üht ketast mitmest kettast koosnevate LVMide puhul. Mõistlik on sellist operatsiooni teha siiski eelnevalt kontrollides varukoopiate olemasolu ja cd-lt buutides.

Veel toredaid programme

Programm lvm töötab interaktiivses režiimis

aix:~# lvm
lvm> pvs
 PV         VG     Fmt  Attr PSize   PFree  
 /dev/md0   voluum lvm2 a-   465.77G 167.77G
lvm> lvs
 LV       VG     Attr   LSize   Origin Snap%  Move Log Copy% 
 kraam250 voluum -wi-ao 250.00G                              
 vm01     voluum -wi-ao  16.00G                              
 vm02     voluum -wi-ao  16.00G                              
 vm03     voluum -wi-ao  16.00G                              
lvm> vgs
 VG     #PV #LV #SN Attr   VSize   VFree  
 voluum   1   4   0 wz--n- 465.77G 167.77G
lvm> lvscan
 ACTIVE            '/dev/voluum/vm01' [16.00 GB] inherit
 ACTIVE            '/dev/voluum/vm02' [16.00 GB] inherit
 ACTIVE            '/dev/voluum/vm03' [16.00 GB] inherit
 ACTIVE            '/dev/voluum/kraam250' [250.00 GB] inherit
lvm> vgscan
 Reading all physical volumes.  This may take a while...
 Found volume group "voluum" using metadata type lvm2
lvm> pvscan
 PV /dev/md0   VG voluum   lvm2 [465.77 GB / 167.77 GB free]
 Total: 1 [465.77 GB] / in use: 1 [465.77 GB] / in no VG: 0 [0   ]

Voluumi ümbernimetamine

Voluumi nime muutmiseks tuleb esmalt voluumi kasutamine lõpetada, nt vastav failisüsteem lahti ühendada ning märkida voluum mitte-aktiivseks ning seejärel näidata vana ja uus nimi

 bash# lvchange -a n /dev/voluum/voluuminimi
 bash# lvrename /dev/voluum/voluuminimi /dev/voluum/voluumi_uus_nimi

Seejärel märkida voluum uuesti aktiivseks ning kasutada tavapäraselt moel

 bash# lvchange -a y /dev/voluum/voluumi_uus_nimi

Märkused

  • loogilise voluumi moodustamisel saab määrata suurust LVMi jaoks kõige nö loomulikumates mõõtühikutes, extent'ides, nt kogu volume groupi suuruse logical volume tekitamiseks tuleb öelda
 # lvcreate -l 100%VG -n voluuminimi grupinimi
  • Tihtipeale ei ole LVM seadistusfailis /etc/lvm/lvm.conf tarvis muudatusi teha, aga seal saab juhtida filter direktiiviga, milliseid seadmeid LVM käsitleb võimaliku ressursina LVM moodustamiseks või nt kuivõrd LVM utiliitidega sooritatud tegevusi logitakse sh kuhu. Kusjuures, kui filter parameetrit muuta tuleb seejärel öelda 'vgscan', et LVM cache failis /etc/lvm/.cache uuendataks.
  • Kõigi LVM volume grupi voluumide aktiivseks (või mitteaktiivseks) muutmiseks sobib öelda vastavalt
 # vgchange -a y volumegrupinimi
 # vgchange -a n volumegrupinimi
  • Kui pvdisplay ei näita seadmete nimekirjas oodatavat seadet, maksab küsida otse
 # pvdisplay /dev/md0
  • Voluumi grupi eemaldamisel kututatakse kõik grupis olevad voluumid
 # vgremove data
 Do you really want to remove volume group "data" containing 32 logical volumes? [y/n]: y
  Logical volume "fs" successfully removed
  Logical volume "moraal" successfully removed
  Logical volume "cyrus_data" successfully removed
  ... 
  Volume group "data" successfully removed
  • Kui süsteemi on tekkinud mõni nö ületäitunud snapshot, mis on INACTIVE olekus, siis võivad LVM käsud anda sellised teateid oma muu väljundi alguses
 # vgdisplay 
 /dev/dm-2: read failed after 0 of 4096 at 0: Input/output error
 ..