Введение

Программное обеспечение для управления логическими томами в Linux

В Linux, Logical Volume Manager (LVM) — это фреймворк для сопоставления устройств, обеспечивающий управление логическими томами для ядра Linux. Большинство современных дистрибутивов Linux поддерживают LVM настолько, что могут размещать свои корневые файловые системы на логическом томе. Хайнц Мауэльшаген написал исходный код LVM в 1998 году, работая в Sistina Software, и при проектировании опирался на менеджер томов HP-UX. или для создания снимков чтения/записи (LVM2).

Группы томов (VG) могут быть разделены или объединены на месте, если ни один логический том (LV) не охватывает область разделения. Это может быть полезно при миграции целых LV в автономное хранилище или из него. Объекты LVM могут быть помечены для удобства администрирования. VG и LV могут быть активированы по мере появления базовых устройств благодаря демону lvmetad.

Расширенная функциональность

Гибридные тома могут быть созданы с использованием целевого объекта dm cache, который позволяет одному или нескольким быстрым устройствам хранения, таким как твердотельные накопители (SSD) на флэш-памяти, выступать в качестве кэша для одного или нескольких более медленных жестких дисков. Тонко выделенные логические тома (LV) могут быть выделены из пула. В новых версиях device mapper, LVM достаточно тесно интегрирована с остальной частью device mapper, чтобы игнорировать отдельные пути, лежащие в основе dm multipath устройства, если в файле lvm.conf установлено devices/multipath component detection=1. Это предотвращает активацию LVM томов на отдельных путях вместо multipath устройства.

РАЙД

Логические тома (LV) могут быть созданы с поддержкой функциональности RAID, включая RAID 1, 5 и 6. Целые LV или их части могут быть распределены по нескольким физическим томам (PV), аналогично RAID 0. Физический том (PV), используемый в качестве бэкенда для RAID 1, может быть настроен в режиме "запись преимущественно", что позволяет избежать чтения с таких устройств, если это не требуется. Скорость восстановления может быть ограничена с помощью команд lvchange raidmaxrecoveryrate и lvchange raidminrecoveryrate для поддержания приемлемой производительности ввода-вывода во время восстановления LV с поддержкой RAID.

Кавеат

До ядра Linux 2.6.31 барьеры записи не поддерживались (полная поддержка появилась в 2.6.33). Это означало, что гарантия защиты от повреждения файловой системы, предоставляемая журналируемыми файловыми системами, такими как ext3 и XFS, могла быть нарушена в определенных ситуациях. По состоянию на 2015 год, не существует программ для онлайн- или офлайн-дефрагментации LVM. Это частично компенсируется тем, что фрагментация происходит только при расширении тома и при применении вышеупомянутых политик выделения. Однако фрагментация все равно возникает, и для ее уменьшения необходимо выявлять несмежные экстенты и вручную переупорядочивать их с помощью команды pvmove. В большинстве конфигураций LVM только одна копия заголовка LVM сохраняется на каждом PV, что может сделать тома более уязвимыми к поврежденным секторам диска. Это поведение можно изменить с помощью vgconvert --pvmetadatacopies. Если LVM не может прочитать корректный заголовок с первой копии, он проверит конец тома на наличие резервной копии заголовка. Большинство дистрибутивов Linux хранят текущую резервную копию в /etc/lvm/backup, что позволяет вручную восстановить поврежденный заголовок LVM с помощью команды vgcfgrestore.