Chapter 7
MANAGING LOGICAL VOLUMES
Physical volumes (any block device such as hard disk, partition) -> Volume group -> Logical volumes (filesystems) -> mounted as /dev/vgx/lvx

LVM creating:
pvcreate /dev/sdb1 # create physical volume
vgcreate vgdata /dev/sdb1 # create the volume group
lvcreate -n lvdata -L 1G vgdata # create logical volume
mkfs /dev/vgdata/lvdata # create a filesystem
LVM create example:
VM-ə yeni hard disk (nvme) əlavə etdikdən sonra lsblk yazaraq onun əlavə olunduğunu görürəm:
[root@localhost ali]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n2 259:3 0 20G 0 disk
└─nvme0n2p1 259:5 0 2G 0 part
[root@localhost ali]# mkfs.vfat /dev/vgdata/lvdata
mkfs.fat 4.1 (2017-01-24)
[root@localhost ali]# mkdir /mnt/lvdata
[root@localhost ali]# echo "/dev/vgdata/lvdata /mnt/lvdata vfat defaults 0 0" >> /etc/fstab
[root@localhost ali]# mount -a
[root@localhost ali]# systemctl daemon-reload
pvcreate əmri vasitəsilə LVM tərəfindən istifadə olunması üçün physical volume initialize edirəm (burada partition yox device da ola bilərdi):
[root@localhost ali]# pvcreate /dev/nvme0n2p1
Physical volume "/dev/nvme0n2p1" successfully created.
pvs əmri vasitəsilə yeni yaratdığım PV(physical volume) list edirəm:
[root@localhost ali]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rl lvm2 a-- <49.00g 0
/dev/nvme0n2p1 lvm2 --- 2.00g 2.00g
vgcreate əmri vasitəsilə vgdata adlı volume group yaradıram.
bu əmr /dev/vgdata cihazını yaradır.
[root@localhost ali]# vgcreate -s 8M vgdata /dev/nvme0n2p1
Volume group "vgdata" successfully created
vgs əmri vasitəsilə yeni yaratdığım volume group-a baxıram: aşağıdakı nəticədən də görmək olur ki, vgdata adlı volume group-da LV(logical volume) hələki yoxdur.
[root@localhost ali]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <49.00g 0
vgdata 1 0 0 wz--n- 1.99g 1.99g
LV (logical volume) yaratmaq üçün lvcreate əmrindən istifadə edirəm:
[root@localhost ali]# lvcreate -L 1G -n lvdata /dev/vgdata
Logical volume "lvdata" created.
lvdata-ya filesystem yazıram:
[root@localhost ali]# mkfs.vfat /dev/vgdata/lvdata
mkfs.fat 4.1 (2017-01-24)
lvdata-nı mount etmək üçün əməliyyat sistemində qovluq yaradıram:
[root@localhost ali]# mkdir -v /mnt/lvdata
mkdir: created directory '/mnt/lvdata'
fstab-a dəyişiklik edirəm persistent mount üçün. sonra isə mount -a optionu ilə config səhvlərinə qarşı test edirəm:
[root@localhost ali]# echo "/dev/vgdata/lvdata /mnt/lvdata vfat defaults 0 0" >> /etc/fstab
[root@localhost ali]# mount -a
mount: (hint) your fstab has been modified, but systemd still uses
the old version; use 'systemctl daemon-reload' to reload.
[root@localhost ali]# systemctl daemon-reload
sistemi yenidən başlatdıqdan sonra lsblk nəticəsi:
[ali@localhost ~]$ lsblk
nvme0n2 259:3 0 20G 0 disk
└─nvme0n2p1 259:4 0 2G 0 part
└─vgdata-lvdata 253:2 0 1G 0 lvm /mnt/lvdata
Device mapper və LVM device adları
Sistemi yenidən başlatdıqdan sonra mount əmrinə baxsaq orada mapper görə bilərik:
[root@localhost ali]# mount | grep lvdata
/dev/mapper/vgdata-lvdata on /mnt/lvdata type vfat (rw,relatime....
Biz LV yaratdıqda LVM device mapper-i istifadə edib müvafiq adlı cihazı /dev/mapper içində yaradır.
Device mapper logical volume üçün bir cihaz adı yaradır (məs. dm-2
)
LVM həm /dev/mapper həm /dev/volumegroup qovluqlarını həmin cihaza yönləndirir.
[root@localhost ali]# ls -l /dev/mapper/vgdata-lvdata /dev/vgdata/lvdata
lrwxrwxrwx. 1 root root 7 Jul 10 18:39 /dev/mapper/vgdata-lvdata -> ../dm-2
lrwxrwxrwx. 1 root root 7 Jul 10 18:39 /dev/vgdata/lvdata -> ../dm-2
dm-2
cihazının adı hər dəfə boot olunanda dəyişə bilər. Əmrlərdə istifadə edərkən hər iki addan istifadə etmək doğrudur:
/dev/mapper/vgdata-lvdata
/dev/vgdata/lvdata
LVMdə LV resize etmək
Shrinking (kiçiltmək) sadəcə ext4 fayl sistemində mümkündür. XFS-də mümkün deyil.
vgs əmri vasitəsilə istifadə olunmayan disk həcminə baxırıq:
[root@localhost ali]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <49.00g 0
vgdata 1 1 0 wz--n- 1.99g 1016.00m
hesablanma qaydası: 1 MB = 1024 * 1024 byte
df ilə hazırki ölçüyə baxıram:
[root@localhost ali]# df -h | grep mnt
/dev/mapper/vgdata-lvdata 1022M 4.0K 1022M 1% /mnt/lvdata
hesablanma qaydası: 1 MB = 1000 * 1000
Bir VG-nin ölçüsünü azaltmaq üçün PV-nı VG-dan remove etmək lazımdır. Əgər pvdisplay zamanı PV-də allocated PE olarsa, pvremove əmri error verəcək. Bu səbəbdən PV-da olan PE-ləri digər PV-ya köçürmək lazımdır. Bunun üçün pvmove
əmri istifadə edilir.
# allocate olan PE-leri sdb-dan vg-daki diger pv-ya kocurururk:
pvmove /dev/sdb
# sdbc01 adli vg-dan sdb adli PV-ni cixardiriq.
vgreduce sdbc01 /dev/sdb
lvextend
xfs: xfs_growfs
ext4:resize2fs
Silinməsi:
umount /mnt/data
# remove line from /etc/fstab
lvremove /dev/vgdata/lvdata
vgremove vgdata
pvremove /dev/vdb2 /dev/vdb1
Extend olunmasi:
lvextend -l 128
Resize the logical volume to exactly 128 extents in size
lvextend -l +128
Add 128 extents to the current size of the logical volume.
lvextend -L 128M
Resize the logical volume to exactly 128 MiB.
lvextend -L +128M
Add 128 MiB to the current size of the logical volume.
lvextend -l +50%FREE
Add 50 percent of the current free space in the VG to the LV.
Extending swap space:
# swapoff -v /dev/vgname/lvname
swapoff -v /dev/rhel/swap
# lvextend etmekcun rhel vg-da free extend olmalidir.
# vgs rhel emri vasitesile baxa bilerik free varmi.
# eger yoxdursa, yeni disk elave etdikden sonra:
vgextend <vgname> <diskname>
vgextend rhel /dev/sdc
lvextend -L +2G /dev/rhel/swap
swapoff /dev/rhel/swap
mkswap /dev/rhel/swap
swapon -v /dev/rhel/swap
my notes for lab
cfdisk command to resize the partition.
pvresize /dev/sda3
lvresize /dev/mapper/ubuntu--vg-ubuntu--lv /dev/sda3
df -Th (to check if XFS or EXT4)
XFS:
xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv
EXT:
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Last updated
Was this helpful?