Каковы преимущества диспетчера логических томов [закрыто]

11

Каковы особенности и потенциальные преимущества Logical Volume Manager, помимо того, что подробно описано на его странице в Википедии?

LanceBaynes
источник
1
Против чего ?? На самом деле, это слишком расплывчатый вопрос.
Нандини Ананд
Пожалуйста, уточните ваши варианты.
Ори
1
Ничего себе - переписывание этого вопроса получило отличный ответ от Мэтта Симмонса!
dunxd
1
Для полноты картины
RichVel

Ответы:

33

Взято прямо из моей записи в блоге: http://www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/

Прежде всего, давайте обсудим жизнь без LVM. В старые добрые времена у тебя был жесткий диск. Этот жесткий диск может иметь разделы. Вы можете установить файловые системы на эти разделы, а затем использовать эти файловые системы. В обоих направлениях. Это выглядело примерно так:

У вас есть настоящий диск, в данном случае sda. На этом диске два раздела, sda1 и sda2. Также есть свободное место. Каждый раздел имеет файловую систему, которая монтируется. Фактический тип файловой системы является произвольным. Вы можете назвать это ext3, reiserfs, или как там у вас. Важно отметить, что существует прямая взаимная корреляция между разделами диска и возможными файловыми системами.

Давайте добавим некоторое управление логическими томами, которое воссоздает точно такую ​​же структуру:

Теперь вы видите те же разделы, однако над разделами есть слой, называемый «Группа томов», буквально группа томов, в данном случае разделы диска. Может быть приемлемо думать об этом как о некоем виртуальном диске, который вы можете разбить на разделы. Поскольку мы точно соответствуем нашей предыдущей конфигурации, вы еще не видите сильных сторон системы. Вы можете заметить, что над группой томов мы создали логические тома, которые можно рассматривать как виртуальные разделы, и именно на них мы строим наши файловые системы.

Давайте посмотрим, что произойдет, когда мы добавим более одного физического тома:

Здесь у нас есть три физических диска: sda, sdb и sdc. Каждый из первых двух дисков имеет один раздел, занимающий все пространство. Последний, sdc, имеет один раздел, занимающий половину диска, а половина остается нераспределенным свободным пространством.

Мы видим группу томов выше той, которая включает в себя все доступные в настоящее время тома. Здесь лежит один из самых больших пунктов продажи. Вы можете создать логический раздел размером с диск. Во многих отношениях это похоже на работу RAID уровня 0, за исключением того, что полос нет вообще. Данные пишутся по большей части линейно. Если вам требуется избыточность или увеличение производительности, которое обеспечивает RAID, убедитесь, что ваши логические тома размещены поверх массивов RAID. Срезы RAID работают точно так же, как физические диски здесь.

Теперь у нас есть группа томов, которая занимает 2 и 1/2 диска. Он был разделен на два логических тома, первый из которых больше любого из дисков. Логическим томам все равно, насколько велики реальные физические диски, поскольку все, что они видят, это то, что они вырезаны из myVolumeGroup01. Этот уровень абстракции важен, как мы увидим.

Что произойдет, если мы решим, что нам нужно неиспользуемое пространство, потому что мы добавили больше пользователей?

Обычно нас ждало бы горе, если бы мы использовали сопоставление один к одному, но с логическими томами вот что мы можем сделать:

Здесь мы взяли ранее свободное место в / dev / sdc и создали / dev / sdc2. Затем мы добавили это в список томов, которые составляют myVolumeGroup01. Как только это было сделано, мы могли расширять любой из логических томов по мере необходимости. Так как мы добавили пользователей, мы выросли myLogicalVolume2. В тот момент, пока файловая система / home поддерживала его, мы могли свободно расширять его, чтобы заполнить дополнительное пространство. Все потому, что мы абстрагировали наше хранилище от физических дисков, на которых оно живет.

Хорошо, это охватывает основную причину управления логическими томами. Поскольку я уверен, что вам не терпится узнать больше о том, как подготовить и построить свои собственные системы, вот несколько отличных ресурсов для начала:

http://www.pma.caltech.edu/~laurence/Linux/lvm.html
http://www.freeos.com/articles/3921/
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html

Мэтт Симмонс
источник
2
+1 за отличное описание и визуализацию.
Демон Хаоса
5

Вы можете использовать LVM, чтобы делать много вещей с дисками. Основным преимуществом является возможность наращивать файловые системы на лету. Предположим, вы настраиваете сервер журналов и знаете, что в будущем у вас будет тонна данных. Ext3 поддерживает максимум 16 ТБ (больше в зависимости от вашего ядра и версии EL). Но что, если вы знаете, что через 2 года вам понадобится 1PB памяти? Ну, это создает некоторые проблемы. Во-первых, ваш начальник посмотрит на вас оленями в свете фар, когда вы скажете ему цену оборудования для хранения данных. Это приводит к другой проблеме - вам нужно начать с небольшого решения, которое вы можете масштабировать вверх. LVM дает вам такую ​​возможность. Вы начинаете с нескольких дисков. Затем вы добавляете больше, превращаете их в логическую группу, добавляете их в первый логический том, увеличиваете размер тома и, наконец, увеличиваете файловую систему. Вуаля, ты

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

Изменить: Я также должен отметить, что если вы имеете дело с 1PB, вы не собираетесь использовать Ext3 ... возможно XFS.

Мэтью
источник
Я действительно не покупаю LVM как механизм для масштабирования от 16 ТБ до 1 ПБ - вам действительно нужен ZFS или аналогичный, который обеспечивает «тонкое выделение ресурсов», то есть вы создаете пул хранения ZFS общим объемом около 1 ПБ, но он поддерживается только частично реальными блоками хранения. По мере роста вы просто добавляете хранилище в один и тот же пул. Используя LVM, вы тратите огромное количество времени на изменение размера FS и выполнение fsck при каждом добавлении хранилища.
RichVel
4

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

Системные разделы существуют на один уровень выше диска

Без LVM Linux использует разделы, физически расположенные на диске. Разделы являются прямыми именами устройств. Таблица разделов находится в MBR и обычно (в случае логических расширенных разделов) в расширенной загрузочной записи (что позволяет создавать большее количество разделов). Разделы определяют размер и типсреди других атрибутов (более конкретно, они определяют начальный и конечный цилиндр, который по существу определяет размер). Поскольку они так тесно связаны с диском, настройка «правильной» схемы разметки при установке очень важна. Если вдруг, машинная функция изменится, или если вы новичок, и вы не поняли последствий разбиения, или если вы недооценили использование диска где-либо, или журналы определенного приложения, изменение этого разбиения может быть громоздким. Для этого есть инструменты, но вам, как правило, нужно переместить данные из раздела, чтобы изменить их. Очевидно, что если у вас четыре раздела, смена цилиндра конца второго раздела влияет на запуск цилиндров третьего и четвертого разделов, и вы попадаете в грязную ситуацию.

Наивный может выступать за использование одного большого раздела, но вы можете отменить его, когда вам нужно ввести квоты или изолировать мошеннические процессы, заполняющие части вашей системы (например, / var / log, / tmp и т. Д.)

Преимущества этого:

Добавление / удаление хранилища

Добавление хранилища обычно тривиально. Если вы используете аппаратный или программный RAID и добавляете больше дисков, вам, возможно, придется возиться с символическими ссылками, чтобы перестроить массив RAID, чтобы Linux мог сделать ваше новое хранилище доступным в нужных вам местах.

Возьмите пример большого каталога / home, который заполняется. Это существует на существующем томе RAID 1 с двумя дисками. Вы хотите добавить еще два диска. Вы настраиваете их в конфигурации аппаратного RAID 1. Без LVM у вас есть несколько вариантов:

  1. Перестройте полный массив raid в конфигурации 1 + 0, которая требует перемещения данных с машины, восстановления и повторного включения.
  2. Создайте новую группу томов RAID 1, которая является отдельной. В Linux уже есть первый том RAID, смонтированный в / home, поэтому вам необходимо смонтировать второй том RAID в / home1 или аналогичный. Теперь, чтобы получить подходящие пути для пользователей, которые соответствуют первому, вам может понадобиться использовать символические ссылки, чтобы получить тот же эффект. Кроме того, это решение требует постоянного обслуживания исходного тома RAID и, возможно, переноса данных из исходного раздела.

С помощью LVM вы можете просто добавить новую группу томов RAID 1 в дополнительный пул хранения, изменить размер файловой системы (при условии, что она ее поддерживает) и вуаля, / home теперь внезапно увеличится. Вам не нужно ничего делать символической ссылкой или выполнять техническое обслуживание для потенциально перемещаемых данных из / home в / home1 или наоборот. Промойте, промойте, повторите для будущих обновлений диска.

Онлайн обслуживание

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

Одна из основных проблем с томами LVM заключается в том, что по мере приближения к емкости фрагментация может стать проблемой в моем опыте. Объемы> 90%, а на самом деле> 95% могут означать, что вы можете столкнуться с плохой фрагментацией на диске в зависимости от использования диска и типов файлов. Излишне беспокоиться о том, что случается с любым видом управления томами / разделами, но это фрагментация на уровне томов, в отличие от раздела, который здесь важен.

Филип Рейнольдс
источник
Хороший ответ о преимуществах, но с вашей точки зрения (2) я думаю, что вы имеете в виду «создать новый том RAID 1, который ...», а не создавать VG, как это происходит в случае без LVM и предположительно с использованием аппаратного RAID, как упоминалось ,
RichVel
1

Вы должны были предоставить больше информации о ситуации, в которой вы собираетесь это применять, чтобы мы могли дать целевые ответы, а не широкие, возможно, несвязанные ответы (я не могу комментировать, иначе я бы сказал это в комментарии).

Теперь о самом вопросе, у вас есть простое создание, изменение размера и удаление томов (или разделов), и еще одна приятная функция (в зависимости от вашей ситуации) - это возможность создавать снимки тома.

Нет в наличии
источник
1

Даже если вы уже выбрали лучший ответ, я хотел бы высказать свое мнение по этой теме. Исходя из моего опыта, я бы поставил под сомнение полезность LVM, если у вас есть один физический диск или даже если у вас есть несколько дисков (лично я никогда не использую LVM на системном диске). Однако, где LVM действительно необходим, это аппаратный RAID. Это позволяет четко разделять функции RAID и LVM - вы используете RAID для управления характеристиками надежности и производительности вашего хранилища, а LVM выделяет для системы фактические тома. Иногда эта функциональность перекрывается, то есть LVM может обеспечивать функциональность RAID-0 и RAID-1, но я бы не рекомендовал использовать любую из этих двух программ для какой-либо серьезной сборки.

В основном RAID и LVM принадлежат друг другу, поэтому использование одного без другого обычно неоптимально.

dtoubelis
источник