LVM - шпаргалка
Logical Volume Manager (LVM) - это очень мощная система управления томами с данными для Linux. Она позволяет создавать поверх физических разделов (или даже неразбитых винчестеров) логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (т.е. как обычные разделы). LVM - это менеджер логических томов (англ. logical volume manager) — подсистема, позволяющая использовать разные области одного или нескольких жёстких дисков как один логический том. Работа LVM основана на Device Mapper - это подсистема ядра Linux, которая позволяет создавать виртуальные блочные устройства. В совокупности всё это позволяет нам абстрагироватся от физических устройств и устаревших разделов жестких дисков и создать удобную логическую структуру томов, а так же:
- объединять их в группы
- изменять размер
- перемещать данные
- делать снапшоты
- зеркалировать
- шифровать
… и многое другое. И всё это не останавливая работу системы.
Чтобы проиллюстрировать работу LVM приведу одну простую картинку.
Следующими командами можно увидеть какие блочные устройства доступны системе.
ls -l /dev/sd*
и
ls -l /dev/disk/by-id/
вывод этих команд показан на снимке и может отличаться в вашем случае
Физический том (Physical volume, PV)
Физический том - это раздел диска или весь диск. Создать физический том - означает пометить раздел (или диск) как используемый для структуры LVM.
Если для физического тома используется целое дисковое устройство, на диске не должно быть таблицы разделов.
В нашем случае у нас для LVM используется устройство /dev/sda2
. И мы собираемся использовать всё его пространство. Пометим его как устройство LVM - то есть создадим из него физический том LVM.
Выполняем команду для создания physical volume, указывая какой диск мы помечаем как устройство LVM:
pvcreate /dev/sda2
Чтобы увидеть созданный physical volume используйте команду pvdisplay
pvdisplay
Группа томов (Volume Group, VG)
Физические тома объединяются в группы, что позволяет создать единое дисковое пространство, из которого будет выделяться место для логических томов.
В пределах группы пространство разделяется на блоки фиксированного размера — экстенты. Размер экстента является минимальным размером, который может быть выделен тому. На уровне физических томов используется понятие физических экстентов.
Логическому тому будут выделяться логические экстенты, размер которых равен размеру физических экстентов. То есть размер экстентов всегда один и тот же для всех логических томов в группе. Группа томов определяет соответствие логических экстентов физическим.
Когда физические тома используются для создания группы томов, ее дисковое пространство по умолчанию делится на экстенты размером 4 МБ. Этот размер является минимальным, на которую логический том может быть увеличен или уменьшен в размере. Большое количество экстентов не повлияет на производительность ввода-вывода логического тома.
Для создания группы томов используется следующая команда:
vgcreate vg0 /dev/sda2
где vg0 - это название группы.
И опять же, чтобы увидеть параметры созданной группы можно воспользоваться командой vgdisplay
.
vgdisplay
Логический Том (Logical Volume, LV)
Существует три типа логических томов: линейные, с чередованием и зеркальные.
Линейный том
Объединяет несколько физических томов. Например, при наличии двух дисков размером 60 гигабайт можно создать логический том размером 120 гигабайт.
Том с чередованием
При записи данных в логический том файловая система размещает их в физических томах в его основе. Чередование позволяет повысить производительность при выполнении большого объема последовательных операций ввода-вывода. При чередовании данные последовательно распределяются между заранее определенным числом физических томов, поэтому операции ввода и вывода могут выполняться параллельно. В некоторых случаях производительность даже может сравниться с линейной организацией.
Зеркальный том
Зеркало содержит устройства с идентичными копиями данных. При записи данных на одно устройство их копия также записывается на другое, что облегчает восстановление в случае выхода из строя одного из устройств. В случае сбоя одной составляющей зеркала логический том будет преобразован в линейный и продолжит работу.
Нам требуется создать два логических тома: root
и swap
.
Последовательно выполняем две команды:
lvcreate -L1G -n swap vg0
где -L1G
- размер тома, -n
имя тома, а vg0
название ранее созданной группы, в которую мы помещаем том.
lvcreate -l 100%FREE -n root vg0
где -l 100%FREE
означает, что мы занимаем всё оставшееся свободное место.
Теперь мы сделали Всё, что необходимо для установки ОС. Мы создали две партиции - загрузочную и LVM. На LVM разместили логические тома swap и root, при этом объединили их одной группой. Можно возвращаться в установщик заканчивать инсталяцию ОС. Но сделать это нужно правильно. Читайте дальше как именно.
lvdisplay
Краткая информация
pvs
vgs
lvs
Порядок создания
pvcreate /dev/sda /dev/sdb
*инициализирует диски /dev/sda /dev/sdb для LVM
vgcreate vg01 /dev/sda /dev/sdb
*создаст группу томов vg01 на /dev/sda /dev/sdb
lvcreate -L 1G -n lv01 vg01
*создаст логический том lv01 на 1Гб
lvcreate -l 40%VG -n lv01 vg01
*создаст логический том lv01 на 40% от места в vg01
lvcreate -l 100%FREE -n lv01 vg01
*создаст логический том lv01 на 100% от свободного места в vg01
mkfs.ext4 /dev/vg01/lv01
*создать файловую систему на lv01
mount /dev/vg01/lv01 /mnt
*примонтировать lv01 к /mnt
Увеличение томов
2 способа: Добавление нового диска к группе томов или Увеличение логического раздела, далее увеличение размера файловой системы.
1) Добавление нового диска к группе томов
pvcreate /dev/sdd
vgextend vg01 /dev/sdd
*расширить vg01 за счет добавления диска sdd
2) Увеличение логического раздела
lvextend -l +100%FREE /dev/vg01/lv01
*расширит lv01 на все доступное свободное пространство из vg01
Увеличение размера файловой системы
resize2fs /dev/vg01/lv01
*расширит файловую систему на lv01 до максимума, работает только на ext2/ext3/ext4
Уменьшение томов
Перед уменьшением надо отмонтировать, а для системного раздела грузиться с LiveCD.
Уменьшение файловой системы
umount /mnt
*отмонтирует /mnt
e2fsck -fy /dev/vg01/lv01
*проверка lv01 на ошибки файловой системы
resize2fs /dev/vg01/lv01 200M
*указывается итоговый размер lv01, минус 40Мб
Уменьшение размера тома
lvreduce -L-50mb /dev/vg01/lv01
*вырежет 50 мегабайт
lvreduce -l-50%FREE /dev/vg01/lv01
*вырежет 50% свободного места
lvreduce -L 50mb /dev/vg01/lv01
*сделает логический том равный 50 мегабайт
Удаление томов
umount /mnt
nano /etc/fstab
Закомментировать строчку с монтированием тома
#/dev/vg01/lv01 /mnt ext4 defaults 1 2
lvremove /dev/vg01/lv01
Остальное
lvmdiskscan
*поиск всех устройств, имеющих отношение к LVM
resize2fs -P /dev/sda1
*покажет минимальный размер файловой системы
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.