Руководство по LVM в Linux для начинающих

Что такое диспетчер логических томов LVM?

LVM аккумулирует пространство, взятое из разделов или целых дисков, чтобы сформировать логический контейнер (Группа томов). Группа томов далее делится на логические разделы, называемые логическими томами.

Проще говоря, LVM группирует все ваше пространство хранения в пул и позволяет вам создавать тома (логические тома) из этого пула.

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

Вы также можете экспортировать и импортировать разделы. LVM также поддерживает зеркалирование и создание моментальных снимков логических томов.

Слои абстракции в LVM

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

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

  • Физический том,
  • Группа томов,
  • Логический том.

Физический том

Все начинается с физического диска. Физический том – это первый уровень абстракции, который LVM использует для идентификации диска, помеченного для операций LVM. Проще говоря, если вы хотите работать с LVM, ваш диск должен быть инициализирован как физический том. Это может быть целый диск или стандартные разделы, созданные на этом диске.

Группа томов

Группа томов – это комбинация всех физических томов. Допустим, у вас есть пять отдельных дисков размером 1 ТБ каждый. Сначала вы инициализируете пять дисков как физический том, а затем добавите их в группу томов.

Группа томов будет содержать 5 ТБ пространства, которое является пространством, доступным для всех физических томов. Из группы томов можно создать логические разделы.

Логические тома

Из пула пространства (группа томов) можно создать логические тома. Считайте, что это эквивалентно стандартному разделу диска.

Я использую сервер Ubuntu, запущенный в virtualbox для демонстрации. Если вы изучаете LVM впервые, проведите тестирование на любой виртуальной машине.

Внимание: Команды LVM требуют привилегий root. Выполняйте все команды либо от имени пользователя root, либо с привилегией sudo.

Шаг 1 – Инициализация физического тома

Я добавил три диска разного размера, в общей сложности 10G.

sudo lsblk /dev/sd[b-e]
  NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  sdb 8:16 0 2G 0 disk
  sdc 8:32 0 3G 0 disk
  sdd 8:48 0 5G 0 disk

Для инициализации любого диска как физического тома используйте команду pvcreate с именем устройства в качестве аргумента.

sudo pvcreate /dev/sdb /dev/sdc /dev/sdd
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
  Physical volume "/dev/sdd" successfully created.

Чтобы проверить список физических томов, вы можете выполнить любую из следующих команд. Каждая команда даст разные результаты.

PVDISPLAY – Команда pvdisplay даст вам подробную информацию о каждом физическом томе, под какой группой томов он находится, уникальный ID и доступный размер.

sudo pvdisplay

PVS & PVSCAN – Эти две команды показывают информацию, как физический объем, группа томов, выделенный и свободный размер.

sudo pvs

sudo pvscan

Шаг 2 – Создание группы томов

Теперь у меня есть три диска, инициализированные как физический том общим размером 10 ГБ. Эти физические тома должны быть добавлены в пул хранения, известный как группа томов.

Выполните команду vgcreate для создания группы томов. Вы должны передать имя для группы томов. Здесь я использую «myDisk» в качестве имени группы томов.

sudo vgcreate myDisk /dev/sd[b-d]
Volume group "myDisk" successfully created

Выполните любую из следующих команд для проверки сведений о группе томов.

sudo vgdisplay

или

sudo vgdisplay <имя группы томов>

Шаг 3 – Отображение сведений о группе томов

Команды vgs и vgscan предоставят вам информацию обо всех доступных группах томов, количестве физических томов и количестве логических томов, выделенных и свободных размерах группы томов.

sudo vgs
sudo vgscan

Шаг 4 – Создание логических томов

Как я уже говорил, логический том похож на разделы диска. Теперь у нас есть почти 10 ГБ свободного места в пуле «myDisk» (группа томов). На основе этой группы томов мы создадим логические тома, отформатируем том с файловой системой ext4, смонтируем и будем использовать том.

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

sudo lvcreate -L <volume-size> -n <logical-volume-name> <volume-group>

Здесь,

  • -L => размер в KB, MB, GB
  • -n => Имя для вашего тома
  • => Какая группа томов будет использоваться Сейчас я создаю логический том размером 3GB. Я назвал логический том «guides «.
sudo lvcreate -L 3GB -n guides myDisk
Logical volume "guides" created.

Шаг 5 – Просмотр информации о логических томах

Для просмотра информации о логических томах можно использовать любую из следующих команд.

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

lvdisplay

Или укажите имя логического тома явно:

lvdisplay guides

Команды lvscan и lvs также предоставят некоторую базовую информацию о логических томах.

lvscan
lvs

Шаг 6 – Форматирование и монтирование логических томов

Вам нужно отформатировать логический том с файловой системой и смонтировать его. Здесь я форматирую том с файловой системой ext4 и монтирую его в каталог /mnt/.

Вы должны увидеть файл устройства для логического тома под /dev/volume-group/logical-volume. В моем случае файл устройства будет /dev/myDisk/guides.

sudo mkfs.ext4 /dev/myDisk/guides
Creating filesystem with 786432 4k blocks and 196608 inodes
Filesystem UUID: a477d1b6-e806-451f-ab34-4be9978c1328
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Для монтирования каталога выполните следующую команду. Вы можете смонтировать каталог в любое место по своему усмотрению.

sudo mount /dev/ostechnix_files/guides /mnt/

Для просмотра смонтированных томов выполните:

mount | grep -i guides
  /dev/mapper/myDisk-guides on /mnt type ext4 (rw,relatime)

Вы также можете выполнить команду df, чтобы проверить информацию о смонтированной файловой системе. Вы можете увидеть, что файловая система названа именем тома. Вам будет довольно легко понять, что это за том и его группа с таким названием.

df -h /mnt/
  Filesystem Size Used Avail Use% Mounted on
  /dev/mapper/myDisk-guides 2.9G 9.0M 2.8G 1% /mnt

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

Что такое Fstab в Linux