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

RU

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

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

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

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

Сначала необходимо понять уровни абстракции диска LVM.

Физический том (PV) — физический уровень. Физические диски инициализируются для использования в LVM.

Группа томов (VG) — уровень группы томов. Инициализированные диски объединяются в логические группы с именем.

Логический том (LV) — логический том создается на группе томов, которая содержит файловую систему и данные.

т lvm

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

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

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

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

 Installing-the-lvm2-utility

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

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

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

fdisk -l

fdisk-1

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

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

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

pvcreate /dev/vdb /dev/vdc

 pvcreate-initialisation

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

pvdisplay

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

  • 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:

pvdisplay

Как видите, диски объединены в группу 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:

pvdisplay

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

  • 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

 fajlovaya

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

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

test-directory

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

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

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

nano /etc/fstab

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

/dev/test/test1 /var/www/home ext4 defaults 1 2

fstab-with-some-elements

После этого вы можете смонтировать том с помощью команды 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:

 lsblk command

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

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

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

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

pvcreate /dev/ourdisk — инициализация диска для lvm

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

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

lvextend -L10G /dev/test/test1

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

Current-LVM-extending

Еще несколько примеров включения раздела 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

File system reduction

Уменьшим раздел файловой системы на 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

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

Size-decresing

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

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

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

lvremove /dev/test/test1

Remove-logical-group

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

# 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.

VPS Linux

VPS-хостинг с виртуализацией KVM

Удаленный доступ/управление

Готовое решение

Виртуализация KVM

Поддержка 24 часа в сутки