Что такое LVM в Linux?

«Что такое LVM в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Ключевые компоненты:

  • Физический том (Physical Volume, PV): Базовый блок хранения (например, /dev/sda1 или /dev/sdb), подготовленный для работы с LVM командой pvcreate.
  • Группа томов (Volume Group, VG): Объединение одного или нескольких PV в единый пул ресурсов хранения.
  • Логический том (Logical Volume, LV): Виртуальный раздел, создаваемый из свободного пространства VG. Именно на LV создается файловая система, и он монтируется в каталог.

Преимущества LVM для DevOps:

  • Динамическое изменение размеров: Можно увеличивать (lvextend) или уменьшать (lvreduce) LV без отключения системы (часто без перезагрузки).
  • Снапшоты (Snapshots): Мгновенное создание копии LV (lvcreate -s) для резервного копирования или тестирования.
  • Объединение дисков: Создание одного логического тома из нескольких физических дисков.
  • Легкая миграция данных: Возможность перемещать данные между физическими дисками (pvmove) в работающей системе.

Пример создания и монтирования логического тома:

# Инициализируем диск /dev/sdb как физический том для LVM
pvcreate /dev/sdb

# Создаем группу томов с именем 'vg_data'
vgcreate vg_data /dev/sdb

# Создаем логический том размером 20 ГБ с именем 'lv_app'
lvcreate -L 20G -n lv_app vg_data

# Создаем файловую систему на логическом томе
mkfs.ext4 /dev/vg_data/lv_app

# Монтируем том в директорию /mnt/app
echo '/dev/vg_data/lv_app /mnt/app ext4 defaults 0 0' >> /etc/fstab
mount -a