- LVM позволяет абстрагироваться от хранение Физические решения для фотоэлектрических, генераторных и низковольтных систем, обеспечивающие гибкое и динамичное управление пространством. Linux.
- В лице команды Такие команды, как pvcreate, vgcreate, lvcreate, lvextend или pvmove, позволяют создавать, расширять и мигрировать тома на лету.
- Создание моментальных снимков, зеркалирование и миграция между массивами хранения делают LVM ключевым инструментом для обеспечения высокой доступности и обслуживания без простоев.
- Понимание типичных ошибок LVM и файлов конфигурации имеет важное значение для устранения неполадок в производственных средах.

Благодаря Linux, работать с хранилищем без лишних раздумий о классических разделах стало возможным. LVM (менеджер логических томов)Эта система добавляет уровень абстракции поверх физических дисков, что позволяет изменять размер, перемещать и защищать данные с такой гибкостью, которая в профессиональной среде имеет решающее значение: от необходимости останавливать сервер до возможности выполнять все действия на ходу.
Если вы управляете системами или готовитесь к сертификации, например, LPIC, RHCSA или аналогичной, то глубокое понимание LVM больше не является необязательным. В этом руководстве мы рассмотрим... Что такое LVM, какова его структура, как создавать и управлять PV, VG и LV?Помимо изучения реальных операций: масштабирование вверх, масштабирование вниз, зеркалирование, моментальные снимки, миграция между массивами хранения, использование расширенных LUN и решение типичных проблем, с которыми можно столкнуться в производственной среде.
Что такое LVM и зачем он используется в Linux?
Когда мы говорим о LVM, мы имеем в виду систему, которая позволяет Управляйте хранилищем логически, а не полагайтесь напрямую на фиксированные разделы.Вместо того чтобы использовать отдельно 50-гигабайтный /dev/sdb1 и 100-гигабайтный /dev/sdc1, LVM позволяет объединить их в единое пространство, создав так называемый пул томов. Группа томов (VG) объемом 150 ГБ.
Поверх этой группы томов (VG) мы можем определить несколько логических томов (LV), например, один объемом 20 ГБ для /opt, другой объемом 100 ГБ для /var и еще один объемом 30 ГБ для резервных копий. Этот уровень абстракции делает это возможным. Перераспределять пространство гораздо проще, чем при использовании традиционных перегородок.где после создания размера раздела изменить его сложно или просто невозможно в условиях высокой температуры.
Одно из главных преимуществ LVM заключается в том, что оно позволяет нам... создавать снимки Возможность быстрого восстановления данных из логического тома позволяет расширять файловые системы на лету, добавляя новые диски в группу томов, или перемещать данные с одного диска на другой в пределах одной группы без остановки служб. В средах с дисковыми массивами, SAN или общим хранилищем эта возможность миграции данных между дисками или массивами без простоев бесценна.
В реальном мире это означает, что вы сможете: перемещение базы данных из перегруженной серверной комнаты в более быструю. Без того, чтобы пользователи замечали что-либо, кроме дополнительной нагрузки на ввод-вывод, или без возможности расширения файловой системы приложения из-за недостатка ресурсов, без перезапуска сервера или ручного изменения служб.
Базовая структура LVM: PV, VG и LV.

Для полного понимания LVM необходимо четко представлять его основные компоненты, которые образуют иерархию от наиболее физических до наиболее логических. Ключевым моментом является то, что Каждый последующий уровень основывается на предыдущем, обеспечивая гибкость. без необходимости для файловой системы знать все подробности аппаратные средства.
В основе всего этого лежат Физический объем (PV)Это просто физические диски, разделы (например, /dev/sdb1, /dev/sdc1), LUN-ы массивов хранения или даже программные RAID-устройства, такие как /dev/md0. Каждый PV внутренне разделен на фиксированные блоки, называемые Физические пределы (ФП)которые станут основой для построения логических томов.
Над фотоэлектрической панелью находится Группа томов (VG)Группы томов (VG) объединяют один или несколько физических томов в пул хранения. Размер группы томов — это сумма емкостей всех входящих в нее физических томов за вычетом пространства, уже выделенного для логических томов. На практике группа томов является «контейнером», из которого мы будем извлекать пространство для создания пользовательских логических томов.
В самом низу лестницы находятся Логический том (LV)Это тома, которые система воспринимает почти как обычные разделы. Именно на логическом томе (LV) мы создаём файловую систему (ext4, xfs и т. д.) и монтируем её в /, /var, /home или в любое другое необходимое место. Внутри каждый логический том состоит из Логические пределы (ЛП)которые отображаются в соотношении 1:1 с PE-элементами VG, но могут быть распределены по нескольким физическим дискам, не являясь смежными.
Ядро использует сопоставление устройств для преобразования этих логических устройств (например, /dev/mapper/vg00-rootvol) в соответствующие физические блоки. Удобные для пользователя имена LVM обычно представляют собой символические ссылки на устройства, такие как /dev/dm-0, /dev/dm-1 и т. д., что обеспечивает огромную гибкость при объединении дисков, RAID, шифрования и LVM без обнаружения со стороны вышестоящих уровней.
В реальной системе, если мы выполним такие команды, как... vgs, vs и lvs Мы сможем увидеть список существующих групп томов, физических томов и логических томов, их общий размер и свободное пространство, а также атрибуты активации, статус, UUID и т. д. vgdisplay -v Мы можем получить еще более подробную информацию: количество латентных переменных, размер PE, количество свободных PE, список PV, образующих группу, и т. д.
Визуализируйте существующую структуру LVM в системе.

Прежде чем к чему-либо прикасаться, важно знать... Какая структура LVM в настоящее время используется в системе?Для этого используются три основные команды сводки: pvs, vgs и lvs. Каждая из них отображает различное и дополняющее друг друга представление одной и той же реальности.
Если мы хотим посмотреть, какие диски или разделы принадлежать к каждой группе, мы используем пвсЭта команда отобразит пути к устройствам (например, /dev/sda2, /dev/sdb1, /dev/sdc1), группу томов (VG), к которой они принадлежат, размер физического тома (PV) и объем нераспределенного пространства, оставшегося на каждом из них. Она очень полезна для проверки корректности добавления нового диска в группу томов (VG).
С помощью команды вгс Мы получим список всех групп томов, указывающий, сколько PV, LV и снимков (SN) содержит каждая группа, а также общий размер группы и доступное свободное пространство. Это позволит нам быстро определить, какие группы заполнены больше всего и где есть место для расширения.
Наконец, с LVS Мы увидим список логических томов с информацией о них, такой как размер, группа томов (VG), к которой они принадлежат, атрибуты (например, являются ли они зеркалами, снимками, тонкими и т. д.), процент использования в случае снимков и другие ключевые данные. На серверах с большим количеством логических томов эта команда становится практически незаменимой для отслеживания различных файловых систем.
Если нам нужен еще более подробный отчет по конкретной группе, мы можем запустить... vgdisplay -v NameVGЭта команда отобразит конфигурацию группы томов (VG), все содержащиеся в ней логические тома (LV) с расширенной информацией и, наконец, подробные сведения о каждом входящем в нее физическом томе (PV). Она особенно полезна для задач диагностики или аудита хранилища.
С другой стороны, если мы проверим файловые системы, смонтированные с помощью монтировать o df -hМы увидим, что точки сбора указывают на маршруты, расположенные ниже. / dev / mapper / VG-LVНапример, /dev/mapper/vg00-rootvol смонтирован в /, /dev/mapper/vg00-varvol — в /var и т. д. Это подтверждает, что файловые системы действительно поддерживаются на логических томах LVM.
Создание структуры LVM с нуля.
Для создания новой структуры LVM мы начинаем с одного или нескольких свободных дисков (или разделов). Типичный рабочий процесс состоит из следующих шагов: Создайте сначала PV, затем VG и, наконец, один или несколько LV. о каком формат файловые системы.
Инициализация физического тома (PV)
Первый шаг — пометить диск или раздел как физический том для LVM с помощью команды. ПВХсоздатьЭто инициализирует метаданные, необходимые для управления устройством с помощью LVM. Например, если мы хотим использовать /dev/sdb в качестве PV, мы выполним следующую команду:
pvcreate /dev/sdb
После этого шага устройство становится способным интегрировать в группу томовВ некоторых дистрибутивах, таких как Red Hat, при создании группы томов с нуля установщик автоматически выполняет команду pvcreate, но знание этой команды необходимо для ручного расширения и настройки.
Создайте группу томов (VG).
После подготовки файлов PV мы определяем группу томов с помощью команды. vgcreateЭта команда принимает имя группы томов (VG) и список физических устройств, которые будут входить в её состав. Например, чтобы создать группу томов с именем vgMySQL с двумя дисками:
vgcreate vgMySQL /dev/sdb /dev/sdc
С этого момента, vgMySQL будет представлять собой пул хранения. на основе которых мы можем создать один или несколько логических томов для различных целей (данных, бревна(резервные копии и т. д.). Результат можно проверить с помощью vgdisplay vgMySQL или с кратким резюме вгс.
Определение логических томов (ЛТ)
После создания группы томов следующим шагом будет... зарезервируйте место в этой группе для каждого LVМы делаем это с помощью команды lvcreate, указывая имя, размер и группу томов (VG). Простой пример:
lvcreate -n lvMySQL -L 10G vgMySQL
Эта команда создаст логический том объемом 10 ГБ в vgMySQL, который будет отображаться следующим образом: /dev/vgMySQL/lvMySQL (а также как /dev/mapper/vgMySQL-lvMySQL). Далее мы будем рассматривать его почти как традиционный раздел, на котором создается файловая система.
Создайте файловую систему на логическом томе.
После создания LV остается лишь... отформатируйте его с помощью той файловой системы, которая лучше всего соответствует вашим потребностям.Например, если мы хотим использовать XFS на логическом томе для базы данных:
mkfs.xfs /dev/vgMySQL/lvMySQL
Далее мы создадим точку монтирования (например, /Backup_MySQL, /data_mysql и т. д.) и добавим соответствующую запись в файл конфигурации. / И т.д. / Fstab Таким образом, она будет автоматически монтироваться при запуске. С этого момента приложения будут видеть только обычную файловую систему, даже несмотря на то, что в её основе используется LVM.
Объединение двух групп томов (vgmerge)
Иногда нам может понадобиться объединить две VG в одну Для упрощения управления или быстрого перераспределения пространства между логическими томами, которые ранее находились в отдельных группах, существует команда `vgmerge`, которая объединяет вторую группу с первой.
Перед слиянием важно убедиться в том, что Не должно быть повторяющихся имен логических томов. Между обеими группами должно быть одинаковое значение, а размер экстентов (PE) должен быть одинаковым в обеих группах виртуальных машин (VG), иначе команда завершится с ошибкой или потребует предварительной корректировки.
Типичная процедура включает в себя: отмонтируйте затронутые файловые системыОтключите группу томов (VG), которую хотите интегрировать, и запустите команду vgmerge. Например, чтобы объединить vgPostreSQL с vgMySQL:
vgchange -an vgPostreSQL
vgmerge vgMySQL vgPostreSQL
После слияния все логические тома, принадлежавшие vgPostreSQL, были удалены. станет частью vgMySQLИ мы можем повторно активировать и смонтировать их обычным способом. Этот тип операций полезен при реорганизации серверного хранилища в среднесрочной или долгосрочной перспективе.
Основные команды для управления LVM
Помимо создания PV, VG и LV, в повседневном управлении крайне важно знать следующее: увеличивать, уменьшать, удалять и перемещать тома без ущерба для данных. LVM предлагает широкий спектр команд, которые стоит освоить, как в их базовой форме, так и в сложных сценариях.
Расширение файловой системы в LVM
Одна из наиболее частых проблем возникает, когда в файловой системе заканчивается место, и нам необходимо... увеличить размер логического тома и файловой системыОбычно в файловых системах ext3/ext4 используется утилита lvextend для логического тома, а затем инструмент для увеличения размера файловой системы, например, resize2fs.
Например, чтобы уменьшить размер тома до 512 МБ, можно выполнить следующую команду:
lvextend -L 512M /dev/VolGroup00/LogVol02
resize2fs /dev/VolGroup00/LogVol02
Если же вместо этого мы хотим... добавить дополнительное пространство к существующему размеру (например, чтобы увеличить объем памяти на 512 МБ по сравнению с уже имеющимся объемом LV), мы используем синтаксис со знаком плюс:
lvextend -L+512M /dev/VolGroup00/LogVol02
В системах с XFS рост файловой системы осуществляется с помощью xfs_growfs указывает на точку монтирования или устройство. Важно знать, какой инструмент подходит для каждого типа файловой системы, поскольку при обновлениях они ведут себя по-разному.
Уменьшение размера файловой системы и логического тома.
Противоположная операция, сокращение, более деликатна, поскольку она включает в себя Уменьшите размер файловой системы, а затем и логического тома.Не все файловые системы это позволяют: EXT4 поддерживает уменьшение размера файловой системы, в то время как XFS, например, не поддерживает уменьшение, а только увеличение.
Типичный рабочий процесс с ext4 включает в себя сначала уменьшение размера файловой системы (обычно после её отмонтирования и запуска fsck, если это требуется инструментом), а затем использование lvreduce для корректировки размера логического тома. Во многих дистрибутивах это упрощается с помощью соответствующей опции. -r в lvreduce, который обеспечивает более безопасную координацию обоих этапов:
lvreduce -r -L95G /dev/mapper/vgdml-lvdml
Сам процесс выполнит проверку целостности, скорректирует размер файловой системы и, наконец, уменьшит размер логического тома до указанного значения. Тем не менее, целесообразно иметь всегда делайте резервные копии Когда производятся сокращения, поскольку ошибка на этом этапе может быть критической.
Удаление логического тома
Чтобы удалить логический том, который нам больше не нужен, необходимо убедиться в следующем: не установлен и не используетсяПосле отмонтирования файловой системы мы можем удалить логический том с помощью команды lvremove:
lvremove /dev/VolGroup00/LogVol02
Эта команда удаляет определение логического тома и раскрывает свои границы в рамках VGчтобы это пространство стало доступным для создания других объемов или расширения существующих в рамках той же группы.
Создание и управление зеркалами с помощью LVM
Если в аппаратном обеспечении нет RAID-массива на каждый контроллер, мы можем его настроить. зеркалирование на уровне LVMЭто работает при условии, что в группе томов достаточно места и физические диски правильно распределены. В более старых версиях использовалась команда `lvextend` с опцией `-m`, а в более новых — `lvconvert`.
Для создания зеркальной копии существующего логического тома мы указываем количество копий (m1 (это означает зеркальную копию в дополнение к оригиналу):
lvconvert -m1 /dev/VolGroup00/LogVol02 /dev/sdae
В процессе синхронизации LVM выполняет синхронизацию обеих копий, и мы можем наблюдать за ходом процесса с помощью LVM, видя, как происходит синхронизация. процент синхронизации Значение изменяется от 0 до 100. Если в какой-либо момент нам потребуется вернуться в линейный режим (без зеркального отображения), мы можем использовать lvconvert с -м0 снять зеркало.
В типичном практическом примере создается новая группа томов (VG) с двумя дисками и LV в зеркальном режиме и он отформатирован. После копирования данных в файловую систему (например, с большого установочного DVD-диска ISO для проверки целостности) вы можете убедиться, что синхронизация завершена и что оба диска содержат одинаковое содержимое.
Ещё одна интересная ситуация возникает, когда мы хотим Разбить зеркало, чтобы извлечь диск (например, чтобы заменить его другим). Сначала мы преобразуем LV в линейный режим с помощью команды lvconvert -m0, что позволяет нам Один из дисков VG остался свободным от данных.Далее мы запускаем `vgreduce`, чтобы удалить этот PV из группы, и, наконец, можем перезагрузить или физически удалить диск. Позже мы можем добавить новый диск с помощью `vgextend` и переделать зеркалирование с помощью `lvconvert -m1`.
Перемещение данных между дисками в пределах одной группы томов (pvmove)
В крупных бизнес-средах часто бывает так, что при El TiempoНекоторые дисковые массивы могут начать работать медленно или быть перегружены. LVM предоставляет команду для их обработки. pvmove Для перемещения данных со старого PV на новый в пределах одной и той же VG без остановки служб, путем прозрачного копирования экстентов с одного диска на другой.
Обычно рабочий процесс заключается в том, чтобы сначала добавить новые быстрые диски в группу томов (VG) с помощью vgextendЧтобы мы могли видеть как старые, так и новые файлы в PVS. Затем запускаем команду pvmove, указывая источник и пункт назначения, например:
pvmove /dev/sdg1 /dev/sdk1
В процессе выполнения pvmove отображает процент завершения. Это ресурсоемкий процесс, требующий частого ввода-вывода, и его следует планировать вне часов пиковой нагрузки, поскольку Программа прочитает данные со старого диска, запишет их на новый и сотрет старые данные.После завершения процесса и проверки отсутствия данных в старом PV, мы можем удалить его из группы с помощью vgreduce, чтобы больше не использовать этот медленный кабинный модуль.
Активация и деактивация групп громкости (vgchange)
В конфигурациях с высокой доступностью, особенно в кластерах, это часто встречается... Группы виртуальных машин (VG) активируются и деактивируются на разных узлах. Это зависит от того, где запущена служба. Хотя обычно это управляется кластерным программным обеспечением, иногда это приходится делать вручную.
Для того чтобы пометить виртуальную станцию как активную (доступную для монтирования ваших виртуальных машин), мы используем:
vgchange -a y NombreVG
А чтобы отключить эту функцию, например, перед переносом тома на другой сервер, используются следующие методы:
vgchange -a n NombreVG
Комбинадо кон vgscanЗаставив систему сканировать устройства для поиска структур LVM, мы можем заставить другой узел в кластере распознать и активировать те же группы, которые были созданы или изменены на первом узле.
Снимки в LVM: создание, восстановление и удаление.
Одна из самых мощных функций LVM — это его способность создавать снимки логических томовСнимок состояния фиксирует состояние работающего сервера в данный момент времени и сохраняется в дополнительной области хранения, где записываются последующие изменения. Это позволяет откатить изменения, если обновление или изменение конфигурации пошло не так.
Основной алгоритм действий будет следующим: создать файл или набор данных в исходной файловой системе, сгенерировать снимок с помощью команды lvcreate, используя соответствующую опцию. -sВнесите дополнительные изменения, и если что-то не получится, отмонтируйте файловую систему и объедините снимок с... lvconvert –merge восстановить предыдущее состояние.
Например, чтобы создать снимок /dev/vgtest/lvtest размером 100 МБ, мы можем выполнить следующую команду:
lvcreate -s -n lvtest_snapshot -L 100M /dev/vgtest/lvtest
Пока существует снимок, LVM будет продолжать его сохранять. модифицированные блоки относительно оригинала. Если мы хотим «отменить» изменения, внесенные в файловую систему после создания снимка, мы отмонтируем том, запускаем команду `lvconvert --merge` для снимка и повторно монтируем файловую систему. Файлы они вернутся в то состояние, в котором были на момент создания снимка.
Если же, наоборот, мы убедимся, что всё работает правильно, и захотим зафиксировать изменения, мы просто удалим снимок. УдалитьТаким образом, мы освобождаем пространство, зарезервированное в VG, и предотвращаем его заполнение из-за чрезмерных изменений.
Основные инструменты и команды LVM
LVM2, версия, используемая в современных ядрах, предлагает широкий спектр специализированных команд. Хотя мы уже упомянули некоторые из них, полезно иметь общий обзор наиболее важных инструментов для управление полным жизненным циклом томов.
- pvcreate, vgcreate, lvcreateОни создают физические, групповые и логические тома.
- pvdisplay, vgdisplay, lvdisplayОни отображают подробную информацию о каждом типе объекта LVM.
- PVS, VGS, LVSОни предоставляют очень полезный сводный обзор, позволяющий быстро оценить состояние хранилища.
- lvextend, vgextendОни расширяют логические тома или группы, увеличивая их размер или добавляя новые PV-объекты.
- lvreduce, vgreduce: уменьшить размер ЛЖ или удалить ПВ из ЖГ.
- pvscan, vgscan, lvscanОни сканируют систему на наличие структур LVM.
- pvchange, vgchange, lvchange: изменять атрибуты (например, активацию, права доступа) различных элементов.
- pvmove: осуществляет миграцию данных с одного физического тома на другой в пределах одной и той же группы томов (VG).
- pvresize, lvresizeОни корректируют структуру данных, чтобы иметь возможность увеличивать или уменьшать объемы.
- vgcfgbackup, vgcfgrestoreОни сохраняют и восстанавливают метаданные VG.
- vgconvert: изменяет формат метаданных, что полезно для миграции между версиями LVM.
- lvconvert: преобразует объемы между линейным, зеркальным, моментальным и другими режимами.
- vgexport, vgimport, vgimportcloneОни экспортируют/импортируют группы вирусов (VG) для перемещения их в другие системы, избегая конфликтов имен.
- vgmerge, vgsplit: позволяет объединять или разделять группы томов.
- vgrename, lvrename: Изменяет названия VG и LV без изменения данных.
- pvremove, lvremoveОни удаляют PV из LVM и удаляют LV, которые больше не используются.
Овладев определенным набором инструментов, работать с хранилищем в Linux становится довольно просто. гораздо более податливые и менее травматичныеэто позволяет вносить существенные изменения без прерывания работы сервисов и облегчает долгосрочное техническое обслуживание.
Освоение LVM требует глубокого понимания его структуры PV-VG-LV, принципов взаимодействия с файловыми системами, а также владения такими командами, как pvcreate, vgcreate, lvcreate, pvmove, lvextend и snapshots; имея эти знания, любой администратор сможет управлять хранилищем на сервере Linux. с гораздо большей безопасностью и гибкостью. чем при традиционном разделении пространства.
Страстный писатель о мире байтов и технологий в целом. Мне нравится делиться своими знаниями в письменной форме, и именно этим я и займусь в этом блоге: покажу вам все самое интересное о гаджетах, программном обеспечении, оборудовании, технологических тенденциях и многом другом. Моя цель — помочь вам ориентироваться в цифровом мире простым и интересным способом.