Перейти к содержанию

LVM

Материал из Википедии — свободной энциклопедии
Logical Volume Manager (LVM)
Автор Хайнц Мауэльсхаген[1]
Написана на Си
Операционные системы Linux, NetBSD
Аппаратные платформы Linux и X86
Последняя версия 2.03.38 (15 декабря 2025)
Репозиторий sourceware.org/git/?p=lvm2.git
Лицензия GPLv2
Сайт sourceware.org/lvm2/

Менеджер логических томов (англ. logical volume manager) — подсистема операционных систем Linux и OS/2, позволяющая использовать разные области одного жёсткого диска или области с разных жёстких дисков как один логический том. Реализована с помощью подсистемы device mapper.

На 18 сентября 2006 года существовало две версии подсистемы:

  • первая (LVM1), стабильная и испытанная, использовалась для ядер Linux версий 2.4 и OS/2;
  • вторая (LVM2) — для ядер Linux версии 2.6 (существует патч, добавляющий поддержку LVM2 для Linux 2.4).

LVM добавляет уровень абстракции между физическими и логическими дисками (привычными разделами, с которыми работает fdisk и аналогичные программы) и файловой системой. Это достигается путём разбивки изначальных разделов на блоки либо использования отдельных разделов или блочных устройств (physical volume (pv)) и объединения их в единый виртуальный том, точнее, группу томов (volume group (vg)), которая далее разбивается на логические тома (logical volume (lv)). Для файловой системы логический том представлен как обычное блочное устройство, хотя отдельные pv-тома могут находиться на разных физических устройствах (и даже сам pv может быть распределён подобно RAID).

LVM1 не поддерживает расширение существующего логического тома на новые физические тома. LVM2 позволяет это, но не отменяет ограничений, связанных с реализацией файловых систем (ФС). Например, ФС JFS и XFS поддерживают увеличение размера тома, но не допускают уменьшения.

Физический том (англ. physical volume, pv) — устройство, представляющееся системе как один диск (жёсткий диск или его раздел, RAID-массив).

Группа томов (англ. volume group, vg) — несколько физических томов pv (группа, набор).

Логический том (англ. logical volume, lv) — логический раздел; аналог разделов hda1, sdb3 и др.; виртуальное блочное устройство.

Физический диапазон (англ. physical extent, pe) — область на физическом томе pv размером в несколько мегабайт. pv разбивается на области pe равного размера.

Логический диапазон (англ. logical extent, le) — область на логическом томе lv. lv разбивается на области le равного размера.

Распределение (англ. mapping) логических областей le по физическим томам pv возможно двумя способами:

  • линейно (англ. linear mapping);
  • поочерёдно (англ. striped mapping).

Пример. Пусть:

  • имеется два физических тома pv1 и pv2;
  • имеется один логический том lv;
  • размер pv1 — 12 pe;
  • размер pv2 — 3 pe;
  • размер lv — 15 le;
  • размеры 1 pe и 1 le равны.

При линейном распределении (англ. linear mapping) области lv:

  • от 1 le до 12 le будут соответствовать областям pv1 от 1 до 12 pe;
  • от 13 le до 15 le — областям pv2 от 1 pe до 3 pe.

При чередующемся распределении (англ. striped mapping) каждый логический диапазон le будет распределён по нескольким физическим томам pv.

Клонирование

[править | править код]

LVM позволяет создавать копии (снимки (англ. snapshot), образы) логического тома на лету. Работает это следующим образом:

  • создаётся новый том-снимок;
  • запись новых данных производится на оригинальный, клонируемый том;
  • перед тем, как старые данные на клонируемом томе будут перезаписаны новыми, они сохраняются на том-снимок;
  • при чтении, изменённые данные считываются с клонируемого тома, а старые — с нового тома-снимка;
  • при необходимости восстановить состояние клонируемого тома используется утилита lvconvert. В таком случае происходит перезапись новых данных на клонируемом томе данными с тома-снимка, по завершении процедуры восстановления снимок автоматически удаляется;
  • в случае, если снимок более не требуется, он удаляется командой lvremove.

Копии томов LVM1 и LVM2 несовместимы. При переходе на версию 2 тома версии 1 необходимо удалить.

Для работы LVM2 необходима подсистема device mapper. Ядра версий 2.6 поддерживают эту подсистему по умолчанию. Для ядер версий 2.4 необходимо применить патч.

Примечания

[править | править код]
  1. LVM README (17 ноября 2003). Дата обращения: 3 апреля 2026.