Proxmox: расширение диска виртуальной машины с LVM
LVM (Logical Volume Manager) — это система управления дисками в Linux, которая добавляет гибкий уровень абстракции между физическими дисками и файловыми системами. В данной заметке рассмотрим, как расширить диск виртуальной машины в Proxmox, если внутри гостевой ОС используется LVM.
Структура LVM
LVM состоит из трёх уровней:
- Physical Volume (PV) — физический том (раздел диска)
- Volume Group (VG) — группа томов (пул из PV)
- Logical Volume (LV) — логический том (виртуальный диск)
Шаг 1: Увеличиваем диск в Proxmox
Вариант А: Через веб-интерфейс
- Выбираем нашу VM в списке.
- Переходим во вкладку Hardware.
- Нажимаем на Hard Disk (scsi0).
- Нажимаем Disk Action → Resize.
- Вводим количество добавляемого места, например
+20(добавит 20GB). - Нажимаем Resize disk.
Вариант Б: Через командную строку на хосте Proxmox
qm resize <vmid> scsi0 +20G
Шаг 2: Расширяем раздел и LVM внутри VM
# 1. Устанавливаем growpart, если ещё не установлен
sudo apt-get update
sudo apt-get install -y cloud-guest-utils
# 2. Расширяем 3й раздел на всё доступное пространство
sudo growpart /dev/sda 3
# 3. Проверяем, что раздел увеличился
lsblk
# 4. Расширяем физический том
sudo pvresize /dev/sda3
# 5. Проверяем доступное место в группе томов
sudo vgs
# 6. Расширяем логический том на всё свободное пространство
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
# 7. Расширяем файловую систему ext4
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
# 8. Проверяем результат
df -h
lsblk
Альтернативные варианты для шага 6
# Добавить конкретный объём
sudo lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv
# Расширить до конкретного размера
sudo lvextend -L 45G /dev/mapper/ubuntu--vg-ubuntu--lv
Для XFS вместо ext4 (шаг 7)
sudo xfs_growfs /
Проверка наличия LVM
# Проверяем, используется ли LVM
df -h | grep mapper
lsblk -f
# Информация о физических томах
sudo pvs
sudo pvdisplay
# Информация о группах томов
sudo vgs
sudo vgdisplay
# Информация о логических томах
sudo lvs
sudo lvdisplay
Важно
- Все операции безопасны и выполняются на работающей VM
- Потери данных не происходит
- Перезагрузка не требуется
- После
lvextendобязательно нужно выполнитьresize2fs, иначе ОС не увидит новое пространство - Для XFS вместо
resize2fsиспользуемxfs_growfs