Una alternativa al sistema tradicional de particions és Logical Volume Managment aka LVM. Per tal d'utilitzar LVM s'ha d'assignar el codi:
0x8e
a una o varies particions. Aleshores s'utilitzen una sèrie d'utilitats com pvcreate, vgcreate, lvcreate, lvscan... per tal de gestionar les particions reals (segons la terminologia LVM volums físics) i agrupar-les en grups de vòlums i crear vòlums lògics (grups de dades que poden ser de múltiples particions però que són vistos pel sistema con una sola partició).
El dispositius lògics creats es poden accedir des de:
/dev/mapper
Per exemple:
/dev/mapper/myvol-home.
LVM complica força la configuració però té els següents avantatges:
Un dels principals inconvenients és que pot complicar la tasca de recuperació d'un desastre (p. ex error de disc). si un vòlum lógic ocupa més d'un disc si un disc dur falla pot provocar un error a tot el sistema de fitxers virtual.
Recursos:
$ sudo apt-get install lvm2
Vegeu també
$ dpkg -L lvm2 /. /etc /etc/lvm /etc/lvm/lvm.conf /etc/init.d /etc/init.d/lvm2 /sbin /sbin/lvm /sbin/lvmdump /usr /usr/share /usr/share/man /usr/share/man/man8 /usr/share/man/man8/lvchange.8.gz /usr/share/man/man8/lvconvert.8.gz /usr/share/man/man8/lvcreate.8.gz /usr/share/man/man8/lvdisplay.8.gz /usr/share/man/man8/lvextend.8.gz /usr/share/man/man8/lvm.8.gz /usr/share/man/man8/lvmchange.8.gz /usr/share/man/man8/lvmdiskscan.8.gz /usr/share/man/man8/lvmdump.8.gz /usr/share/man/man8/lvreduce.8.gz /usr/share/man/man8/lvremove.8.gz /usr/share/man/man8/lvrename.8.gz /usr/share/man/man8/lvresize.8.gz /usr/share/man/man8/lvs.8.gz /usr/share/man/man8/lvscan.8.gz /usr/share/man/man8/pvchange.8.gz /usr/share/man/man8/pvck.8.gz /usr/share/man/man8/pvcreate.8.gz /usr/share/man/man8/pvdisplay.8.gz /usr/share/man/man8/pvmove.8.gz /usr/share/man/man8/pvremove.8.gz /usr/share/man/man8/pvresize.8.gz /usr/share/man/man8/pvs.8.gz /usr/share/man/man8/pvscan.8.gz /usr/share/man/man8/vgcfgbackup.8.gz /usr/share/man/man8/vgcfgrestore.8.gz /usr/share/man/man8/vgchange.8.gz /usr/share/man/man8/vgck.8.gz /usr/share/man/man8/vgconvert.8.gz /usr/share/man/man8/vgcreate.8.gz /usr/share/man/man8/vgdisplay.8.gz /usr/share/man/man8/vgexport.8.gz /usr/share/man/man8/vgextend.8.gz /usr/share/man/man8/vgimport.8.gz /usr/share/man/man8/vgmerge.8.gz /usr/share/man/man8/vgmknodes.8.gz /usr/share/man/man8/vgreduce.8.gz /usr/share/man/man8/vgremove.8.gz /usr/share/man/man8/vgrename.8.gz /usr/share/man/man8/vgs.8.gz /usr/share/man/man8/vgscan.8.gz /usr/share/man/man8/vgsplit.8.gz /usr/share/man/man5 /usr/share/man/man5/lvm.conf.5.gz /usr/share/initramfs-tools /usr/share/initramfs-tools/hooks /usr/share/initramfs-tools/hooks/lvm2 /usr/share/initramfs-tools/scripts /usr/share/initramfs-tools/scripts/local-top /usr/share/initramfs-tools/scripts/local-top/lvm2 /usr/share/doc /usr/share/doc/lvm2 /usr/share/doc/lvm2/examples /usr/share/doc/lvm2/examples/example.conf.gz /usr/share/doc/lvm2/pvmove_outline.txt /usr/share/doc/lvm2/testing.txt /usr/share/doc/lvm2/copyright /usr/share/doc/lvm2/changelog.Debian.gz /usr/share/doc/lvm2/changelog.gz /usr/share/doc/lvm2/tagging.txt.gz /sbin/lvchange /sbin/lvconvert /sbin/lvcreate /sbin/lvdisplay /sbin/lvextend /sbin/lvmchange /sbin/lvmdiskscan /sbin/lvmsadc /sbin/lvmsar /sbin/lvreduce /sbin/lvremove /sbin/lvrename /sbin/lvresize /sbin/lvs /sbin/lvscan /sbin/pvchange /sbin/pvck /sbin/pvcreate /sbin/pvdisplay /sbin/pvmove /sbin/pvremove /sbin/pvresize /sbin/pvs /sbin/pvscan /sbin/vgcfgbackup /sbin/vgcfgrestore /sbin/vgchange /sbin/vgck /sbin/vgconvert /sbin/vgcreate /sbin/vgdisplay /sbin/vgexport /sbin/vgextend /sbin/vgimport /sbin/vgmerge /sbin/vgmknodes /sbin/vgreduce /sbin/vgremove /sbin/vgrename /sbin/vgs /sbin/vgscan /sbin/vgsplit
Permet consultar els dispositius físics (PV o Physical Volumes) que pot utilitzar LVM:
Parametres que ens permet el pvdisplay, ho veurem amb:
$ sudo pvdisplay --help
$ sudo pvdisplay --help pvdisplay: Display various attributes of physical volume(s)
pvdisplay [-c|--colon] [-d|--debug] [-h|--help] [--ignorelockingfailure] [-m|--maps] [--nosuffix] [-s|--short] [--units hHbBsSkKmMgGtTpPeE] [-v|--verbose] [--version] [PhysicalVolumePath [PhysicalVolumePath...]] pvdisplay --columns|-C [--aligned] [-a|--all] [-d|--debug] [-h|--help] [--ignorelockingfailure] [--noheadings] [--nosuffix] [-o|--options [+]Field[,Field]] [-O|--sort [+|-]key1[,[+|-]key2[,...]]] [--separator Separator] [--unbuffered] [--units hHbBsSkKmMgGtTpPeE] [-v|--verbose] [--version] [PhysicalVolumePath [PhysicalVolumePath...]]
$ sudo pvdisplay --- Physical volume --- PV Name /dev/block/104:3 VG Name xen_vm PV Size 459,65 GB / not usable 1,67 MB Allocatable yes PE Size (KByte) 4096 Total PE 117671 Free PE 19556 Allocated PE 98115 PV UUID sP1cb0-XGIE-whWp-XrBj-DsxZ-GyGj-kpH54y
On Total PE es el nobre total que te el disc i muliplicat pel PE size (4MB) ens dona el PV size
On free PE indica l'espai físic lliure del que disposeu. Cal fer el càlcul aproximat o utilitzar:
$ sudo pvdisplay -s Device "/dev/block/104:3" has a capacity of 131,44 GB
--Ramonmontoya (discussió) 20:13, 25 set 2012 (CEST)
Permet consultar els grups de volums lògics (VG o Volume Groups) existents a LVM:
$ sudo vgdisplay --- Volume group --- VG Name pve System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 465,26 GiB PE Size 4,00 MiB Total PE 119106 Alloc PE / Size 115012 / 449,27 GiB Free PE / Size 4094 / 15,99 GiB VG UUID kB2Eqb-IZ7o-KkvO-Xwng-Np7B-hcgI-Zooc5I
Permet consultar els volums lògics (LV o Logical Volumes) existents a LVM:
$ sudo lvdisplay --- Logical volume --- LV Path /dev/pve/swap LV Name swap VG Name pve LV UUID mgXaS6-qcTD-v4pi-i4ZE-fNgr-YrRJ-Anh1D0 LV Write Access read/write LV Creation host, time proxmox, 2012-05-03 14:31:47 +0200 LV Status available # open 1 LV Size 4,00 GiB Current LE 1024 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Logical volume --- LV Path /dev/pve/root LV Name root VG Name pve LV UUID Z8jo0k-po9V-gkhw-p91K-GZ79-0nMw-Rn65Cq LV Write Access read/write LV Creation host, time proxmox, 2012-05-03 14:31:48 +0200 LV Status available # open 1 LV Size 96,00 GiB Current LE 24576 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/pve/data LV Name data VG Name pve LV UUID N9ao6A-ly0v-0HYo-Ps5J-OCSc-1vOS-JSR2zf LV Write Access read/write LV Creation host, time proxmox, 2012-05-03 14:31:48 +0200 LV Status available # open 1 LV Size 349,27 GiB Current LE 89412 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
El que fa aquesta ordre és preparar un dispositiu físic (ja siqui un disc sencer o una partició) per a ser utilitzat amb LVM:
$ sudo pvcreate /dev/sdb5 Physical volume "/dev/sdb5" successfully created $ sudo pvdisplay ... "/dev/sdb5" is a new physical volume of "931,27 GiB" --- NEW Physical volume --- PV Name /dev/sdb5 VG Name PV Size 931,27 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 3OE4ts-dupk-BECn-vpeK-lSKP-BFeJ-0bezdj
Recursos:
Serveix per crear grups de volums:
$ sudo vgcreate sol1 /dev/sdb5 Volume group "sol1" successfully created
$ sudo vgdisplay --- Volume group --- VG Name sol1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 931,27 GiB PE Size 4,00 MiB Total PE 238405 Alloc PE / Size 0 / 0 Free PE / Size 238405 / 931,27 GiB VG UUID f2h6ru-wFyQ-p6zO-QMwk-9kP3-sC5t-jGUp7V ...
$ lvcreate -n NAME -l 100%FREE vg0
Recursos:
Permet afegir un PV a un VG ja existent (amplia la capacitat física del VG):
$ sudo vgextend my_volume_group /dev/sda1
Activar un VG:
És recomanable desactivar el VG abans d'esborrar:
$ sudo vgchange -a n my_volume_group
I ara podeu esborrar-lo amb:
$ sudo vgremove my_volume_group
Si per exemple utilitzeu LVM en un entorn Xen on les "particions" LVM no estan muntades, l'ordre df no us mostrarà l'espai que hi ha lliure realment.
Consulteu pvdisplay.
Les particions LVM no es poden muntar directament des de una LIVE-CD. Aquí podeu trobar les passes per a accedir a una partició LVM des de un LIVE-Cd d'Ubuntu.
Carregueu la live-cd i obriu una línia de comandes. Primer de tot cal que tingueu accés de xarxa per instal·lar un paquet. Podeu configurar la xarxa amb:
$ sudo ifconfig eth0 IP netmask MASCARA up $ sudo route add default gw IP_GATEWAY $ sudo nano /etc/resolv.conf
Al fitxer resolv.con afegiu una línia amb:
nameserver IP_SERVIDOR_DNS
Ara instal·leu el suport per a LVM:
$ sudo apt-get install lvm2
Segurament haureu de carregar el mòdul del kernel:
$ sudo modprobe dm-mod
Podeu consultar els discs durs amb:
$ sudo fdisk -lu
Ara consulteu el volums físics amb:
$ sudo pvscan PV /dev/sda2 VG VolGroup00 lvm2 [74.41 GB / 32.00 MB free] Total: 1 [74.41 GB] / in use: 1 [74.41 GB] / in no VG: 0 [0 ]
I els grups de volum amb:
$ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2
Activeu els grups de volum amb:
$ sudo vgchange -a y 2 logical volume(s) in volume group "VolGroup00" now active
Mostreu els volums lògics amb:
$ sudo lvscan ACTIVE '/dev/VolGroup00/LogVol00' [72.44 GB] inherit ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GB] inherit
Munteu la partició amb:
$ sudo mount /dev/VolGroup00/LogVol00 /mnt
Ara a la carpeta /mnt/VolGroup00/LogVol00 teniu els fitxers de la partició LVM.
Recursos
Anem a suposar que tenim 2 discs durs qualsevol. En el nostre exemple, de fet, utilitzarem 2 volums de RAID (realment tenim 4 discs) anomenats /dev/md0 i /dev/md1. Sense raid l'exemple funcionaria igualment utilitzant per exemples 2 discs durs SATA (/dev/sda1 i /dev/sdb1).
Primer cal iniciar els discos físics per utilitzar LVM:
$ sudo pvcreate /dev/md0 /dev/md1
pv---> physical volume.
Ara cal crear el volum group (vg):
$ sudo vgcreate datavg /dev/md0 /dev/md1
On datavg és el nom que li volem donar al volum.
I ara cal crear el volum logic (logical volume - lv -):
$ sudo lvcreate --name datalv --size 465,63G datavg
Cal tenir en compte que la mida s'ha d'expressar en GiB i no pas GB. Per exemple un disc de 500G és un disc de 465,63. El factor de conversió és 0.93125.
Ara podem consultar el volum amb:
$ sudo lvdisplay
--- Logical volume --- LV Name /dev/datavg/datalv VG Name datavg LV UUID 7qHDvB-3F4R-wNVP-valt-MXEq-NWIl-3paokl LV Write Access read/write LV Status available # open 0 LV Size 465,63 GB Current LE 119202 Segments 2 Allocation inherit Read ahead sectors 0 Block device 254:4
Ara cal crear el sistema de fitxers. En aquesta cas volem ext3:
$ sudo mkfs.ext3 -m 0 /dev/datavg/datalv
Els dispositius LVM els trobarem a:
/dev/mapper/
Per muntar un dispositiu LVM o podem fer amb:
$ mkdir /mnt/data $ mount /dev/mapper/datavg-datalv /mnt/data/ $ chmod 777 /mnt/data/
O podem fer que es munti de forma permanent editant el fitxer /etc/fstab:
$ sudo joe /etc/fstab
i afegim la línia:
/dev/mapper/datavg-datalv /mnt/data ext3 rw,noatime 0 0
Consulteu Proxmox#Afegir_un_segons_disc_virtual
Cal que les particions no estiguin en ús, es pot posar un LIVE-CD o fer
$ sudo init 1 $ sudo umount /dev/cop/root $ sudo lvchange -an /dev/cop/root $ sudo vgrename cop nou_nom $ sudo lvchange -a y
NOTA: Si és la partició root només es podrà fer amb un LIVE-CD i aleshores són dos passos:
$ sudo apt-get install lvm2 $ sudo vgrename cop xen_vm
SkoleLinux utilitza LVM. Lvm permet crear unitats lògiques a partir d'un o més disc durs i permet redimensionar particions en calent.
SkoleLinux utilitza LVM per separar el que són els fitxers de sistema del fitxers data. Per aixo s'han creat dos grups de volums (vg)
i diversos volums lògics:
Pel grup system
Pel grup data
Ho podem veure si executem al servidor:
$ df -h fitxers Tamany En Lliure % Muntat en /dev/hdc1 464M 159M 280M 37% / /dev/vg_system/lv_usr 2,7G 1,4G 1,2G 55% /usr /dev/vg_data/lv_backup 1,6G 978M 517M 66% /skole/backup /dev/vg_data/lv_home0 1008M 104M 854M 11% /skole/tjener/home0 /dev/vg_system/lv_var 1,1G 926M 92M 92% /var /dev/vg_system/lv_ltsp_swap 977M 145M 783M 16% /var/opt/ltsp/swapfiles /dev/vg_system/lv_squid 882M 121M 717M 15% /var/spool/squid
Per exemple per afegir dos RAIDs:
$ sudo vgextend vg_ubuntu_sala /dev/md0 /dev/md1 Volume group "vg_ubuntu_sala" successfully extended
Consulteu amb vgdisplay que el canvi s'ha dut a terme correctament:
El procediment per modificar el tamany de les LVM és diferent depenent del tipus de particio. Si es una partició com /usr no es podra fer el canvi de tamany "en calent" i abans caldra asegurar-se de que nno hi ha cap usuari conectat i pasar al nivell 1 amb la comnanda init 1.
Aquí trobem les passes a seguir per modificar la mida de la partició /usr.
Si el nostre sistema ens dona un error al utilitzar la comanda e2fsadm es que només servia per SkoleLinux Woody. Per Sarge cal utilitzar una comanda similar a:
lvextend --size 1G /dev/vg_system/lv_usr resize2fs /dev/vg_system/lv_usr
Cal entrar amb un LIVE-CD i executar:
$ sudo apt-get install lvm2 $ sudo -i # lvm vgchange -a y # lvdisplay # e2fsck -f /dev/VolGroup00/LogVol00 # resize2fs -f /dev/VolGroup00/LogVol00 10G # lvreduce -L10G /dev/VolGroup00/LogVol00
NOTA: Aquest exemple només s'aplica a volums lògics que no continguin dades de sistema operatiu, és a dir que poguem estar sense aquesta "partició" una estona sense que el sistema deixi de funcionar
Primer s'ha de desmuntar el volum (en cas que ho estigui). Consultem els dispositius muntats amb mount:
$ mount /dev/cciss/c0d0p1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) procbususb on /proc/bus/usb type usbfs (rw) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) overflow on /tmp type tmpfs (rw,size=1048576,mode=1777) /dev/mapper/xen_vm-repositori_maquina_virtual on /mnt/repositori_maquina_virtual type ext3 (rw)
En el nostre cas el dispositiu és:
/dev/mapper/xen_vm-repositori_maquina_virtual
Per desmuntar-lo:
$ sudo umount /dev/mapper/xen_vm-repositori_maquina_virtual
Sempre abans de modificar un sistema de fitxers és molt recomanable comprovar que no hi hagin error. No feu canvis mai en un sistema de fitxers amb errors o podríeu perdre les dades del sistema de fitxers:
$ sudo e2fsck -f /dev/mapper/xen_vm-repositori_maquina_virtual e2fsck 1.41.3 (12-Oct-2008) Pas 1: comprovació de nodes-i, blocs i mides Pas 2: comprovació de l'estructura del directori Pas 3: comprovació de la connectivitat dels directoris Pas 4: comprovació dels nombres de referències Pas 5: comprovació del resum de la informació del grup /dev/mapper/xen_vm-repositori_maquina_virtual: 21/327680 fitxers (0.0% no contigus), 212451/1310720 blocs
Ara cal reduir la mida del sistema de fitxers:
$ sudo resize2fs /dev/mapper/xen_vm-repositori_maquina_virtual 1000M resize2fs 1.41.3 (12-Oct-2008) Resizing the filesystem on /dev/mapper/xen_vm-repositori_maquina_virtual to 256000 (4k) blocks. The filesystem on /dev/mapper/xen_vm-repositori_maquina_virtual is now 256000 blocks long.
NOTA: Mai reduïu el sistema de fitxers a menys de les dades que estan ocupant espai en aquell sistema de fitxers sinó podeu perdre dades.
Ara cal canviar la mida del volum lògic:
$ sudo lvresize -L 1G /dev/mapper/xen_vm-repositori_maquina_virtual WARNING: Reducing active logical volume to 1,00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce repositori_maquina_virtual? [y/n]: y Reducing logical volume repositori_maquina_virtual to 1,00 GB Logical volume repositori_maquina_virtual successfully resized
Comproveu el canvi:
$ sudo lvdisplay /dev/mapper/xen_vm-repositori_maquina_virtual --- Logical volume --- LV Name /dev/xen_vm/repositori_maquina_virtual VG Name xen_vm LV UUID UOs4Ft-cdGD-RULl-HSDP-jyJj-ncUl-8xyRad LV Write Access read/write LV Status available # open 0 LV Size 1,00 GB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:6
Ara torneu a muntar el volum:
$ sudo mount /dev/xen_vm/repositori_maquina_virtual /mnt/repositori_maquina_virtual
Comproveu els canvis:
$ df -h S. fitxers Mida En ús Lliure %Ús Muntat a /dev/cciss/c0d0p1 2,3G 1,2G 1,1G 52% / tmpfs 1,9G 0 1,9G 0% /lib/init/rw udev 10M 852K 9,2M 9% /dev tmpfs 1,9G 0 1,9G 0% /dev/shm overflow 1,0M 0 1,0M 0% /tmp
Recursos:
L'ordre a utilitzar és lvextend. Per exemple per augmentar 2GB un volum lògic:
$ sudo lvextend -L+2G /dev/xen_vm/TortosaINSEbreSrvr1 Extending logical volume TortosaINSEbreSrvr1 to 6,00 GB Logical volume TortosaINSEbreSrvr1 successfully resized
Primer s'ha de desmuntar el volum (en cas que ho estigui). Consultem els dispositius muntats amb mount:
$ mount ... /dev/mapper/xen_vm-TortosaINSEbreSrvr1 on /mnt/TortosaINSEbreSrvr1 type ext3 (rw)
En el nostre cas el dispositiu és:
/dev/mapper/xen_vm-TortosaINSEbreSrvr1
Per desmuntar-lo:
$ sudo umount /dev/mapper/xen_vm-TortosaINSEbreSrvr1
Sempre abans de modificar un sistema de fitxers és molt recomanable comprovar que no hi hagin error. No feu canvis mai en un sistema de fitxers amb errors o podríeu perdre les dades del sistema de fitxers:
$ sudo e2fsck -f /dev/mapper/xen_vm-TortosaINSEbreSrvr1
Ara cal augmentar la mida del sistema de fitxers:
$ sudo resize2fs /dev/mapper/xen_vm-TortosaINSEbreSrvr1
NOTA: Si no poseu cap mida el sistema de fitxers s'ajusta per agafar la mida de tot el dispositiu.
Comproveu el canvi:
$ sudo lvdisplay /dev/mapper/xen_vm-TortosaINSEbreSrvr1 --- Logical volume --- LV Name /dev/xen_vm/TortosaINSEbreSrvr1 VG Name xen_vm LV UUID eT1vml-8kAp-JjgU-D6J2-9S6T-ADTI-5owlnF LV Write Access read/write LV Status available # open 0 LV Size 6,00 GB Current LE 1536 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1
Ara torneu a muntar el volum:
$ sudo mount /dev/mapper/xen_vm-TortosaINSEbreSrvr1 /mnt/TortosaINSEbreSrvr1
I comproveu el canvi:
$ df -h S. fitxers Mida En ús Lliure %Ús Muntat a ... /dev/mapper/xen_vm-TortosaINSEbreSrvr1 6,0G 137M 5,5G 3% /mnt/TortosaINSEbreSrvr1
Recursos:
Primer cal consultar quan d'espai hi ha lliure en el grup de volums al qual pertany el volum lògic home. Consulteu primer a quin volum grup pertany:
$ sudo lvdisplay --- Logical volume --- LV Name /dev/vg_ubuntu_sala/lv_home VG Name vg_ubuntu_sala LV UUID 1yRzDv-epQx-3lPj-c9wG-AoRj-zKOg-c0Z0JA LV Write Access read/write LV Status available # open 1 LV Size 39,06 GB Current LE 10000 Segments 1 Allocation inherit Read ahead sectors 0 Block device 254:2
I ara consulteu l'espai lliure del grup de volum (en l'exemple vg-ubuntu-sala):
$ sudo vgdisplay --- Volume group --- VG Name vg_ubuntu_sala System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 4 Open LV 4 Max PV 0 Cur PV 3 Act PV 3 VG Size 652,42 GB PE Size 4,00 MB Total PE 167019 Alloc PE / Size 20250 / 79,10 GB Free PE / Size 146769 / 573,32 GB VG UUID PHPpVz-tohT-c3pt-Ldbm-AyCx-iBy2-Aovp16
En aquest cas tenim 573 G lliures...
El podem augmentar a una mida fixa:
# lvextend --size 250G /dev/vg_ubuntu_sala/lv_home
O especificar en quina quantitat volem augmentar:
# lvextend --size +50G /dev/vg_ubuntu_sala/lv_home
Ara hem augmentat la mida de la "partició" (recordeu que no són particions reals sinó volums lògics). Ara cal augmentar la mida del sistema de fitxers que hi ha dins del volum lògic.
Primer es recomanable comprovar que no hi hagi errors:
# e2fsck -f /dev/xen_vm/tallafocsASI
I ara ja podem augmentar la mida:
# resize2fs /dev/vg_ubuntu_sala/lv_home
$ lvreduce --size 250G /dev/vg_ubuntu_sala/lv_home
Exemple per eliminar un volum lògic anomenat lv_xarxantoni que esta als grup de volums data (vg_data).
Primer desmuntem el volum lògic.
$ umount /xarxantoni/backup
Comprovem que s'ha desmuntat amb:
$ df -h
o
$ mount
Consultem el nom dels volumns lògics per saber quin volem esborrar:
$ sudo lvdisplay
Executem lvremove
$ lvremove /dev/vg_data/lv_xarxantoni File descriptor 3 left open File descriptor 4 left open Do you really want to remove active logical volume "lv_xarxantoni"? [y/n]: y Logical volume "lv_xarxantoni" successfully removed
Ara cal que el treim del fitxer /etc/fstab si el teniem aquí posar per muntar-se al iniciar l'ordinador.
NOTA: El procediment compte amb que es treu el disc físic de la màquina origen i es posa a la destinació
Es pot utilitzar l'ordre pvmove per abans cal utilitzar vgmerge (pvmove només permet moure entre disc físics que pertanyen al mateix VG). Les ordres:
Primer cal fer el merge
$ sudo vgmerge -v vg_vms vg_vms1 Checking for volume group "vg_vms" Checking for volume group "vg_vms1" Archiving volume group "vg_vms1" metadata (seqno 74). Archiving volume group "vg_vms" metadata (seqno 1). Writing out updated volume group Creating volume group backup "/etc/lvm/backup/vg_vms" (seqno 2). Volume group "vg_vms1" successfully merged into "vg_vms"
IMPORTANT: On el segon vg és l'origen de les dades i el primer és la destinació!
$ sudo pvmove - /dev/sdz42; pvmove /dev/sdz43; … $ sudo vgreduce xen1_images /dev/sdz42 /dev/sdz43 …
Opcionalment potser voleu eliminar els antics PVs:
$ sudo pvremove /dev/sdz42 /dev/sdz43 …
Recursos:
Els volums lògics snapshot són especials, ja que serveixen per contenir els canvis que hi ha a un volum lògic LVM mentrestant es fa una còpia del volum lògic. Permeten fer còpies consistents d'un volum lògic.
$ sudo lvcreate -L 1G -s -n lv_snapshot /dev/vg_xen/lv_xen_snaptest
La comanda anterior crear un nou volum lògic de tipus snapshot (-s) a partir del volum lògic lv_xen_snaptest (ja existent prèviament). El nou del nou volum lògic és lv_snapshot i ocupa 1G.
NOTA: Cal tenir en compte que la mida del volum lògic snapshot no ha de ser la mida del volum lògic original. Simplement ha de ser prou gran per contenir els canvis que poden haver-hi al volum lògic original mentrestant fem la còpia. Depén de cada sistema però si no tardem gaire en fer la copia, no cal gaire espai.
Ara es pot fer una còpia de seguretat amb:
$ sudo dd if=/dev/vg_xen/lv_snapshot | bzip2 | dd of=/path/to/dr_image.bz2
Un cop s'ha fet la còpia s'ha d'alliberar (release) el volum lògic creat:
$ sudo lvremove lv_snapshot
.NOTA: Si un volum snapshot arriba a omplir-se, el volum s'allibera automàticament
Un exemple complet pas a pas:
# lvcreate -L592M -s -n dbbackup /dev/ops/databases lvcreate -- WARNING: the snapshot must be disabled if it gets full lvcreate -- INFO: using default snapshot chunk size of 64 KB for "/dev/ops/dbbackup" lvcreate -- doing automatic backup of "ops" lvcreate -- logical volume "/dev/ops/dbbackup" successfully created # mkdir /mnt/ops/dbbackup # mount /dev/ops/dbbackup /mnt/ops/dbbackup mount: block device /dev/ops/dbbackup is write-protected, mounting read-only # tar -cf /dev/rmt0 /mnt/ops/dbbackup tar: Removing leading `/' from member names # umount /mnt/ops/dbbackup # lvremove /dev/ops/dbbackup lvremove -- do you really want to remove "/dev/ops/dbbackup"? [y/n]: y lvremove -- doing automatic backup of volume group "ops" lvremove -- logical volume "/dev/ops/dbbackup" successfully removed
Inseriu ací text sense format
Si tenim dos discs durs al servidor:
/dev/sda /dev/sdb
SkoleLinux només particiona el primer disc de la següent manera:
/dev/sda1: Esta montat el root (/) /dev/sda2: Swap? /dev/sda5: VG vg_system lvm2 [10,59 GB / 2,31 GB free] /dev/sda6: VG vg_data lvm2 [63,43 GB / 30,86 GB free]
Tal com ens mostra la comanda /sbin/pvscan:
@tjener:~$ sudo /sbin/pvscan PV /dev/sda6 VG vg_data lvm2 [63,43 GB / 30,86 GB free] PV /dev/sda5 VG vg_system lvm2 [10,59 GB / 2,31 GB free] Total: 2 [74,02 GB] / in use: 2 [74,02 GB] / in no VG: 0 [0 ]
LVM no es pot utilitzar encara amb / perque eines com el grub o lilo que carreguen el sistema no son capaçes d'utilitzar LVM.
Per afegir el segon disc a LVM cal seguir les passes del següent link (http://www.skolelinux.no/~klaus/newnotater_Sarge/x2007.html#newdisk).
Un cop afegit podem seguir les pases de http://www.skolelinux.no/~klaus/newnotater_Sarge/x2007.html#newlv per tal de crear un nou LV que aprofiti aquest nou espai.
--acacha 06:51, 20 març 2010 (UTC)
Consulteu quins volums teniu disponibles:
$ sudo vgdisplay
I l'elimineu amb vgremove:
$ sudo vgremove nom_volumgroup
NOTA: Abans d'esborrar el volum group, heu de tenir en compte que no hi hagin volums lògics que n'estiguin fent ús.
En un sistema sense LVM s'afegeix un segon disc dur nou que ni tant sols està particionat.
Podeu consultar els discs amb:
$ sudo fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00099623 Device Boot Start End Blocks Id System /dev/sda1 * 1 993 7976241 83 Linux /dev/sda2 994 1044 409657+ 5 Extended /dev/sda5 994 1044 409626 82 Linux swap / Solaris Disk /dev/sdb: 110.6 GB, 110627913728 bytes 255 heads, 63 sectors/track, 13449 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table
Podeu comprovar si esta o no muntat amb:
$ mount $ mount /dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro) ...
Seguint l'article:
Com_crear/gestionar_particions_en_Linux
Creem una partició de tipus ext3.
$ sudo fdisk /dev/sdb
Si encara no teniu LVM, instal·leu-lo amb:
$ sudo apt-get install lvm2
Segurament haureu de carregar el mòdul del kernel:
$ sudo modprobe dm-mod
Ara creem el volum físic (pv --> Phisycal Volume ) de LVM:
$ sudo pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
El podeu consultar amb
$ sudo pvscan PV /dev/sdb1 lvm2 [103,02 GB] Total: 1 [103,02 GB] / in use: 0 [0 ] / in no VG: 1 [103,02 GB]
Ara cal crear el volum group (vg) amb:
$ sudo vgcreate xen_vm /dev/sdb1 Volume group "xen_vm" successfully created
En aquest cas el vg és per emmagatzemar màquines virtuals de Xen. Un altre cop el podeu consultar amb:
$ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "xen_vm" using metadata type lvm2
Per a Xen no cal fer res més ja que les xen-tools, creen el volums lògics (lv) de LVM automaticament al crear les màquines virtuals. En tot cas per crear un volum lògic es faria amb la comanda:
$ sudo lvcreate --name NOM_DEL_LV --size MIDA_DEL_VOLUM (p.ex: 465,63G) xen_vm
Un exemple podria ser:
$ sudo lvcreate --name lv_drbl --size 30G vg_ubuntu_sala
Cal tenir en compte que la mida s'ha d'expressar en GiB i no pas GB. Per exemple un disc de 500G és un disc de 465,63. El factor de conversió és 0.93125.
Ara podem consultar el volum amb:
$ sudo lvdisplay
Podeu consultar el CG amb:
$ sudo vgdisplay
En el nostre cas volem afegir un LV al VG vg_ubuntu_sala. El crearem de 30G:
$ sudo lvcreate --name lv_drbl --size 30G vg_ubuntu_sala
El podeu consultar amb:
$ sudo lvdisplay
Ara cal fer-lo ext3:
$ sudo mkfs.ext3 -m 0 /dev/vg_ubuntu_sala/lv_drbl
El volem muntar a la carpeta /tftpboot:
$ sudo mkdir /tftpboot
Editem el fitxer fstab
$ sudo joe /etc/fstab
I afegim la línia:
/dev/mapper/vg_ubuntu_sala-lv_drbl /tftpboot ext3 defaults 0 2
Ara ja el podem muntar amb:
$ sudo mount -a
El problema és que els particions lògiques LVM continuen apareixent... Fins i tot si es fa una taula de particions nova amb fdisk. La informació de LVM es troba al disc, als primers sectors però no pas la taula de particions física.
Pel procediment ordenat es poden eliminar les particions LVM (lvremove, vgremove,pvremove, etc) o es pot tirar pel dret amb:
# dd if=/dev/zero of=/dev/sdb bs=1k count=3 # blockdev --rereadpt /dev/sdb
Així es carregarem també la taula de particions físiques, creeu-lo :
# fdisk /dev/sdb
I ha calgut reiniciar.
Al eliminar un grup de volum amb vgremove la carpeta corresponent a /dev no s'esborra?
NOTA: En el meu m'ha passat al canviar de nom un antic VG: sudo vgimportclone -n vg_vms1 /dev/sdd
$ sudo vgcreate vg_vms /dev/sdb /dev/vg_vms: already exists in filesystem New volume group name "vg_vms" is invalid Run `vgcreate --help' for more information.
Simplement cal fer:
$ sudo rm -rf /dev/vg_vms
Tot i estar a nivell d'execució 1 ens podem trobar que ens diqui que la unitat esta "busy" quan intentem desmuntarla. Es pot utilitzar la comanda fuser per veure quin processos utilitzen certs fitxers:
$ fuser -avm /usr
$ sudo pvscan PV /dev/sda5 VG sol lvm2 [931,27 GiB / 44,00 MiB free] Total: 1 [931,27 GiB] / in use: 1 [931,27 GiB] / in no VG: 0 [0 ]
Canviar el UUID:
$ sudo pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name sol PV Size 931,27 GiB / not usable 4,00 MiB Allocatable yes PE Size 4,00 MiB Total PE 238405 Free PE 11 Allocated PE 238394 PV UUID SNiN0S-oRSF-CxI8-xf0s-vIMg-o9Dj-zPvXvI $ sudo pvchange -u /dev/sda5 Physical volume "/dev/sda5" changed 1 physical volume changed / 0 physical volumes not changed $ sudo pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name sol PV Size 931,27 GiB / not usable 4,00 MiB Allocatable yes PE Size 4,00 MiB Total PE 238405 Free PE 11 Allocated PE 238394 PV UUID Y5dSu2-q32P-JIzU-30Xl-SqGn-SNmx-hFdmw8 $ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "sol" using metadata type lvm2 $ sudo vgdisplay --- Volume group --- VG Name sol System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 931,27 GiB PE Size 4,00 MiB Total PE 238405 Alloc PE / Size 238394 / 931,23 GiB Free PE / Size 11 / 44,00 MiB VG UUID y3JYYt-ryXM-l9q5-HBVG-3SIP-Ih5L-iXXcxv $ sudo vgchange -u sol Volume group has active logical volumes
Desactivar:
$ sudo vgchange -a n 0 logical volume(s) in volume group "sol" now active
$ sudo lvscan inactive '/dev/sol/root' [920,26 GiB] inherit inactive '/dev/sol/swap_1' [10,97 GiB] inherit
Ara si:
$ sudo vgchange -u sol Volume group "sol" successfully changed
$ sudo vgdisplay --- Volume group --- VG Name sol System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 931,27 GiB PE Size 4,00 MiB Total PE 238405 Alloc PE / Size 238394 / 931,23 GiB Free PE / Size 11 / 44,00 MiB VG UUID DW7vzQ-RJDF-Alvo-EkYt-XcmG-2vBJ-Qixrf1
Obtenir una copia de la configuració LVM:
$ sudo vgcfgbackup -f sol.cfg sol Volume group "sol" successfully backed up. $ sudo cat sol.cfg # Generated by LVM2 version 2.02.66(2) (2010-05-20): Sun Oct 23 15:36:55 2011 contents = "Text Format Volume Group" version = 1 description = "vgcfgbackup -f sol.cfg sol" creation_host = "ubuntu" # Linux ubuntu 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 creation_time = 1319384215 # Sun Oct 23 15:36:55 2011 sol { id = "DW7vzQ-RJDF-Alvo-EkYt-XcmG-2vBJ-Qixrf1" seqno = 5 status = ["RESIZEABLE", "READ", "WRITE"] flags = [] extent_size = 8192 # 4 Megabytes max_lv = 0 max_pv = 0 physical_volumes { pv0 { id = "Y5dSu2-q32P-JIzU-30Xl-SqGn-SNmx-hFdmw8" device = "/dev/sda5" # Hint only status = ["ALLOCATABLE"] flags = [] dev_size = 1953021952 # 931,273 Gigabytes pe_start = 384 pe_count = 238405 # 931,27 Gigabytes } } logical_volumes { root { id = "5hY6mc-6HkI-gOTT-d6Fi-QR4k-GYHM-pbdkrx" status = ["READ", "WRITE", "VISIBLE"] flags = [] segment_count = 1 segment1 { start_extent = 0 extent_count = 235586 # 920,258 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv0", 0 ] } } swap_1 { id = "41wEbP-De05-MCrM-TIzD-nmlf-DAo7-iR0hn1" status = ["READ", "WRITE", "VISIBLE"] flags = [] segment_count = 1 segment1 { start_extent = 0 extent_count = 2808 # 10,9688 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv0", 235586 ] } } } }
Augmentem els UUID en un
$ sudo nano sol.cfg
Apliquem els canvis:
$ sudo pvcreate -ff --uuid DW7vzQ-RJDF-Alvo-EkYt-XcmG-2vBJ-Qixrf1 --restorefile sol.cfg /dev/sda5 Can't find uuid DW7vzQ-RJDF-Alvo-EkYt-XcmG-2vBJ-Qixrf1 in backup file sol.cfg Run `pvcreate --help' for more information. You have a memory leak (not released memory pool): [0xd78140] You have a memory leak (not released memory pool): [0xd78140] $ sudo vgcfgrestore -f sol.cfg sol Restored volume group sol
Ara podeu canviar el nom:
$ sudo vgrename sol sol-back Volume group "sol" successfully renamed to "sol-back"
Ja es poden muntar els dos dics alhora. Ara al reiniciar es pot fer:
$ sudo pvscan PV /dev/sdb5 VG sol lvm2 [931.27 GiB / 44.00 MiB free] PV /dev/sda5 VG sol-back lvm2 [931.27 GiB / 44.00 MiB free] Total: 2 [1.82 TiB] / in use: 2 [1.82 TiB] / in no VG: 0 [0 ]
$ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "sol" using metadata type lvm2 Found volume group "sol-back" using metadata type lvm2
$ sudo lvscan inactive '/dev/sol/root' [920.26 GiB] inherit inactive '/dev/sol/swap_1' [10.97 GiB] inherit inactive '/dev/sol-back/root' [920.26 GiB] inherit inactive '/dev/sol-back/swap_1' [10.97 GiB] inherit
$ sudo vgchange -a y 2 logical volume(s) in volume group "sol" now active 2 logical volume(s) in volume group "sol-back" now active
$ sudo lvscan ACTIVE '/dev/sol/root' [920.26 GiB] inherit ACTIVE '/dev/sol/swap_1' [10.97 GiB] inherit ACTIVE '/dev/sol-back/root' [920.26 GiB] inherit ACTIVE '/dev/sol-back/swap_1' [10.97 GiB] inherit