Диспетчер логических томов (Linux) - Logical Volume Manager (Linux)
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Оригинальный автор (ы) | Хайнц Мауэльсхаген[1] |
---|---|
Стабильный выпуск | 2.03.07 / ноябрь 2019[2] |
Репозиторий | исходное ПО |
Написано в | C |
Операционная система | Linux, Netbsd |
Лицензия | GPLv2 |
Интернет сайт | источники |
В Linux, Диспетчер логических томов (LVM) это сопоставитель устройств структура, которая обеспечивает управление логическими томами для Ядро Linux. Самый современный Дистрибутивы Linux осведомлены о LVM до такой степени, что могут корневые файловые системы на логический том.[3][4][5]
Хайнц Мауэльсхаген написал исходный код LVM в 1998 году, когда он работал в Sistina Software, взяв свои основные принципы проектирования из HP-UX менеджер тома.[1]
Использует
LVM используется для следующих целей:
- Создание сингла логические тома нескольких физических томов или целых жестких дисков (что-то вроде RAID 0, но больше похоже на JBOD ), позволяя динамически изменять размер тома.
- Управление большими фермами жестких дисков, позволяя добавлять и заменять диски без простоев или прерывания обслуживания, в сочетании с горячая замена.
- В небольших системах (например, на настольных компьютерах) вместо того, чтобы во время установки оценивать размер раздела, LVM позволяет легко изменять размер файловых систем по мере необходимости.
- Выполнение согласованного резервного копирования путем создания моментальных снимков логических томов.
- Шифрование нескольких физических разделов одним паролем.
LVM можно рассматривать как тонкий программный слой поверх жестких дисков и разделов, который создает абстракцию непрерывности и простоту использования для управления заменой жестких дисков, повторным разбиением на разделы и резервным копированием.
Функции
Базовая функциональность
- Группы томов (VG) могут быть изменены в режиме онлайн за счет добавления новых физические тома (PV) или удаление существующих.
- Размер логических томов (LV) можно изменить онлайн путем объединения экстенты на них или обрезая их экстенты.
- LV можно перемещать между PV.
- Создание только для чтения снимки логических томов (LVM1), используя функцию копирования при записи (CoW)[6], или снимки для чтения / записи (LVM2)
- Группы VG можно разделить или объединить на месте до тех пор, пока в разделении нет LV. Это может быть полезно при миграции целых LV в автономное хранилище или из него.
- Объекты LVM могут быть помечены для удобства администрирования.[7]
- Группы VG и LV могут быть активированы по мере того, как базовые устройства становятся доступными посредством использования
lvmetad
демон.[8]
Расширенная функциональность
- Гибридные тома можно создать с помощью dm-cache target, что позволяет использовать одно или несколько устройств быстрого хранения, например флэш-память SSD, действовать как тайник для одного или более медленных жесткие диски.[9]
- LV с тонкой подготовкой можно выделить из пула.[10]
- В более новых версиях сопоставитель устройств LVM интегрирован с остальной частью устройства сопоставления в достаточной степени, чтобы игнорировать отдельные пути, которые поддерживают устройство dm-multipath, если
устройства / multipath_component_detection = 1
установлен вlvm.conf
. Это предотвращает активацию LVM томов на индивидуальном пути вместо многопутевого устройства.[11]
RAID
- LV могут быть созданы для включения RAID функциональность, в том числе RAID 1, 5 и 6.[12]
- Целые LV или их части можно разделить на несколько PV, аналогично RAID 0.
- Внутреннее устройство RAID 1 (PV) может быть сконфигурировано как «преимущественно записываемое», что позволяет избежать чтения таких устройств без необходимости.[13]
- Скорость восстановления можно ограничить с помощью
lvchange --raidmaxrecoveryrate
иlvchange --raidminrecoveryrate
для поддержания приемлемой производительности ввода-вывода при восстановлении LV, включающего функции RAID.
Высокая доступность
LVM также работает в общем хранилище. кластер в котором диски, содержащие PV, используются совместно несколькими хост-компьютерами, но может потребоваться дополнительный демон для обеспечения доступа к метаданным через форму блокировки.
- CLVM
- А распределенный менеджер блокировок используется для обеспечения одновременного доступа к метаданным LVM. Каждый раз, когда узлу кластера необходимо изменить метаданные LVM, он должен получить разрешение от своего локального компьютера.
clvmd
, который находится в постоянном контакте с другимиclvmd
демоны в кластере и могут сообщать о желании заблокировать определенный набор объектов. - HA-LVM
- Осведомленность о кластере остается на усмотрение приложения, обеспечивающего функцию высокой доступности. Что касается LVM, HA-LVM может использовать CLVM в качестве механизма блокировки или может продолжать использовать блокировку файлов по умолчанию и уменьшить «коллизии», ограничивая доступ только к тем объектам LVM, которые имеют соответствующие теги. Поскольку это более простое решение позволяет избежать конфликта, а не смягчить его, одновременный доступ запрещен, поэтому HA-LVM считается полезным только в активно-пассивных конфигурациях.
- lvmlockd
- По состоянию на 2017 год[Обновить], стабильный компонент LVM, призванный заменить
clvmd
сделав блокировку объектов LVM прозрачной для остальной части LVM, не полагаясь на диспетчер распределенных блокировок.[14] В 2016 году он получил массовое развитие.[15]
Вышеописанные механизмы решают только проблемы с доступом LVM к хранилищу. Файловая система, выбранная поверх таких LV, должна либо поддерживать кластеризацию сама по себе (например, GFS2 или же VxFS ) или он должен монтироваться только одним узлом кластера в любое время (например, в активно-пассивной конфигурации).
Политика распределения групп томов
Группы LVM должны содержать политику распределения по умолчанию для новых томов, созданных из нее. Позже это можно будет изменить для каждого LV с помощью lvconvert -A
команду, или на самом VG через vgchange --alloc
. Чтобы свести к минимуму фрагментацию, LVM сначала попытается применить самую строгую политику (непрерывную), а затем перейдет к наиболее либеральной политике, определенной для объекта LVM, до тех пор, пока распределение не будет окончательно успешным.
В конфигурациях RAID почти все политики применяются к каждой ветви изолированно. Например, даже если LV имеет политику цеплятьсярасширение файловой системы не приведет к тому, что LVM будет использовать PV, если он уже используется одной из других ветвей в настройке RAID. LV с функцией RAID будут помещать каждую ветвь в разные PV, делая другие PV недоступными для любой другой ветви. Если бы это был единственный доступный вариант, расширение LV не удалось бы. В этом смысле логика цепляться будет применяться только к расширению каждой из отдельных ветвей массива.
Доступные политики распределения:
- Смежный - заставляет все LE в данном LV быть смежными и упорядоченными. Это устраняет фрагментацию, но серьезно снижает возможность расширения LV.
- Цепляться - принудительно распределяет новые LE только на PV, которые уже используются LV. Это может помочь уменьшить фрагментацию, а также снизить уязвимость определенных LV в случае выхода устройства из строя, за счет снижения вероятности того, что другие LV также имеют экстенты на этом PV.
- Нормальный - подразумевает почти неизбирательный выбор PE, но он будет пытаться удержать параллельные ветви (например, в конфигурации RAID) от совместного использования физического устройства.
- Куда угодно - не накладывает никаких ограничений. Очень рискованно при настройке RAID, поскольку при этом игнорируются требования изоляции, что ограничивает большинство преимуществ RAID. Для линейных объемов это может привести к повышенной фрагментации.
Выполнение
Обычно первый мегабайт каждого физического тома содержит в основном ASCII -кодированная структура, называемая «заголовком LVM» или «заголовком LVM». Первоначально головка LVM записывалась в первый и последний мегабайт каждого PV для резервирования (в случае частичного сбоя оборудования); однако позже он был изменен только на первый мегабайт. Заголовок каждого PV является полной копией макета всей группы томов, включая UUID всех других PV и LV, а также карту распределения ЧП к LE. Это упрощает восстановление данных в случае потери PV.
В ядре Linux серии 2.6 LVM реализован в терминах сопоставитель устройств, простая схема уровня блоков для создания виртуальных блочных устройств и отображения их содержимого на другие блочные устройства. Это сводит к минимуму объем относительно трудно поддающегося отладке кода ядра, необходимого для реализации LVM. Он также позволяет использовать свои службы перенаправления ввода-вывода с другими менеджерами томов (такими как EVMS ). Любой специфичный для LVM код помещается в его инструменты пользовательского пространства, которые просто манипулируют этими сопоставлениями и реконструируют свое состояние из метаданных на диске при каждом вызове.
Чтобы подключить группу томов к сети, инструмент vgchange:
- Ищет PV во всех доступных блочных устройствах.
- Анализирует заголовок метаданных в каждом найденном PV.
- Вычисляет компоновки всех видимых групп томов.
- Зацикливается на каждом логическом томе в группе томов, который нужно перевести в оперативный режим, и:
- Проверяет, отображаются ли все PV логического тома, который должен быть переведен в оперативный режим.
- Создает новое пустое сопоставление устройств.
- Отображает его (с «линейной» целью) на области данных PV, к которым принадлежит логический том.
Чтобы переместить онлайн-логический том между PV в одной группе томов, используйте инструмент «pvmove»:
- Создает новое пустое сопоставление устройств для места назначения.
- Применяет "зеркальную" цель к исходной и целевой картам. Ядро запустит зеркало в "деградированном" режиме и начнет копировать данные из оригинала в место назначения, чтобы синхронизировать их.
- Заменяет исходное сопоставление на место назначения, когда зеркало синхронизируется, а затем уничтожает оригинал.
Эти операции сопоставления устройств выполняются прозрачно, при этом приложения или файловые системы не знают, что их базовое хранилище перемещается.
Предостережения
- До ядра Linux 2.6.31,[16] барьеры для записи не поддерживаются (полностью поддерживаются в версии 2.6.33). Это означает, что гарантия от повреждения файловой системы, предлагаемая журналируемые файловые системы подобно ext3 и XFS при некоторых обстоятельствах было отвергнуто.[17]
- По состоянию на 2015 год[Обновить], для LVM не существует интерактивной или автономной программы дефрагментации. Это несколько смягчается тем, что фрагментация происходит только в том случае, если том расширен, и за счет применения вышеупомянутых политик распределения. Однако фрагментация все еще происходит, и если ее необходимо уменьшить, необходимо идентифицировать несмежные экстенты и вручную переставлять с помощью
pvmove
команда.[18] - В большинстве конфигураций LVM для каждого PV сохраняется только одна копия головки LVM, что может сделать тома более уязвимыми для отказавших секторов диска. Это поведение можно изменить, используя
vgconvert --pvmetadatacopies
. Если LVM не может прочитать правильный заголовок с помощью первой копии, он проверит конец тома на предмет резервного заголовка. Большинство дистрибутивов Linux поддерживают работающее резервное копирование в/ и т.д. / lvm / резервное копирование
, что позволяет вручную перезаписать поврежденную голову LVM с помощьюvgcfgrestore
команда.
Смотрите также
- Btrfs (имеет свои собственные "снимки", которые разные, но с использованием LVM снимки btrfs приводит к потере обеих копий)[19]
- Картограф устройства
- Диспетчер логических дисков (LDM)
- Управление логическими томами
- Снимок (компьютерное хранилище)
- Виртуализация хранилища
- ZFS
Рекомендации
- ^ а б "LVM README". 2003-11-17. Получено 2014-06-25.
- ^ Кергон, Аласдер (2017-11-03). "[lvm-devel] v2_02_176 аннотированный тег был создан". lvm-devel. Красная шляпа. Получено 2017-11-03.
- ^ «7.1.2 Конфигурация LVM с YaST». SUSE. 12 июля 2011. Архивировано с оригинал 25 июля 2015 г.. Получено 2015-05-22.
- ^ «Как: настроить рабочий стол Ubuntu с разделами LVM». Ubuntu. 1 июня 2014 г. Архивировано с оригинал 4 марта 2016 г.. Получено 2015-05-22.
- ^ «9.15.4 Создание логического тома LVM». Красная шляпа. 8 октября 2014 г.. Получено 2015-05-22.
- ^ https://blog.pythian.com/btrfs-performance-compared-lvmext4-regards-database-workloads/
- ^ «Пометка объектов хранилища LVM2». Micro Focus International. Получено 21 мая 2015.
- ^ «Демон метаданных». Red Hat Inc. Получено 22 мая 2015.
- ^ «Использование новой функции кеширования LVM». Получено 2014-07-11.
- ^ «2.3.5. Логические тома с тонким предоставлением (тонкие тома)». Access.redhat.com. Получено 2014-06-20.
- ^ «4.101.3. RHBA-2012: 0161 - исправление ошибок и обновление lvm2». Получено 2014-06-08.
- ^ «5.4.16. Логические тома RAID». Access.redhat.com. Получено 2017-02-07.
- ^ «Управление операциями ввода-вывода на логическом томе RAID1». redhat.com. Получено 16 июн 2014.
- ^ "Re: Снимок LVM с кластеризованным VG [решено]". 15 марта 2013 г.. Получено 2015-06-08.
- ^ https://sourceware.org/git/?p=lvm2.git;a=history;f=lib/locking/lvmlockd.c;h=master;hb=HEAD
- ^ «Ошибка 9554 - не поддерживаются барьеры записи через сопоставитель устройств». 2009-07-01. Получено 2010-01-24.
- ^ «Барьеры и журналируемые файловые системы». LWN. 2008-05-22. Получено 2008-05-28.
- ^ "будет ли pvmove'ing (LV за раз) дефрагментировать?". 2010-04-29. Получено 2015-05-22.
- ^ Попался, btrfs Wiki, получено 2017-04-24
дальнейшее чтение
- Льюис, AJ (27 ноября 2006 г.). "LVM HOWTO". Проект документации Linux. Получено 2008-03-04..
- Патент США 5129088, Auslander, et al., "Метод обработки данных для создания виртуальных дисков из несмежных групп логически смежных адресных блоков устройства хранения с прямым доступом", выпущенный 1992-7-7 (основной патент).
- «RedHat Linux: что такое диспетчер логических томов или LVM?». techmagazinez.com. 6 августа 2013. Архивировано с оригинал 10 августа 2013 г.. Получено 4 сентября 2013.
- "Страница ресурсов LVM2". sourceware.org. 8 июня 2012 г.. Получено 4 сентября 2013.
- «Как: установить Ubuntu на разделы LVM». Debuntu.org. 28 июля 2007 г.. Получено 4 сентября 2013.
- «Диспетчер логических томов». markus-gattol.name. 13 июля 2013 г.