🔥Новое видео с Андреем Бурановым по администрированию дисковых систем: работа с LVM уже на канале
Вебинар про LVM в Linux: архитектура (PV, VG, LV), изменение размеров разделов на лету и перенос данных на RAID без остановки сервисов. Смотрите полную запись на любой платформе.
↘️ Смотреть в YouTube
↘️ Смотреть в ВК
Краткий конспект 👇🏼
1. Проблемы классической разметки
При работе с классическими разделами (`/dev/vdb1`, `/dev/vdb2`) администратор жёстко ограничен их физическими границами:
• увеличить можно только последний раздел на диске;
• сдвиг начала раздела ломает суперблок ФС (у ext4 он смещён на 1024 байта, у XFS — в первом секторе) — раздел становится нерабочим;
• любые перемещения блоков требуют остановки служб и размонтирования.
Алгоритм увеличения последнего раздела (ext4):
partprobe # или kpartx — сообщить ядру об изменении таблицы разделов
resize2fs /dev/vdb3 # для ext4
xfs_growfs /mnt/point # для XFS
2. Архитектура LVM
PV (Physical Volume) — диск или раздел, инициализированный под LVM
VG (Volume Group) — пул из одного или нескольких PV
LV (Logical Volume) — раздел внутри VG, на нём создаётся ФС
Пространство делится на экстенты (PE) по 4 МБ — это минимальная единица выделения места.
pvs / pvdisplay
vgs / vgdisplay
lvs / lvdisplay
3. Создание LVM
pvcreate /dev/vde
vgcreate vgnew /dev/vde
lvcreate -n lv01 -L 100M vgnew
lvcreate -n lv02 -L 100M vgnew
lvcreate -n lv03 -L 100M vgnew
mkfs.ext4 /dev/mapper/vgnew-lv01
mount /dev/mapper/vgnew-lv01 /mnt/01
4. Изменение размера LV
Свободное место из VG можно добавить в любой LV независимо от порядка создания.
# в два шага
lvextend -L 200M /dev/vgnew/lv01
resize2fs /dev/mapper/vgnew-lv01
# в один шаг
lvextend -r -L 200M /dev/vgnew/lv02
Увеличивать ФС можно онлайн без проблем. А вот уменьшение почти нигде не поддерживается на лету: ext4 требует размонтирования, XFS не поддерживает вообще.
5. Перенос на RAID-1 без остановки сервисов
Задача: перенести данные с диска /dev/vde (в VG vgnew`) на зеркало RAID-1 из `/dev/vdb1 и /dev/vde.
# 1. деградированный RAID-1 на одном диске
mdadm --create /dev/md127 --level=1 --raid-devices=2 missing /dev/vdb1
# 2. добавляем массив в VG
vgextend vgnew /dev/md127
# 3. переносим данные онлайн — ФС остаётся доступна на чтение и запись
pvmove /dev/vde
# 4. убираем старый диск из VG
vgreduce vgnew /dev/vde
pvremove /dev/vde
# 5. добавляем освободившийся диск в массив — начнётся синхронизация
mdadm --manage /dev/md127 --add /dev/vde
При сбое питания pvmove просто начнётся заново — данные не теряются.
6. Тонкие тома и альтернативы
Thin-тома дают overcommit места: физически занимается только то, что реально записано. Удобно для образов ВМ и снапшотов. Но из VG с thin pool почти невозможно безопасно вывести PV — теряется главное преимущество LVM: гибкая миграция дисков.
ZFS и Btrfs сами совмещают RAID, менеджер томов и ФС — LVM поверх них смысла не имеет.
Ключевые выводы
LVM — стандарт де-факто для серверов на Linux: снимает жёсткие границы классических разделов
lvextend -r расширяет том и ФС одной командой без остановки сервисов; уменьшение — почти всегда офлайн-операция
pvmove переносит данные между дисками онлайн — так можно менять диски или переезжать на RAID без простоя
связка mdadm + LVM — стандартное решение для отказоустойчивости в production
Если хочешь узнать больше, начни с бесплатного демодоступа к практикумам:
🔥Начать Linux Basics
🔥Начать Linux: Анализ производительности и тюнинг
🔥Начать Повышение привилегий в Linux