Przejdź do głównej zawartości

Linux RHCSA cz.9 - LVM - Logical Volumen Manager - Tworzenie wolumenu logicznego

Tworzenie wolumenu logicznego krok po kroku. Wybieramy dysk na jakim zostanie utworzony wolumen i inicjujemy go używając jako wolumen fizyczny.

Krok 1 - Zainicjuj dysk

# pvcreate /dev/hdb
Physical volume “/dev/hdb” successfully created

Krok 2 - Sprawdzamy czy prawidłowo wykreowano wolumen fizyczny

# pvdisplay /dev/hdb
“/dev/hdb” is a new physical volume of “8.00 GiB”
-- NEW Physical volume --
PV Name /dev/hdb
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0

Allocated PE 0
PV UUID QlCLgF-esaN-5PvR-PWWV-D6jZ-O207-rHg90j

Należy pamiętać, że fizyczne wolumeny są ograniczone do jednego fizycznego dysku lub partycji  na fizycznym dysku.

Krok 3 - Utworzenie grupy wolumenów

# vgcreate vg_group01 /dev/hdb
Volume group “vg_group01” successfully created

Krok 4 - Sprawdzenie utworzenia grupy wolumenów

# vgdisplay -v vg_group01
Using volume group(s) on command line
Finding volume group “vg_group01”
-- Volume group --
VG Name vg_group01
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 8.00 GiB
PE Size 4.00 MiB
Total PE 2047
Alloc PE / Size 0 / 0
Free PE / Size 2047 / 8.00 GiB
VG UUID IvjXga-898Y-1vCC-azRt-pszL-PeWR-E5athz
-- Physical volumes --
PV Name /dev/sdb
PV UUID B0K2qH-0UF4-gphE-MLi3-RFXH-HEP9-9FMbA9
PV Status allocatable
Total PE / Free PE 2047 / 2047

Teraz można skonfigurować wolumen logiczny stosując polecenie lvcreate oraz podając rozmiar jaki ma zajmować na partycji na której jest tworzony. Rozmiar podajemy w kilobajtach, megabajtach, gigabajtach lub jednostkach logicznych (LE). Najłatwiej stosować MB.

Krok 5 - Utworzenie partycji (wolumenu logicznego) o rozmiarze 3 GB

# lvcreate -L 3000 vg_group01
Logical volume “lvol0” created

Krok 6 - Sprawdzenie czy wolumen został utworzony.

# lvdisplay vg_group01
-- Logical volume --
LV Name /dev/vg_group01/lvol0
VG Name vg_group01
LV UUID mk9dJM-3qt7-ypbC-nsks-I8Gh-9V3d-4BNE6s
LV Write Access read/write
LV Status available
# open 0
LV Size 2.93 GiB
Current LE 750
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

Krok 7 - Wyświetlenie szczegółowych informacji na temat grupy wolumenu i sprawdzenie zmian po dodaniu  wolumenu logicznego

# vgdisplay -v vg_group01
Using volume group(s) on command line
Finding volume group “vg_group01”
-- Volume group --
VG Name vg_group01
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 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 8.00 GiB

PE Size 4.00 MiB
Total PE 2047
Alloc PE / Size 750 / 2.93 GiB
Free PE / Size 1297 / 5.07 GiB
VG UUID IvjXga-898Y-1vCC-azRt-pszL-PeWR-E5athz
-- Logical volume --
LV Name /dev/vg_group01/lvol0
VG Name vg_group01
LV UUID mk9dJM-3qt7-ypbC-nsks-I8Gh-9V3d-4BNE6s
LV Write Access read/write
LV Status available
# open 0
LV Size 2.93 GiB
Current LE 750
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
-- Physical volumes --
PV Name /dev/sdb
PV UUID B0K2qH-0UF4-gphE-MLi3-RFXH-HEP9-9FMbA9
PV Status allocatable
Total PE / Free PE 2047 / 1297

Domyślnie wszystkie wolumeny logiczne będą nosiły nazwę lvol#. Można to zmienić i nazywać wolumeny po swojemu stosując w poleceniu lvcreate przełącznik "-n".

Krok 8 - Alternatywnie można wykonać następujące polecenie:

# lvcreate –L 3000 –n SecretData vg_group01

Utworzony w ten sposób wolumen będzie miał własną nazwę nadaną przez użytkownika podczas tworzenia. Dla wcześniej utworzonych wolumenów nazwę zmieniamy w następujący sposób:

# lvrename /dev/vg_group01/lvol0 /dev/vg_group01/SecretData
Renamed “lvol0” to “SecretData” in volume group “vg_group01”

Krok 9 - Sprawdzamy co się zmieniło po zmianie nazwy

# lvdisplay vg_group01
-- Logical volume --
LV Name /dev/vg_group01/SecretData
VG Name vg_group01
LV UUID mk9dJM-3qt7-ypbC-nsks-I8Gh-9V3d-4BNE6s
LV Write Access read/write
LV Status available
# open 0
LV Size 2.93 GiB

Current LE 750
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

Tym sposobem wiadomo już jak tworzyć wolumeny logiczne i nadawać lub zmieniać im nazwy.

W tym miejscu warto się zastanowić jak osiągnąć taki podział by podzielić utworzoną wcześniej grupę wolumenów na wybraną ilość części o dokładnie takim samym rozmiarze ?


Krok 1 - Sprawdzenie dostępnych partycji . 

Sprawdzamy dostępne partycje :


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

   8        0   20971520 sda
   8        1     512000 sda1
   8        2   20458496 sda2
   8       16    8388608 sdb
   8       17    2104483 sdb1
   8       18    6281415 sdb2
 253        0   18391040 dm-0
 253        1    2064384 dm-1

Krok 2 - Utworzenie grupy wolumenów z partycji sdb2

[root@RHEL01 ~]# vgcreate vg_grupatestowa /dev/sdb2
  Volume group "vg_grupatestowa" successfully created

Krok 3 - Sprawdzenie utworzenia nowej grupy : 

[root@RHEL01 ~]# vgdisplay vg_grupatestowa
  --- Volume group ---
  VG Name               vg_grupatestowa
  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               5.99 GiB
  PE Size               4.00 MiB
  Total PE              1533
  Alloc PE / Size       0 / 0
  Free  PE / Size       1533 / 5.99 GiB
  VG UUID               0yRxMi-2q2y-X2WE-ZqIW-LEnA-Inc1-1pBkWZ

Krok 4 - Utworzenie 3 wolumenów logicznych o idealnie równych częściach. 

Z wcześniejszego kroku wiemy, iż grupa wolumenów składa się z  Free  PE / Size 1533 / 5.99 GiB i aby uzyskać dokładny idealny podział jej przestrzeni na powiedzmy 3 równe części pod uwagę bierzemy wartość : 1533 która po podziale wynosi 511 na każdy wolumen logiczny. 

Krok 5 - Utworzenie 3 wolumenów logicznych o równym rozmiarze. 

[root@RHEL01 ~]# lvcreate -l 511 -n lv_test1 vg_grupatestowa
  Logical volume "lv_test1" created
[root@RHEL01 ~]# lvcreate -l 511 -n lv_test2 vg_grupatestowa
  Logical volume "lv_test2" created
[root@RHEL01 ~]# lvcreate -l 511 -n lv_test3 vg_grupatestowa
  Logical volume "lv_test3" created

Krok 6 - Sprawdzenie nowo utworzonych woluminów logicznych

[root@RHEL01 ~]# lvdisplay vg_grupatestowa
  --- Logical volume ---
  LV Name                /dev/vg_grupatestowa/lv_test1
  VG Name                vg_grupatestowa
  LV UUID                VMZhvV-stJo-qK0A-QR9C-Yi2U-QhhQ-0ct8vK
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Name                /dev/vg_grupatestowa/lv_test2
  VG Name                vg_grupatestowa
  LV UUID                1eWZSX-7Pwn-UEYc-JFZe-Jvwu-X4ro-XTT3Fc
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

  --- Logical volume ---
  LV Name                /dev/vg_grupatestowa/lv_test3
  VG Name                vg_grupatestowa
  LV UUID                CNilMr-13Ds-IZ0k-9dNW-h1a5-dJ68-W0ktxZ
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4

Teraz wiadomo również w jaki sposób podzielić grupę wolumenów na części o równych rozmiarach.

Wcześniej gdy wyświetlamy informacje o grupie wolumenów mamy podaną informację na temat rozmiaru fizycznego bloku - klastra na dysku i ma on domyślnie wartość 4. W jaki sposób zmienić domyślny rozmiar bloku (PE)  ? 


Krok 1 - Wyświetlenie informacji o grupie wolumenów. 

[root@RHEL01 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_grupatestowa
  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               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5.99 GiB
  PE Size               4.00 MiB
  Total PE              1533
  Alloc PE / Size       1533 / 5.99 GiB
  Free  PE / Size       0 / 0
  VG UUID               0yRxMi-2q2y-X2WE-ZqIW-LEnA-Inc1-1pBkWZ

Widać wyraźnie że rozmiar PE wynosi 4MB. 

Krok 2 - Ustawienie rozmiaru PE

Tworząc nową grupę rozmiar bloku przestrzeni fizycznej (PE)  można ustawić stosując przełączniki "-s" . 
Ustawmy więc rozmiar PE na 8MB: 

[root@RHEL01 ~]# vgcreate -s 8M vg_grupatestowa /dev/sdb2
  Volume group "vg_grupatestowa" successfully created

Krok 3 - Sprawdzenie rozmiaru PE dla utworzonej grupy 

[root@RHEL01 ~]# vgdisplay vg_grupatestowa
  --- Volume group ---
  VG Name               vg_grupatestowa
  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               5.98 GiB
  PE Size               8.00 MiB
  Total PE              766
  Alloc PE / Size       0 / 0
  Free  PE / Size       766 / 5.98 GiB
  VG UUID               B9sBhs-oAqm-qsd4-TEzc-Oje7-nJ4w-kTc21l

Rozmiar PE został ustawiony. 

Komentarze

Prześlij komentarz

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości