Как увеличить LVM-диск на Ubuntu Server

О чём эта статья
Кратко объясняю, зачем нужен LVM, как увеличить логический том во время установки и после установки Ubuntu Server, какие команды и проверки выполнять, а также привожу чеклист для администратора, возможные ошибки и быстрый шпаргалку по командам.
Ключевые преимущества логических томов
LVM (Logical Volume Manager) — это утилита для гибкого управления разделами и объёмами диска в Linux. Коротко:
- Эффективность: тома можно увеличивать/уменьшать без создания новых разделов.
- Без перезагрузки: большинство операций с LV выполняются на «живой» системе.
- Объединение дисков: данные можно распределять по нескольким физическим дискам в составе одного Volume Group.
Короткое определение: PV — физический том (физический диск/раздел), VG — группа томов (объединённый пул), LV — логический том (раздел для файловой системы).
Во время установки Ubuntu Server: почему лучше задать размер сразу
При конфигурации хранилища в установщике Ubuntu Server вы увидите разделы LVM. Выберите ubuntu-lv, нажмите Enter → Edit и укажите желаемый размер. Установщик покажет текущий присвоенный размер и максимально доступный в VG.
Пример: текущий диск 25 ГБ, максимум доступного для LV — 22.996 ГБ, а используемый сейчас — 11.496 ГБ. Чтобы использовать весь пул, введите значение, равное максимуму, или задайте своё.
Совет: если сервер новый и вы уверены в требуемом объёме, выделите больше места сразу — это проще, чем дробить позже.
После установки: как расширить LVM на работающем сервере
Ниже — последовательность действий с проверками и командами. Все команды требуют прав root (sudo).
- Посмотреть группы томов и доступное место в VG:
sudo vgdisplayОбратите внимание на параметры:
- VG Size — общий размер группы томов (например, 23 ГБ)
- Alloc PE / Size — выделенные единицы (показывает, сколько уже занято в VG)
- Free PE / Size — свободные единицы в VG, которыми можно расширить LV
Важно: команда df показывает только размер монтированной файловой системы (allocated), поэтому она не отражает свободное место в VG.
- Найдите точный путь логического тома (LV):
sudo lvdisplayЭтот вывод покажет путь вида /dev/ubuntu-vg/ubuntu-lv или /dev/mapper/ubuntu–vg-ubuntu–lv.
- Расширьте логический том, используя свободное место в VG. Пример — использовать 100% свободного пространства:
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lvПояснения:
- -l +100%FREE — добавить все доступные PE из VG
- Можно указывать процент (например, +50%FREE) или размер: -L +10G
- Расширьте файловую систему, чтобы ОС увидела новый размер. Команда зависит от типа ФС:
Для ext4/ext3/ext2:
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lvДля XFS (обычно на современных системах):
sudo xfs_growfs /(если том смонтирован в корне — указание точки монтирования «/» удобно; для других точек указывайте путь монтирования)
- Проверьте результат:
df -h
sudo lvs -a -o +devicesТеперь df должен показать увеличенный размер корневого тома.
Быстрая шпаргалка по командам (cheat sheet)
- Просмотреть группы томов: sudo vgdisplay
- Просмотреть логические тома: sudo lvdisplay
- Просмотреть краткую таблицу LV: sudo lvs
- Расширить LV: sudo lvextend -l +100%FREE /dev/
/ - Расширить FS ext4: sudo resize2fs /dev/mapper/
- - Расширить FS XFS: sudo xfsgrowfs <точкамонтирования>
- Добавить новый PV (диск/раздел) в VG: sudo pvcreate /dev/sdX && sudo vgextend
/dev/sdX
Рекомендации по безопасности и резервным копиям
- Всегда делайте резервную копию критичных данных перед операциями с томами.
- Проверяйте SMART-диск перед добавлением его в VG (smartctl).
- Если используете RAID, убедитесь в синхронизации перед изменением PV.
Важно: операции с PV/LV потенциально опасны при сбое диска. Рекомендуется тестовая репликация или снапшоты, если есть возможность.
Когда расширение не срабатывает — типичные причины и решения
- Нет свободного места в VG: добавьте диск/раздел в VG через pvcreate + vgextend.
- Файловая система не поддерживает онлайн-расширение: ext4 поддерживает resize2fs онлайн в большинстве случаев, XFS требует xfs_growfs и том должен быть смонтирован. Некоторые старые ФС требуют отмонтирования.
- Неправильный путь LV: используйте lvdisplay и df -h чтобы сверить имена (/dev/ubuntu-vg/ubuntu-lv vs /dev/mapper/ubuntu–vg-ubuntu–lv).
- Ошибки при resize2fs: проверьте целостность файловой системы через e2fsck (может потребоваться отмонтирование).
Альтернативные подходы
- Без LVM: если вы не используете LVM, можно расширять разделы с помощью growpart/parted и затем resize2fs. Это менее гибко и чаще требует перезагрузки.
- Создать новый LV и перенести данные: можно создать новый логический том и смонтировать его в /srv или другом каталоге, затем перенести данные и обновить fstab.
- Использовать LVM snapshot для кратковременных бэкапов перед изменением тома.
Ментальные модели и эвристики
- «VG — это пулик, LV — корзина»: думайте о VG как о пуле ресурсов и LV как о контейнерах, которые потребляют эти ресурсы.
- Планируйте рост: выделяйте немного больше, чем нужно сегодня, чтобы избежать частых операций расширения.
- Разделяйте данные по назначению: логи, БД и пользовательские файлы — в разные LV для удобного управления и резервирования.
Чеклист для администратора перед расширением LV
- Сделана свежая резервная копия
- Проверить свободный PE в VG (sudo vgdisplay)
- Проверить тип файловой системы (mount | grep “on /“)
- Убедиться, что расширение FS поддерживается онлайн
- План отката: как вернуться к исходному состоянию при ошибке
Критерии приёмки
- Размер LV/FS отображается в df -h и соответствует ожидаемому.
- Службы, использующие файловую систему, запущены и корректно работают.
- Логи ошибок отсутствуют в syslog/journal после операции.
Примеры ошибок и как их диагностировать
- «No space left on device» после расширения: возможно, расширили LV, но забыли resize файловой системы.
- Ошибка resize2fs: проверьте, не требуется ли предварительное выключение сервиса или отмонтирование. Запустите e2fsck для проверки целостности.
Decision flow (упрощённый): стоит ли расширять LV?
flowchart TD
A[Сервер: мало места?] --> B{Есть LVM?}
B -- Да --> C{Есть свободные PE в VG?}
B -- Нет --> D[Использовать parted/growpart или перейти на LVM]
C -- Да --> E[lvextend + resize FS]
C -- Нет --> F[Добавить диск -> pvcreate -> vgextend -> lvextend -> resize FS]
E --> G[Проверить df и службы]
F --> G
D --> GКороткая галерея типичных команд — шпаргалка
- sudo vgdisplay
- sudo lvdisplay
- sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
- sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
- sudo resize2fs /dev/mapper/ubuntu–vg-ubuntu–lv
- sudo xfs_growfs /
FAQ
Можно ли уменьшить логический том (LV) без потерь данных?
Да, но уменьшение — рискованная операция: сначала нужно уменьшить файловую систему (иногда требуя отмонтирования), затем уменьшить LV. Всегда делайте резервную копию.
Как добавить новый физический диск в VG?
Подготовьте диск: sudo pvcreate /dev/sdX, затем sudo vgextend
Нужно ли перезагружать сервер после расширения LV?
Обычно нет. Большинство операций выполняются онлайн. Исключение — когда файловая система не поддерживает онлайн-расширение или требуется проверка диска.
Короткая сводка и рекомендации
- LVM даёт гибкость и удобство при управлении дисковым пространством.
- При нехватке места сначала проверьте vgdisplay — возможно, свободное место уже есть.
- Всегда расширяйте файловую систему после расширения LV.
- Делайте резервные копии и план отката перед операциями с диском.
Итог: расширить LVM на Ubuntu Server просто — главное понять, есть ли свободные PE в VG или нужно добавить физический диск, и затем выполнить lvextend + resize соответствующей ФС.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone