Для ЛЛ: RAID-5 совершенно не подходит для современных массивов из дисков на 5-10 Тб по нескольким причинам.
Вчера хорошие знакомые прислали ссылку на чат криптоаналитиков. Я очень удивился, поскольку криптовалюты от меня достаточно далеки, но - пошел, почитал. Оказывается, с одним человеком случилась беда, однако, по непонятным для меня причинам, он пошел жаловаться не в отдел технической поддержки согласно SLA, а в первый попавшийся чат.
Жалоба была интересная, цитата:
Вопрос MSA-шникам.
Есть MSA 2040 - голова и 3 полки.
Все разбито по разным пулам и отдано по FC 8 Gb.
Сдох диск в одной полке, отребилдился на GHS.
Все без замечаний, все ок, но на ряде томов - просадка по отдаче до 30 МВs, вне зависимости от пула.
Тома и распределены по разным дискам, но где-то задействованы диски из отребилдившейся полки и часть норм работает, а часть никак..
..
Началось после замены хромающего диска.
Групп по 5 на каждый пул. Группы в рэйд-5. В каждой группе штук по 8 дисков.
На каждом пуле по 5 vdg, каждая vdg из 8-ми дисков в 5-м рэйде.
Дальше дискуссия была не такая интересная, потому что главная проблема была понятна – это тот человек, который собрал R5, и пошел с проблемой в крипточат.
Почему RAID-5 на любых современных дисках – это плохо, хоть на SSD, хоть на механике.
Проблема 1, простая и понятная
Как все помнят, RAID-5 – это N дисков с данными и один диск с четностью (точнее, четность размазывается туда и сюда - RAID 5 consists of block-level striping with distributed parity.)
Как следствие, RAID-5 может пережить выход из строя 1 жесткого диска без потери данных.
Проблемы с R5 начинаются не при выходе из строя жесткого диска, а при ребилде.
Проблема номер 1
На любом современном контроллере все жесткие диски постоянно (или по расписанию) проходят фоновое обслуживание, scrubbing – то есть контроллер как-то проактивно пытается понять, умерли ли блоки на жестком диске, или нет. Однако, пытаться то он пытается, но не гарантирует.
И вот у нас 9 жестких дисков, пусть даже сконфигурированных по документации, со всей ее силой “the power of 2” , а не как у страдальца, цитата:
For optimal write sequential performance, parity-based disk groups (RAID 5 and RAID 6) should be created with “the power of 2” method. This method means that the number of data drives (nonparity) contained in a disk group should be a power of 2. See Table 2 for details. MAN page 18
и весь занятый объем этих дисков (или весь объем ?, я так и не изучил этот вопрос) начинает считываться со всех дисков, все и сразу.
Диски, зачастую, идут из одной партии, имеют одинаковый уровень наработки, в часах и .. и ваши шансы на то, что фоновая проверка не успела найти еще хотя бы один диск, с количеством плохих секторов больше предела SMART, резко возрастают. При этом у вас еще и резко возрастает нагрузка на чтение, поскольку рабочих операций никто не отменял, так что диски чуть больше двигают головками, чуть иначе вибрируют, чуть больше греются, и.
И вы не можете потерять еще один диск, но вы его теряете.
Raid 6 в таких случаях, кстати, не всегда помогает – падает и R6, только реже, а почему – будет написано ниже.
Это было не так критично, пока диски были 72-146-300-600 Гб и на 10-15 к оборотов, они зачастую успевали пройти ребилд на R5, но на 5-10 Тб диске 7200 – у вас будут неприятности, потому что:
Проблема вторая, математика и статистика
Поскольку дело связано с простой математикой, то ей в той или иной степени подвержена и механика, и SSD.
Давно (с 1973) существовала Shugart Associates, от которой осталось очень мало – она представила Shugart Associates System Interface, из которого к 1981 году вырос SCSI - Small Computer System Interface. Вся история нам не очень интересна, но все эти годы American National Standards Institute (ANSI) и InterNational Committee on Information Technology Standards (INCITS, pronounced "insights") боролись за звание дома высокой культуры быта и низкое число ошибок передачи данных – все эти CRC, Data Integrity и прочие достижения Technical Committee T10 вплоть до T10 DIF/DIX , но это другая история, а этот абзац здесть только чтобы похвастаться, что такая продвинутая нейросеть как я, может писать не только про самолеты и орбиты (с сахаром и без). СР!
Существует такое явление, как Unrecoverable read error rate, и его частота находится где-то в районе 1/100.000.000.000.000 – 1/100.000.000.000.000.000 , или, более понятным языком, где-то между 1/10^-14 для обычных пользовательских дисков (typical consumer grade hard drive ) до 1/10^-17 (Consumer SSD error rates are 10^16 bits or an error every 1.25PB. Enterprise SSD error rates are 10^17 bits ) – что означает, что для обычного диска (с его 1/10^-14) в 1 Тб - 1.000.000.000.000 байт (завели моду указывать не честные терабайты, а я страдаю) вероятность отказа на ребилде R5 при 9 дисках в массиве составит 47 %. Для R6 при тех же вводных – 20%. 20 % отказов, 80% успеха. Хороший повод собирать массивы из дисков поменьше.
Формула расчета тут, калькуляторы тут и тут.
Кстати, 1 из 10 массивов R6 из дисков с URE (Unrecoverable Read Error) с хорошим 1*10**(-15) на 10 дисков по 5 Тб тоже развалится, имейте в виду.
Для кассет (LTO) текущий показатель - 10^19, про что можно читать lto.org .
Очень важно внимательно читать раздел со звездочкой, там где пишут про запыление, температуру и влажность.
Про эту самую надежность (UER) уже писали на Хабре минимум 15 лет назад, в 2009 году, в комментариях, но все равно – пришло 15 лет, а кто-то собирает R5.
Не надо так.
Автор: Grigory_Otrepyev