*КУБ — полный комплекс облачных услуг!

Настройка и управление разделами LVM в Linux

Linux
Настройка и управление разделами LVM в Linux

LVM (Logical Volume Manager) — это подсистема операционных систем Linux, которая позволяет использовать различные участки жесткого диска или несколько жестких дисков в качестве одного логического тома. LVM встроен в ядро Linux и реализован с помощью устройства-маппера.

Основными преимуществами LVM являются высокий уровень абстракции от жёстких дисков, гибкость и масштабируемость. Вы можете изменять размер логического тома во время работы, а также добавлять (и удалять) новые диски. Для томов LVM поддерживаются зеркалирование, снимки (постоянные снимки) и чередование (распределение данных между несколькими дисками для повышения производительности).

В этой статье мы рассмотрим использование разделов LVM на примере Linux CentOS 8, покажем процесс объединения двух дисков в одну группу LVM, узнаем, как создавать группы, тома, монтировать, расширять и уменьшать размер разделов LVM. Подобные операции чаще всего выполняются на Linux VPS, где LVM используется для гибкого управления дисковым пространством, масштабирования хранилища и упрощения администрирования серверов.

Сначала необходимо понять уровни абстракции диска LVM.
Физический том (PV) — физический уровень. Физические диски инициализируются для использования в LVM.
Группа томов (VG) — уровень группы томов. Инициализированные диски объединяются в логические группы с именем.
Логический том (LV) — логический том создается на группе томов, которая содержит файловую систему и данные.

LVM

Установка утилиты lvm2

Чтобы начать работу с LVM, необходимо установить утилиту lvm2. Выполним следующие команды:

apt-get install lvm2 — для Ubuntu, Mint, Debian

yum install lvm2 — для CentOS, Red Hat, Fedora

Встановлення утиліти lvm2

В разных версиях Linux отличается только способ установки утилиты lvm2 (установка с помощью yum/dnf или apt-get), дальнейшие команды для работы с LVM одинаковы.

Создание разделов LVM

Итак, у нас есть виртуальная машина KVM, к которой подключены два дополнительных диска. Проверьте, доступны ли они в системе, с помощью команды:

fdisk -l

Створення розділів LVM

Как видите, у меня есть два доступных диска /dev/vdb и /dev/vdc.

При настройке LVM на вашем виртуальном или физическом сервере используйте метки дисков.

Чтобы диски были доступны для LVM, их необходимо маркировать (инициализировать) с помощью утилиты pvcreate:

pvcreate /dev/vdb /dev/vdc

налаштування LVM

Теперь, чтобы убедиться, что эти диски можно использовать для LVM, выполните команду pvdisplay:

диски можна використовувати для LVM

Как видите, отображаются оба диска. Проанализируем информацию из вывода команды:

  • PV Name — название диска или раздела
  • VG Name — группа томов, к которой принадлежит этот диск (мы ещё не создали группу)
  • PV Size — размер диска или размер
  • Allocatable — распределение по группам. В нашем случае распределения не было, поэтому указано NO
  • PE Size — размер физического фрагмента. Если диск не добавлен ни в одну группу, значение всегда будет 0
  • Total PE — количество физических фрагментов
  • Free PE — количество свободных физических фрагментов
  • Allocated PE — распределенные фрагменты

PV UUID — идентификатор раздела

С помощью команды pvscan можно сканировать диски на наличие PV.

Следующим шагом является создание группы томов. Для создания групп томов используется команда vgcreate. Чтобы объединить ранее обозначенные диски, используйте команду:

# vgcreate test /dev/vdb /dev/vdc

Группа томов «test» успешно создана

Чтобы проверить результат, введите vgdisplay:

перевірити результат

Как видите, диски объединены в группу test, а VG Size показывает общий размер дисков.

Давайте проанализируем информацию из вывода команды vgdisplay:

  • VG Name — группа томов, к которой принадлежит этот диск.
  • Format — версия подсистемы LVM, используемая для создания группы (в нашем случае версия 2)
  • Metadata Areas — область метаданных
  • VG Access — уровень доступа к группе логических томов
  • VG Size — общий объём дисков, входящих в группу
  • PE Size — размер физического фрагмента
  • Alloc PE / Size — выделенное пространство (количество и объем фрагментов)
  • VG UUID — идентификатор группы

После создания общей группы для дисков мы можем создать логический том в этой группе. Для создания тома используется команда lvcreate.

Чтобы создать логический том определённого размера и с определённым именем в вашей группе, используйте команду:

# lvcreate -L 5G test

Логічний том «lvol0» створено.

Как видно из вывода, в группе test создан логический том с именем lvol0 и размером 5G.

Если вы хотите самостоятельно задать имя, используйте флаг -n:

# lvcreate -L 5G -n test1 test

Логічний том «test1» створено

Некоторые примеры создания логических томов разного размера:

lvcreate -l 40%VG test – 40% дискового пространства группы test

lvcreate -l 100%FREE test — использование всего свободного пространства группы test

Чтобы отобразить информацию о логическом томе, используйте lvdisplay:

відобразити інформацію про логічний том

Давайте посмотрим на вывод этой команды:

  • LV Path — путь к устройству логического тома (диск или раздел)
  • LV Name — имя логического тома
  • VG Name — имя группы томов
  • LV UUID — идентификатор логического тома
  • LV Write Access — уровень доступа к логическому тому
  • LV Creation host, time — информация о хосте, дате создания логического тома
  • LV Size — размер диска, доступный для использования логическим томом
  • Current LE — количество логических фрагментов

LVM: создание файловой системы, монтирование логического тома

Чтобы создать файловую систему на логическом томе, используйте утилиту mkfs:

Создайте файловую систему ext4 на томе LVM:

mkfs.ext4 /dev/test/test1

створення файлової системи

Файловая система была создана без ошибок.
Теперь создадим тестовый каталог и подключим логический том к этому каталогу:

# mkdir
/var/www/home# mount /dev/test/test1 /var/www/home/

Тепер створимо тестовий каталог

Как видите, всё прошло без ошибок, и теперь каталог /var/www/home существует как отдельный раздел.

Чтобы логический том монтировался при загрузке системы, нужно добавить его в fstab и указать каталог для монтирования.

Откроем файл:

nano /etc/fstab

И добавим в него следующую информацию:

/dev/test/test1 /var/www/home ext4 defaults 1 2
додамо до нього

После этого вы можете смонтировать том с помощью команды mount -a:

# mount
-a# df -h

Filesystem Size Used Avail Use% Mounted on
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda2 20G 1.3G 19G 7% /
/dev/vda1 488M 100M 353M 23% /boot
tmpfs 100M 0 100M 0% /run/user/0
/dev/mapper/test-test1 4.8G 20M 4.6G 1% /var/www/home

Чтобы проверить общую информацию о дисках, разделах и томах, введите команду lsblk:

перевірити загальну інформацію

Как видите, отображается созданный нами том и указывается каталог, к которому он подключен.

Команда lvmdiskscan позволяет сканировать доступные диски, показывая их размер и принадлежность к LVM.

Расширение логического тома LVM

Чтобы добавить дополнительный диск в группу томов, нужно использовать уже знакомую схему:

pvcreate /dev/ourdisk – инициализация диска для LVM

vgextend test /dev/ourdisk — добавление диска в группу томов

Чтобы расширить логический том, используйте следующую схему:

lvextend -L10G /dev/test/test1

Таким образом вы расширите раздел на 10 ГБ.

Розширення логічного тому LVM

Ещё несколько примеров добавления раздела LVM:

lvextend -L 10G /dev/test/test1 – добавить 10 ГБ к вашему тому

lvextend -l 100%FREE /dev/test/test1 — распределить всё нераспределённое пространство в группе test

Остаётся увеличить раздел файловой системы:

resize2fs /dev/test/test1 – для ext4

xfs_growfs /dev/test/test1 – для xfs

Уменьшение размера томов LVM

LVM позволяет уменьшить размер тома. Но для безопасности при уменьшении размера раздела его необходимо отключить.

Смонтируем том из каталога:

umount /var/www/home/

Проверим диск:

e2fsck -fy /dev/test/test1

Зменшення обсягів LVM

Уменьшим размер раздела файловой системы на 4 ГБ:

# resize2fs /dev/test/test1 4G

resize2fs 1.42.9 (28-Dec-2013)
Зміна розміру файлової системи на /dev/test/test1 до 1048576 (4k) блоків.
Файлова система на /dev/test/test1 тепер має розмір 1048576 блоків.

# lvreduce -L-4G /dev/test/test1

ПОПЕРЕДЖЕННЯ: Зменшення активного логічного тому до 6,00 Гб.
ЦЕ МОЖЕ ЗНИЩИТИ ВАШІ ДАНІ (файлову систему тощо).
Ви дійсно хочете зменшити test/test1? [y/n]: y
Розмір логічного тому test/test1 змінено з 10,00 Гб (2560 розширень) до 6,00 Гб (1536 розширень).
Логічний том test/test1 успішно змінено.

Теперь уменьшим размер самого тома LVM:

lvreduce -L-4G /dev/test/test1

После этого нужно снова смонтировать том и проверить его текущий размер:

знову змонтувати том

Как видите, размер уменьшился до 4 ГБ.

Удаление групп и томов LVM

Чтобы удалить тома LVM, воспользуйтесь командой lvremove:

lvremove /dev/test/test1

Видалення груп і томів LVM

Чтобы удалить логическую группу томов, воспользуйтесь командой:

# vgremove test

Група томів «test» успішно видалена

Удаление меток с дисков LVM:

# pvremove /dev/vdb /dev/vdc

Мітки на фізичному томі «/dev/vdb» успішно видалені.
Мітки на фізичному томі «/dev/vdc» успішно видалені.

Создание зеркальных томов LVM

LVM позволяет создавать зеркальные тома для повышения отказоустойчивости системы хранения данных. В зеркале LVM данные одновременно хранятся на двух (или более) физических дисках (аналогично RAID-1). Процедура создания зеркального тома в LVM.

  1. Инициализация дисков: pvcreate /dev/sd{b,c}
  2. Создание группы LVM: vgcreate mirror1 /dev/sd{b,c}
  3. Создание зеркального тома LVM: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1

Инструменты LVM очень просты в использовании, с их помощью вы можете легко управлять томами, разбивать их на нужные размеры и легко использовать в соответствии со своими потребностями. В этой статье я постарался охватить все основные моменты работы с LVM.

Menu