Extindere Disk: Difference between revisions

From Linux Wiki
Jump to navigation Jump to search
 
(29 intermediate revisions by the same user not shown)
Line 4: Line 4:


<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
--># lsblk
-->&#32; # lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
&#32; NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
......
&#32; ......
sdb                        8:16  0  10G  0 disk
&#32; sdb                        8:16  0  10G  0 disk
└─sdb1                      8:17  0  10G  0 part
&#32; └─sdb1                      8:17  0  10G  0 part
&#32; ├─vg_wiki-lv_wiki_1    252:1    0    6G  0 lvm  /wiki/lv1
&#32; &#32; ├─vg_wiki-lv_wiki_1    252:1    0    6G  0 lvm  /wiki/lv1
&#32; └─vg_wiki-lv_wiki_2    252:2    0    4G  0 lvm  /wiki/lv2
&#32; &#32; └─vg_wiki-lv_wiki_2    252:2    0    4G  0 lvm  /wiki/lv2
......
&#32; ......
</code>
</code>
De asemenea facem o verificare a mount-urilor pentru disk-ul in scop:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # df -h
&#32; Filesystem                        Size  Used Avail Use% Mounted on
&#32; ......
&#32; /dev/mapper/vg_wiki-lv_wiki_1      5.9G  24K  5.6G  1% /wiki/lv1
&#32; /dev/mapper/vg_wiki-lv_wiki_2      3.9G  24K  3.7G  1% /wiki/lv2
</code>
=== Extindere HDD ===
=== Extindere HDD ===


Line 26: Line 37:


<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
--># echo 1 > /sys/block/<span style="color:#f00">sdb</span>/device/rescan
-->&#32; # echo 1 > /sys/block/<span style="color:#f00">sdb</span>/device/rescan
</code>
</code>


Line 32: Line 43:


<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
--># lsblk
-->&#32; # lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
&#32; NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
......
&#32; ......
sdb                        8:16  0  <span style="color:#f00">15G</span>  0 disk
&#32; sdb                        8:16  0  <span style="color:#f00">20G</span>  0 disk
└─sdb1                      8:17  0  10G  0 part
&#32; └─sdb1                      8:17  0  10G  0 part
&#32; ├─vg_wiki-lv_wiki_1    252:1    0    6G  0 lvm  /wiki/lv1
&#32; &#32; ├─vg_wiki-lv_wiki_1    252:1    0    6G  0 lvm  /wiki/lv1
&#32; └─vg_wiki-lv_wiki_2    252:2    0    4G  0 lvm  /wiki/lv2
&#32; &#32; └─vg_wiki-lv_wiki_2    252:2    0    4G  0 lvm  /wiki/lv2
......
&#32; ......
</code>
</code>


Line 47: Line 58:


<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# growpart /dev/sdb 1
-->&#32; # growpart /dev/sdb 1
CHANGED: partition=1 start=2048 old: size=20969472 end=20971519 new: size=31455199 end=31457246
&#32; CHANGED: partition=1 start=2048 old: size=31455199 end=31457246 new: size=41940959 end=41943006
&#32;# pvresize /dev/sdb1
&#32; # pvresize /dev/sdb1
&#32; &#32; Physical volume "/dev/sdb1" changed
&#32; &#32; Physical volume "/dev/sdb1" changed
&#32; &#32; 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
&#32; &#32; 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
</code>
Apoi ne asiguram ca extinderea se reflecta pe partitie in OS:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # lsblk
&#32; NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
&#32; ......
&#32; sdb                        8:16  0  <span style="color:#f00">20G</span>  0 disk
&#32; └─sdb1                      8:17  0  <span style="color:#f00">20G</span>  0 part
&#32; &#32; ├─vg_wiki-lv_wiki_1    252:1    0    6G  0 lvm  /wiki/lv1
&#32; &#32; └─vg_wiki-lv_wiki_2    252:2    0    4G  0 lvm  /wiki/lv2
&#32; ......
</code>
=== Extindere Logical Volume ===
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 ====
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
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # vgdisplay vg_wiki
&#32; &#32; --- Volume group ---
&#32; &#32; VG Name              vg_wiki
&#32; &#32; System ID
&#32; &#32; Format                lvm2
&#32; &#32; Metadata Areas        1
&#32; &#32; Metadata Sequence No  8
&#32; &#32; VG Access            read/write
&#32; &#32; VG Status            resizable
&#32; &#32; MAX LV                0
&#32; &#32; Cur LV                2
&#32; &#32; Open LV              2
&#32; &#32; Max PV                0
&#32; &#32; Cur PV                1
&#32; &#32; Act PV                1
&#32; &#32; <span style="color:#f00">VG Size              <20.00 GiB</span>
&#32; &#32; PE Size              4.00 MiB
&#32; &#32; Total PE              3839
&#32; &#32; <span style="color:#f00">Alloc PE / Size      2559 / <10.00 GiB</span>
&#32; &#32; <span style="color:#f00">Free  PE / Size      1280 / 10.00 GiB</span>
&#32; &#32; VG UUID              LvZwAo-9K3I-Qdvw-x39q-kbGT-9IAn-s7e2Nb
</code>
Pentru a vedea informatiile volumelor logice rulam:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # lvdisplay
&#32; &#32; --- Logical volume ---
&#32; &#32; LV Path                /dev/vg_wiki/lv_wiki_1
&#32; &#32; LV Name                lv_wiki_1
&#32; &#32; VG Name                vg_wiki
&#32; &#32; LV UUID                4sOD3P-pYEi-S0Tf-OaYb-83B3-NhCM-lqLSdG
&#32; &#32; LV Write Access        read/write
&#32; &#32; LV Creation host, time docktest, 2025-06-27 11:47:34 +0000
&#32; &#32; LV Status              available
&#32; &#32; # open                1
&#32; &#32; LV Size                6.00 GiB
&#32; &#32; Current LE            1536
&#32; &#32; Segments              1
&#32; &#32; Allocation            inherit
&#32; &#32; Read ahead sectors    auto
&#32; &#32; - currently set to    256
&#32; &#32; Block device          252:1
&#32; &#32;
&#32; &#32; --- Logical volume ---
&#32; &#32; LV Path                /dev/vg_wiki/lv_wiki_2
&#32; &#32; LV Name                lv_wiki_2
&#32; &#32; VG Name                vg_wiki
&#32; &#32; LV UUID                4UMXIA-7Ftj-UPRf-bccb-Iltw-EoJl-h3U0iZ
&#32; &#32; LV Write Access        read/write
&#32; &#32; LV Creation host, time docktest, 2025-06-27 11:47:43 +0000
&#32; &#32; LV Status              available
&#32; &#32; # open                1
&#32; &#32; LV Size                <4.00 GiB
&#32; &#32; Current LE            1023
&#32; &#32; Segments              1
&#32; &#32; Allocation            inherit
&#32; &#32; Read ahead sectors    auto
&#32; &#32; - currently set to    256
&#32; &#32; Block device          252:2
&#32; &#32; ......
</code>
Pentru a vedea informatiile strict necesare in acest caz putem rula:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # vgs
&#32; &#32; VG        #PV #LV #SN Attr  VSize  VFree
&#32; &#32; ......
&#32; &#32; vg_wiki    1  2  0 wz--n- <20.00g <span style="color:#f00">10.00g</span>
&#32; # lvs
&#32; &#32; LV        VG        Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
&#32; &#32; ......
&#32; &#32; lv_wiki_1 vg_wiki  -wi-ao----  6.00g
&#32; &#32; lv_wiki_2 vg_wiki  -wi-ao---- <4.00g
</code>
==== Extindere lv_wiki_1 cu 7GB ====
Extindem mai intai volumul logic:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # lvextend -r -L+7G /dev/mapper/vg_wiki-lv_wiki_1
&#32; &#32; Size of logical volume vg_wiki/lv_wiki_1 changed from 6.00 GiB (1792 extents) to 13.00 GiB (3328 extents).
&#32; &#32; Logical volume vg_wiki/lv_wiki_1 successfully resized.
&#32; resize2fs 1.47.0 (5-Feb-2023)
&#32; Filesystem at /dev/mapper/vg_wiki-lv_wiki_1 is mounted on /wiki/lv1; on-line resizing required
&#32; old_desc_blocks = 1, new_desc_blocks = 2
&#32; The filesystem on /dev/mapper/vg_wiki-lv_wiki_1 is now 3407872 (4k) blocks long.
</code>
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:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # df -h /wiki/lv1/
&#32; Filesystem                    Size  Used Avail Use% Mounted on
&#32; /dev/mapper/vg_wiki-lv_wiki_1  <span style="color:#f00">13G</span>  24K  13G  1% /wiki/lv1
</code>
==== Extindere lv_wiki_2 cu aprox 3GB ====
In VG vg_wiki au mai ramas nealocati aproximativ 3GB:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
--># vgs
&#32; &#32; VG        #PV #LV #SN Attr  VSize  VFree
&#32; &#32; ......
&#32; &#32; vg_wiki    1  2  0 wz--n- <20.00g <span style="color:#f00">3.00g</span>
</code>
Acesti 3GB ii vom aloca catre lv_wiki_2 in totalitate:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # lvextend -l +100%FREE /dev/mapper/vg_wiki-lv_wiki_2
&#32; &#32; Size of logical volume vg_wiki/lv_wiki_2 changed from <4.00 GiB (1023 extents) to <7.00 GiB (1791 extents).
&#32; &#32; Logical volume vg_wiki/lv_wiki_2 successfully resized.
</code>
De aceasta data redimenionarea filesystem-ului nu a mai fost facuta in mod automat motiv pentru care acest lucru trebuie sa il facem manual:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # resize2fs /dev/mapper/vg_wiki-lv_wiki_2
&#32; resize2fs 1.47.0 (5-Feb-2023)
&#32; Filesystem at /dev/mapper/vg_wiki-lv_wiki_2 is mounted on /wiki/lv2; on-line resizing required
&#32; old_desc_blocks = 1, new_desc_blocks = 1
&#32; The filesystem on /dev/mapper/vg_wiki-lv_wiki_2 is now 1833984 (4k) blocks long.
</code>
Dupa redimenionarea filesystem-ului putem vedea extinderea si la nivel de mount:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # df -h /wiki/lv2/
&#32; Filesystem                    Size  Used Avail Use% Mounted on
&#32; /dev/mapper/vg_wiki-lv_wiki_2  <span style="color:#f00">6.9G</span>  24K  6.5G  1% /wiki/lv2
</code>
=== Nota ===
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:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # lsblk
&#32; sdb                        8:16  0  10G  0 disk
&#32; └─sdb1                      8:17  0    6G  0 part
&#32; &#32; └─vg_wiki-lv_wiki_1    252:1    0    6G  0 lvm  /wiki/lv1
&#32; └─sdb2                      8:17  0    4G  0 part
&#32; &#32; └─vg_wiki-lv_wiki_2    252:2    0    4G  0 lvm  /wiki/lv2
</code>
... sau atunci cand disk-urile sunt tratate ca raw-disk
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32; # lsblk
&#32; sdb                        8:16  0  10G  0 disk
&#32; ├─sdb1                      8:17  0    6G  0 part  /wiki/lv1
&#32; └─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