Konfiguracja LVM – Logical Volume Manager – podłączenie dodatkowego dysku do systemu Oracle Linux.

Cały proces dodawania dysku do LVMa można opisać w 6 krokach;

  1. Stworzenie partycji i ustawienie jej typu na LVM;
  2. Stworzenie fizycznego wolumenu (PV – Phisical Volume);
  3. Stworzenie grupy wolumenów (VG – Volume Group) z utworzonego krok wcześniej fizycznego wolumenu;
  4. Stworzenie logicznego wolumenu (LV – Logical Volume);
  5. Stworzenie systemu plików na logicznym wolumenie;
  6. Zamontowanie wolumenu;

Czyli cały proces konfiguracji LVM przebiega z następujący sposób:
Create partition and set type to lvm -> Phisical Volumens (PV) -> Volume Group (VG) -> Logical Volume (LV) -> system plików Linux -> mount partition

Terminologia:
Volume Group (vg) – podstawowa jednostka LVM, w której skład wchodzą, dyski, partycje, macierze…. (pv – physical volumes).
Z Volume Group /dev/vg/lv można wykreować LV – Logical Volumes

Przykład:
Do serwera zostaje podłączony kolejny dysk fizyczny o poj. 16GB. W celu sprawdzenia poprawności dodania dysku i dołączenia go do LVMa należy wykonywać kolejno kroki wymienione poniżej..

1. Stworzenie partycji i ustawienie jej typu na LVM;

W celu sprawdzenia poprawności dodania dysku należy wykonać polecenie lsblk (list block devices), które wyświetli poniższy wynik:

[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   25G  0 disk
├─sda1        8:1    0  600M  0 part /boot/efi
├─sda2        8:2    0    1G  0 part /boot
└─sda3        8:3    0 23.4G  0 part
  └─ol-root 252:0    0 23.4G  0 lvm  /
sdb           8:16   0   16G  0 disk
sr0          11:0    1  9.6G  0 rom

Widać, że dysk został wykryty pod nazwą sdb (SCSI disk B).
Polecenie lsblk pozyskuje informacje z pliku /proc/partitions, dlatego polecenie cat /proc/partitions wyświetli poniższy – podobny aczkolwiek mniej czytelny wynik:

[root@localhost ~]# cat /proc/partitions
major minor  #blocks  name

   8        0   26214400 sda
   8        1     614400 sda1
   8        2    1048576 sda2
   8        3   24549376 sda3
  11        0   10027008 sr0
 252        0   24547328 dm-0
   8       16   16777216 sdb

Polecenie fdisk -l /dev/sda wyświela wszystkie partycje na dysku:

[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BEFFE3B2-43D7-4E9A-AE0C-BAC834D4B18D

Device Start End Sectors Size Type
/dev/sda1 2048 1230847 1228800 600M EFI System
/dev/sda2 1230848 3327999 2097152 1G Linux filesystem
/dev/sda3 3328000 52426751 49098752 23.4G Linux LVM

[root@localhost ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 16 GiB, 17179869184 bytes, 33554432 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 byte

Założenie partycji na nowo podłączonym dysku poprzez wydanie polecenia fdisk /dev/sdb a następnie parametru n (new), następnie ustawienie typu t (type) pratycji na LVM (kod 8e);
Poniżej widać nowo utworzoną partycję sdb1, z której można utworzyć Phisical Volume.

[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 23.4G 0 part
└─ol-root 252:0 0 23.4G 0 lvm /
sdb 8:16 0 16G 0 disk
└─sdb1 8:17 0 16G 0 part
sr0 11:0 1 1024M 0 rom

2. Stworzenie fizycznego wolumenu (PV – Phisical Volume).

pvcreate /dev/sdb1

3. Stworzenie grupy wolumenów (VG – Volume Group) o rozmiarze bloku (extent lub PE – Phisical Extend ) 8MB o nazwie np. vgdata, w którego wchodzi PV sdb1.

vgcreate -s 8M vgdata /dev/sdb1

Do wyświetlenia informacji nt. PV i VG służą komendy: pvdisplay oraz vgdisplay.

[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name vgdata
PV Size <16.00 GiB / not usable 6.98 MiB
Allocatable yes
PE Size 8.00 MiB
Total PE 2047
Free PE 2047
Allocated PE 0
PV UUID 55c4tK-g32P-0nti-WdBc-RA96-uKYh-Fwwbpr

--- Physical volume ---
PV Name /dev/sda3
VG Name ol
PV Size 23.41 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 5993
Free PE 0
Allocated PE 5993
PV UUID zXhR0W-j7O8-9He9-Iol1-oGVh-lkyL-lUQuNE
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name vgdata
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 15.99 GiB
PE Size 8.00 MiB
Total PE 2047
Alloc PE / Size 0 / 0
Free PE / Size 2047 / 15.99 GiB
VG UUID K0PHCb-W2Xr-O8J5-I3As-HlZh-vP1l-M4Z2i0

--- Volume group ---
VG Name ol
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 23.41 GiB
PE Size 4.00 MiB
Total PE 5993
Alloc PE / Size 5993 / 23.41 GiB
Free PE / Size 0 / 0
VG UUID c24xsa-PRu0-0lqb-74A2-ifD1-ie7M-an8aci

4. Stworzenie logicznego wolumenu (LV – Logical Volume) o nazwie np. lvdata z całej puli dostępnej przestrzeni dyskowej vgdata.

lvcreate -l 100%FREE -n lvdata /dev/vgdata

5. Stworzenie systemu plików XFS na logicznym wolumenie lvdata.

mkfs.xfs /dev/vgdata/lvdata

6. Zamontowanie zasobu.

mkdir /mounts
mkdir /mounts/lvm1
vim /etc/fstab
/dev/vgdata/lvdata /mount/lvm1 xfs defaults 0 0
mount -a

Do odmontowania zasobu służy polecenie unmount (poleceniem lsof /mnt można sprawdzić jakie są aktualnie otwarte pliki w przypadku problemów z odmontowaniem napędu/dysku)
Polecenie findmnt wyświetla wszystkie zamontowane zosoby.

usunięcie Logical Volume: lvremove / dev/vgdata/lvdata
usunięcie Virtual Group: vgremove /dev/vgdata
powiększenie istniejącej Virtual Group, np ol: vgextend ol /dev/sdb1
powiększenie istniejącego Logical Volume: lvextend -l +100%FREE /dev/ol/root
aktualizacja systemu plików xfs: xfs_growfs /dev/ol/root

 

Źródła:
https://www.redhat.com/sysadmin/resize-lvm-simple
https://phoenixnap.com/kb/linux-check-disk-space