ZIM-НИЙ SAAALEЗимние скидки: до −50% на старт и −20% на продление
до 31.01.2026 Подробнее
Выберите продукт

Увеличиваем диск на VDS: growpart, resize2fs и xfs_growfs без простоя

Как увеличить диск на VDS без перезагрузки и простоя сервиса? Разбираем практические сценарии: один раздел на ext4 и XFS, LVM, GPT/MBR, NVMe/virtio. Покажу безопасные последовательности команд с growpart, resize2fs, xfs_growfs и pvresize/lvextend, проверки до и после, нюансы и частые ошибки.
Увеличиваем диск на VDS: growpart, resize2fs и xfs_growfs без простоя

Расширение диска на VDS — задача, которая встречается чаще, чем апгрейд CPU или RAM. Сервисы растут, логи и медиа копятся, а остановить прод-окружение ради увеличения файловой системы обычно нельзя. Хорошая новость: в Linux большинство сценариев расширения можно выполнить онлайн — без перезагрузки и без размонтирования тома. В статье соберу проверенные последовательности команд с пояснениями: growpart для расширения раздела, resize2fs для ext4 и xfs_growfs для XFS, а также pvresize/lvextend для LVM. Если требуется масштабирование инфраструктуры, апгрейд тарифа VDS делается без миграции ОС.

Когда реально обойтись без простоя

Онлайн-расширение диска возможно, если выполнены условия:

  • Файловая система поддерживает онлайн-увеличение: ext4 (через resize2fs) и XFS (через xfs_growfs).
  • Растёт последний раздел на диске (или используется LVM поверх физического тома, который можно расширить).
  • Ядро видит новый размер устройства (рескан устройства выполним без ребута).
  • Нет нестандартных прослоек, требующих отдельного шага (например, LUKS перед LVM).

Снижение риска: сделайте бэкап или снапшот в облаке перед началом. Операции безопасны, но ошибка в номере устройства или форс-перезапись таблицы разделов могут привести к простоям.

Аудит текущей разметки и ФС

Для начала зафиксируйте, как устроен диск: тип устройства, разметка (MBR/GPT), есть ли LVM, какая ФС, какие точки монтирования и UUID. Это поможет выбрать корректную последовательность команд.

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
lsblk -f
df -hT
sudo fdisk -l
cat /etc/fstab
sudo pvs
sudo vgs
sudo lvs -a -o +devices

Частые ситуации:

  • Один раздел на всём диске (например, /dev/vda1 или /dev/nvme0n1p1) с ext4 или XFS и без LVM.
  • LVM поверх одного раздела (например, /dev/vda2PVVG → один или несколько LV), ФС ext4/XFS на логическом томе.
  • Несколько разделов, где нужный — последний, что упрощает расширение.

FastFox VDS
Облачный VDS-сервер в России
Аренда виртуальных серверов с моментальным развертыванием инфраструктуры от 195₽ / мес

Как ОС узнает о новом размере диска

После увеличения диска в панели провайдера (или через API) ядро может не сразу увидеть новый размер. Выполните рескан устройства. Виртуальные диски на KVM/QEMU обычно видны как /dev/vda (virtio) или /dev/sda (SCSI), на NVMe — /dev/nvme0n1.

# Универсально попытаться перечитать таблицу разделов
sudo partprobe
sudo blockdev --rereadpt /dev/vda

# Для NVMe
echo 1 | sudo tee /sys/class/block/nvme0n1/device/rescan

# Для virtio/SCSI можно инициировать хост-скан (с осторожностью, число хостов разнится)
for h in /sys/class/scsi_host/host*; do echo "- - -" | sudo tee $h/scan; done

lsblk -o NAME,SIZE,TYPE

Когда устройство «увеличилось», можно расширять раздел и файловую систему.

Снимок терминала с lsblk и fdisk: схема разделов ext4/XFS на VDS

Сценарий A: один раздел ext4 без LVM

Классика: один-единственный раздел, на нём корневая файловая система ext4. Для онлайн-расширения понадобятся growpart и resize2fs. Пакет с growpart называется cloud-guest-utils (Debian/Ubuntu) или cloud-utils-growpart (RHEL/CentOS/Alma/Rocky).

# Установить growpart (если отсутствует)
# Debian/Ubuntu
sudo apt update
sudo apt install -y cloud-guest-utils
# RHEL/CentOS/Alma/Rocky
sudo yum install -y cloud-utils-growpart

# Проверить текущее состояние
lsblk -f

# Предположим, диск /dev/vda и раздел /dev/vda1 — последний и единственный
sudo growpart /dev/vda 1

# Обновить данные ядра о таблице разделов
sudo partprobe /dev/vda

# Расширить ext4 онлайн (при смонтированном /)
sudo resize2fs /dev/vda1

# Проверить
df -hT
lsblk -f

resize2fs умеет онлайн-расширение ext4, если раздел смонтирован в rw. Если вы увеличиваете не корень, а, например, /var или /home, порядок тот же. Главное — сначала расширить раздел (growpart), затем файловую систему (resize2fs).

Сценарий B: один раздел XFS без LVM

XFS расширяется только онлайн и только в смонтированном состоянии. Используем growpart для раздела и xfs_growfs для ФС.

# Убедитесь, что установлен пакет с xfs_growfs (обычно xfsprogs)
sudo xfs_info /

# Предположим, /dev/nvme0n1p1 — корневой раздел XFS
sudo growpart /dev/nvme0n1 1
sudo partprobe /dev/nvme0n1

# Расширяем ФС на весь доступный размер раздела (указываем точку монтирования)
sudo xfs_growfs /

# Проверяем
df -hT
sudo xfs_info /

Для XFS рекомендуют явно указывать точку монтирования (/path), хотя можно и устройство. Если расширяется не корень, замените / на нужную точку.

Сценарий C: LVM поверх одного раздела

Самый популярный прод-сценарий: диск → раздел → PV → VG → LV → ФС. Здесь цепочка длиннее, но тоже выполняется онлайн.

# Пример: /dev/vda2 — физический том LVM (PV) для VG=vg0, LV=lv_root

# 1) Расширяем раздел
sudo growpart /dev/vda 2
sudo partprobe /dev/vda

# 2) Расширяем физический том LVM
sudo pvresize /dev/vda2

# 3) Увеличиваем логический том (на весь свободный space)
sudo lvextend -l +100%FREE /dev/vg0/lv_root

# 4a) Если ext4 — расширяем ФС
sudo resize2fs /dev/vg0/lv_root

# 4b) Если XFS — расширяем ФС
sudo xfs_growfs /mnt_or_root

# Проверяем
sudo lvs -a -o +seg_size,seg_start_pe
df -hT

Вместо двух шагов 3–4 можно использовать lvextend -r (auto-resize FS), но на проде лучше иметь явный контроль над файловой системой:

# Автоматическое расширение ФС вместе с LV
sudo lvextend -l +100%FREE -r /dev/vg0/lv_root

Если в VG несколько LV, решите заранее, какой из них получит свободное место. Можно распределить точечными значениями, например -L +20G, вместо «всё свободное».

Диаграмма LVM: PV→VG→LV и команды pvresize/lvextend

Сценарий D: несколько разделов, нужный — последний

Если у вас несколько разделов, и расширять нужно именно последний — всё просто: применяйте growpart к нему, затем растите ФС. Если раздел не последний, без переноса данных и сложных манипуляций (например, LVM, pvmove или бэкап → перестройка) онлайн-расширение проблематично. На практике для гибкости рекомендуют мигрировать на схему с LVM, чтобы в будущем масштабировать без танцев с разделами.

GPT vs MBR, имена устройств и номера разделов

Нюансы, которые часто путают:

  • MBR ограничен 2 ТБ на диск. Для больших дисков используйте GPT.
  • У NVMe дисков разделы имеют суффикс p: /dev/nvme0n1p1, /dev/nvme0n1p2.
  • У virtio/SCSI обычно /dev/vda1, /dev/sda1.
  • growpart принимает номер раздела, а не имя устройства: growpart /dev/vda 1, growpart /dev/nvme0n1 1.

Если вы предпочитаете parted, можно использовать resizepart в неинтерактивном режиме. Но growpart прозрачнее и аккуратнее работает с границами разделов в типовых шаблонах облачных образов.

Проверки до/после и телеметрия

Сравните состояние до и после операций:

lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
sudo pvs; sudo vgs; sudo lvs -a -o +devices
sudo xfs_info /        # если XFS
sudo dumpe2fs -h /dev/mapper/vg0-lv_root | grep -i 'block count\|block size'  # если ext4

Нагрузочные сервисы (БД, очереди) сохранят доступность, но на период растягивания ФС возможны кратковременные пики I/O. Планируйте окно низкой нагрузки, если к задержкам крайне чувствительны.

Частые ошибки и как их избежать

  • Запуск resize2fs или xfs_growfs без расширения раздела. Сначала growpart, затем расширение ФС.
  • Забыли pvresize в LVM-сценарии. Без этого VG не увидит новые PE, lvextend вернёт нехватку места.
  • Расширение не последнего раздела. Планируйте миграцию в LVM или переразметку с бэкапом.
  • Несоответствие устройства. Путают /dev/vda и /dev/vda1, /dev/nvme0n1 и /dev/nvme0n1p1. Проверяйте lsblk -f.
  • Зашифрованные тома (LUKS) забыли расширить. Порядок иной: раздел → LUKS (cryptsetup resize) → PV → VG → LV → ФС.
  • Нет бэкапа. Даже при онлайн-операциях необходима точка возврата.

Пакеты и команды по дистрибутивам

  • Debian/Ubuntu: cloud-guest-utils для growpart, xfsprogs для XFS, lvm2 для LVM.
  • RHEL/CentOS/Alma/Rocky: cloud-utils-growpart, xfsprogs, lvm2.
# Debian/Ubuntu
sudo apt update
sudo apt install -y cloud-guest-utils xfsprogs lvm2

# RHEL/CentOS/Alma/Rocky
sudo yum install -y cloud-utils-growpart xfsprogs lvm2

Мини-чеклисты команд

ext4 без LVM

lsblk -f
sudo growpart /dev/vda 1
sudo partprobe /dev/vda
sudo resize2fs /dev/vda1
df -hT

XFS без LVM

lsblk -f
sudo growpart /dev/nvme0n1 1
sudo partprobe /dev/nvme0n1
sudo xfs_growfs /
df -hT

LVM (ext4)

lsblk -f; sudo pvs; sudo vgs; sudo lvs
sudo growpart /dev/vda 2
sudo partprobe /dev/vda
sudo pvresize /dev/vda2
sudo lvextend -l +100%FREE /dev/vg0/lv_data
sudo resize2fs /dev/vg0/lv_data

LVM (XFS)

lsblk -f; sudo pvs; sudo vgs; sudo lvs
sudo growpart /dev/vda 2
sudo partprobe /dev/vda
sudo pvresize /dev/vda2
sudo lvextend -L +50G /dev/vg0/lv_logs
sudo xfs_growfs /var/log

Наблюдаемое поведение и безопасность

Операции «resize» обычно быстрые: growpart мгновенный, resize2fs на ext4 работает пропорционально размеру ФС и может занять минуты на очень больших томах; xfs_growfs как правило работает быстро. На загруженных системах планируйте окно, когда дисковая подсистема не забита.

Важно: операции расширения увеличивают доступное пространство, но не исправляют физические проблемы накопителя. Следите за SMART/health метриками, I/O задержками и лимитами хранилища в облаке.

Траблшутинг

  • growpart жалуется на несогласованность таблицы разделов. Проверьте, что раздел — последний, и диск действительно увеличен на уровне гипервизора. Иногда помогает sgdisk -e для восстановления GPT backup header (делайте бэкап перед операцией).
  • resize2fs: Not enough space. Значит, раздел не расширен. Проверьте fdisk -l, lsblk.
  • pvresize: Failed to read PV. Убедитесь, что указываете именно PV-устройство (например, /dev/vda2), а не whole disk.
  • xfs_growfs: new size equal to old size. Раздел не вырос или LV не увеличен (в LVM-сценарии). Проверьте выходные данные lvs.

Полезно к прочтению: тюнинг ext4/XFS на VDS и снапшоты LVM для горячих бэкапов.

Итоги

Онлайн-расширение диска на VDS — рутинная операция: расширяем устройство на стороне гипервизора, убеждаемся, что ядро видит новый размер, увеличиваем последний раздел через growpart, затем расширяем файловую систему — resize2fs для ext4 или xfs_growfs для XFS. В LVM добавляются шаги pvresize и lvextend. При аккуратной подготовке и проверках всё выполняется без простоя и перезагрузки.

Поделиться статьей

Вам будет интересно

Fail2ban 2025: защита от SSH brute force и nginx basic auth, настройка bantime/ignoreip и отладка OpenAI Статья написана AI (GPT 5)

Fail2ban 2025: защита от SSH brute force и nginx basic auth, настройка bantime/ignoreip и отладка

Fail2ban в 2025 всё так же спасает от перебора паролей: читает логи, находит ошибки входа и банит IP через фаервол. В статье — нас ...
2FA для SSH и sudo на Linux: TOTP через pam_google_authenticator без лишней боли OpenAI Статья написана AI (GPT 5)

2FA для SSH и sudo на Linux: TOTP через pam_google_authenticator без лишней боли

Практический гайд по внедрению TOTP-2FA в Linux через pam_google_authenticator: установка, создание секрета, настройка PAM и OpenS ...
SLO-мониторинг с node_exporter и blackbox_exporter: latency, доступность и error budget OpenAI Статья написана AI (GPT 5)

SLO-мониторинг с node_exporter и blackbox_exporter: latency, доступность и error budget

Пошагово собираем SLO-мониторинг на Prometheus: node_exporter для диагностики хоста и blackbox_exporter для внешних проверок. Счит ...