Intel Matrix Storage Manager и программный RAID-массив Linux

28

Используемый мной чипсет поддерживает технологию Intel RSTe. Это означает, что у меня есть два варианта настройки RAID:

  • Обычный программный RAID-массив Linux, использующий mdadmкоманду.
  • RSTe (либо через BIOS, либо снова с помощью mdadmкоманды с -e imsmпереключателем).

Учитывая, что mdadmэто можно использовать для обоих, я не могу понять разницу между ними.

  • Что мне дает RSTe по сравнению с обычным программным RAID-массивом Linux?
  • В режиме RSTe - это фактический путь ввода-вывода RAID (т.е. зеркалирование и чередование), обрабатываемый Linux mdили BIOS.
  • В частности, когда я использую «матричный RAID» (т. Е. RAID охватывает определенные разделы, а не целые диски), нужно ли вручную устанавливать grub на обеих MBR?
Leonid99
источник

Ответы:

46

обзор

Существует три распространенных типа RAID:

  • Software RAIDЭто означает, что ваш BIOS и другие операционные системы думают, что у вас действительно есть два отдельных диска, но чисто на программном уровне ваша операционная система использует некоторый специфичный для ОС формат диска для RAID (зеркалирование, чередование, биты четности и т. Д.) , Вся обработка выполняется процессором без аппаратной поддержки.

  • BIOS RAID: Также известный как «Fake RAID» или «Host RAID», это означает, что встроенное программное обеспечение вашей материнской платы (точнее, вашего контроллера SATA / SAS) имеет явную поддержку для распознавания устройств RAID. На уровне логического устройства ( lun) ваши несколько жестких дисков будут отображаться как один диск для операционной системы. По сути, это контроллер SATA / SAS, говорящий: «У меня на самом деле только один жесткий диск. Ну, на самом деле это два, но, шшшш, это всего лишь один, поверь мне». Другими словами, операционная система может сказатьчто это установка RAID, но операционная система * не несет ответственности за формат на диске четности / чередования / etc RAID. Однако даже в этом режиме процессор выполняет все вычисления для битов четности и чередования. Материнская плата, BIOS и контроллер SATA обладают достаточной логикой, чтобы физически «объединять» устройства и определять формат диска для RAID. Но им не хватает выделенного процессора для выполнения вычислений, и они зависят от программного обеспечения в операционной системе, которое заставляет процессор выполнять их, поэтому вам все равно придется рассказать Linux о вашем RAID RAID. (Intel Matrix / RST - это тип BIOS RAID).

  • Hardware RAID: Здесь у вас есть специальный чип, единственной целью которого является обработка данных, необходимых для RAID. Чип может быть довольно мощным; некоторые аппаратные RAID-контроллеры на самом деле имеют двухъядерный процессороподобный чип на борту, хотя он специально оптимизирован для запуска встроенной операционной системы, которая ОЧЕНЬ быстро выполняет вычисления RAID, такие как биты четности для RAID-5 или чередование для RAID -0. Жесткие диски физически подключены к карте RAID, которая предоставляет контроллер SATA / SAS, обычно кэш-память для чтения и записи в DRAM или Flash, встроенную очередь команд и встроенный центральный процессор, который выполняет более математические вычисления. Эти аппаратные чипы стоят от 150 долларов на начальном уровне до многих тысяч для промышленных объединительных плат RAID-центров.

Совместимость

В общем, каждый тип RAID «привязан» к какому-то конкретному аспекту, который при изменении этого аспекта приводит к проблемам совместимости.

  • Программный RAID связан с операционной системой, которая определила формат RAID. Иногда между двумя разными версиями одной и той же операционной системы формат RAID нарушается, что приводит к несовместимости. Хотя концептуально возможно, чтобы любой программный формат RAID поддерживался любой другой операционной системой, поскольку на практике это всего лишь программное обеспечение , на практике большинство операционных систем представляют несовместимые форматы RAID, которые может распознавать только эта операционная система. Однако самой известной совместимостью являются форматы RAID, изначально используемые ядром Linux ( mdкак вы обсуждаете в OP), которые также могут распознавать программный RAID Windows, называемый динамическими дисками.

  • BIOS RAID привязан к вашей материнской плате. Возможно, можно перенести диски, отформатированные в определенном формате RAID RAID, на другую материнскую плату с аналогичным решением BIOS RAID; например, Intel RST для другой системы с RST. Но вам нужно будет тщательно изучить это, прежде чем делать ход, чтобы убедиться, что он будет совместимым, если вы заботитесь о его совместимости.

  • Аппаратный RAID связан с этим конкретным аппаратным контроллером или серией аппаратных контроллеров, которые явно заявлены производителем как совместимые. Некоторые поставщики поддерживают очень согласованный формат аппаратного диска RAID, который поддерживается многими поколениями контроллеров; другие меняют формат чаще. Опять же, вам придется исследовать его в каждом конкретном случае.

Спектакль

Производительность во многом зависит от того, как вы настраиваете основные параметры RAID-массива, и меньше зависит от конкретного решения. В целом, аппаратные RAID-контроллеры имеют самый высокий «потолок» для максимальной производительности; они также не нагружают ваш процессор почти так же, как другие решения. Но если вы выбрали неправильный тип RAID для вашей рабочей нагрузки, или неправильный размер чередования, или неправильный подход к кэшированию, аппаратный RAID-контроллер также может быть очень медленным, медленнее, чем один из дисков, работающих в режиме не-RAID. То же самое касается других решений, которые также могут быть очень медленными.

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

  • Производительность BIOS RAID обычно сопоставима с программным RAID, но известно, что некоторые контроллеры BIOS RAID и форматы дисков имеют ошибки или неэффективны. В общем, если вам приходится выбирать между программным RAID и BIOS RAID, первый вариант немного более перспективен для производительности, особенно если вы используете недавний дистрибутив Linux.

  • Производительность аппаратного RAID может быть безумно высокой из-за оптимизированной вычислительной мощности процессора RAID-контроллера, который, как я уже говорил, рассчитан на высокую пропускную способность и может фактически выступать в качестве многоядерного чипа - так что это серьезное железо. Основным недостатком является то, что вы теряете гибкость - вы не можете просто вставить диски в другой компьютер без контроллера аппаратного RAID - и затрат. Аппаратный RAID - лучший уровень для использования RAID-5 или RAID-6, особенно если у вас много дисков (4 или более).

В целом

Хотя BIOS RAID поддерживается Linux, я не рекомендую вам его использовать.

Теперь, чтобы прямо ответить на ваши вопросы, после того как я дал вам многословный ответ:

Что мне дает RSTe по сравнению с обычным программным RAID-массивом Linux?

См. Сравнение выше между программным RAID и BIOS RAID. «RSTe» является экземпляром BIOS RAID; Linux mdRAID без -e imsmэкземпляра программного RAID.

В режиме RSTe - это фактический путь ввода-вывода RAID (т.е. зеркалирование и чередование), обрабатываемый Linux md или BIOS.

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

В частности, когда я использую «матричный RAID» (т. Е. RAID охватывает определенные разделы, а не целые диски), нужно ли вручную устанавливать grub на обеих MBR?

Нет. На самом деле вам никогда не нужно устанавливать GRUB на обе MBR. Давайте рассмотрим это в каждом конкретном случае:

  • Программный RAID: просто выберите один диск произвольно, чтобы установить GRUB, и установите его в порядке BIOS, чтобы он загружался первым. Помните, что вы можете зеркалировать отдельные разделы, если хотите, поэтому диски не должны быть бит за битом идентичными в программном RAID. Можно иметь MBR с загрузчиком и ничего не иметь в MBR.

  • BIOS RAID: BIOS скажет вам, что это один «диск» (на самом деле он будет называть его «массив RAID»), поэтому вы не сможете выбрать, где установить GRUB. Когда вы устанавливаете Linux для этого, MBR (включая загрузчик) и любой другой сектор обоих дисков будут скопированы между двумя дисками. Таким образом, в отличие от программного RAID, BIOS RAID требует, чтобы оба диска были одинаковыми, потому что вы не можете разделить их как два логических устройства; контроллер диска говорит, что это ОДНО логическое устройство, а не два. Поэтому нельзя просто сказать: «Я хочу записать некоторые данные на диск 0, но не на диск 1». Невозможно. Но это вполне возможно с программным RAID.

  • Аппаратный RAID: BIOS скажет вам, что это один «диск», и что касается BIOS, он даже не осознает, что вы имеете дело с несколькими дисками. RAID-контроллер полностью абстрагирует все детали RAID от операционной системы и BIOS, за исключением того, что вы можете настроить некоторые аппаратные RAID-контроллеры, используя какой-то специальный протокол в операционной системе. Но устройства полностью неотделимы от программного уровня, подобно BIOS RAID.

Изменить: Обновление для получения дополнительных ответов на вопросы

Я все еще не могу понять пару вещей. Во-первых, о BIOS RAID: я могу создать его с помощью mdadm, чтобы Linux на самом деле не скрывал от меня базовые диски.

Это странно и сложно объяснить. В основном диски появляются как один на определенных слоях, и как два на других слоях. Но я держу пари, что с BIOS RAID каждый диск не будет иметь своего отдельного узла устройства, например, /dev/sdaи /dev/sdb. Если да, то ваш BIOS RAID отличается от того, что я видел.

о grub и MBR: если RAID охватывает разделы, а не диски, то я все равно могу видеть базовые диски. MBR не находится под RAID, и поэтому вам необходимо дважды установить загрузчик, чтобы иметь возможность загружаться в случае сбоя диска. Это верно?

Установка другой копии не повредит , но в случае сбоя диска загрузка будет наименее важной задачей. Короче говоря, продолжайте и делайте это, если хотите, но это вряд ли самая важная вещь. Установить grub с live CD на жесткий диск очень просто.

Диски в RAID (особенно, если они одного производителя и модели, произведены на одном и том же заводе и работают в непосредственной близости друг от друга при одинаковой температуре), скорее всего, выйдут из строя быстро, один за другим. Поэтому, если диск вышел из строя, то, вероятно, не стоит просто пожать плечами, вставить новый диск и начать восстановление: есть большая вероятность, что во время восстановления последний диск, содержащий непротиворечивую копию данных, сам выйдет из строя. Именно в этот момент, когда вы перейдете к последнему оставшемуся диску, я бы порекомендовал нанять эксперта (или сделать это самостоятельно, если вы хорошо разбираетесь в оборудовании), удалить пластинки с исходного диска, купить новый диск идентичной марки / модели поместите туда диски и считайте данные с нового диска. Это дорого и отнимает много времени,

Итак, вот пять вопросов, на которые я ответил для вас; Если вы нашли какое-либо значение в этой информации, пожалуйста, отметьте ответ соответствующим образом. Спасибо.

allquixotic
источник
1
спасибо за ваш подробный и проницательный ответ. Я все еще не могу понять пару вещей. Во-первых, о BIOS RAID: я могу создать его с использованием mdadm, так что Linux на самом деле не скрывает от меня базовые диски. Во-вторых, насчет grub и MBR: если RAID охватывает разделы, а не диски, я все равно вижу базовые диски. MBR не находится под RAID, и поэтому вам нужно дважды установить загрузчик, чтобы иметь возможность загружаться в случае сбоя диска. Это верно?
Leonid99
1
У меня PCH 6-й серии, и он mdadm --detail-platformуказывает, что Intel Matrix Storage Manager версии 11.0.0.1339. На самом деле я могу видеть мои отдельные диски как /dev/sdcи /dev/sdd. Мой поддельный массив RAID1 есть тогда /dev/md126.
Джонатон Рейнхарт
1
Когда ядро ​​Linux запущено и работает, код прошивки / BIOS больше не выполняется. Так за что отвечает ядро? Все? Если это так, то что на самом деле делает IMSM ? Кажется, что это не намного больше, чем Linux делает с программным RAID сам по себе? Наверное, я спрашиваю, что именно делает BIOS / Chipset?
Джонатон Рейнхарт
Что ж, похоже, это гибрид: когда компьютер загружается впервые (когда BIOS все еще активен), BIOS предоставляет программную логику RAID. Когда ОС загружается, ее драйверы отвечают за поддержку RAID-массива. 1 , 2
Джонатон Рейнхарт
2

Ответ Allquixotic слишком длинный:

  1. Что мне дает RSTe по сравнению с обычным программным RAID-массивом Linux?

Поддержка загрузки и немного другой набор функций. По своей сути это формат данных. - Вы даже можете использовать его без RST Option ROM от Intel (тогда у вас нет специальной поддержки загрузки). Что подразумевается под форматом, написано на mdadmстранице руководства .

  1. В режиме RSTe - это фактический путь ввода-вывода RAID (т.е. зеркалирование и чередование), обрабатываемый Linux md или BIOS.

Под Linux md (т.е. ядро ​​целиком).

Это оставляет открытым вопрос: почему Intel RST ограничивается только некоторыми чипсетами? Они не участвуют в RAID вообще. В лучшем случае они хранят немного, что говорит Option ROM об отказе работать на неподдерживаемых чипсетах.

Роберт Симер
источник
1
Это намного лучше, чем принятый ответ, который является длинным, бессвязным, в значительной степени некорректным и не отвечает на вопрос. (Ключевым моментом является то, что RSTe использует формат, понятный BIOS, позволяющий загружаться с деградированного RAID.)
Nemo
1

Хм, один ответ слишком длинный, другой слишком короткий.

RST "raid" в основном используется, если вы загружаете рабочую станцию ​​с двойной загрузкой, поскольку Intel выпускает драйверы для Windows и Linux и вы можете настроить raid в BIOS. Вы конфигурируете RAID, разбиваете виртуальный диск и можете выполнять двойную загрузку, когда обе ОС понимают несколько разделов

mdam для, если сервер выделен для Linux. Это «лучше», поскольку, если вы перестраиваете массив, вы делаете это из ОС, а не из BIOS, поэтому скорость перестроения намного выше. Для больших дисков восстановление BIOS может занять несколько ДНЕЙ.

Но реальность такова, что вы выбираете между зеленым Куском С или синим Куском С. Реальность заключается в том, что программный RAID - это в основном рейд "последней канавы CYA".

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

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

Хотя теоретически это возможно, если у вас есть лотки горячей замены и программный массив Linux mdam, на практике вы рискуете паникой, и сервер может легко не загрузиться на оставшийся диск.

Другая проблема касается ТИПА используемых дисков. Обычные диски рабочих станций по мере старения начинают создавать поврежденные сектора, которые внутренне перераспределяются диском в резервные сектора. Проблема состоит в том, что это перераспределение происходит только при записи - диск будет откладывать переназначение, если чтение происходит в плохом секторе, а на некоторых моделях дисков будет повторно перечитывать плохой или неисправный сектор, сравнивая результат каждый раз, пока не решит его. имеет лучшие данные, которые он может получить из этого сектора, прежде чем переназначить его Этот процесс может занять минуту или около того, и в течение этого времени у вас есть 1 диск в массиве, игнорирующий коды команд, поэтому программное обеспечение Software raid завершится сбоем и пометит массив как поврежденный. При перезагрузке у вас теперь есть 2 диска с одним и тем же сектором, которые могут иметь разные данные между дисками, так что теперь диспетчер программного RAID не знает, что «хорошо», диск, на котором не было ошибки, или диск, который переназначил сектор с наилучшим приближением к имеющимся у него данным. Western Digital делает «красные» диски, которые должны использоваться в программных RAID-массивах, которые этого не делают, они просто сразу не читают сектор, когда обнаруживают неисправный сектор, и перераспределяют его, чтобы менеджер массива мог взять данные из сектора на хорошем диске и запишите его на диск с неисправным сектором. Излишне говорить, что они взимают дополнительную плату за эти диски. они просто сразу отказывают в считывании сектора, когда обнаруживают неисправный сектор и переназначают его, чтобы менеджер массива мог взять данные из сектора на хорошем диске и записать их на диск с неисправным сектором. Излишне говорить, что они взимают дополнительную плату за эти диски. они просто сразу отказывают в считывании сектора, когда обнаруживают неисправный сектор и переназначают его, чтобы менеджер массива мог взять данные из сектора на хорошем диске и записать их на диск с неисправным сектором. Излишне говорить, что они взимают дополнительную плату за эти диски.

Таким образом, не используйте программный рейд для сервера, который не может допустить простоя в случае сбоя диска. Он в основном предназначен для рабочих станций, на которых люди не выполняют регулярное резервное копирование, и для небольших серверов SOHO, для которых выполняется резервное копирование и которые могут выдержать примерно один день простоя в случае сбоя диска.

Тед Миттельштадт
источник