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 (lze jen u PRO serverů)
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.