Как расширить корневой раздел Linux LVM с использованием дополнительного хранилища на Linux
Введение
В этом руководстве вы расширите корневой раздел Linux Logical Volume Manager (LVM) путем добавления нового накопителя. Этот метод позволяет увеличить емкость диска без переустановки системы или остановки сервисов. Описан точный и безопасный процесс, подходящий для production систем, где ошибки могут привести к необратимой потере данных.
Предварительные требования
Целевая аудитория: начинающие системные администраторы
Оценочное время: 30–45 минут
Операционная система: Дистрибутив Linux с поддержкой LVM (протестировано на Debian 13)
Необходимое программное обеспечение:
- lvm2 (2.03.x или новее)
- util-linux (включает lsblk)
- e2fsprogs (для ext4) или xfsprogs (для XFS)
Требования к оборудованию:
- Один дополнительный пустой диск (например /dev/sdb)
Права доступа:
- Root или пользователь с правами sudo
Требования к сети:
- Не требуется
Предполагаемые знания:
- Базовое использование командной строки
- Понимание дисков и разделов
Конечная цель: к концу этого руководства вы расширите корневой логический том с использованием дополнительного хранилища без простоя.
Важно: цена ошибки неоценима. Одно неверное имя устройства может уничтожить все данные в системе. Всегда проверяйте каждую команду перед выполнением.
Если вы впервые работаете с LVM, отработайте эти шаги в тестовой среде.
Шаг 1: Проверка текущей конфигурации LVM
Выполните следующие команды для анализа текущей конфигурации LVM.
pvs отображает информацию о физических томах. Она показывает, какие диски или разделы инициализированы для LVM, а также сколько пространства доступно или используется на каждом физическом томе.
sudo pvs
Пример вывода:
PV VG Fmt Attr PSize PFree /dev/sda5 debian-lvm-vg lvm2 a-- 9.25g 36.00m
vgs отображает информацию о группах томов. Она показывает общий размер каждой группы томов, сколько пространства используется и сколько свободного пространства доступно для расширения.
sudo vgs
Пример вывода:
VG #PV #LV #SN Attr VSize VFree debian-lvm-vg 1 2 0 wz--n- 9.25g 36.00m
lvs отображает информацию о логических томах. Она показывает размер, имя и атрибуты каждого логического тома, включая корневой том, который вы будете расширять. You will extend partition using additional disk.
sudo lvs
Пример вывода:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root debian-lvm-vg -wi-ao---- <8.69g swap_1 debian-lvm-vg -wi-ao---- 544.00m
Ожидаемый результат:
- Вы видите корневой логический том, группу томов и физические тома
- Корневой логический том обычно смонтирован в
/
Шаг 2: Определение нового диска
Выведите список доступных дисков:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
Пример вывода:
NAME SIZE TYPE MOUNTPOINT sda 10G disk ├─sda1 759M part /boot ├─sda2 1K part └─sda5 9.3G part ├─debian--lvm--vg-root 8.7G lvm / └─debian--lvm--vg-swap_1 544M lvm [SWAP] sdb 5G disk sdc 5G disk sdd 5G disk
Ожидаемый результат:
- Новый диск, например /dev/sdb, отображается без разделов и файловой системы
Важно: убедитесь, что диск выбран правильно и пуст. Все существующие данные на этом диске будут уничтожены.
Шаг 3: Создание физического тома
Инициализируйте новый диск как физический том:
sudo pvcreate /dev/sdb
Ожидаемый результат:
- Команда успешно выполняется и сообщает о создании физического тома
Проверка:
sudo pvs
This allows you to add new storage to existing LVM.
Шаг 4: Расширение группы томов
Добавьте новый физический том в существующую группу томов:
sudo vgextend <VG_NAME> /dev/sdb
Ожидаемый результат:
- Размер группы томов увеличивается и включает новый диск
Проверка:
sudo vgs
Пример вывода:
VG #PV #LV #SN Attr VSize VFree debian-lvm-vg 2 2 0 wz--n- <19.25g 0
В столбце PV указано, что группа томов теперь включает новый диск.
Шаг 5: Расширение корневого логического тома
Расширьте корневой логический том, используя все доступное свободное пространство. To extend logical volume the lvextend command is used:
sudo lvextend -l +100%FREE /dev/<VG_NAME>/root
Ожидаемый результат:
- Размер логического тома успешно увеличивается
Шаг 6: Увеличение файловой системы
Увеличьте файловую систему, чтобы использовать дополнительное пространство.
Для ext4:
sudo resize2fs /dev/<VG_NAME>/root
Для XFS:
sudo xfs_growfs /
Ожидаемый результат:
- Файловая система расширяется в соответствии с новым размером логического тома
Шаг 7: Проверка расширения
Проверьте обновленный размер файловой системы:
df -h /
Ожидаемый результат:
- Корневая файловая система отражает увеличенную емкость
Подтверждение состояния LVM:
sudo lvs
sudo vgs
Проверка и тестирование
- Система остается работоспособной без перезагрузки
df -hпоказывает увеличенное доступное пространство- В системных логах отсутствуют ошибки:
dmesg | tail
Откат изменений
Откат возможен только если в новое пространство не были записаны критические данные.
- При необходимости уменьшите использование файловой системы
- Сожмите файловую систему, если поддерживается
- Уменьшите логический том:
sudo lvreduce /dev/<VG_NAME>/root - Удалите диск из группы томов:
sudo vgreduce <VG_NAME> /dev/sdb - Удалите физический том:
sudo pvremove /dev/sdb
Важно: уменьшение логических томов и файловых систем рискованно и может привести к потере данных. Избегайте этой операции в production, если это не абсолютно необходимо.
Устранение неполадок
- Команда завершается ошибкой "device not found": проверьте имя диска с помощью
lsblk - Группа томов не показывает свободного пространства: убедитесь, что
vgextendвыполнена успешно - Размер файловой системы не изменился: убедитесь, что используется правильный инструмент для типа файловой системы
- Ошибки доступа permission denied: убедитесь, что команды выполняются с sudo или от root
Заключение и следующие шаги
Вы успешно расширили корневой раздел с использованием LVM, добавив новый диск, расширив группу томов и увеличив файловую систему без простоя. Этот метод является ключевым для управления ростом хранилища в Linux средах.
Следующие шаги:
- Настроить LVM snapshots для резервного копирования
- Мониторить использование диска
- Изучить расширенные возможности LVM