Jump to content

Менеджер логических томов (Linux)

(Перенаправлено с LVM2 )
Менеджер логических томов
Оригинальный автор(ы) Хайнц Мауэльсхаген [ 1 ]
Стабильная версия
2.03.21 [ 2 ]  Отредактируйте это в Викиданных / 21 апреля 2023 г .; 16 месяцев назад ( 21 апреля 2023 г. )
Репозиторий исходное программное обеспечение .org / git /?p=lvm2 .git
Написано в С
Операционная система Линукс , НетБСД
Лицензия лицензия GPLv2
Веб-сайт исходное программное обеспечение .org /lvm2 /

В Linux , диспетчер логических томов ( LVM ) представляет собой структуру сопоставления устройств которая обеспечивает управление логическими томами для ядра Linux . Большинство современных дистрибутивов Linux поддерживают LVM до такой степени, что могут располагать корневые файловые системы на логическом томе . [ 3 ] [ 4 ] [ 5 ]

Хайнц Мауэльсхаген написал оригинальный код LVM в 1998 году, когда он работал в Sistina Software , взяв основные рекомендации по проектированию у HP-UX . менеджера томов [ 1 ]

Использование

[ редактировать ]

LVM используется для следующих целей:

  • Создание отдельных логических томов из нескольких физических томов или целых жестких дисков (что-то похожее на RAID 0 , но больше похоже на JBOD ), позволяющее динамически изменять размер тома.
  • Управление большими фермами жестких дисков путем добавления и замены дисков без простоев или перебоев в обслуживании в сочетании с горячей заменой .
  • В небольших системах (например, настольных компьютерах) вместо того, чтобы во время установки оценивать размер раздела, LVM позволяет легко изменять размер файловых систем по мере необходимости.
  • Выполнение согласованного резервного копирования путем создания снимков логических томов.
  • Шифрование нескольких физических разделов одним паролем.

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

Различные элементы LVM

Базовый функционал

[ редактировать ]
  • Размер групп томов (VG) можно изменять в режиме онлайн, поглощая новые физические тома (PV) или удаляя существующие.
  • Размер логических томов (LV) можно изменить в режиме онлайн путем объединения или усечения экстентов из них.
  • LV можно перемещать между PV.
  • Создание снимков логических томов, доступных только для чтения (LVM1), с использованием функции копирования при записи (CoW), [ 6 ] или чтение/запись снимков (LVM2)
  • VG можно разделить или объединить на месте , если в это разделение не входят LV. Это может быть полезно при переносе целых логических томов в автономное хранилище или из него.
  • Объекты LVM могут быть помечены для удобства администрирования. [ 7 ]
  • VG и LV можно сделать активными, когда базовые устройства станут доступны с помощью lvmetad демон. [ 8 ]

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

[ редактировать ]
  • Гибридные тома можно создавать с использованием цели dm-cache , которая позволяет одному или нескольким быстрым устройствам хранения данных, таким как твердотельные накопители на базе флэш-памяти , выступать в качестве кэша для одного или нескольких более медленных жестких дисков . [ 9 ]
  • LV с тонким выделением ресурсов можно выделить из пула. [ 10 ]
  • В более новых версиях устройства отображения устройств LVM достаточно интегрирован с остальной частью устройства отображения устройств, чтобы игнорировать отдельные пути, которые поддерживают устройство dm-multipath, если devices/multipath_component_detection=1 установлен в lvm.conf. Это не позволяет LVM активировать тома по отдельному пути вместо многопутевого устройства. [ 11 ]
  • LV могут быть созданы с поддержкой функций RAID , включая RAID 1 , 5 и 6 . [ 12 ]
  • Целые LV или их части могут быть распределены по нескольким PV, аналогично RAID 0 .
  • Внутреннее устройство RAID 1 (PV) можно настроить как «с преимущественной записью», в результате чего чтение на такие устройства будет исключено, если в этом нет необходимости. [ 13 ]
  • Скорость восстановления можно ограничить с помощью lvchange --raidmaxrecoveryrate и lvchange --raidminrecoveryrate для поддержания приемлемой производительности ввода-вывода при восстановлении логического тома, включающего функции RAID.

Высокая доступность

[ редактировать ]

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

КЛВМ
Диспетчер распределенных блокировок используется для обеспечения одновременного доступа к метаданным LVM. Всякий раз, когда узлу кластера необходимо изменить метаданные LVM, он должен получить разрешение от своего локального узла. clvmdкоторый находится в постоянном контакте с другими clvmd демонам в кластере и может сообщить о желании получить блокировку определенного набора объектов.
HA-LVM
Поддержка кластера остается на усмотрение приложения, обеспечивающего функцию высокой доступности. Что касается LVM, HA-LVM может использовать CLVM в качестве механизма блокировки или может продолжать использовать блокировку файлов по умолчанию и уменьшать «коллизии», ограничивая доступ только к тем объектам LVM, которые имеют соответствующие теги. Поскольку это более простое решение позволяет избежать конфликтов, а не смягчать их, одновременный доступ не допускается, поэтому HA-LVM считается полезным только в активно-пассивных конфигурациях.
lvmlockd
По состоянию на 2017 год , стабильный компонент LVM, предназначенный для замены clvmd делая блокировку объектов LVM прозрачной для остальной части LVM, не полагаясь на распределенный менеджер блокировок. [ 14 ] В 2016 году он получил масштабное развитие. [ 15 ]

Описанные выше механизмы решают только проблемы с доступом LVM к хранилищу. Файловая система, выбранная для размещения поверх таких логических томов, должна либо поддерживать кластеризацию сама по себе (например, GFS2 или VxFS ), либо она должна быть смонтирована только одним узлом кластера в любое время (например, в активно-пассивной конфигурации).

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

[ редактировать ]

LVM VG должны содержать политику распределения по умолчанию для новых томов, созданных на их основе. Позже это можно будет изменить для каждого LV с помощью lvconvert -A командой, или на самом VG через vgchange --alloc. Чтобы свести к минимуму фрагментацию, LVM сначала попытается применить самую строгую политику (непрерывную), а затем перейти к наиболее либеральной политике, определенной для объекта LVM, пока распределение, наконец, не будет успешным.

В конфигурациях RAID почти все политики применяются к каждой ветви изолированно. Например, даже если LV имеет политику cling , расширение файловой системы не приведет к тому, что LVM будет использовать PV, если он уже используется одной из других ветвей в настройке RAID. LV с функциональностью RAID будут размещать каждую ветвь на разных PV, делая другие PV недоступными для какой-либо другой ветви. Если бы это был единственный доступный вариант, расширение НН не удалось бы. В этом смысле логика цепляния применима только к расширению каждой отдельной ветви массива.

Доступные политики распределения:

  • Непрерывный – заставляет все LE в данном LV быть смежными и упорядоченными. Это устраняет фрагментацию, но существенно снижает возможности расширения ЛЖ.
  • Cling – заставляет новые LE распределяться только на PV, уже используемых LV. Это может помочь смягчить фрагментацию, а также снизить уязвимость отдельных логических томов в случае выхода устройства из строя, за счет снижения вероятности того, что другие логические тома также будут иметь экстенты на этом физическом томе.
  • Нормальный – подразумевает практически неизбирательный выбор PE, но при этом будет предпринята попытка предотвратить совместное использование параллельных ветвей (например, в конфигурации RAID) с физическим устройством.
  • Где угодно – никаких ограничений не накладывает. Очень рискованно при настройке RAID, поскольку игнорирует требования изоляции, что сводит на нет большинство преимуществ RAID. Для линейных объемов это может привести к повышенной фрагментации.

Выполнение

[ редактировать ]
Базовый пример головы LVM
Внутренняя работа версии 1 LVM. На этой диаграмме PE означает физический экстент.

Обычно первый мегабайт каждого физического тома содержит структуру, закодированную в основном в ASCII, называемую «заголовком LVM» или «головой LVM». Первоначально голова LVM записывалась в первый и последний мегабайт каждого PV для резервирования (на случай частичного аппаратного сбоя); однако позже это было изменено на только первый мегабайт. Заголовок каждого PV представляет собой полную копию макета всей группы томов, включая UUID всех других PV и LV, а также карту распределения PE по LE . Это упрощает восстановление данных в случае потери PV.

В версии ядра Linux 2.6 LVM реализован в виде устройства отображения устройств — простой схемы уровня блока для создания виртуальных блочных устройств и отображения их содержимого на другие блочные устройства. Это сводит к минимуму объем относительно сложного для отладки кода ядра, необходимого для реализации LVM. Он также позволяет использовать свои службы перенаправления ввода-вывода совместно с другими менеджерами томов (такими как EVMS ). Любой код, специфичный для LVM, выбрасывается в инструменты пользовательского пространства, которые просто манипулируют этими сопоставлениями и восстанавливают их состояние из метаданных на диске при каждом вызове.

Чтобы перевести группу томов в режим онлайн, используйте инструмент «vgchange»:

  1. Ищет PV во всех доступных блочных устройствах.
  2. Анализирует заголовок метаданных в каждом найденном PV.
  3. Вычисляет макеты всех видимых групп томов.
  4. Просматривает каждый логический том в группе томов, который необходимо перевести в онлайн-режим, и:
    1. Проверяет, видны ли все физические тома логического тома, который необходимо подключить к сети.
    2. Создает новое пустое сопоставление устройств.
    3. Сопоставляет его (с «линейной» целью) с областями данных физических томов, которым принадлежит логический том.

Чтобы переместить онлайн-логический том между физическими томами в одной группе томов, используйте инструмент «pvmove»:

  1. Создает новое пустое сопоставление устройств для пункта назначения.
  2. Применяет «зеркальную» цель к исходной карте и карте назначения. Ядро запустит зеркало в «ухудшенном» режиме и начнет копировать данные из оригинала в место назначения, чтобы синхронизировать их.
  3. Заменяет исходное сопоставление местом назначения, когда зеркало синхронизируется, а затем уничтожает оригинал.

Эти операции сопоставителя устройств происходят прозрачно, без того, чтобы приложения или файловые системы знали, что их базовое хранилище перемещается.

Предостережения

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

См. также

[ редактировать ]
  1. ^ Jump up to: а б «README LVM» . 17 ноября 2003 г. Проверено 25 июня 2014 г.
  2. ^ «Был создан аннотированный тег [lvm-devel] v2_03_21» . 21 апреля 2023 г. Проверено 22 апреля 2023 г.
  3. ^ «7.1.2 Конфигурация LVM с помощью YaST» . СУЗЕ. 12 июля 2011 года. Архивировано из оригинала 25 июля 2015 года . Проверено 22 мая 2015 г.
  4. ^ «Как: настроить рабочий стол Ubuntu с разделами LVM» . Убунту. 1 июня 2014 года. Архивировано из оригинала 4 марта 2016 года . Проверено 22 мая 2015 г.
  5. ^ «9.15.4 Создание логического тома LVM» . Красная шляпа. 8 октября 2014 года . Проверено 22 мая 2015 г.
  6. ^ «Производительность BTRFS по сравнению с LVM+EXT4 в отношении рабочих нагрузок базы данных» . 29 мая 2018 г.
  7. ^ «Тегирование объектов хранилища LVM2» . Микро Фокус Интернэшнл . Проверено 21 мая 2015 г.
  8. ^ «Демон метаданных» . Компания Red Hat Inc. Проверено 22 мая 2015 г.
  9. ^ «Использование новой функции кэширования LVM» . 22 мая 2014 года . Проверено 11 июля 2014 г.
  10. ^ «2.3.5. Логические тома с тонким предоставлением (тонкие тома)» . Access.redhat.com . Проверено 20 июня 2014 г.
  11. ^ «4.101.3. RHBA-2012:0161 — исправление ошибок lvm2 и улучшенное обновление» . Проверено 8 июня 2014 г.
  12. ^ «5.4.16. Логические тома RAID» . Access.redhat.com . Проверено 7 февраля 2017 г.
  13. ^ «Управление операциями ввода-вывода на логическом томе RAID1» . redhat.com . Проверено 16 июня 2014 г.
  14. ^ «Re: Снимок LVM с кластерным VG [РЕШЕНО]» . 15 марта 2013 г. Проверено 8 июня 2015 г.
  15. ^ " "vmlockd.c история git" " . Архивировано из оригинала 4 января 2024 года.
  16. ^ «Ошибка 9554 — барьеры записи в сопоставителе устройств не поддерживаются» . 01 июля 2009 г. Проверено 24 января 2010 г.
  17. ^ «Барьеры и журналируемые файловые системы» . ЛВН . 22 мая 2008 г. Проверено 28 мая 2008 г.
  18. ^ "будет ли pvmove'ing (LV за раз) дефрагментироваться?" . 29 апреля 2010 г. Проверено 22 мая 2015 г.
  19. ^ "Попался" . btrfs вики. Архивировано из оригинала 4 января 2024 года . Проверено 24 апреля 2017 г.

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1b157fc9a7df9bd9e7d29b6e40867185__1713967740
URL1:https://arc.ask3.ru/arc/aa/1b/85/1b157fc9a7df9bd9e7d29b6e40867185.html
Заголовок, (Title) документа по адресу, URL1:
Logical Volume Manager (Linux) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)