Назад | Перейти на главную страницу

Программный RAID 10 в Linux

Долгое время я думал о переходе на RAID 10 на нескольких серверах. Теперь, когда Ubuntu 10.04 LTS запущена, пришло время для обновления. Я использую серверы HP Proliant ML115 (очень хорошая ценность). Он имеет четыре внутренних 3,5-дюймовых слота. В настоящее время я использую один диск для системы и массив RAID5 (программное обеспечение) для остальных трех дисков.

Проблема в том, что это создает единую точку отказа на загрузочном диске. Следовательно, я хотел бы перейти на массив RAID10, так как это даст мне лучшую производительность ввода-вывода и большую надежность. Проблема только в том, что хорошо платы контроллеров, поддерживающие RAID10 (например, 3Ware), стоят почти столько же, сколько и сам сервер. Более того, программный RAID10, похоже, не очень хорошо работает с Grub.

Что вы посоветуете? Должен ли я просто продолжать использовать RAID5? Кто-нибудь смог успешно установить программный RAID10 без проблем с загрузкой?

В этом случае я бы предпочел RAID10, если только вам не нужно дополнительное пространство, предлагаемое схемой single + RAID5. Вы получаете такую ​​же гарантированную избыточность (любой диск может выйти из строя, и массив выживет) и немного лучшую избыточность в худших случаях (RAID10 может выдержать 4 из 6-дюймовых сценариев сбоя двух дисков одновременно) и не имеет возможности записи штраф, который часто встречается с RAID5.

Скорее всего, у вас возникнут проблемы с загрузкой с RAID10, реализованного в виде традиционного вложенного массива (два RAID1 в RAID0) или с использованием последнего универсального драйвера RAID10 Linux, так как LILO и GRUB ожидают, что будут иметь всю информацию, необходимую для загрузки. один диск, которого может не быть с RAID0 или 10 (или программным RAID5, если на то пошло - он работает аппаратно, поскольку загрузчик видит только один диск, а контроллер имеет дело с тем, где данные он фактически распределяет между дисками).

Однако есть простой способ обойти это: просто имейте небольшой раздел (128 МБ должно быть более чем достаточно - вам нужно только место для нескольких образов ядра и связанных файлов initrd) в начале каждого из дисков и настройте их как массив RAID1, который монтируется как /boot. Вам просто нужно убедиться, что загрузчик правильно установлен на каждом диске, и все будет работать нормально (после загрузки ядра и initrd они справятся с поиском основного массива и правильной работой с ним).

Программный драйвер RAID10 имеет ряд параметров для настройки разметки блоков, которые могут принести дополнительные преимущества в производительности в зависимости от вашей схемы загрузки ввода-вывода (см. Вот для некоторых простых тестов), хотя мне еще не известны какие-либо дистрибутивы, которые поддерживают это для RAID 10 с момента установки (только более традиционное вложенное расположение). Если вы хотите попробовать драйвер RAID10, а ваш дистрибутив не поддерживает его во время установки, вы можете установить всю базовую систему в массив RAID1, как описано выше для / boot, и построить массив RAID10 с остальным дисковым пространством. однажды загрузился в это.

Для 4-х дисков или такого количества SATA-дисков, которое вы можете подключить к материнской плате, во многих случаях лучше использовать разъемы SATA материнской платы и программный RAID Linux MD, чем HW raid. Во-первых, встроенные соединения SATA идут прямо к южному мосту со скоростью около 20 Гбит / с. Многие контроллеры HW работают медленнее. Кроме того, программное обеспечение Linux MD RAID часто оказывается быстрее, гораздо более гибким и универсальным, чем HW RAID. Например, конфигурация Linux MD RAID10-far дает скорость чтения почти RAID0. И у вас может быть несколько разделов разных типов RAID с Linux MD RAID, например / boot с RAID1, а затем / root и другие разделы в raid10-far для скорости или RAID5 для пространства. Еще один аргумент - стоимость - покупка дополнительного RAID-контроллера часто обходится дороже, чем просто использование встроенных соединений SATA ;-)

Настройку с / boot on raid можно найти на https://raid.wiki.kernel.org/index.php/Preventing_against_a_failing_disk .

Более подробную информацию о Linux RAID можно найти в вики-странице группы ядра Linux RAID по адресу https://raid.wiki.kernel.org/

Ну, вы в значительной степени ответили на свой вопрос.

  • У вас нет денег на аппаратную карту raid10
  • Grub не поддерживает загрузку в программном рейде RAID10

Это означает, что вы не можете использовать RAID10.

Как насчет использования RAID5 на всех дисках? Мне это не кажется высокопроизводительным (или трафиком) сервером, поэтому снижение производительности, вероятно, будет не таким уж большим.

Изменить: я просто немного погуглил, и похоже, что Grub не может читать программный рейд. Ему нужен загрузчик на каждом диске, который вы хотите загрузить (в RAID5: на каждом диске). Мне это кажется крайне неуклюжим, думали ли вы о покупке бывшей в употреблении карты raid5 на ebay?