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/
Post Views: 1 076