POZOR!! Popsané operace jsou pouze ilustrační: nevhodné použití nebo či neodborný zásah může způsobit částečnou nebo úplnou ztrátu dat a v některým případech může dokonce ohrozit funkčnost virtuálního stroje. Před akcí si udělejte snapshot serveru!
Nedoporučujeme používat tento postup, pokud nemáte příslušné odborné znalosti. Naše společnost odmítá veškerou odpovědnost za případné problémy způsobené nesprávným použitím tohoto návodu.
Nejprve se připojte k serveru přes SSH.
Vzorový stav filesystému je tento
Souborový systém Velikost Užito Volno Uži% Připojeno do
/dev/mapper/vg-lv_root 7,5G 1,2G 6,0G 17% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 485M 68M 392M 15% /boot
Ffilesystém rootu serveru (/) je vytvořen na /dev/mapper/vg-lv_root (Logical volume, která je součástí skupiny vg a pojmenovaná lv_root). Po rozšíření primárního disku například na 20 GB se po nastavení velikosti v Cloud Control Panelu se filesystém automaticky nezvětší. Dojde pouze k navýšení diskového prostoru. Protože jsou použity LVM, lze za běhu rozšířit. Celá akce probíhá v těchto krocích:
1. Rozdělení disku – přidání oddílu
Přidáváte-li nový disk, je postup identický s tím rozdílem, že místo /dev/sda vyberete nový disk (označovaný /dev/sdb, /dev/sdc...)
K rozdělení použijeme program fdisk. Další možnost je cfdisk (doporučujeme - práce s ním je snažší a mnohem intuitivnější). Následující postup platí pro fdisk.
Aktuální tabulku rozdělení zjistíme příkazem p (print).
# fdisk /dev/sda
Příkaz (m pro nápovědu): p
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sda1 * 1 64 512000 83 Linux
/dev/sda2 64 1306 9972696 8e Linux LVM
Nový oddíl se vytvoří příkazem n (new), oddíl bude primární p. Velikosti zvolíme implicitní. (
POZOR:plánujete-li další upgrady, doporučujeme vytvořit oddíl rozšířený - nebudete v budoucnu omezeni počtem oddílů - tzn 4 primární)
Příkaz (m pro nápovědu): n
Příkaz
e rozšířený diskový oddíl
p primární diskový oddíl (1-4)
p
Číslo diskového oddílu (1-4): 3
První cylindr (1306-2610, implicitně 1306):
Používám implicitní hodnotu 1306
Poslední cylindr, +cylindry nebo +velikost{K,M,G} (1306-2610, implicitně 2610):
Používám implicitní hodnotu 2610
Výpis nového rozdělení ukáže nový oddíl /dev/sda3
Příkaz (m pro nápovědu): p
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sda1 * 1 64 512000 83 Linux
/dev/sda2 64 1306 9972696 8e Linux LVM
/dev/sda3 1306 2610 10479105 83 Linux
U nově vytvořeného oddílu (číslo 3) nastavíme příznak, že se jedná o LVM. Provede se příkazem t a kód LVM je 8e
Příkaz (m pro nápovědu): t
Číslo diskového oddílu (1-4): 3
Šestnáctkově (L vypíše kódy):8e
Typ diskového oddílu 3 byl změněn na 8e (Linux LVM)
Nakonec příkazem w (write) zapíšeme tabulku rozdělení.
Příkaz (m pro nápovědu): w
Tabulka rozdělení disku byla změněna!
Volám ioctl() pro znovunačtení tabulky rozdělení disku.
VAROVÁNÍ: Znovunačtení tabulky rozdělení disku selhalo s chybou 16: Zařízení nebo zdroj jsou používány.
Jádro stále používá starou tabulku. Nová tabulka se použije až po příštím
restartu nebo po té, co spustíte partprobe(8) nebo kpartx(8).
Synchronizují se disky.
# partprobe
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Zařízení nebo zdroj jsou používány). As a result, it may not reflect all of your changes until after reboot.
Tabulku rozdělení nelze zapsat, jestliže se používá. Selže-li příkaz
partprobe, stačí server rebootovat.
Pokud system příkaz partprobe nemůže nalézt, stačí nainstalovat balík parted
# yum install parted
a pokus opakovat.
2. Vytvoření physical volume na oddílu /dev/sda3# pvcreate /dev/sda3
Writing physical volume data to disk "/dev/sda3"
Physical volume "/dev/sda3" successfully created
Nyní máme k dispozici 2 oddíly. První (
/dev/sda2) je již součástí skupiny
vg a druhý (
/dev/sda3) je nový.
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg
PV Size 9,51 GiB / not usable 3,00 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 2434
Free PE 0
Allocated PE 2434
PV UUID NiSuLv-fH2Z-eO4H-JoJ2-9yuG-fWvW-gmuJak
"/dev/sda3" is a new physical volume of "9,99 GiB"
--- NEW Physical volume ---
PV Name /dev/sda3
VG Name
PV Size 9,99 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID DMfFH9-8zzw-d2AY-xg21-tC6o-7HGA-SyxljY
3. Přidání oddílu /dev/sda3 do skupiny vg# vgextend vg /dev/sda3
Volume group "vg" successfully extended
pvdisplay pak ukáže, že oba oddíly jsou již součástí skupiny.
4. Zvětšení logického oddílujehož filesystém je připojen jako /. Název oddílu zjistíme přes
lvdisplay# lvdisplay
--- Logical volume ---
LV Name /dev/vg/lv_root
VG Name vg
LV UUID tzVjEt-GuMy-W8T2-G86i-YDOV-XoG7-8zCpOT
LV Write Access read/write
LV Status available
# open 1
LV Size 7,57 GiB
Current LE 1938
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
lvextend -l +100%FREE /dev/vg/lv_root
Extending logical volume lv_root to 17,56 GiB
Logical volume lv_root successfully resized
lvdisplay
--- Logical volume ---
LV Name /dev/vg/lv_root
VG Name vg
LV UUID tzVjEt-GuMy-W8T2-G86i-YDOV-XoG7-8zCpOT
LV Write Access read/write
LV Status available
# open 1
LV Size 17,56 GiB
Current LE 4496
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
5. Rozšíření filesystémuPoslední krok je rozšíření filesystému na celý oddíl. To se provede příkazem resize2fs. Příkaz spuštěný bez parametru rozšíří filesystém na maximální možnou velikost.
# resize2fs /dev/mapper/vg-lv_root
resize2fs 1.41.12 (17-May-2010)
Systém souborů v /dev/mapper/vg-lv_root je připojen do /,
požadována změna velikosti za běhu.
old desc_blocks = 1, new_desc_blocks = 2
Provádím změnu velikosti za běhu /dev/mapper/vg-lv_root na 4603904 (4k) bloků.
Systém souborů na /dev/mapper/vg-lv_root je nyní 4603904 bloků dlouhý.
V případě CentOS 8 je použitý souborový systém XFS a je nutné filesystém rošířit příkazem xfs_grow.