LINUX.ORG.RU
ФорумTalks

Soft RAID или Hard RAID?

 , ,


1

4

Всем привет, впервые в жизни сталкиваюсь с рейдами, ну т.е. раньше вот вообще небыло интереса к этой теме, сейчас для самообразования решил заняться, изучаю вопрос с нуля. mdadm штука клёвая, в использовании очень простая, сразу вижу кучу вариантов применений, впилить её в booty, но это потом...

Во-первых, соц. опрос, я помучал коллег на работе глупыми вопросами, теперь интересно узнать мнение ЛОРа.

Представьте себе, что вы купили сервер, в нём 8 SFF (2.5") дисков. как бы вы строили отказоустойчивую архитектуру на сервере? Большинство склоняется к мнению, что они берут два диска, размечают их в RAID 1 (для зеркала) и ставят туда операционную систему, а на остальные 6 дисков накатывают данные.

В случае выхода из строя диска с системой мы его меняем, контроллер восстанавливает копию, вроде звучит неплохо.

А какой тип рейда лучше взять для данных? Поразмышляв я пришёл к мнению, что всё зависит исключительно от расп...кхм, личной ответственности системного администратора, а не технического задания, на самом деле.

Например RAID 6 позволяет выйти из строя двум дискам, RAIDZ 1/2/3 позволяет вылететь до трёх дисков, в то время как более упрощённые варианты RAID-массивов а-ля зеркала RAID 1 или RAID 10 потребуют незамедлительной замены дисков обслуживающим персоналом. То есть, выбор массива зависит скорее от человеческого фактора, нежели от технических решений, — готовы ли вы поменять вылетевший диск сразу как только он выйдет из строя (читай заблаговременно, мониторя его состояние), или же вам пофигу, и поменяете потом как руки дойдут... Так ли это на самом деле?

Разница между RAID 1+0 и RAID 10 в том, что в случае с 1+0 диски являются копией друг друга по-парно, а при 10 складывается два массива из дисков. На первый взгляд я считаю 1+0 лучше, потому что при замене диска на него будет синкаться его зеркальная копия, одна единственная. А если мы возьмём RAID 10, то тут будет два массива данных, и уже эти массивы являются копиями друг друга, и на мой личный взгляд, выглядит избыточно. Чем решение проще, тем оно вернее, поэтому мне кажется 1+0 лучше тем, что он проще, — буквально dd делается с диска на диск. Поправьте где я не прав, буду благодарен.

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

Софтварно мы можем строить целые пирамиды из различных типов рейдов, наслаивая их друг на друга. В буквальном смысле, мы можем из пустых файлов создавать массивы и взращивать его аки чайный гриб, после чего переносить на любые физические носители и dd'шить их обратно, и когда сломается железо, то нам не страшно, — мы меняем железо аки лампочку в цоколе, переносим рейды хоть на флешках, подключаем, запускаем... На любом железе, работаем с рейдом через софт, от сервера до микроволновки. Да всё что угодно, понимаете. Софтварный рейд в этом плане даёт абсолютную свободу действий.

Теперь же возвращаясь к железячному рейду.

https://www.voglea.com/20210814_094618.jpg

Вот я взял сервер HP DL360p Gen9, контроллер P440ar, воткнул два диска, разметил в RAID 1, установил туда ESXI, загрузился, работает. Вытащил один диск, заменил другим, посмотрел как контроллер восстанавливает данные — круто. Но теперь я хочу перенести ОС на другой сервер, не просто имитировать сломанный контроллер P440ar, заменив его другим таким же, а перенести данные с Gen9 на Gen8 по соседству.

В случае с софтварным рейдом всё было бы очень просто, как уже писал, я могу в буквальном смысле работать с файлами — с образами дисков, а тут я воткнул два диска в другой сервер и... Он не видит на нём рейда. Что делать? Куда нажать чтобы он увидел рейд и загрузился в ESXI? Это же энтерпрайз, HP, я за это якобы сотню денег плачу. Где моя гибкость решений?

https://www.voglea.com/2021-08-14-090338_3440x1440_scrot.png

Подскажите пожалуйста, как восстановить RAID на другом сервере и загрузиться в ОС, куда нажать. И возможно ли это будет сделать на другом сервере например DELL PowerEdge R360?

А ещё есть клиенты, которые предпочитают ставить систему на M.2 NVMe накопители, используя PCI-Express адаптеры, подключённые к рейзеру. Он не коммуцирует с RAID-контроллером сервера, поэтому такая система работает на страх и риск системного администратора, но за то все 8 дисков можно отдать под данные.

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

★★★★★

Тут на лоре в каждом треде пишут что рейд не нужен. Подпишусь.

mdadm штука клёвая, в использовании очень простая, сразу вижу кучу вариантов применений, впилить её в booty, но это потом...

А зачем в твоей системе без диска нужен mdadm?

tfeartx ()
Последнее исправление: tfeartx (всего исправлений: 1)

Ну, я за софт рейд, как-то с ним проще, на интеловских материнках на десктопе раньше тоже был якобы рейд контроллеры, по факту это тоже были софт рейд

IvanR ★★★ ()

а это точно для токсов?

впервые в жизни сталкиваюсь с рейдами

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

не, я пасс эту портянку читать.

crypt ★★★★★ ()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

некоторые по бабам бегают, им некогда рейд. другие в рейде, им некогда за бабами.

а я в tmpfs, мне некогда по бабам и по рейдам.

Spoofing ★★★★★ ()

Аппаратный RAID с кэшем и батарейкой (типа P420i на скриншоте) в некоторых случаях ощутимо быстрее программного. Если это не имеет значения, то программный массив рулит и педалит, ИМХО.

а тут я воткнул два диска в другой сервер и… Он не видит на нём рейда. Что делать? Куда нажать чтобы он увидел рейд и загрузился в ESXI?

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

NeOlip ★★ ()

Могу сказать что от рейдов только гемор один, 15лет*40серверов не админю, но в курсе проблем.

ilovewindows ★★★★★ ()

а перенести данные с Gen9 на Gen8 по соседству

Хреновая задача. Точно так же ты создашь софт рейд с метаданными версии 1.2 и захочешь перенести на древнюю ОСь, для которой потолок - 1.0

Если ты используешь аппаратный рейд, будь готов обеспечить ему адекватную замену. Т.е. с gen9 на gen9. Или с gen8 на gen9. Обратная совместимость на твоей совести, проверяй по докам

router ★★★★★ ()
Ответ на: комментарий от router

понял, спасибо, попробую с ген8 на ген9, если железки не имеют обратной совместимости, ну штож. ещё один плюсик софт рейду.

Spoofing ★★★★★ ()

А ещё есть клиенты, которые предпочитают ставить систему на M.2 NVMe накопители, используя PCI-Express адаптеры, подключённые к рейзеру. Он не коммуцирует с RAID-контроллером сервера, поэтому такая система работает на страх и риск системного администратора, но за то все 8 дисков можно отдать под данные.

Само собой, nvme работают без всякий аппаратных рейдов. Но и создавать на них обычную ФС глупо. Обычно они идут подо что-то вроде vSAN, когда программный контроллер раскидывает данные по дискам и поддерживает нужное число копий (т.е. копируется на все блочное устройство целиком, а только занятые блоки и метаданные). Вроде бы так умеет ZFS, но сам не щупал

mdadm тоже можно, но менее рационально

router ★★★★★ ()

Сейчас многие недорогие бытовые материнки поддерживают RAID-1, -5 «из коробки» средствами BIOS, а софт к ним нужен лишь для мониторинга состояния. Это в некотором смысле железячный RAID со всеми вытекающими — по крайней мере нужно иметь ещё одну такую же плату на замену в случае поломки. Это решение для ленивых, которым не хочется разбираться в нюансах поддержки работоспособности массива.

Софтверный RAID конечно же привлекательнее каких-то там неизвестно как работающих железячных прибамбасов, но есть нюансы, о которых нужно знать и следить. Как то: обновление версии системного софта и совместимость версий ZFS, например, некоторая избыточность нагрузки на CPU в случае включения каких-то фич в файловой системе (сжатие, дедупликация).

iZEN ★★★★★ ()
Ответ на: комментарий от Spoofing

ну штож. ещё один плюсик софт рейду.

Не забудь про его минусик. recheck (по умолчанию раз в месяц). В процессе recheck’а производительность рейда никакая

router ★★★★★ ()

Хардварный RAID плох следующим:

  • Те же диски на точно таком же контроллере даже в той же последовательности могут не завестись просто потому что;
  • Контроллер "с памятью" (лень объяснять) превращает RAID в тыкву когда садится батарейка;
  • Контроллер (совершенно любой) может долго тупить при загрузке, вплоть до того что даже не определить свой собственный RAID (последнее может решиться перезагрузкой).

Ну и так далее. Короче, нахер-нахер.


iLO

Соболезную. (%

mord0d ★★★★★ ()
Ответ на: комментарий от mord0d

Контроллер «с памятью» (лень объяснять) превращает RAID в тыкву когда садится батарейка;

Мсье во-первых немного недоговаривает, во-вторых не знает про мониторинг, а в третьих лет на 10 отстал от жизни

Если разрешить кэш на запись без батарейки, это это может привести к потере данных при отказе питания. Но буквально все контроллеры по умолчанию отключают кэш на запись при проблемах с батарейкой, и плюс предупреждают при попытке включить. Это именно отдельная настройка. Т.е. кэш на запись включается отдельно (по умолчанию включен), кэш на запись без батарейки включается отдельно (по умолчанию выключен и при попытке включения попросит подтвердить, что «да, я идиот, но у меня есть бекап»)

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

Ну да, как же. Скорее всего ты продолбал момент, когда аккумулятор («батарейка») вышел из строя. См. выше про мониторинг. А потом она распухла и перекосила контроллер. Но это очевидно проблемы аппаратного рейда, а не лени и кривых рук

router ★★★★★ ()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Ну да, как же.

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

router ★★★★★ ()
Ответ на: комментарий от iZEN

Сейчас многие недорогие бытовые материнки поддерживают RAID-1, -5 «из коробки» средствами BIOS, а софт к ним нужен лишь для мониторинга состояния. Это в некотором смысле железячный RAID со всеми вытекающими

Fail. Ты путаешь железячный и фейкрайд

zemidius ()
Ответ на: комментарий от router

во-первых немного недоговаривает

Не без этого. ☺

не знает про мониторинг

Я-то знаю. Только напрямую это не относится к RAID.

лет на 10 отстал от жизни

Что, щаз только 2000? (%

это очевидно проблемы аппаратного рейда

А что, заводской брак уже отменили? (%

mord0d ★★★★★ ()

RAID 1+0 и RAID 10 - это одно и то же, тут у тебя либо опечатка, либо неправильное понимание.

Про разницу между 1+0 и 0+1 в той же википедии хорошо написано.

Насчет переноса дисков между разными контроллерами - что ты паришься, открой кейс в HPE и задай им этот вопрос. Сам же говоришь, что это энтерпрайз, HP…

В Gen9 у них поменялась линейка именования контроллеров, и, видимо, это не просто так. Да, иногда такое бывает.

В защиту HP скажу, что такое случается нечасто. Могу назвать лишь один случай, когда они в Gen8 ввели новые салазки, и диски от старых серверов стало втыкать в новые сервера затруднительно.

Во времена моей плотной работы с HP (G3..G7) я переставлял диски между контроллерами HP SmartArray как хотел, и не замечал никаких проблем. Максимум - новую прошивку на диски иногда требовалось накатить.

bigbit ★★★★★ ()
Последнее исправление: bigbit (всего исправлений: 3)
Ответ на: комментарий от zemidius

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

iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от iZEN

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

zemidius ()
Ответ на: комментарий от zemidius

Чем это определение не подходит к BIOS материнской платы, отдающему операционной системе готовый виртуальный носитель, собранный из нескольких физических и настроенный без участия операционной системы?

iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от bigbit

RAID 1+0 и RAID 10 - это одно и то же, тут у тебя либо опечатка, либо неправильное понимание.

Нет. 1+0 - это страйпы из зеркал, два рейдовских движка исползуются. 10 - это своя собственная реализация, она знает про топологию всего под ней.

Разработка 10 от 1 и 0 отстаёт слегка. Отставала, по-крайней мере. Ещё там вагон багов. А т.к. их китайцы сейчас пилят, то свежих багов регулярно завозят.

mv ★★★★★ ()
Ответ на: комментарий от mv

Ссылочку, где такое написано, пожалуйста.

Я со своей стороны могу привести:

  1. EMC’шная книжка «Information Storage and Management», стр. 61:
    RAID 1+0 is also known as RAID 10(Ten) or RAID 1/0.
  2. https://en.wikipedia.org/wiki/Nested_RAID_levels#RAID_10
    RAID 10, also called RAID 1+0 and sometimes RAID 1&0
bigbit ★★★★★ ()
Ответ на: комментарий от bigbit

Ссылочку, где такое написано, пожалуйста.

drivers/md/raid{0,1,10}.c

В raid10.c прочитай большой комммент в начале файле, там описывается, что движок делает для улучшения выживаемости массива.

EMC’шная книжка

EMC никакого отношения к MD не имеет. Кроме того, они были большие любители свою терминологию вводить, в том числе NIH. Это как бывший работник говорю.

От hw raid держитесь подальше. Если MD рухнет странным образом, то вам в мейл листе даже помогут его по крупицам обратно собрать.

mv ★★★★★ ()
Последнее исправление: mv (всего исправлений: 1)
Ответ на: комментарий от router

Не забудь про его минусик. recheck (по умолчанию раз в месяц). В процессе recheck’а производительность рейда никакая

Неправда. У 456 нормальная реализация, на асинхронных операциях, там производительность проваливается ровно на столько, сколько через sysctl выставишь. У 10 очень долго был big lock на весь массив, но недавно (5.x) локи переделали на субмассивы, как в 1, и производительность теперь приемлемая.

На предыдущей работе (DO) в новые машины с NVMe забабахали RAID-6+0 на разделах (у 6 случаются дедлоки с group_thread_count > 1, поэтому параллелизм улучшался через отдельные RAID-6 на разделах), там производительность диска вообще космическая получилась.

mv ★★★★★ ()
Ответ на: комментарий от mv

Так это ты только про MD писал? Я его вообще не имел ввиду. Думаю, какие еще китайцы…

Это получается, не EMC, а MD ввели свою терминологию и реализацию RAID-10. Традиционный подход, все-таки, что разницы между RAID-10 и RAID-1+0 нет.

bigbit ★★★★★ ()
Ответ на: комментарий от iZEN

Проприетарные софтрейды работают с участием операционной системы. Они требуют установки проприетарного драйвера и этот драйвер реализует функционал рейда (конечно же работая на хостовом процессоре).

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)

Железные райды стоимостью до нескольких сотен долларов включительно недостойны даже чтобы их спеки смотреть.

Железные райды стоимостью в неколько тысяч долларов могут заметно облегчить жизнь.

cvv ★★★★★ ()
Ответ на: комментарий от linuxoidspb

LSI

Их давно купила avago, а тех, в свою очередь, купил broadcom ))

zemidius ()

Для целей образования - рекомендую изучить такую штуку как mdadm raid10 на 2х дисках - в режиме f2. Зеркалирование для минимизации простоя при восстановлении + некоторое ускорение. Одновременно. На 2х дисках, а не на 4х.

http://realtechtalk.com/mdadm_mirrored_RAID1_performance_using_RAID10_f2_Far_Layout_is_the_solution-1791-articles

Из практики - главный мнус - при отказе одного диска - работа пока не вставлена замена - супермедленная. Короче не надо пихать это в продакшн, но как теоретическое знание - имхо must have

GPFault ★★ ()
Ответ на: комментарий от Legioner

Проприетарные софтрейды работают с участием операционной системы.

Ну да. Об этом никто не спорит.

Они требуют установки проприетарного драйвера и этот драйвер реализует функционал рейда (конечно же работая на хостовом процессоре).

Не всегда.

На минуточку. Если бы ZFS была закрыта (теоретически), то RAID средствами ZFS считался бы использующим для своей работы специальный драйвер, реализующий функционал рейда (конечно же работая на хостовом процессоре)? А что, zfs.ko — считай, часть пространства ядра.

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

Не_отдаёт. И прав - я. Виртуальный накопитель собирает драйвер, причём, юзерспейсный. BIOS отдаёт только информацию о том, какой уровень рейда надо собрать из дисков. Это даже технически невозможно, только для DOS если.

lenin386 ★★★ ()
Последнее исправление: lenin386 (всего исправлений: 2)

Ещё я пришёл к мысли, что софтварный рейд как ни крути во сто крат раз лучше, чем все эти железные решения.

Софтварный рейд в 100500 раз удобнее и понятнее, и считывание умеет сразу с всех дисков, но он же и пишет на все диски и соответственно работает со скоростью самого медленного. Хардварный рейд может быть быстрее особенно при рандомном считывании, и еще более особенно при рандомной записи. Т.е. при нагрузке при которой софт уже уходит в небеса, хард может (но зависит от производителя, конечно) работать как ни в чем не бывало, оплата этого счастья - полная привязкя к конкретному рейд контроллеру.

vtVitus ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)