• личный кабинет

Расширение диска сервера

Расширение диска сервера

Создание разделов на диске сервера нельзя откатить назад. Если мы сделаем что-то за вас, то можно создать ситуацию, которая вам не понравится, и исправить это будет невозможно. Поэтому расширять диски внутри сервера нужно самостоятельно.

Важный совет

Расширяйте разделы постепенно. Поскольку откатить это уже нельзя (или очень трудно), лучше потом еще раз расширить раздел, чем сразу и навсегда всё испортить.

Если у вас Windows

C Windows всё очень просто.

Откройте системную программу "Disk Management" или "Управление дисками", её можно найти в меню Пуск. В ней вы увидите всю ситуацию визуально, и можете в несколько кликов сделать то, что вам нужно. Расширяйте существующий раздел (например, C:), или добавляйте другие разделы.

Всё это делается мышкой по кликам правой кнопкой на раздел или пустое место за ним.

Если у вас Linux

В Linux всё немного сложнее. Давайте смотреть варианты и разбираться.

С помощью 1Gb Panel

Наш бесплатный продукт 1Gb Panel умеет расширять диски сервера. Если вы выбрали сервер с панелью, то она уже стоит. Её можно открыть по адресу http://<ip-вашего-сервера>:1234/.

Вы также можете установить её на свой сервер, если там Ubuntu или Debian. Инструкция есть в статье.

В панели раздел расширения дисков называется "Storage" или "Хранение".

Самостоятельно

Для этой инструкции мы выбрали команды, которые точно безопасны. Испортить с их помощью ничего нельзя.

Зайдите на сервер по SSH. Убедитесь, что вы root. Для этого дайте команду sudo su (Ubuntu) или просто su -l (Debian).

В данном примере мы будем расширять корневой раздел сервера.

Расширение разделов

Могут быть два варианта. Либо разделы уже расширены на весь диск сервера, либо нет.

Запустите команду lsblk, чтобы посмотреть, что как устроено:

[root@nv-140463 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1    2K  0 rom
vda         252:0    0   60G  0 disk
+-vda1      252:1    0  600M  0 part /boot/efi
+-vda2      252:2    0    1G  0 part /boot
L-vda3      252:3    0  8.4G  0 part
  +-cs-root 253:0    0  7.4G  0 lvm  /
  L-cs-swap 253:1    0    1G  0 lvm  [SWAP]
[root@nv-140463 ~]#

Тут видно, что раздел vda3 занимает только часть диска - 8.4 гигабайт из 60 гигабайт физического диска vda. Нам надо его расширить. Вот команды:

printf "fix\n" | parted ---pretend-input-tty /dev/vda print
parted -s /dev/vda resizepart 3 100%

В этом примере, /dev/vda - это ваш диск, а 3 - это номер раздела, который мы расширяем (vda3).

Если программы parted у вас нет, то установите её одной из следующих команд:

yum -y install parted
или
apt -y update
apt -y install parted

Вот пример, как это всё работает, и результат:

[root@nv-140463 ~]# printf "fix\n" | parted ---pretend-input-tty /dev/vda print
Warning: Not all of the space available to /dev/vda appears to be used, you can fix the GPT to use all of the space (an extra 104857600 blocks) or continue with the current setting?
Fix/Ignore? fix
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  630MB   629MB   fat32        EFI System Partition  boot, esp
 2      630MB   1704MB  1074MB  xfs
 3      1704MB  10.7GB  9032MB                                     lvm

[root@nv-140463 ~]# parted -s /dev/vda resizepart 3 100%
[root@nv-140463 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1    2K  0 rom
vda         252:0    0   60G  0 disk
+-vda1      252:1    0  600M  0 part /boot/efi
+-vda2      252:2    0    1G  0 part /boot
L-vda3      252:3    0 58.4G  0 part
  +-cs-root 253:0    0  7.4G  0 lvm  /
  L-cs-swap 253:1    0    1G  0 lvm  [SWAP]
[root@nv-140463 ~]#

Теперь раздел vda3 занимает весь объем вашего физического диска.

Расширение LVM (если он есть)

Дальше надо понять, есть ли у вас LVM. Дайте команду pvs. Если такой команды не найдено, или она вернула пустоту, значит, LVM на сервере нет, и мы этот раздел пропускаем. Если же команда вернула результат, давайте расширять LVM.

[root@nv-140463 ~]# pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/vda3  cs lvm2 a--  8.41g    0
[root@nv-140463 ~]#

В данном примере LVM есть. Расширим его, если нужно. Вот команда:

pvresize /dev/vda3

Вот пример и результат:

[root@nv-140463 ~]# pvresize /dev/vda3
  Physical volume "/dev/vda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@nv-140463 ~]# pvs
  PV         VG Fmt  Attr PSize  PFree
  /dev/vda3  cs lvm2 a--  58.41g 50.00g
[root@nv-140463 ~]#

Иногда команда pvresize не нужна, например, на физическом сервере, весь диск скорее всего и так размечен в LVM, так как его размер никогда не меняется. Тогда смотрим дальше.

В нашем примере, теперь будет видно, что в вашем LVM 50 гигабайт свободного места:

[root@nv-140463 ~]# vgs
  VG #PV #LV #SN Attr   VSize  VFree
  cs   1   2   0 wz--n- 58.41g 50.00g

С помощю команды lsblk вспомним, где у нас что:

[root@nv-140463 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1    2K  0 rom
vda         252:0    0   60G  0 disk
+-vda1      252:1    0  600M  0 part /boot/efi
+-vda2      252:2    0    1G  0 part /boot
L-vda3      252:3    0  8.4G  0 part
  +-cs-root 253:0    0  7.4G  0 lvm  /
  L-cs-swap 253:1    0    1G  0 lvm  [SWAP]
[root@nv-140463 ~]#

Видно, что корень / нашего сервера находится на LVM разделе cs-root.

Расширим его, например, на 20 гигабайт. Вот команда:

lvresize /dev/cs/root -L +20G

Для Ubuntu тут обычно будет указан раздел типа ubuntu--vg-ubuntu--lv, и тогда будет так:

lvresize /dev/ubuntu-vg/ubuntu-lv -L +20G

Вот пример и результат:

[root@nv-140463 ~]# lvresize /dev/cs/root -L +20G
  Size of logical volume cs/root changed from 7.41 GiB (1897 extents) to 27.41 GiB (7017 extents).
  Logical volume cs/root successfully resized.
[root@nv-140463 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1    2K  0 rom
vda         252:0    0   60G  0 disk
+-vda1      252:1    0  600M  0 part /boot/efi
+-vda2      252:2    0    1G  0 part /boot
L-vda3      252:3    0 58.4G  0 part
  +-cs-root 253:0    0 27.4G  0 lvm  /
  L-cs-swap 253:1    0    1G  0 lvm  [SWAP]
[root@nv-140463 ~]#

Тут видно, что раздел раньше занимал 8.4 гигабайта, а теперь занимает 27.4 гигабайта.

Запомним, что наша файловая система находится на разделе /dev/cs/root.

Если LVM нет

Тогда команда lsblk будет выдавать примерно такое:

[root@DDG100 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
fd0      2:0    1    4K  0 disk
sda      8:0    0    4G  0 disk
+-sda1   8:1    0  484M  0 part /boot
L-sda2   8:2    0  3.5G  0 part /
sr0     11:0    1 1024M  0 rom
zram0  254:0    0  1.9G  0 disk [SWAP]
[root@DDG100 ~]#

Запомним, что наша файловая система находится на разделе /dev/sda2.

Расширение файловой системы

Для расширения файловой системы нужно знать её тип.

root@nv-140459:/home/ubuntu# grep ' / ' /proc/mounts
/dev/mapper/ubuntu--vg-ubuntu--lv / ext4 rw,relatime 0 0
root@nv-140459:/home/ubuntu#

Тут видно, что здесь EXT4. Но на самом деле, можно давать команды для всех файловых систем, и сработает только то, что нужно. Это безопасно.

XFS (например, CentOS)

Вот команда для XFS - раздел тут указывать не нужно, сама найдет:

xfs_growfs /

Вот пример и результат:

[root@nv-140463 ~]# xfs_growfs /
meta-data=/dev/mapper/cs-root    isize=512    agcount=4, agsize=485632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=1942528, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1942528 to 7185408
[root@nv-140463 ~]# df -h /
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cs-root   28G  1.5G   26G   6% /
[root@nv-140463 ~]#

EXT4 (например, Ubunutu, Debian)

Вот команда для EXT4 - тут нужно указать раздел, который вы запомнили выше. Например, это могло быть /dev/ubuntu-vg/ubuntu-lv (если был LVM), или, например, /dev/sda2, если LVM не было.

Вот команда:

resize2fs /dev/ubuntu-vg/ubuntu-lv

Вот пример и результат:

root@nv-140459:/home/ubuntu# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7266304 (4k) blocks long.
root@nv-140459:/home/ubuntu# df -h /
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv   28G  4.2G   22G  16% /
root@nv-140459:/home/ubuntu#

Если что-то не получается

Обратитесь в поддержку, поможем вам расширить диск.