администрирование,

LVM - коротко о главном

Jul 31, 2020 · 7 мин. на прочтение
LVM - коротко о главном
Поделиться

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

В конце статьи вы найдёте видео, в котором показаны все действия, которые я описываю в статье, а так же финальный шаг - установка ОС.

Что такое LVM

LVM - это менеджер логических томов (англ. logical volume manager) — подсистема, позволяющая использовать разные области одного или нескольких жёстких дисков как один логический том. Работа LVM основана на Device Mapper - это подсистема ядра Linux, которая позволяет создавать виртуальные блочные устройства. В совокупности всё это позволяет нам абстрагироватся от физических устройств и устаревших разделов жестких дисков и создать удобную логическую структуру томов, а так же:

  • объединять их в группы
  • изменять размер
  • перемещать данные
  • делать снапшоты
  • зеркалировать
  • шифоровать

… и многое другое. И всё это не останавливая работу системы.

Если после прочтения этой вводной статьи Вы захотите разобраться во всех аспектах LVM, то Вам будет полезно полное руководство по LVM от Red Hat. Все свои знания о LVM я почерпнул из этого источника. Моя статься содержит выдержки из него.

Чтобы проиллюстрировать работу LVM приведу одну простую картинку.

LVM-quick-start/1.png

Ничего, если она покажется вам непонятной. После прочтения моей статьи вам станет всё ясно.

Я исхожу из того, что вам уже приходилось размечать жёсткий диск на партиции, например утилитой fdisk или parted, и у вас есть понимание что это такое и для чего это нужно. И вы знаете, что такое точка монтирования, загрузочный раздел и т.п..

Во время установки ОС, разметку жесткого диска можно полностью отдать на откуп системы. Она сама сделает нужную конфигурацию на жёстком диски, создаст необходимые тома и точки монтирования. Но в целях обучения, мы сделаем это всё сами, на пустом жёстком диске. Для примера я буду использовать виртуальную машину под управлением VMware Workstation Player и операционную систему CentOS 8. Но всё тоже самое можно сделать из любого популярного дистрибутива Linux, используя любую систему виртуализации или на физическом оборудовании.

Создайте виртуальную машину и загрузитесь с установочного диска (ISO-образа). На первых же шагах установщика вызовите командную строку. Обычно, и в частности в CentOS, это делается комбинацией клавиш Ctrl+Alt+F2.

ВНИМАНИЕ. ДАЛЬНЕЙШИЕ ВЫПОЛНЕНИЕ ИНСТРУКЦИЙ БУДЕТ ДЕСТРУКТИВНО ДЛЯ ДАННЫХ. ДЕЙСТВУЙТЕ С УМОМ!

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

ls -l /dev/sd*

и

ls -l /dev/disk/by-id/

вывод этих команд показан на снимке и может отличаться в вашем случае

LVM-quick-start/2.png

Для установки Linux на LVM том нам нужно иметь минимум 3 раздела:

  1. Boot
  2. Root
  3. SWAP

Есть ряд причин, почему нельзя использовать LVM том в качестве загрузочного. Хотя это и работает, мы не будем так делать. Поэтому мы разобьём диск на две части - обычный раздел и LVM.

На скриншоте показана целевая конфигурация, которую мы создадим при помощи утилиты parted во время установки ОС.

LVM-quick-start/8.png

Внутри LVM партиции мы создадим два логических тома root и SWAP.

Итак, загрузившись с диска и перейдя в консоль наберите команду parted. А в ней напечатай p и нажмите Enter. Так мы убедимся, что имеем дело с нужным нам устройством.

LVM-quick-start/9.png

Далее последовательность ввода команд следующая

mklabel
msdos
mkpart
p
xfs
1049kB
1075MB
mkpart
p
ext4
1075MB
-1
set 1 boot on
set 1 lba off
set 2 lvm on
set 2 lba off
p

в результате получим 2 партиции, как показано на скриншоте.

LVM-quick-start/10.png

Выходим из parted набрав команду quit или q.

Обратите внимание на то, что теперь показывает команда ls -l /dev/sd*:

у нас появились устройства sda1 и sda2 - это и есть загрузочная и LVM партиции, соответственно.

LVM-quick-start/11.png

Для создания структуры LVM мы должны создать физический том, создать виртуальную группу томов и в ней создать логические тома. Читайте дальше и всё сейчас поймёте.

Физический том (Physical volume, PV)

Физический том - это раздел диска или весь диск. Создать физический том - означает пометить раздел (или диск) как используемый для структуры LVM.

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

В нашем случае у нас для LVM используется устройство /dev/sda2. И мы собираемся использовать всё его пространство. Пометим его как устройство LVM - то есть создадим из него физический том LVM.

Выполняем команду для создания physical volume, указывая какой диск мы помечаем как устройство LVM:

pvcreate /dev/sda2

Чтобы увидеть созданный physical volume используйте команду pvdisplay.

LVM-quick-start/12.png

Группа томов (Volume Group, VG)

Физические тома объединяются в группы, что позволяет создать единое дисковое пространство, из которого будет выделяться место для логических томов.

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

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

Когда физические тома используются для создания группы томов, ее дисковое пространство по умолчанию делится на экстенты размером 4 МБ. Этот размер является минимальным, на которую логический том может быть увеличен или уменьшен в размере. Большое количество экстентов не повлияет на производительность ввода-вывода логического тома.

Для создания группы томов используется следующая команда:

vgcreate vg0 /dev/sda2

где vg0 - это название группы.

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

LVM-quick-start/13.png

Логический Том (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 означает, что мы занимаем всё оставшееся свободное место.

При этом создастся линейный том, а команда lvdisplay продемонстрирует нам параметры созданных томов.

LVM-quick-start/14.png

Теперь мы сделали Всё, что необходимо для установки ОС. Мы создали две партиции - загрузочную и LVM. На LVM разместили логические тома swap и root, при этом объединили их одной группой. Можно возвращаться в установщик заканчивать инсталяцию ОС. Но сделать это нужно правильно. Читайте дальше как именно.

Завершение установки ОС

Для возврата к установщику нажмите комбинацию клавиш Ctrl+Alt+F6, но в вашем случае консоли могут располагаться в другом порядке. Попробуйте другие комбинации начиная от F1. Дальнейшие действия плохо поддаются описанию в текстовом виде, поэтому я записал ролик, демонстрирующий весь процесс, описанный выше, а так же финальный этап установки.

В статье Операции с файловой системой в Linux вы найдёте информацию о том, как добавлять диски в систему, как делать из них LVM тома без разбиения на партиции и использования parted.

В дальнейших статьях я опишу как делать снапшоты и многое другое, что позволяет нам делать LVM.

На этом у меня всё, ставьте лайки, подписывайтесь на канал, жмите колокольчик! :)

Заходите в группу Telegram
Если есть вопросы или хотите пообщаться, то заходите в мою группу Telegram.