Intereting Posts
Как я могу нажимать клавишу «keycode 53» каждую минуту в X? Можно ли разблокировать несколько устройств LUKS для формирования LVM при загрузке? Ubuntu не загружается нормально после ручной установки X.org pfSense: какой пакет я могу установить для команды `make`? В Debian в fluxbox GtkPod не имеет права на запись, но делает это в GNOME Стандартная подоболочка vs подзаголовок подстановки команд Чтение из последовательного интерфейса избежание одной точки с двойной обратной косой чертой – awk Альтернативы для Шмеля? Запуск службы systemd после network-online.target, но DNS по-прежнему недоступен Обнаружение подключенных мониторов, когда X не работает Как узнать об использовании процессора Intel и GPU в Linux? Фильтрация вывода tcpdump и запуска скрипта, когда строка найдена в реальном времени есть ли инструмент / демон, который автоматически заполняет / etc / ethers в фоновом режиме, чтобы иметь надлежащий wake on lan hostname: Mac-база данных при необходимости? Ввод в браузере хромирования / Chrome Omnibox

RAIDing с LVM против MDRAID – плюсы и минусы?

В своем ответе на вопрос «смешанные типы рейдов» HBruijn предлагает использовать LVM для реализации RAID против более стандартного MDRAID.

После небольшого расследования, LVM также поддерживает функции RAID. Раньше я использовал LVM поверх MDRAID и до сих пор не знал, что LVM также поддерживает функции RAID. Это, по-видимому, относительно недавнее развитие, но я точно не понял, когда это было реализовано.

Таким образом, это альтернативные способы реализации программного RAID в Linux. Каковы плюсы и минусы этих двух разных подходов? Я ищу сравнения функций между двумя подходами, чтобы люди могли решить, что лучше для них. Выводы, основанные на экспериментировании (как, например, эта функция не работает, а также эта функция, и вот почему) также хорошо, если вы включаете свои данные в ответ.

Некоторые конкретные вопросы для решения:

  1. Предположим, я хочу сделать sw RAID + LVM (общий сценарий). Должен ли я использовать поддержку LVM для sw RAID и, таким образом, использовать одну утилиту вместо двух? Имеет ли этот более интегрированный подход какие-либо преимущества?
  2. Поддержка LVM для sw RAID имеет значительные недостатки по сравнению с более зрелым MDADM? В частности, насколько стабильной / без ошибок является поддержка LVM для sw RAID? Похоже, что эта поддержка восходит только к 2011 году (см. Ниже), в то время как MDADM намного старше. Кроме того, как он сравнивается с набором функций? Имеет ли он существенные недостатки функций по сравнению с MDADM? И наоборот, поддерживает ли она какие-либо функции sw RAID, которые нет в MDADM?

ЗАМЕТКИ:

  1. Существует подробное обсуждение на http://www.olearycomputers.com/ll/linux_mirrors.html, но я не мог узнать, на какую дату он был написан.

    Аналогичный вопрос о Serverfault: зеркало Linux LVM против зеркала MD . Однако этот вопрос был задан в 2010 году, и ответы могут быть устаревшими.

  2. Запись с изменениями для версии 2.02.87 – 12 августа 2011 года

    Добавить configure –with-raid для нового segtype 'raid' для поддержки MD RAID 1/4/5/6

    Таким образом, похоже, что поддержка RAID в LVM составляет около 3 лет.

Насколько зрелым и функциональным является LVM RAID?

LVM-RAID на самом деле mdraid под обложками. Он в основном работает, создавая два логических тома на одно RAID-устройство (одно для данных, называемое «rimage», одно для метаданных, называемое «rmeta»). Затем он передает их существующим драйверам mdraid. Поэтому такие вещи, как обработка ошибок чтения диска, балансировка нагрузки ввода-вывода и т. Д., Должны быть достаточно зрелыми.

Это хорошие новости.

инструменты

Вы не можете использовать mdadm на нем (по крайней мере, не так просто), а инструменты LVM RAID нигде не созревают. Например, в Debian Wheezy, lvs не может сообщить вам статус синхронизации RAID5. Я очень сомневаюсь в ремонте и восстановлении (особенно из ситуаций, которые никогда не бывают!) Находится где-то рядом с mdadm (и я случайно столкнулся с одним из тех, что были в моем тестировании, и, наконец, просто отказался от восстановления его восстановления mdadm было бы легко).

Особенно, если вы не используете новейшие версии всех инструментов, это ухудшается.

Отсутствующие функции

Текущие версии LVM-RAID не поддерживают сокращение ( lvreduce ) логического тома RAID. Они также не поддерживают изменение количества дисков или уровня RAID ( lvconvert дает сообщение об ошибке, которое пока не поддерживается). lvextend работает, и даже может повысить уровни RAID, которые только недавно получили поддержку, например RAID10. По моему опыту, расширение ЛВ намного чаще, чем их сокращение, так что это действительно разумно.

Некоторые другие функции mdraid отсутствуют, и особенно вы не можете настроить все параметры, которые вы можете использовать с помощью mdadm.

В старых версиях (например, в Debian Wheezy), LVM RAID также не поддерживает рост. Например, на Wheezy:

 root@LVM-RAID:~# lvextend -L+1g vg0/root Extending logical volume root to 11.00 GiB Internal error: _alloc_init called for non-virtual segment with no disk space. 

В общем, вы не хотите запускать версии Wheezy.

Вышеприведенный пример можно установить. Это тоже не тривиальный процесс.

Проблемы с инструментом

Играя с моим Jessie VM, я отключил (фактически) один диск. Это сработало, машина осталась бежать. lvs , однако, не указывал на то, что массивы деградировали. Я снова подключил диск и удалил второй. Осталось работать (это raid6). Повторно подключен, по-прежнему нет указаний от lvs . Я запустил lvconvert --repair объем, он сказал, что все в порядке. Затем я вытащил третий диск … и машина скончалась. Вновь вставлен, перезагружен, и теперь я не уверен, как это исправить. mdadm --force --assemble исправит это; ни у vgchange ни у lvchange нет такой опции (lvchange --force , но, похоже, ничего не делает). Даже пытающийся dmsetup напрямую dmsetup таблицу сопоставления с ядром, я не мог понять, как его восстановить.

Кроме того, mdadm – это выделенный инструмент только для управления RAID. LVM делает намного больше, но он чувствует (и я признаю, что это довольно субъективно), как функциональность RAID, которая там была зажата; это не совсем подходит.

Как вы устанавливаете систему с LVM RAID?

Ниже приведен краткий обзор его установки на Debian Jessie или Wheezy. Джесси гораздо проще; обратите внимание, если вы попробуете это на Wheezy, сначала прочитайте все это …

  1. Используйте полное изображение компакт-диска для установки, а не образ netinst.

  2. Действуйте как обычно, перейдите на раздел диска, настройте физические тома LVM. Вы можете поместить /boot на LVM-RAID (на Jessie и на Wheezy с некоторыми подробностями ниже).

  3. Создайте группу томов. Оставьте его в меню LVM.

  4. Первый бит удовольствия – у установщика нет модуля dm-raid.ko загруженного или даже доступного! Таким образом, вы сможете захватить его из пакета linux-image, который будет установлен. Переключитесь на консоль (например, AltF2 ) и:

     cd /tmp dpkg-deb --fsys-tarfile /cdrom/pool/main/l/linux/linux-image-*.deb | tar x depmod -a -b /tmp modprobe -d /tmp dm-raid 
  5. Установщик не знает, как создавать LVM-RAID LV, поэтому для этого вам нужно использовать командную строку. Заметьте, я не проводил бенчмаркинга; размер полосы ( -I ) ниже полностью зависит от моей настройки виртуальной машины:

     lvcreate --type raid5 -i 4 -I 256 -L 10G -n root vg0 
  6. В Jessie вы можете использовать RAID10 для обмена. На Wheezy RAID10 не поддерживается. Таким образом, вместо этого вы можете использовать два раздела подкачки, каждый RAID1. Но вы должны точно сказать, какие физические тома надеть на них, или же обе половины зеркала на одном диске . Да. Шутки в сторону. В любом случае, это выглядит так:

     lvcreate --type raid1 -m1 -L 1G -n swap0 vg0 /dev/vda1 /dev/vdb1 lvcreate --type raid1 -m1 -L 1G -n swap1 vg0 /dev/vdc1 /dev/vdd1 
  7. Наконец, вернитесь к установщику и нажмите «Готово» в меню LVM. Теперь вам будет представлено много логических томов. Это установщик, не понимающий, что происходит; игнорировать все с помощью rimage или rmeta в их имени (см. первый абзац выше для объяснения того, что это такое).

  8. Идем дальше и создаем файловые системы, свопируем разделы и т. Д., Как обычно. Установите базовую систему и т. Д., Пока не дойдете до подсказки grub.

  9. На Jessie grub2 будет работать, если он установлен в MBR (или, вероятно, с EFI, но я не тестировал это). На Wheezy установка завершится неудачно, и единственным решением будет обратный вызов grub2 Джесси. На самом деле это довольно легко, он компилируется на Wheezy. Каким-то образом, получите ваши пакеты backported grub в /target (или сделайте это через секунду после chroot):

     chroot /target /bin/bash mount /sys dpkg -i grub-pc_*.deb grub-pc-bin_*.deb grub-common_*.deb grub2-common_*.deb grub-install /dev/vda … grub-install /dev/vdd # for each disk echo 'dm_raid' >> /etc/initramfs-tools/modules update-initramfs -kall -u update-grub # should work, technically not quite tested² umount /sys exit 
  10. На самом деле, на моей последней Jessie VM grub-install висела. Переключение на F2 и выполнение while kill $(pidof vgs); do sleep 0.25; done while kill $(pidof vgs); do sleep 0.25; done 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 виртуальных дисков.

  11. На «Уайзи» после выполнения вышеизложенного выберите «продолжить без загрузчика».

  12. Завершите установку. Он будет загружаться. Вероятно.

Знания сообщества

Есть много людей, которые знают о mdadm и имеют много опыта развертывания. Google, скорее всего, ответит на большинство вопросов, которые у вас есть. Обычно вы можете задать вопрос об этом здесь, чтобы получить ответы, возможно, в течение дня.

То же самое нельзя сказать о LVM RAID. Трудно найти гидов. Большинство поисковых запросов Google, которые я выполнил, вместо этого находят, что я использую массивы mdadm в качестве PV. Честно говоря, это, вероятно, во многом потому, что оно новее и реже используется. В некотором смысле, это несправедливо держать это против него, но если что-то пойдет не так, гораздо более крупное сообщество вокруг mdadm делает восстановление моих данных более вероятным.

Вывод

LVM-RAID продвигается довольно быстро. На Wheezy он не может использоваться (по крайней мере, без поддержки LVM и ядра). Ранее, в 2014 году, на тестировании Debian это выглядело как интересная, но незавершенная идея. Текущее тестирование, в основном то, что станет Jessie, похоже на то, что вы действительно можете использовать, если вам часто нужно создавать небольшие фрагменты с различными конфигурациями RAID (что-то, что является административным кошмаром с mdadm ).

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

Множество применений LVM RAID (и даже mdadm RAID) перехватываются такими вещами, как кластерные системы хранения данных, ZFS и btrfs. Я рекомендую также исследовать их, они могут лучше удовлетворить ваши потребности.


Спасибо тебе

Я хотел бы поблагодарить psusi за то, что заставил меня вернуться к состоянию LVM-RAID и обновить эту запись.

Сноски

  1. Я подозреваю, что вы можете использовать устройство отображения устройств для склеивания метаданных и данных вместе таким образом, чтобы mdadm --assemble взял его. Конечно, вы могли бы просто запустить mdadm на логических томах просто отлично … и это было бы разумнее.

  2. Когда я делал установку Wheezy, я не смог сделать это в первый раз и закончил без конфигурации grub. Мне пришлось загружать систему, введя всю информацию в подсказке grub. После загрузки, это сработало, поэтому я думаю, что это будет отлично работать с установщиком. Если вы завершите подсказку grub, введите магические строки:

     linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg0-root initrd /boot/initrd.image-3.2.0-4-amd64 boot 

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

Я не знал, что LVM может делать RAID. Лично я буду придерживаться mdadm, так как это гораздо более зрелая программа, которая делает то же самое. Если что-то ломается с LVM RAID, вы, вероятно, не сможете получить такую ​​же поддержку, как если бы вы пошли с mdadm. Кроме того, я бы не стал доверять LVM RAID, поскольку, как показалось, LVM не является самым надежным программным обеспечением.

ZFS и BTRFS – это будущее. Выгоды, которые они дают, выходят за рамки того, что возможно на блочном уровне. Если я не буду стремиться к совместимости, я больше не буду использовать LVM / mdadm. У ZFS и BTRFS есть много функций, таких как сжатие, дедупликация и копирование на запись, но я не буду вдаваться в это, так как это будет немного не в сфере видимости.

В конце концов, сделайте свое исследование и используйте все, что вам подходит.