В своем ответе на вопрос «Смешанные типы рейдов» Х.Брейн предлагает использовать LVM для реализации RAID против более стандартного MDRAID.
После небольшого исследования кажется, что LVM также поддерживает функциональность RAID. Раньше я использовал LVM поверх MDRAID и до сих пор не знал, что LVM также поддерживает функциональность RAID. Похоже, это относительно недавняя разработка, но я точно не выяснил, когда это было реализовано.
Итак, это альтернативные способы реализации программного RAID в Linux. Каковы плюсы и минусы этих двух разных подходов? Я ищу сравнения характеристик между двумя подходами, чтобы люди могли решить, что лучше для них. Выводы, основанные на экспериментах (как, например, эта функция не работает так же хорошо, как эта функция, и вот почему) также в порядке, если вы включите свои данные в ответ.
Некоторые конкретные вопросы для решения:
- Предположим, я хочу сделать SW RAID + LVM (общий сценарий). Должен ли я использовать поддержку LVM для sw RAID и, таким образом, использовать одну утилиту вместо двух? Есть ли у этого более комплексного подхода какие-либо преимущества?
- Имеет ли LVM поддержка SW RAID существенные недостатки по сравнению с более зрелым MDADM? В частности, насколько стабильной / безошибочной является поддержка LVM для sw RAID? Кажется, эта поддержка восходит к 2011 году (см. Ниже), в то время как MDADM намного старше. Кроме того, как это сравнивается с точки зрения набора функций? Имеет ли он существенные недостатки по сравнению с MDADM? И наоборот, поддерживает ли он какие-либо функции SW RAID, которых нет у MDADM?
ПРИМЕЧАНИЯ:
Подробное обсуждение ведется по адресу http://www.olearycomputers.com/ll/linux_mirrors.html, но я не смог выяснить, в какую дату он был написан.
Аналогичный вопрос о Serverfault: зеркало Linux LVM против зеркала MD . Однако этот вопрос был задан в 2010 году, и ответы могут быть устаревшими.
Запись в журнале изменений для версии 2.02.87 - 12 августа 2011 г.
Добавьте конфигурацию --with-raid для нового сегмента 'raid' для поддержки MD RAID 1/4/5/6
Итак, похоже, что поддержка RAID в LVM около 3 лет.
источник
md
томами. Таким образом, у вас естьlvextend
иpvmove
доступны для перемещения между устройствами, в тоmd
время как с процессом намного больше ручного без явной выгоды.Ответы:
Насколько зрелым и функциональным является LVM RAID?
LVM-RAID на самом деле mdraid под прикрытием. Он в основном работает путем создания двух логических томов на каждое устройство RAID (один для данных, называемых «rimage»; один для метаданных, называемых «rmeta»). Затем он передает их существующим драйверам mdraid. Поэтому такие вещи, как обработка ошибок чтения с диска, балансировка нагрузки ввода-вывода и т. Д., Должны быть достаточно зрелыми.
Это хорошие новости.
инструменты
Вы не можете использовать
mdadm
его (по крайней мере, не простым способом), а инструменты LVM RAID далеко не так совершенны. Например, в Debian Wheezylvs
не может сообщить вам состояние синхронизации RAID5. Я очень сомневаюсь, что восстановление и восстановление (особенно в ситуациях «этого никогда не должно случиться!») Примерно так же хорошо, как и mdadm (и я случайно столкнулся с одним из тех, кто участвовал в моем тестировании, и, наконец, просто разочаровался в его восстановлении - восстановление с mdadm было бы легко).Особенно, если вы не используете новейшие версии всех инструментов, это ухудшается.
Недостающие функции
Текущие версии LVM-RAID не поддерживают сжатие (
lvreduce
) логического тома RAID. Они также не поддерживают изменение количества дисков или уровня RAID (lvconvert
выдает сообщение об ошибке, которое пока не поддерживается).lvextend
работает и может даже увеличить уровни RAID, которые mdraid получил только недавно, например RAID10. По моему опыту, расширение LV является гораздо более распространенным, чем сокращение их, так что это действительно разумно.Некоторые другие функции mdraid отсутствуют, и особенно вы не можете настроить все параметры, которые вы можете использовать с mdadm.
В более старых версиях (как, например, в Debian Wheezy) LVM RAID также не поддерживает рост. Например, на Wheezy:
В общем, вы не хотите запускать версии Wheezy.
Выше, как только вы установите его. Это тоже не тривиальный процесс.
Проблемы с инструментом
Играя с моей Jessie VM, я отключил (виртуально) один диск. Это сработало, машина осталась работать.
lvs
Тем не менее, не дал никаких указаний, что массивы были ухудшены. Я снова прикрепил диск и удалил секунду. Остался в бегах (это raid6). Повторно прикреплен, до сих пор нет указаний отlvs
. Я побежалlvconvert --repair
на томе, он сказал мне, что все в порядке. Затем я вытащил третий диск ... и машина умерла. Заново вставил, перезагрузил, и теперь не знаю, как исправить.mdadm --force --assemble
бы исправить это; ни,vgchange
ниlvchange
кажется, не имеют этой опции (lvchange принимает--force
, но, похоже, ничего не делает). Даже пытаясьdmsetup
напрямую передать таблицу сопоставления ядру, я не мог понять, как ее восстановить.Кроме того,
mdadm
это специальный инструмент только для управления RAID. LVM делает намного больше, но кажется (и я признаю, что это довольно субъективно), как будто функциональность RAID была как бы вытолкнута туда; это не совсем подходит.Как вы на самом деле устанавливаете систему с LVM RAID?
Вот краткое описание того, как установить его на Debian Jessie или Wheezy. Джесси намного проще; обратите внимание, если вы собираетесь попробовать это на Wheezy, сначала прочитайте все…
Для установки используйте полный образ CD, а не образ netinst.
Действуйте как обычно, перейдите к разделу диска, настройте физические тома LVM. Вы можете установить
/boot
LVM-RAID (как на Jessie, так и на Wheezy с некоторыми работами, описанными ниже).Создайте свою группу томов. Оставьте это в меню LVM.
Сначала немного веселья - установщик не
dm-raid.ko
загружает и даже не загружает модуль! Таким образом, вы можете получить его из пакета linux-image, который будет установлен. Переключитесь на консоль (например, Alt- F2) и:Программа установки не знает, как создавать LVM-RAID LV, поэтому вам нужно использовать командную строку для этого. Обратите внимание, я не делал никаких тестов; приведенный ниже размер полосы (
-I
) является приблизительным для моей установки виртуальной машины:На Джесси вы можете использовать RAID10 для обмена. На Wheezy RAID10 не поддерживается. Таким образом, вместо этого вы можете использовать два раздела подкачки, каждый RAID1. Но вы должны точно указать, на какие физические тома их помещать, или он поместит обе половины зеркала на один и тот же диск . Да. Шутки в сторону. Во всяком случае, это выглядит так:
Наконец, вернитесь к установщику и нажмите «Готово» в меню LVM. Теперь вам будет представлено много логических томов. Это установщик не понимает, что происходит; игнорируйте все с
rimage
илиrmeta
в их названии (см. первый абзац выше для объяснения того, что это такое).Идем дальше и создаем файловые системы, меняем разделы и т. Д. Как обычно. Установите базовую систему и т. Д., Пока не перейдете к приглашению grub.
На Джесси grub2 будет работать, если он установлен в MBR (или, возможно, с EFI, но я этого не проверял). На Wheezy установка не удастся, и единственное решение - сделать бэкпорт Джесси grub2. Это на самом деле довольно просто, он аккуратно компилируется на Wheezy. Каким-то образом, поместите ваши перенесенные пакеты grub
/target
(или сделайте это через секунду после chroot), затем:Собственно, на моей самой последней Jessie VM висела grub-install. Переключившись на F2 и выполнив
while kill $(pidof vgs); do sleep 0.25; done
то же самое дляlvs
, получил через grub-install. Несмотря на это, он генерировал действительный конфиг, но на всякий случай я сделалchroot /target /bin/bash
, удостоверился,/proc
и/sys
был смонтирован, и сделалupdate-grub
. На этот раз оно завершено. Затем яdpkg-reconfigure grub-pc
выбрал установку grub на MBR всех виртуальных дисков.На Wheezy, после выполнения вышеизложенного, выберите «продолжить без загрузчика».
Завершите установку. Это загрузится. Вероятно.
Знание сообщества
Есть немало людей, которые знают об этом
mdadm
и имеют большой опыт развертывания. Google, скорее всего, ответит на большинство ваших вопросов. Обычно вы можете ожидать ответа на вопрос здесь, чтобы получить ответы, вероятно, в течение дня.Этого нельзя сказать о LVM RAID. Трудно найти гидов. Большинство поисков в Google, которые я запускаю, вместо этого находят меня при использовании массивов mdadm в качестве PV. Честно говоря, это, вероятно, в значительной степени потому, что он более новый и менее распространенный. В некотором смысле, это несправедливо - считать это несправедливым, но если что-то пойдет не так, гораздо большее существующее сообщество вокруг mdadm повышает вероятность восстановления моих данных.
Заключение
LVM-RAID продвигается довольно быстро. На Wheezy это не очень удобно (по крайней мере, без бэкпорта LVM и ядра). Ранее, в 2014 году, на тестировании Debian это выглядело как интересная, но незаконченная идея. Текущее тестирование, в основном то, что станет Джесси, похоже на то, что вы могли бы фактически использовать, если вам часто нужно создавать небольшие кусочки с различными конфигурациями RAID (что является административным кошмаром
mdadm
).Если ваши потребности адекватно обслуживаются несколькими большими RAID-массивами mdadm, разделенными на разделы с использованием LVM, я бы посоветовал продолжать использовать это. Если вместо этого вам придется создавать много массивов (или даже массивов логических томов), рассмотрите возможность переключения на LVM-RAID. Но сохраняйте хорошие резервные копии.
Многие виды использования LVM RAID (и даже mdadm RAID) используются такими вещами, как кластерные системы хранения / объектные системы, ZFS и btrfs. Я рекомендую также изучить их, они могут лучше удовлетворить ваши потребности.
Спасибо тебе
Я хотел бы поблагодарить psusi за то, что он заставил меня пересмотреть состояние LVM-RAID и обновить этот пост.
Сноски
Я подозреваю, что вы могли бы использовать устройство отображения, чтобы склеить метаданные и данные вместе таким образом,
mdadm --assemble
чтобы это произошло . Конечно, вы могли бы простоmdadm
нормально работать на логических томах ... и это было бы разумнее.При установке Wheezy мне не удалось сделать это в первый раз, и я перестал работать без конфигурации grub. Я должен был загрузить систему, введя всю информацию в приглашении grub. После загрузки это сработало, так что я думаю, что оно будет нормально работать с установщиком. Если вы попадаете в приглашение grub, вот магические строки для ввода:
PS: я давно не проводил оригинальные эксперименты. Я сделал мои оригинальные заметки доступными. Обратите внимание, что я уже сделал более свежие, описанные в этом ответе, а не в этих заметках.
источник
dpkg-deb
обеспечивает более чистый способ извлечения файлов из пакетов deb, не нужно переходить к этапам.dpkg-deb
доступен в среде установщика? Раньше не было ... Обязательно проверяйте и Уизи.ar -x
тоже должен работать, чтобы распаковать архивы deb, хотя это более громоздко. Кроме того, как насчет обновления вашего ответа с текущим статусом?Я не знал, что LVM может сделать RAID тоже. Лично я бы придерживался mdadm, так как это более зрелое программное обеспечение, которое делает то же самое. Если что-то сломается с LVM RAID, вы, вероятно, не сможете получить такую большую поддержку, как если бы вы использовали mdadm. Кроме того, я бы не стал доверять LVM RAID, поскольку исторически сложилось, что LVM не является самым надежным программным обеспечением.
ZFS и BTRFS - это будущее. Преимущества, которые они дают, выходят за рамки возможного на блочном уровне. Если я не стремлюсь к совместимости, я больше не буду использовать LVM / mdadm. ZFS и BTRFS обладают множеством функций, таких как сжатие, дедупликация и копирование при записи, но я не буду вдаваться в подробности, поскольку это будет немного не по теме.
В конце концов, сделайте свое исследование и используйте то, что соответствует вашим потребностям / желаниям.
источник
LVM+XFS
а не BTRFS. Они поддерживают BTRFS, но это больше похоже на Oracle / SuSE.