Extindere Disk: Difference between revisions

From Linux Wiki
Jump to navigation Jump to search
 
Line 241: Line 241:
-->  # lsblk
-->  # lsblk
  sdb                        8:16  0  10G  0 disk
  sdb                        8:16  0  10G  0 disk
  └─sdb1                     8:17  0    6G  0 part  /wiki/lv1
  ├─sdb1                     8:17  0    6G  0 part  /wiki/lv1
  └─sdb2                      8:17  0    4G  0 part  /wiki/lv2
  └─sdb2                      8:17  0    4G  0 part  /wiki/lv2
</code>
</code>

Latest revision as of 22:02, 27 June 2025

Extindere disk live in Ubuntu 2X.04 LTS[edit | edit source]

Cu VM pornit verificam disk-ul in scop cu ce partitii, VG si LV se prezinta:

# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ...... sdb 8:16 0 10G 0 disk └─sdb1 8:17 0 10G 0 part ├─vg_wiki-lv_wiki_1 252:1 0 6G 0 lvm /wiki/lv1 └─vg_wiki-lv_wiki_2 252:2 0 4G 0 lvm /wiki/lv2 ......

De asemenea facem o verificare a mount-urilor pentru disk-ul in scop:

# df -h Filesystem Size Used Avail Use% Mounted on ...... /dev/mapper/vg_wiki-lv_wiki_1 5.9G 24K 5.6G 1% /wiki/lv1 /dev/mapper/vg_wiki-lv_wiki_2 3.9G 24K 3.7G 1% /wiki/lv2

Extindere HDD[edit | edit source]

Procedam la extinderea disk-ului in hypervisor (ex Proxmox VM):

Fara a restarta masina virtuala este nevoie de rescanarea disk-ului pentru a colecta informatiile legate de noua capacitate:

# echo 1 > /sys/block/sdb/device/rescan

Apoi ne asiguram ca OS-ul scanat disk-ul:

# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ...... sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 10G 0 part ├─vg_wiki-lv_wiki_1 252:1 0 6G 0 lvm /wiki/lv1 └─vg_wiki-lv_wiki_2 252:2 0 4G 0 lvm /wiki/lv2 ......

Extindere Partitie[edit | edit source]

Dupe ce a fost extins disk-ul fizic trebuie extinsa si partitia aflata pe respectivul disk:

# growpart /dev/sdb 1 CHANGED: partition=1 start=2048 old: size=31455199 end=31457246 new: size=41940959 end=41943006 # pvresize /dev/sdb1 Physical volume "/dev/sdb1" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Apoi ne asiguram ca extinderea se reflecta pe partitie in OS:

# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ...... sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part ├─vg_wiki-lv_wiki_1 252:1 0 6G 0 lvm /wiki/lv1 └─vg_wiki-lv_wiki_2 252:2 0 4G 0 lvm /wiki/lv2 ......

Extindere Logical Volume[edit | edit source]

In continuare dorim sa marim lv_wiki_1 cu 7GB iar restul spatiului disponibil il vom aloca catre lv_wiki_2

Query Logical Volume si Volume Group[edit | edit source]

Volume group-ul (VG) vg_wiki a fost creeat peste intreaga partitie /dev/sdb1 iar odata cu extinderea partitiei s-a exting si VG-ul

# vgdisplay vg_wiki --- Volume group --- VG Name vg_wiki System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <20.00 GiB PE Size 4.00 MiB Total PE 3839 Alloc PE / Size 2559 / <10.00 GiB Free PE / Size 1280 / 10.00 GiB VG UUID LvZwAo-9K3I-Qdvw-x39q-kbGT-9IAn-s7e2Nb

Pentru a vedea informatiile volumelor logice rulam:

# lvdisplay --- Logical volume --- LV Path /dev/vg_wiki/lv_wiki_1 LV Name lv_wiki_1 VG Name vg_wiki LV UUID 4sOD3P-pYEi-S0Tf-OaYb-83B3-NhCM-lqLSdG LV Write Access read/write LV Creation host, time docktest, 2025-06-27 11:47:34 +0000 LV Status available # open 1 LV Size 6.00 GiB Current LE 1536 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1 --- Logical volume --- LV Path /dev/vg_wiki/lv_wiki_2 LV Name lv_wiki_2 VG Name vg_wiki LV UUID 4UMXIA-7Ftj-UPRf-bccb-Iltw-EoJl-h3U0iZ LV Write Access read/write LV Creation host, time docktest, 2025-06-27 11:47:43 +0000 LV Status available # open 1 LV Size <4.00 GiB Current LE 1023 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2 ......

Pentru a vedea informatiile strict necesare in acest caz putem rula:

# vgs VG #PV #LV #SN Attr VSize VFree ...... vg_wiki 1 2 0 wz--n- <20.00g 10.00g # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert ...... lv_wiki_1 vg_wiki -wi-ao---- 6.00g lv_wiki_2 vg_wiki -wi-ao---- <4.00g

Extindere lv_wiki_1 cu 7GB[edit | edit source]

Extindem mai intai volumul logic:

# lvextend -r -L+7G /dev/mapper/vg_wiki-lv_wiki_1 Size of logical volume vg_wiki/lv_wiki_1 changed from 6.00 GiB (1792 extents) to 13.00 GiB (3328 extents). Logical volume vg_wiki/lv_wiki_1 successfully resized. resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/mapper/vg_wiki-lv_wiki_1 is mounted on /wiki/lv1; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/mapper/vg_wiki-lv_wiki_1 is now 3407872 (4k) blocks long.

Din verbose-itatea de mai sus observam ca a fost rulat automat si redimensionarea file system-ului, astfel ca putem vedea instant marirea la nivel de mount:

# df -h /wiki/lv1/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_wiki-lv_wiki_1 13G 24K 13G 1% /wiki/lv1

Extindere lv_wiki_2 cu aprox 3GB[edit | edit source]

In VG vg_wiki au mai ramas nealocati aproximativ 3GB:

# vgs VG #PV #LV #SN Attr VSize VFree ...... vg_wiki 1 2 0 wz--n- <20.00g 3.00g

Acesti 3GB ii vom aloca catre lv_wiki_2 in totalitate:

# lvextend -l +100%FREE /dev/mapper/vg_wiki-lv_wiki_2 Size of logical volume vg_wiki/lv_wiki_2 changed from <4.00 GiB (1023 extents) to <7.00 GiB (1791 extents). Logical volume vg_wiki/lv_wiki_2 successfully resized.

De aceasta data redimenionarea filesystem-ului nu a mai fost facuta in mod automat motiv pentru care acest lucru trebuie sa il facem manual:

# resize2fs /dev/mapper/vg_wiki-lv_wiki_2 resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/mapper/vg_wiki-lv_wiki_2 is mounted on /wiki/lv2; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/mapper/vg_wiki-lv_wiki_2 is now 1833984 (4k) blocks long.

Dupa redimenionarea filesystem-ului putem vedea extinderea si la nivel de mount:

# df -h /wiki/lv2/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_wiki-lv_wiki_2 6.9G 24K 6.5G 1% /wiki/lv2

Nota[edit | edit source]

Situatia extinerii de disk-uri dintr-un VM este diferita si cu un risc mai mare de pierdere a datelor in situatia in care fiecare lv are propia lui partitie:

# lsblk sdb 8:16 0 10G 0 disk └─sdb1 8:17 0 6G 0 part └─vg_wiki-lv_wiki_1 252:1 0 6G 0 lvm /wiki/lv1 └─sdb2 8:17 0 4G 0 part └─vg_wiki-lv_wiki_2 252:2 0 4G 0 lvm /wiki/lv2

... sau atunci cand disk-urile sunt tratate ca raw-disk

# lsblk sdb 8:16 0 10G 0 disk ├─sdb1 8:17 0 6G 0 part /wiki/lv1 └─sdb2 8:17 0 4G 0 part /wiki/lv2