2016 m. lapkričio 20 d., sekmadienis

LVM - loginių tomų valdymas

LVM - Loginis tomų valdymas
Paaiškinimai:
PV: Fizinis tomas (Physical Volume)
Tai particijos dalys, kurio gali būti pridėtos į Tomo grupes.
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_unixac lvm2 a--u 2,00g 420,00m
/dev/sdb1 vg_naujiena lvm2 a--u 2,00g 2,00g
/dev/sdc2 vg_unixac lvm2 a--u 4,51g 0


VG: Tomo grupė (Volume Group).
Abstraktuoja fizinius tomus.
VG #PV #LV #SN Attr VSize VFree
vg_naujiena 1 0 0 wz--n- 2,00g 1,61g
vg_unixac 2 5 0 wz--n- 6,50g 420,00m



LV: Loginis tomas (Logical Volume).
Abstraktuoja tomo grupes.
LV VG Attr LSize Pool Origin
lvol0 vg_naujiena -wi-a----- 100,00m
lvol1 vg_naujiena -wi-a----- 100,00m
lvol3 vg_naujiena -wi-a----- 200,00m                                      


Disko paruošimas

Pirmiausiai su fdisk paruošiam fizinio disko particiją:

fidsk komandos

Pagrindinės fdisk komandos:
  • d - ištrina particiją.
  • n - kuriant naują particiją.
  • w - įrašo pakeitimus.
  • p - particijų sąrašas.
  • t - pasirenkamas particijos tipas.
komandų su fdisk seka:
  1. n, p, 1, default, default  (sukuriam nauja particiją).
  2. t, 8e (pakeičiam tipą į Linux LVM).
  3. p (patikrinam ar viska gerai).
  4. w (įrašom pakeitimus).


Pagrindinės komandos tvarkant lvm:

pvcreate - initialize a disk or partition for use by LVM.
pvremove -  remove a physical volume.
pvs - report information about physical volumes.
pvdisplay - display attributes of a physical volume.
pvscan -  scan all disks for physical volumes.

vgcreate - create a volume group.
vgs - report information about volume groups.
vgdisplay - display attributes of volume groups.
vgremove - remove a volume group,

lvcreate - create a logical volume in an existing volume group.
lvs - report information about logical volumes
lvdisplay - display attributes of a logical volume.

lvmdiskscan — scan for all devices visible to LVM2
df -Ph -report file system disk space usage
lsblk - list block devices
lsblk -o NAME,KNAME,MODEL,TYPE,FSTYPE,UUID,SIZE - išsami informacija apie įrenginius.

Sukuriam tomo grupės deskriptorių /dev/sdb1 pradžioje
$ pvcreate -v /dev/sdb1 #Inicializuojam diską LVM'ui
$ pvremove -v /dev/sdb1 #Trinimas

$ pvs #Atvaizduoja fizinius tomus.
# PV         VG        Fmt  Attr PSize PFree
  /dev/sdb1            lvm2 ---- 2,00g 2,00g

$ vgcreate pavadinimas /dev/sdb1 /dev/sdc1 #Sukuriam tomo grupės pavadinimą ir pridedam du diskus

$ vgremove pavadinimas  #Viso tomo grupės trynimas

$ vgs #Tomų grupės informacija, matom naujai sukurtą grupę
  VG          #PV #LV #SN Attr   VSize VFree
  pavadinimas   2   0   0 wz--n- 3,99g 3,99g

Kaip pridėti prie tomų grupės naują diską?
$ vgreduce pavadinimas /dev/sdc1 #Panaikina diską iš grupės pavadinimas
$ vgextend pavadinimas /dev/sdc1 #Prideda į tomų grupę pavadinimas diską /dev/sdc1

Kaip atskirti tomų grupę?
$ vgsplit pavadinimas naujas-pavadinimas /dev/sdb1; pvs
  PV         VG                 Fmt  Attr PSize PFree
  /dev/sdb1  naujas-pavadinimas lvm2 a--u 2,00g 2,00g
  /dev/sdc1  pavadinimas        lvm2 a--u 2,00g 2,00g

Sujungiam tomų grupes į vieną tomų grupę.
# vgmerge pavadinimas naujas-pavadinimas; pvs
  Volume group "naujas-pavadinimas" successfully merged into "pavadinimas"
PV         VG          Fmt  Attr PSize PFree
  /dev/sda2  vg_unixac   lvm2 a--u 4,51g    0
  /dev/sdb1  pavadinimas lvm2 a--u 2,00g 2,00g
  /dev/sdc1  pavadinimas lvm2 a--u 2,00g 2,00g

 $ pvscan #pvdisplay - detalesnė informacija apie fizinius tomus
  PV /dev/sdb1   VG pavadinimas     lvm2 [2,00 GiB / 2,00 GiB free]
  PV /dev/sdc1   VG pavadinimas     lvm2 [2,00 GiB / 2,00 GiB free]


Kaip sukurti arba ištrinti loginį tomo diską?Loginių tomų buvimo vieta: /dev/<tomo groupė>/<loginis tomas>
Sukuriam tris loginius tomo grupės vg_pavadinimas diskus: e-paštas, muzika ir filmai.
$ lvcreate --name e-pastas --size 100MB vg_pavadinimas
$ lvcreate -n muzika -L 500MB vg_pavadinimas
$ lvcreate --name filmai --size 1G vg_pavadinimas

$ lvs; ls /dev/vg_pavadinimas/
  LV       VG             Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  e-pastas vg_pavadinimas -wi-a----- 100,00m                                                    
  filmai   vg_pavadinimas -wi-a-----   1,00g                                                    
  muzika   vg_pavadinimas -wi-a----- 500,00m                                                    
  lv_root  vg_unixac      -wi-ao----   4,01g                                                    
  lv_swap  vg_unixac      -wi-ao---- 512,00m                                                    
e-pastas  filmai  muzika


Kaip nustatyti/praplėsti/susiaurinti/ištrinti loginį tomo diską?
$ lvextend -L 1.1G /dev/vg_pavadinimas/muzika #Nustatomas fiksuotas dydis

$ lvextend -L+100MB /dev/vg_pavadinimas/filmai #Praplečiam 100MB  tomų grupės pavadinimas loginį tomo diską filmai
$ lvreduce -L-100MB /dev/vg_pavadinimas/filmai #Susiaurinam 100MB
$ lvcreate -l 100%FREE --name kita vg_pavadinimas #Sukuria loginį tomo diską, su visa likusia tomo grupės vg_pavadinimas laisva vieta
$ lvcreate -l 50%FREE -n kita vg_pavadinimas

$ lvcreate -l 591 --name kita vg_pavadinimas #Nurodoma Free  PE reikšmė
$ lvremove /dev/vg_pavadinimas/kita#Trinimas

Kaip pakeisti skaitymo/rašymo teises loginiam tomo diskui?

$ lvchange -pr /dev/vg_pavadinimas/muzika #Suteiks tik skaitymo teises
$ lvchange -prw /dev/vg_pavadinimas/muzika #Suteiks skaitymo/rašymo teises

Operacijų seka 

1. Būdas.
Praplečiant diską su jau esančia failų sistema:
$ mkfs.ext4 /dev/vg_pavadinimas/filmai #Komanda sukurianti failų sistemą.
$ mount /dev/vg_pavadinimas/filmai /filmai
$ unmount  /filmai
$ lvextend -L+500M /dev/vg_pavadinimas/filmai 

# Pertvarkom skaidinius
$ e2fsck -f /dev/vg_unixac/filmai
$ resize2fs /dev/vg_unixac/filmai 

$ mount /dev/vg_pavadinimas/filmai /filmai
$ findmnt #Failų sistemų informacija

2. Būdas (lengvesnis)
Siaurinant/praplečiant galime su viena komanda lvresize:
# umount /dev/vg_unixac/muzika
# e2fsck -f /dev/vg_unixac/muzika 
# lvresize --resizefs --size 10M /dev/vg_unixac/muzika #Dydis iki kurio bus sumažinta, su [-l, --extents], leidžia naudoti procentus arba PE
# resize2fs /dev/vg_unixac/muzika 


Papildomi patarimai:
Su pvcreate ar vgcreate, galima greitai pridėti kelis diskus, nurodant disko raidę ir skirsnio skaičių:
# pvcreate /dev/sd[bcd]1
# vgcreate vg_grupė01 /dev/sd[bcd]2

/etc/fstab mountinimui galima nurodyti UUID, kurį sužinom su blkid komanda, mount -a komandą galime patikrinti fstab įrašą jį uždedant:
UUID=XXX, /mount-point ext4 defaults 0 0 #fstab įrašo pavyzdys