Možnosti nastavení disku u KVM VPS

Poslední aktualizace 20. 12. 2022


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:

  1. 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.
  2. 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

  1. Použijte příkaz: fdisk /dev/sda
  2. Zvolte n pro nový oddíl.
  3. Zvolte p pro primární oddíl.
  4. Nyní máte obsazeny 2 oddíly, proto zvolte 3.
  5. First sector zvolte defaultní (první z rozsahu).
  6. Last sector vyberte podle toho, kolik místa chcete přiřadit. V případě, že všechno, zvolte plný rozsah a potvrďte.
  7. Nyní zvolte t a vyberte číslo oddílu, který jste vytvořili. V tomto případě je to číslo 3.
  8. Zvolte kód 8e, čímž změníte typ oddílu na LINUX LVM.
  9. 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.
  10. 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)
  1. 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 /
  2. 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.

Vytvoření nové LV

Pokud nechcete root partition přes celý disk, tak můžete vytvořit nový LV.

  1. Vytvoříme například LV www:
    [root@vps ~]# lvcreate -n www -L 20G vg1
  2. Následně vytvořte nad LV filesystém dle potřeby.
    1. Pro xfs:
      [root@vps ~]# mkfs.xfs /dev/vg1/www
    2.  Pro ext4:
      [root@vps ~]# mkfs.ext4 /dev/vg1/www
  3. Proveďte mount do potřebné složky:
    [root@vps ~]# mkdir /var/www
    [root@vps ~]# mount /dev/vg1/www /var/www
  4. Nakonec přidejte do /etc/fstab následující řádek, aby mount přežil reboot serveru.
    1. Pro xfs:
      /dev/mapper/vg1-www    /var/www                       xfs     defaults        0 0
    2. Pro ext4:
      /dev/mapper/vg1-www    /var/www                       ext4     defaults        0 0

Máte nejasnosti nebo nápad na zlepšení článku?

Napište nám