Poniższe instrukcje dotyczą powiększania przestrzeni dyskowej dla systemu operacyjnego serwera tor7. Ta maszyna wirtualna korzysta z pliku tor7.kvm, który jest obrazem całego dysku /dev/vda, z którego korzysta system operacyjny:
[root@tor7 ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 17.2GB 16.7GB primary lvm
[root@tor7 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 16G 14G 1.3G 91% /
...
/dev/vda1 477M 179M 269M 40% /boot
...
Przestrzeń dyskowa /dev/mapper/centos-root jest realizowana poprzez logiczny wolumin
[root@tor7 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <15.49g
który powstał w wyniku wykorzystania całej drugiej partycji /dev/vda jako woluminu fizycznego:
[root@tor7 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 centos lvm2 a-- <15.51g 20.00m
Żeby powiększyć partycję LVM trzeba najpierw powiększyć dysk /dev/vda, czyli cały plik tor7.kvm, który jest używany przez maszynę wirtualną:
[root@hel ~]# dd if=/dev/zero of=tor7large.kvm bs=100M count=300
[root@hel ~]# dd if=tor7.kvm of=tor7large.kvm bs=100M conv=notrunc
[root@hel ~]# kpartx -l tor7large.kvm
[root@hel ~]# kpartx -a tor7large.kvm
[root@hel ~]# kpartx -d tor7large.kvm
[root@hel ~]# kpartx -a tor7large.kvm
[root@hel ~]# parted /dev/loop0 unit s print
[root@hel ~]# parted /dev/loop0 rm 2
[root@hel ~]# parted /dev/loop0 mkpart primary ..... 100%
[root@hel ~]# parted /dev/loop0 set lvm on
Woluminy logiczne związane z drugą partycja dysku muszą być widoczne w systemie (dla
komendy lvs
). W tym celu trzeba wykonać komendę:
[root@hel ~]# vgscan --mknodes
[root@hel ~]# vgchange -ay centos
Okazuje się, że dwie różne grupy woluminowe mają tę samą nazwę. W celu ich rozróżnienia trzeba wykonać komendy:
[root@hel ~]# vgdisplay
[root@hel ~]# vgrename SsJ....R centost7
Teraz można przystąpić do powiększenia woluminu fizycznego, który jest powiązany z drugą, powiększoną partycją:
[root@hel ~]# pvresize /dev/mapper/loop0p2
[root@hel ~]# pvs
[root@hel ~]# vgs
[root@hel ~]# lvs
W grupie woluminowej centost7 pojawiła się dodatkowa, wolna przestrzeń, więc można zwiększyć rozmiar woluminu logicznego:
[root@hel ~]# lvextend -L +10G /dev/centost7/root
System plików ext4, który został założony na tym woluminie logicznym musi zostać powiadomiony, że ma do dyspozycji więcej przestrzeni dyskowej:
[root@hel ~]# resize2fs -f /dev/centost7/root
Teraz pozostaje sprawdzenie, czy operacja się powiodła:
[root@hel ~]# mount /dev/centost7/root /mnt/root/
[root@hel ~]# df -h
[root@hel ~]# umount /mnt/root/
Na koniec trzeba zdeaktywować grupe woluminową centost7, odmontować plik tor7large.kvm i uruchomić serwer tor7:
[root@hel ~]# vgchange -a n centost7
[root@hel ~]# kpartx -d tor7large.kvm
[root@hel ~]# cp tor7large.kvm tor7.kvm
Teraz należy uruchomić serwer tor7 w trybie pojedynczego użytkownika dokonując zmiany konfiguracji programu ładującego przed uruchomieniem systemu, a następnie utrwalić te zmiany modyfikując /boot/grub2/grub.cfg oraz /etc/fstab, gdzie trzeba zamienić centos na centost7.