Работа с LVM

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

В этой статье мы рассмотрим, как установить и использовать LVM в Linux.

Установка

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

Для Debian или Ubuntu:

sudo apt-get install lvm2

Для CentOS, Fedora и RHEL:

sudo yum install lvm2

Создание физических томов

Прежде чем создавать логические тома, необходимо создать физические тома (pv). Физический том - это виртуальное устройство, например жесткий диск или раздел диска, которое LVM использует для создания логических томов.

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

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

Используйте команду pvcreate для создания физического тома:

sudo pvcreate /dev/sdb

Где /dev/sdb - путь к физическому устройству.

2. Проверьте созданный физический том с помощью команды pvdisplay:

sudo pvdisplay

В выводе вы увидите информацию о созданном физическом томе.

Создание группы физических томов

Группа физических томов (vg) - это логический контейнер, который может объединять несколько физических томов в одну общую группу. Однако ничто не мешает использовать ее в рамках одного физического тома. Чтобы создать группу физических томов, выполните следующие действия:

1. Используйте команду vgcreate для создания группы физических томов:

sudo vgcreate vg0 /dev/sdb
# либо для нескольких pv
sudo vgcreate vg0 /dev/sdb /dev/sdc

Создание логического тома

Теперь можно создавать логические тома, которые условно можно представить как разделы на жестком диске.

1. Создайте логический том в группе физических томов с помощью команды lvcreate :

sudo lvcreate -n lv0 -L 10G vg0   # Создание логического тома lv0 размером 10 ГБ в группе физических томов vg0

Где -n - имя логического тома, -L - размер логического тома.

2. Проверьте созданный логический том с помощью команды lvdisplay:

sudo lvdisplay

Вы увидите информацию о созданном логическом томе.

3. Создайте файловую систему на логическом томе с помощью команды mkfs:

sudo mkfs.ext4 /dev/vg0/lv0

4. Создайте точку монтирования для новой файловой системы с помощью команды mkdir:

sudo mkdir /mnt/lv0

5. Смонтируйте новую файловую систему в точке монтирования с помощью команды mount:

sudo mount /dev/vg0/lv0 /mnt/lv0

Теперь вы можете использовать новую файловую систему, расположенную на логическом томе.

Использование LVM

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

  • pvcreate: Создает новый физический том.
  • pvdisplay: Отображает информацию о физических томах.
  • vgcreate: Создает новую группу физических томов.
  • vgextend: Добавляет физический том в группу физических томов.
  • vgdisplay: Отображает информацию о группах физических томов.
  • lvcreate: Создает новый логический том.
  • lvextend: Увеличивает размер логического тома.
  • lvdisplay: Отображает информацию о логических томах.

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

  • pvresize: Изменяет размер физического тома.
  • vgresize: Изменение размера группы физических томов.
  • lvresize: Изменяет размер логического тома.

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

Управление размером логического тома:

Например, чтобы увеличить размер логического тома lv0 в группе физических томов vg0 на 5 ГБ, выполните команду:

sudo lvresize -L +5G /dev/vg0/lv0

или все оставшееся свободное пространство на физическом томе:

sudo lvresize -l +100%FREE /dev/vg0/lv0
Обратите внимание, что в последнем примере используется заглавная буква l, а в предыдущем - заглавная буква L.
В этом формате вы можете задать процентное соотношение, сколько свободного места из оставшегося на физическом томе нужно добавить к логическому тому.

Затем можно изменить размер файловой системы "на лету" с помощью команды resize2fs:

sudo resize2fs /dev/vg0/lv0

Снимки LVM

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

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

Давайте рассмотрим, как создавать и использовать механизм моментальных снимков LVM.

Создание моментального снимка LVM

Создание моментального снимка LVM осуществляется с помощью команды lvcreate. Например, чтобы создать моментальный снимок логического тома myvolume в группе томов myvg, выполните следующую команду:

sudo lvcreate --snapshot --name myvolume_snap --size 1G /dev/myvg/myvolume

Эта команда создаст моментальный снимок логического тома myvolume с именем myvolume_snap размером 1 ГБ.

Обратите внимание, что для создания моментального снимка необходимо указать его размер.

Использование моментального снимка LVM

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

sudo mount /dev/myvg/myvolume_snap /mnt/snapshot

Здесь /mnt/snapshot - это точка монтирования, в которую будет смонтирован снимок. После того как снимок смонтирован, вы можете скопировать с него данные или использовать его для восстановления данных.

Удаление моментального снимка LVM

После использования моментального снимка его можно удалить. Чтобы удалить снимок, используйте команду lvremove. Например, чтобы удалить снимок myvolume_snapshot в группе томов myvg, выполните следующую команду:

sudo lvremove /dev/myvg/myvolume_snap

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

Тонкие пулы

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

Создание тонкого пула LVM

Тонкий пул создается с помощью привычной команды lvcreate. Например, чтобы создать тонкий пул mythinpool в группе томов myvg на физических томах /dev/sdb и /dev/sdc, выполните следующую команду:

sudo lvcreate -L 50G -T myvg/mythinpool /dev/sdb /dev/sdc

Здесь -L задает размер тонкого пула в гигабайтах, а -T указывает на то, что мы создаем тонкий пул. Эта команда создаст тонкий пул mythinpool размером 50 ГБ.

Создание тонкого тома LVM

Тонкий том - это логический том, который создается внутри тонкого пула. Тонкие тома можно создать с помощью команды lvcreate. Например, чтобы создать тонкий том mythinvolume размером 10 ГБ в тонком пуле mythinpool в группе томов myvg, выполните следующую команду:

sudo lvcreate -V 10G -T myvg/mythinpool -n mythinvolume

Здесь -V задает размер тонкого тома в гигабайтах, а -n - имя тонкого тома. Эта команда создаст тонкий том mythinvolume размером 10 ГБ внутри тонкого пула mythinpool.

Использование тонкого тома LVM

Тонкий том можно использовать как обычный логический том. Например, чтобы создать файловую систему ext4 на тонком томе mythinvolume, выполните следующую команду:

sudo mkfs.ext4 /dev/myvg/mythinvolume

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

Тонкий пул позволяет создавать более гибкие и эффективные конфигурации хранения данных в Linux. Тонкий пул используется в сочетании с тонким томом для оптимального использования дискового пространства.