Možnosti nastavení disku u KVM VPS
Poslední aktualizace 19. 7. 2024
U nově zřízených serverů KVM VPS se na první pohled může zdát, že velikost HDD nesouhlasí s objednanou kapacitou. Ve skutečnosti máte přiřazenu celou objednanou kapacitu a je pouze potřeba upravit partition/LVM (logical volume management). Kapacitu si můžete ověřit skrze terminál pomocí příkazu:
fdisk -l
[root@vps ~]# fdisk -l
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dosDisk identifier: 0x85c9bd0d
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M 83 Linux
/dev/sda2 1050624 20971519 19920896 9.5G 8e Linux LVM
Jak je z výpisu vidět, tak HDD má v tomto případě 80 GiB. Boot partition o velikosti 512 MB a 9.5 GiB partition pro Linux LVM. LVM je dále rozděleno na LV (logical volume) swap (2 GiB) a LV root 7.5 GiB. Zbývajících 70 GiB je zatím nevyužito a jak s prostorem naložíte je na vás.
Máte následující možnosti:
- Roztažení oddílu LV přes celou velikost HDD – Zbývající prostor bude použit pro LV root a dostupná velikost je sdílená pro OS i data aplikací. V případě úplného zaplnění HDD ale hrozí pád celého systému.
- Vlastní návrh oddílů – Můžete vytvořit vlastní oddíly LV pro vaše data (obvykle pro /home, /var/www, /var/lib/docker), případně libovolně roztáhnout stávající LV (swap, root). Výhoda tohoto návrhu spočívá v tom, že pokud dojde k zaplnění oddílu s daty, nebude ovlivněn chod samotného OS a nehrozí pád systému kvůli nedostatku místa na HDD.
Vytvoření oddílu na HDD a nastavení typu na Linux LVM
- Použijte příkaz:
fdisk /dev/sda
- Zvolte
n
pro nový oddíl. - Zvolte
p
pro primární oddíl. - Nyní máte obsazeny 2 oddíly, proto zvolte
3
. - First sector zvolte defaultní (první z rozsahu).
- Last sector vyberte podle toho, kolik místa chcete přiřadit. V případě, že všechno, zvolte plný rozsah a potvrďte.
- Nyní zvolte
t
a vyberte číslo oddílu, který jste vytvořili. V tomto případě je to číslo 3. - Zvolte kód
8e
, čímž změníte typ oddílu na LINUX LVM. - V dalším kroku pomocí
w
zapište změny.[root@vps ~]# fdisk /dev/sdaWelcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3):
First sector (20971520-167772159, default 20971520):
Last sector, +sectors or +size{K,M,G,T,P} (20971520-167772159, default 167772159):Created a new partition 3 of type 'Linux' and of size 70 GiB.Command (m for help): t
Partition number (1-3, default 3):
Hex code (type L to list all codes): 8eChanged type of partition 'Linux' to 'Linux LVM'.Command (m for help): w
The partition table has been altered.
Syncing disks. - Nakonec informujte operační systém, že se změnila tabulka oddílů:
[root@vps ~]# partprobe /dev/sda
Vytvoření PV (physical volume)
PV vytvoříte jedním příkazem:
[root@vps ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
Roztažení VG (volume group)
Vypište si seznam VG:
[root@vps ~]# vgdisplay | grep Name
VG Name vg1
Rozšiřte oddílovou skupinu o fyzický oddíl /dev/sda3 příkazem:
[root@vps ~]# vgextend vg1 /dev/sda3
Volume group "vg1" successfully extended
Rozšíření, případně vytvoření LV (logical volume)
Následujícím příkazem zobrazíme výpis LV, které jsou již na serveru:
[root@vps ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/root
LV Name root
VG Name vg1
LV UUID o6Xefa-9T3A-buHo-hlQn-N00G-YPgr-79wf7B
LV Write Access read/write
LV Creation host, time centos8, 2020-01-08 09:42:27 -0500
LV Status available
# open 1
LV Size 7.50 GiB
Current LE 1920
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/vg1/swap
LV Name swap
VG Name vg1
LV UUID 1eDw3y-GWfF-arRm-707Q-IJGW-cbaY-WeoCyH
LV Write Access read/write
LV Creation host, time centos8, 2020-01-08 09:42:27 -0500
LV Status available
# open 2
LV Size <2.00 GiB
Current LE 511
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
Jak je vidět na výpisu výše, tak na serveru je LV root (7,5 GiB) a LV swap (2 GiB).
Rozšíření stávající LV
- V případě, že chcete rozšířit stávající LV root na maximum, použijte následující příkaz:
[root@vps ~]# lvextend -l +100%FREE /dev/vg1/root
- Pokud si přejete navýšit pouze o několik GB (např. 20 GB), postupujte následovně:
[root@vps ~]# lvextend -L +20G /dev/vg1/root
- Pomocí následujícího příkazu zjistíte typ filesystému:
[root@vps ~]# mount | grep root
/dev/mapper/vg1-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)- Pokud se jedná o xfs, proveďte rozšíření příkazem:
[root@vps ~]# xfs_growfs /
U xfs filesystému je nutné provést remount:
[root@vps ~]# mount -o,remount /
- Pokud se jedná o ext4, proveďte rozšíření následujícím příkazem:
[root@vps ~]# resize2fs /dev/vg1/root
U ext4 filesystému není nutné provést remount.
- Pokud se jedná o xfs, proveďte rozšíření příkazem:
Vytvoření nové LV
Pokud nechcete root partition přes celý disk, tak můžete vytvořit nový LV.
- Vytvoříme například LV www:
[root@vps ~]# lvcreate -n www -L 20G vg1
- Následně vytvořte nad LV filesystém dle potřeby.
- Pro xfs:
[root@vps ~]# mkfs.xfs /dev/vg1/www
- Pro ext4:
[root@vps ~]# mkfs.ext4 /dev/vg1/www
- Pro xfs:
- Proveďte mount do potřebné složky:
[root@vps ~]# mkdir /var/www
[root@vps ~]# mount /dev/vg1/www /var/www - Nakonec přidejte do /etc/fstab následující řádek, aby mount přežil reboot serveru.
- Pro xfs:
/dev/mapper/vg1-www /var/www xfs defaults 0 0
- Pro ext4:
/dev/mapper/vg1-www /var/www ext4 defaults 0 0
- Pro xfs: