Zmniejszenie rozmiaru partycji LVM (Ubuntu Server)

Zmniejszenie rozmiaru partycji LVM (Ubuntu Server)

Zmniejszenie rozmiaru partycji LVM (Ubuntu Server)

Możliwość komentowania Zmniejszenie rozmiaru partycji LVM (Ubuntu Server) została wyłączona

Uwaga! Pomimo podręcznikowego wręcz działania nie udało mi się prawidłowo uruchomić serwera ze zmniejszoną poniższą metodą partycją root! Nie miałem czasu na dokładniejszą analizę problemu – może kiedyś 🙂

1. Oglądamy strukturę dysku LVM:

root@ubuntu:~# lvscan
ACTIVE            ‚/dev/serwer-vg/root’ [296.41 GiB] inherit
ACTIVE            ‚/dev/serwer-vg/swap_1’ [980.00 MiB] inherit

2. Sprawdzamy błędy:

root@ubuntu:~# e2fsck -f /dev/serwer-vg/root
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/serwer-vg/root: 136527/19431424 files (0.1% non-contiguous), 2190433/77703168 blocks

3. Zmieniamy rozmiar systemu plików

root@ubuntu:~# resize2fs -p /dev/serwer-vg/root 200G
resize2fs 1.42 (29-Nov-2011)
Resizing the filesystem on /dev/serwer-vg/root to 52428800 (4k) blocks.
Begin pass 2 (max = 134263)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 2372)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 19706)
Updating inode references     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/serwer-vg/root is now 52428800 blocks long.

4. Zmieniamy rozmiar parytcji LVM:

root@ubuntu:~# lvresize -L 200G /dev/serwer-vg/root

WARNING: Reducing active logical volume to 200.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce root? [y/n]: y
Reducing logical volume root to 200.00 GiB
Logical volume root successfully resized

5. Sprawdzamy czy zwolniło się miejsce na dysku:

root@ubuntu:~# pvscan
PV /dev/sda5   VG serwer-vg   lvm2 [297.37 GiB / 96.41 GiB free]
Total: 1 [297.37 GiB] / in use: 1 [297.37 GiB] / in no VG: 0 [0   ]

root@ubuntu:~# lsblk /dev/sda
NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                            8:0    0 298.1G  0 disk
├─sda1                         8:1    0   731M  0 part
├─sda2                         8:2    0     1K  0 part
└─sda5                         8:5    0 297.4G  0 part
├─serwer–vg-root (dm-0)   252:0    0   200G  0 lvm
└─serwer–vg-swap_1 (dm-1) 252:1    0   980M  0 lvm

6. Oglądamy układ partycji LVM – widzimy, że partycje swap trzeba przenieść wcześniej:

root@ubuntu:~# pvs -v –segments
Scanning for physical volume names
PV         VG        Fmt  Attr PSize   PFree  Start SSize LV     Start Type   PE Ranges
/dev/sda5  serwer-vg lvm2 a-   297.37g 96.41g     0 51200 root       0 linear /dev/sda5:0-51199
/dev/sda5  serwer-vg lvm2 a-   297.37g 96.41g 51200 24682            0 free
/dev/sda5  serwer-vg lvm2 a-   297.37g 96.41g 75882   245 swap_1     0 linear /dev/sda5:75882-76126

7. Obliczamy miejsce dla partycji swap i przenosimy. Wolumin ma 245 bloków więc musi rozpoczynać się od bloku 51200 a kończyć na bloku 51444 (bo -1):

root@ubuntu:~# pvmove –alloc anywhere -i 30 /dev/sda5:75882-76126 /dev/sda5:51200-51444
/dev/sda5: Moved: 0.0%
/dev/sda5: Moved: 44.5%
/dev/sda5: Moved: 89.4%
/dev/sda5: Moved: 100.0%

8. Oglądamy zmiany, widać wolne miejsce na końcu woluminu:

root@ubuntu:~# pvs -v –segments
Scanning for physical volume names
PV         VG        Fmt  Attr PSize   PFree  Start SSize LV     Start Type   PE Ranges
/dev/sda5  serwer-vg lvm2 a-   297.37g 96.41g     0 51200 root       0 linear /dev/sda5:0-51199
/dev/sda5  serwer-vg lvm2 a-   297.37g 96.41g 51200   245 swap_1     0 linear /dev/sda5:51200-51444
/dev/sda5  serwer-vg lvm2 a-   297.37g 96.41g 51445 24682            0 free

9. Zmieniamy rozmiar kontenera LVM:

root@ubuntu:~# pvresize -v /dev/sda5 –setphysicalvolumesize 200G
Using physical volume(s) on command line
Archiving volume group „serwer-vg” metadata (seqno 13).
/dev/sda5: Pretending size is 419430400 not 623638528 sectors.
Resizing physical volume /dev/sda5 from 76127 to 51199 extents.
/dev/sda5: cannot resize to 51199 extents as 51445 are allocated.
0 physical volume(s) resized / 1 physical volume(s) not resized

Nie zadziałało dla wartości 200G – musimy dokładniej obliczyć potrzebne miejsce z wartości 51445 (51445*4+1)

root@ubuntu:~# pvresize -v /dev/sda5 –setphysicalvolumesize 206217M
Using physical volume(s) on command line
Archiving volume group „serwer-vg” metadata (seqno 13).
/dev/sda5: Pretending size is 422332416 not 623638528 sectors.
Resizing physical volume /dev/sda5 from 76127 to 51554 extents.
Resizing volume „/dev/sda5” to 422330368 sectors.
Updating physical volume „/dev/sda5”
Creating volume group backup „/etc/lvm/backup/serwer-vg” (seqno 14).
Physical volume „/dev/sda5” changed
1 physical volume(s) resized / 0 physical volume(s) not resized

10. Oglądamy zmiany:

root@ubuntu:~# pvscan
PV /dev/sda5   VG serwer-vg   lvm2 [201.38 GiB / 436.00 MiB free]
Total: 1 [201.38 GiB] / in use: 1 [201.38 GiB] / in no VG: 0 [0   ]

11. Obliczamy pojemność woluminu dla fdisk w sektorach (422330368+8192-1= -> do wpisania w fdisk)

root@ubuntu:~# pvs -v –unit s
Scanning for physical volume names
PV         VG        Fmt  Attr PSize      PFree   DevSize    PV UUID
/dev/sda5  serwer-vg lvm2 a-   422330368S 892928S 623640576S IKRmdG-jqWB-5d4u-Wo3Q-Exb0-ATQp-brGGoS

12. Uruchamiamy program fdisk i zmieniamy rozmiar partycji rozszerzonej, przechowującej LVM (u mnie jest to partycja sda2 na której jest wirtualna sda5)

root@ubuntu:~# fdisk /dev/sda

Command (m for help): d
Partition number (1-5): 2

Command (m for help): n
Partition type:
p   primary (1 primary, 0 extended, 3 free)
e   extended
Select (default p):
Using default response p
Partition number (1-4, default 2):
Using default value 2
First sector (1499136-625142447, default 1499136):
Using default value 1499136
Last sector, +sectors or +size{K,M,G} (1499136-625142447, default 625142447): +422338559

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

13. Restartujemy system (i niestety nie rusza… ale partycje są prawidłowo zmodyfikowane)

root@ubuntu:~# reboot

W wolnej chwili ustalę dlaczego system nie wstaje.

Polecam artykuł https://morfikov.github.io/post/zmiana-rozmiaru-lvm/

Related Posts

Back to Top