Логотип
Хижина
Летучего
Мыша
Логин:
Баланс:

LVM

LVM (Logical Volume Manager) — это инструмент управления дисковым пространством в Linux.

LVM — это прослойка абстракции между физическими дисками и файловыми системами. Дает возможность собирать логические тома люого размера из разных по объему кусков дискового пространства с разных физических дисков.

LVM (Logical Volume Manager) – подсистема операционных систем Linux, позволяющая использовать разные области физического жесткого диска или разных жестких дисков как один логический том. LVM встроена в ядро Linux и реализуется на базе device mapper.

Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Дает возможность на лету изменять размер логического тома, добавлять (и удалять) новые диски. Для LVM томов поддерживается зекалирование, снапшоты (persistent snapshot) и striping (расслоение данных между несколькими дисками с целью увеличения производительности).

Основные преимущества LVM:

  • Динамическое изменение размера — позволяет изменять разделы на лету<\li>
  • Снепшоты — мгновенные снимки состояния системы<\li>
  • Объединение дисков — возможность создать один логический диск из нескольких дисков<\li>
  • Миграция данных — возможностьперемещай данные между дисками без остановки сервисов<\li>
  • Striping и mirroring — аналог RAID, но на программном уровне<\li>

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

Еще одним недостатком является то, что создание снепшотов приводит к падению производительности системы.

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

В LVM применяется несколько уровнями дисковых абстракций:

  • Physical Volume (PV) — физический том. Это диск или раздел диска, подготовленный для использования в LVM<\li>
  • Volume Group (VG) — группа томов. Пул дискового пространства, объединяющий несколько физических томов<\li>
  • Logical Volume (LV) — логический том. Виртуальный раздел, который создаётся из пространства группы томов<\li>
  • Physical Extent (PE) — физический экстент. Минимальная единица распределения пространства (обычно 4MB)<\li>
  • Logical Extent (LE) — логический экстент. Соответствует физическому экстенту в логическом томе<\li>

Схема выглядит так: Физические диски → Physical Volumes → Volume Group → Logical Volumes → Файловые системы.

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

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

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

Зеркальные тома LVM, аналогичные RAID 1, создают идентичную копию данных на каждом диске в группе томов. Этот метод обеспечивает сохранность данных даже при выходе из строя одного из физических носителей. В случае сбоя одного диска, тома переключаются в последовательный режим, позволяя продолжить чтение данных. Однако, стоит учитывать, что такой LVM работает значительно медленнее, поскольку система выполняет многократную запись данных.

Возможные ошибки

  • Забыть расширить файловую систему после расширения LV — данные перестанут быть доступными<\li>
  • Снепшоты переполнили свободное пространство — основной том может стать недоступным<\li>
  • Удалили не тот том — всегда необходимо перепроверять команды по нескольку раз<\li>
  • Не настроен мониторинг — LVM может молчать и просто деградировать, если возникли проблемы с дисками<\li>

Полезные практики из жизни сисдаминов:

  • Всегда оставлять свободное место в VG (минимум 10-15%)<\li>
  • Использовать осмысленные имена для VG и LV<\li>
  • Регулярно делать бекапы конфигурации LVM<\li>
  • Постоянный мониторинг состояния дисков<\li>
  • Тестирование процедуры восстановления на тестовых серверах<\li>

Когда использовать LVM:

  • На серверах с динамически изменяющимися требованиями к дисковому пространству<\li>
  • Когда нужна гибкость в управлении дисками<\li>
  • Для реализации продвинутых сценариев бекапирования через снепшоты<\li>
  • В средах с частыми изменениями железа<\li>

Когда можно обойтись без LVM:

  • На простых серверах с фиксированными требованиями<\li>
  • Когда критична каждая миллисекунда производительности<\li>
  • В контейнерных средах где диски управляются оркестратором<\li>

Чтобы убедиться, что выбранные диски можно использовать для LVM, нужно ввести команду pvdisplay.

Использую указанную команду можно получить следующую информацию:

  • PV Name – имя диска или раздела<\li>
  • VG Name – группа томов, в которую данный диск входит (мы пока группу не создали)<\li>
  • PV Size – размер диска или размера<\li>
  • Allocatable – распределение по группам.<\li>
  • PE Size – размер физического фрагмента. Если диск не добавлен ни в одну группу, значение всегда будет 0<\li>
  • Total PE – количество физических фрагментов<\li>
  • Free PE — количество свободных физических фрагментов<\li>
  • Allocated PE – распределенные фрагменты<\li>
  • PV UUID – идентификатор раздела<\li>

Для создания групп томов используется команда vgcreate.

Информация из листинга команды vgdisplay:

  • VG Name – группа томов, в которую данный диск входит.<\li>
  • Format – версия подсистемы lvm, которая используется для создание группы<\li>
  • Metadata Areas – область метаданных<\li>
  • VG Access – уровень доступа к группе логических томов<\li>
  • VG Size – общий объем дисков, которые входят в группу<\li>
  • PE Size — размер физического фрагмента<\li>
  • Alloc PE / Size – распределенное пространство(количество и объем фрагментов)<\li>
  • VG UUID – идентификатор группы<\li>

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