LINUX.ORG.RU
ФорумTalks

Почему RAID 6 не популярен?

 


2

5

С одной стороны в сети полно историй про то, что RAID 5 сегодня использовать просто нельзя, т.к. при вылете одного диска и пересборке массива слишком велик шанс вылета одного из оставшихся дисков, что приведёт к повреждению массива. С RAID 6 этой проблемы нет. Т.е. этот вариант с большими объёмами предпочтительней. С другой стороны я просматриваю серверы именитых производителей вроде HP, DELL и там в характеристиках есть аппаратный RAID, вот ни разу не видел, чтобы там была поддержка RAID 6. Понятно, что можно всё софт-рейдом сделать, но хочется же аппаратно, деньги-то уплочены. Как так получается?

★★★★★
Ответ на: комментарий от goodwin

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

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

откуда она больше?

Она _больше. _В _разы. Это - факт.

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

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

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

Тебе чтобы прочитать (!) что-то, надо прочитать весь страйп

При записи надо. При чтении - только при сдохшем диске. Отсюда и просадка скорости при подыхании диска.

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

именитых производителей

Понятно, что можно всё софт-рейдом сделать, но хочется же аппаратно, деньги-то уплочены. Как так получается?

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

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

Это - факт.

как это работает?

Это делается параллельно,

параллельно чему?

за счёт чего скорость будет выше.

За счет чего? У тебя есть 2 операции на 2 блока данных на 2х разных дисках. В RAID 1 у тебя будет параллельное чтение.

В массиве с контролем четности тебе надо 2 раза прочитать по разу со всех дисков. То есть если ты читаешь данные с «одного диска», то в RAID1 тебе надо прочитать 1 устройство, в 5/6 тебе надо прочитать все устройства.

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

А смысл, нормальная консультация по конкретному вопросу денег стоит, а я тут так больше повпитывать примерно что к чему. Задача - есть сервис (точней будет), схема стандартная - Postgres - Java - Frontend. Для отказоустойчивости планируется два одинаковых сервера в разных городах, один главный, на второй данные будут литься с первого и если не доступен первый, то система будет переключаться на второй. Я по софту больше, но особо денег нет и людей нет, поэтому и по серверам приходится мне разбираться. Пока даже представления нет о требуемых мощностях, поэтому считаю что-то среднее вроде Xeon Gold на 20 ядер, 128 GB RAM, 10x960 GB SSD (тут, кстати, похоже я просчитался, вроде в контролёрах обычно 8 портов, но брендовых SSD выше терабайта в местных магазинах почему-то не вижу, нужно будет дальше думать) из расчёта на RAID-5 или RAID-6 (всего нужно около 6 TB для начала с перспективой расширения).

Опция облаков или вообще доступа в интернет не доступна, заказчик живёт в своей сети.

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

при чтении - только при сдохшем диске

а как мы узнаем, что диск сдох, если мы не проверяем четность? То есть «оптимизацию» я понимаю, но… Ну ОКЕЙ, здоровья погибшим.

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

в 5/6 тебе надо прочитать все устройства.

Да. И прочитается в (n-2) раз больше данных за единицу времени, где n - количество устройств в рейде. Чтение параллельное, математику делает контроллер прозрачно.

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

Я пишу с лаптопа, с него вряд ли выйдет, но мысль понял, спасибо.

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

а как мы узнаем, что диск сдох, если мы не проверяем четность? То есть «оптимизацию» я понимаю, но… Ну ОКЕЙ, здоровья погибшим.

Действительно.

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

Как ты проверяешь четность, если ты не считал весь страйп целиком? Или я чего-то не догоняю, но у тебя четность сходится только когда ты весь страйп проверил, а не для того, что на каждом устройстве лежит?

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

Запись паралелится точно таким же образом, как и чтение.

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

Можно же одновременно считать с 8 дисков, и если 2 из них под чётность, скорость линейного чтения будет в 6 раз превышать скорость 1 диска.

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

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

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

Почему не считал-то? У меня в рейде-6 6 дисков. Читаем страйп, одновременно со всех дисков. Вычисляем сумму, отдаём данные. Это делается очень быстро и прозрачно, контроллер с XOR процессором именно для этого. Итого, скорость в 4 раза быстрее, потому что данных считали в 4 раза больше.

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

Это делается очень быстро и прозрачно

ровно с той же скоростью, с какой бы у нас прочитался 1 диск + вычисление контрольной суммы. Да.

Итого, скорость в 4 раза быстрее, потому что данных считали в 4 раза больше

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

Вон выше предлагают читать эти 3 единицы только в случае сбойного диска, возможно, так оно сейчас и работает. Ну как-то так.

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

ровно с той же скоростью, с какой бы у нас прочитался 1 диск + вычисление контрольной суммы. Да.

Да. Но данных-то вычитывается в 4 раза больше за тоже время!

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

Две в случае RAID-6, и одна в случае RAID-5. При большом количестве дисков, от 4, и выше, скорость расчёт практически линейно количеству дисков, и контролем чётности можно пренебречь.

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

Но данных-то вычитывается в 4 раза больше за тоже время!

ВЕСЛОМ ПО ГОЛОВЕ Я СКОРО КАК ЦАРЬ СТАНУ

приложение эти данные не просило.

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

Да, а ещё в рейд контроллере имеется весьма неплохой кеш, который позволяет свести нагрузку на рейд к линейным операциям.

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

Ну как откуда? Из его архитектуры? Он кратно быстрее гигабитной сети. Поэтому меж компами дома 10гбит. Разумеется, его профит при однопоточных операциях. Но я один, мне ок.

Не, на 4 и 3тб дисках, вд редах (4+4). Там же HS еще. И на ошметках другой раздел.

Ну предложи альтернативу? Чтоб 16, но не одной граммпластинкой. И скоростью тоже не одной пластинки.

Годнота годнейшая.

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

Я немного плюшкин. Особо ценное - хранить вечно.

Ну и просто сложить копию текущих рабочих материалов - может быть несколько тб, если видео.

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

Ну предложи альтернативу?

Как в том анекдоте - «Утки!»

У меня большое хранилово для «использую очень редко (фильмы)», отдельный «быстрый на тот момент» диск для игорей и фотографий, nvme SSD для операционной системы. Так чтобы одно на всех было, увы.

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

Минимальный размер информации, который просится у диска, определяет не приложение, а размер кластера (блока). На больших дисках, от 64кб и выше.

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

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

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

ЕМНИП, у Адаптека 256Мб, если нет батареи. Ну такой, не, плохой. Туда можно прицепить SSD на кеширование.

У современных адаптеков 1-4Gb.

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

От 4гб на современных контроллерах, на старых можно расширить до 2Гб.

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

А смысл, нормальная консультация по конкретному вопросу денег стоит

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

с первого и если не доступен первый

а балансер кто?

Postgres - Java - Frontend

все на одной машине в рамках дц? т.е. вместо пары серверов, со спец хранилкой под бд, ты рассматриваешь компромисс (raid6 - это именно компромисс). спорно.

10x960 GB SSD

штатный рейд их тупо может не прожевать на бюджетном сервере, а у тебя по виду бюджетный. только, если ты будешь какой-то кастомный raid искать и ставить. с учетом портов, с учетом пропускной способности, батарейки и т.д. и т.п.

всего нужно около 6 TB

нужно оценивать какой доступ к данным. произвольный-случайный. или всегда будет какая-то горячая порция. зачем тут именно SSD? если поток данных большой, то контроллер будет перегружен обсчетом сум для быстрых носителей (недостаток raid6 - повыше нагрузка на cpu). если поток данных небольшой, а нужно просто уменьшить время доступа, то есть смысл подумать о гибридном рейде HDD плюс SSD кеш. тоже компромисс, но дешевле.

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

Короче я доволен. Тем более все начиналось с 4х3тб, а потом дополнил. Все с ним отлично. Очень быстро и удобно. Я просто забыл как это - жить на скоростях одиночных дисков. Нет таких в системах. Или ссд или это.

Годнота, в общим. Не в теории, на конкретной практике.

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

Но зачем? Если в реальном использовании пропасть между этим и одиночным диском. Огромная пропасть.

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

Денег нет понятие растяжимое. За 100к баксов можно собрать нормальный vSAN из пяти серверов на 100Тб эффективного пространства. Это не дорого, например.
Но если хочется за лям рублей собрать - то да, это жопа.

но брендовых SSD выше терабайта в местных магазинах почему-то не вижу

Зачем местные магазины - собери через поставщиков или вообще напрямую у представителей производителя. Там тебе подберут. Даже СофтЛайн может тебе серваки собрать и доставить прямо на проходную заказчика.

с перспективой расширения

Тут нужно не про варианты RAID думать (тем более когда диски маленькие и не за твои деньги, конечно лучше RAID-10) а создать сначала требования к будущему сервису учитывая архитектуру и оптимизировать железо.

  • ну типа зачем дорогой зион голд?
  • почему так мало ОЗУ в 2021 веке?
  • где хранить бекапы?
  • какая скорость репликации между серваками? 1Гб/с максимум? Медленные диски не прокатят?

потом что-то вроде плана модернизации с вариантами, что будем делать если через N времени нам:

  • не хватает ОЗУ/ЦПУ
  • не хватает дисковой подсистемы по iops
  • не хватает просто дискового пространства

С учётом «наши сервера реплицируют данные по сети и географически распределены». Добавить ещё один сервер в этой конфигурации как-то сложновато.

Может проще поставить два-три сервака виртуализации в кластере с vSAN или с парой СХД в метрокластере? Столько всего должно сдохнуть единовременно, чтобы оно перестало работать. И если ПО можно разбивать на куски, горизонтальное масштабирование уже возможно.

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

Каким образом должно работать это резервирование?

PostgreSQL

Сам спросил сам ответил.

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

чтобы перезаписать 1 байт, тебе надо перезаписать целый чанк (или как там оно называется) + прочитать все чанки + записать чанк контроля четности

Ну так с RAID-0 всё то же самое, и ничего, используют.

Чтобы 1 байт прочитать, тебе надо все это прочитать

А какая, собственно, разница? Когда ты читаешь один байт, время доступа к этому байту (+ время транзакции) гораздо выше той дельты между чтением одного сектора и чтением всего страйпа. Я тебе больше скажу, readahead на всех уровнях (начиная от железа заканчивая block layer и самой ФС в линуксе) всё равно гарантирует, что прочтено будет примерно столько, сколько в этом страйпе, если не больше.

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

а балансер кто?

Предварительно - будет ещё третий сервер махонький, откуда будет фронтэнд раздаваться и фрондэнд уже будет сам разбираться, какой сервер лежит, какой нет. Может быть на нём поставлю балансер. Может быть будет два адреса и пользователи будут проинструктированы каким пользоваться. Требования, чтобы всё прям прозрачно работало, нет, главное, чтобы часами не лежало.

все на одной машине в рамках дц? т.е. вместо пары серверов, со спец хранилкой под бд, ты рассматриваешь компромисс (raid6 - это именно компромисс). спорно.

У них сеть отстойная, поэтому не хочу на неё лишний раз полагаться. На одной машине конфигурация мне больше всего нравится - скорость между приложением и базой практически максимальная, а в производительность всего сервера я вряд ли упрусь. Сейчас похожее приложение работает на старинном сервере 2005-2010 года (на Itanium-е), современный сервер с SSD будет вокруг него круги нарезать. У меня на ноутбуке порой база быстрей шевелится, чем на этом сервере.

штатный рейд их тупо может не прожевать на бюджетном сервере, а у тебя по виду бюджетный. только, если ты будешь какой-то кастомный raid искать и ставить. с учетом портов, с учетом пропускной способности, батарейки и т.д. и т.п.

Возможно поищу диски побольше. Хотя ещё почитал - вроде как 8 портов это не ограничение на диски. Вот такой контролер стоит в одном сервере, тут до 255 дисков обещают. Опять же мне от этих дисков не требуется какая-то критичная производительность, я в целом даже не уверен, что SSD мне нужны, хотя, конечно, с ними всё приятней.

нужно оценивать какой доступ к данным. произвольный-случайный. или всегда будет какая-то горячая порция. зачем тут именно SSD? если поток данных большой, то контроллер будет перегружен обсчетом сум для быстрых носителей (недостаток raid6 - повыше нагрузка на cpu). если поток данных небольшой, а нужно просто уменьшить время доступа, то есть смысл подумать о гибридном рейде HDD плюс SSD кеш. тоже компромисс, но дешевле.

В целом я склоняюсь к RAID-5, почитал интернеты, пишут, что для SSD Raid-5 это вообще нормально. Если вдруг что приключится, зеркало и бэкапы в любом случае будут.

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

Legioner ★★★★★
() автор топика
Ответ на: комментарий от system-root

Зачем местные магазины - собери через поставщиков или вообще напрямую у представителей производителя. Там тебе подберут. Даже СофтЛайн может тебе серваки собрать и доставить прямо на проходную заказчика.

Я не в России, тут с ассоритментом не так всё радужно. Заказ чего-нибудь нестандартного может вылиться в месяц+ ожидания.

ну типа зачем дорогой зион голд?

Ну меньше 20 ядер неприлично, я считаю. У Dell конфигуратор 20 ядер даёт только у Gold. AMD я пока не доверяю.

почему так мало ОЗУ в 2021 веке?

Планирую 96 GB к первому сокету, мне хватит.

где хранить бекапы?

С этим пока не определился, я в этом ничего не понимаю. Вроде на ленту пишут, но я никогда с ними дела не имел. В крайнем случае на HDD буду писать как-нибудь.

какая скорость репликации между серваками? 1Гб/с максимум?

Вот тут грустно, если гигабит будет, это шикарно. Подозреваю, что не факт.

Медленные диски не прокатят?

Про диски пока не решил до конца, возможно на HDD остановлюсь, всё же SSD дорогие. Но SSD дадут ощутимо большую производительность и ощутимо больше возможностей на будущее, поэтому всё же постараюсь их использовать.

не хватает ОЗУ/ЦПУ

Второй сокет.

не хватает дисковой подсистемы по iops

Оптимизировать приложение (: Но это маловероятно.

не хватает просто дискового пространства

Ну в теории - добавить в рейд диск, через LVM расширить раздел и расширить файловую систему.

С учётом «наши сервера реплицируют данные по сети и географически распределены». Добавить ещё один сервер в этой конфигурации как-то сложновато.

Не, кучу серверов я точно не хочу.

Может проще поставить два-три сервака виртуализации в кластере с vSAN или с парой СХД в метрокластере? Столько всего должно сдохнуть единовременно, чтобы оно перестало работать. И если ПО можно разбивать на куски, горизонтальное масштабирование уже возможно.

Подозреваю, что это будет на порядок дороже простого и понятного варианта и в этом точно будет не понять, что происходит, когда что-то будет происходить.

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

Ну так с RAID-0 всё то же самое, и ничего, используют.

с чего бы? Тебе не надо читать с RAID-0 другие чанки из страйпа. Более того, он быстрее, потому что с устройства А1 ты читаешь чанк из запроса N, а с устройства A2 из запроса N+1. С контролем четности у тебя так не выйдет. На первом запросе у тебя устройство А2 тоже будет занято чтением чанка, чтобы для этого запроса проверить четность.

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

хочется же аппаратно

RAID 6

Ждём треда «RAID 6: ВСЁ ПРОПАЛО!!!11 Как вертать всё взад?!»

mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.