Плюсы и минусы программного обеспечения Parity-RAID (например, RAID5)

8

Недавно мне рассказали о некоторых проблемах, связанных с RAID-массивами Parity без энергонезависимого кэша. Более дорогие HW-контроллеры имеют кэши на батарейках для завершения операций записи в случае сбоя питания. Теперь некоторые люди говорят, что такой сбой, возможно, в сочетании с поврежденным массивом, может убить всю вашу файловую систему. Другие утверждают, что эти проблемы устарели и / или заблуждения .

К сожалению, никто не дает жестких ссылок, и ни поиск md RAID и энергонезависимого кэша , ни кэширование растровых изображений не дает надежных ответов о том, рекомендуется ли md-RAID5 или нет.

Любая информация об этом?

user773568
источник
1
В Linux mdraid есть журнал, который, по крайней мере, безопасен в случае внезапной остановки (т. Е. Сбоя системы или выключения всех дисков сразу) или в случае RAID-1. Я не знаю, справляется ли его RAID- [56] со всеми формами поэтапного отключения питания.
Жиль "ТАК - перестань быть злым"
2
@ Жиль, у него нет журнала, но есть дополнительное растровое изображение с намерением записи. Это просто ускоряет процесс ресинхронизации, когда система возвращается, хотя и определяет, какие области нужно повторно синхронизировать и какие области можно пропустить.
Псуси
@psusi Я вернулся и проверил то, что я исследовал несколько месяцев назад . Насколько я понимаю, битовая карта с намерением записи (не журнал, моя ошибка) делает больше, чем просто ускоряет повторную синхронизацию, она показывает, какой из компонентов имеет грязный блок, поэтому этого достаточно для обеспечения согласованности блоков на RAID-1, но не на RAID-5 (где вам может не хватить дисков как в старом, так и в новом состоянии для восстановления любого состояния).
Жиль "ТАК - перестань быть злым"
1
@ Жиль, я не уверен, что ты имеешь в виду под "последовательностью Бока". Вы, кажется, зависли на всей полосе, находящейся либо в состоянии до начала записи, либо в состоянии после. Это никогда не гарантируется и, скорее всего, не произойдет, если во время записи происходит сбой питания. Это зависит от файловой системы, чтобы справиться с этим так же, как на одном диске; используя журнал.
psusi

Ответы:

4

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

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

ObWarStory:

При этом я лично столкнулся с серьезной потерей данных из-за отсутствия BBU на карте RAID-5, хотя было включено кэширование с обратной записью. (ИБП тоже нет. Не кричи на меня, не мой звонок.)

Мой босс вызвал меня в панике, когда я был в отпуске, потому что одна из наших производственных систем не работала после отключения электричества. У него кончились вещи, чтобы попробовать. Мне пришлось съехать на обочину, вытащить ноутбук, включить WiFi-модем на моем телефоне, sshв пораженную систему и починить его, пока моя семья сидела со мной на обочине дороги, пока я не закончил восстановление таблицы перемещенной базы данных из резервной копии. (Мы были примерно в миле от потери приема клетки в то время.)

Так скажите мне: сколько бы вы заплатили за карту RAID + BBU сейчас ?

Уоррен Янг
источник
Правильно - я удалил свой комментарий. Но рейд без BBU должен записываться, не так ли? Это как минимум то, что делают PERC-контроллеры, когда батарея учится и падает ниже порогового значения.
Нильс
Да, без BBU или с мертвым BBU, карта RAID все еще записывает данные. Чего он не делает, так это запоминает, что было в буфере записи при сбое питания сервера. Поскольку RAID зависит от согласованности избыточных битов, он становится запутанным, когда становится несовместимым. Следовательно, сбой питания во время записи RAID может привести к повреждению чего-либо на RAID-массиве, поскольку контроллер вынужден выбрать одну из двух или более копий данных, не зная, какая из них правильная.
Уоррен Янг
3

Просто предупреждение: операции записи RAID-5/6 занимают значительное процессорное время, пока ваш массив ухудшается. Если ваш сервер уже полностью загружен, когда диск выходит из строя, он может упасть в пропасть без ответа. Такой проблемы не будет с аппаратным RAID-контроллером. Поэтому я настоятельно рекомендую не использовать программный RAID-5/6 на производственном сервере. Для рабочей станции или слегка загруженного сервера это нормально.

wazoox
источник
3

SW RAID имеет режим сбоя - если сервер выходит из строя в середине записи, вы можете получить поврежденную полосу. Контроллер HW RAID с BBU не так уж и дорог, и он будет сохранять грязные блоки, пока вы не перезагрузите диски.

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

Некоторые заметки о SW vs. HW RAID-5

  1. Запись на том SW RAID-5 может быть медленной, если для блокирования ввода-вывода используется сквозное кэширование, поскольку вызов не возвращается до тех пор, пока не завершится весь ввод-вывод. Контроллер HW RAID с BBWC может значительно оптимизировать это, так что вы можете видеть значительно лучшую производительность.

  2. В прошлый раз, когда я посмотрел, вы не могли выполнить прямой ввод-вывод (т.е. DMA с нулевым копированием) на томе RAID RAID. Возможно, это изменилось и действительно имеет отношение только к приложениям, таким как менеджеры баз данных, использующим необработанные разделы.

  3. Современный контроллер SAS RAID может извлекать или выгружать данные 1 ГБ / с или больше с дискового массива, особенно если отформатирован с большим (скажем, 256 КБ) размером полосы. Я даже протестировал более старый адаптер Adaptec ASR-2200 на скоростях, которые показали, что он в совокупности насыщает оба своих scsi-канала со скоростью 600 МБ / с + (10x 15k дисков) при очень небольшой загрузке ЦП на хост-машине. Я не уверен, что вы могли бы получить это из программного RAID-5 без большой загрузки процессора, если вообще, даже на современной машине. Может быть, вы могли бы прочитать это быстро.

  4. Конфигурация для загрузки с тома HW RAID проста - том RAID прозрачен для O / S.

Младший RAID-контроллер от поставщика первого уровня, такого как adaptec, не так уж и дорог по розничным ценам, и его можно купить за арахис от ebay. Но помните, что если вы покупаете подержанные товары, обращайтесь к поставщикам первого уровня и убедитесь, что вы знаете модель и проверяете доступность драйверов на их веб-сайте.

Редактирование: из комментария @ psusi убедитесь, что у вас нет контроллера fakeraid (прозрачный SW RAID скрыт в драйвере), но большинство предложений от больших имен (Adaptec, 3Ware или LSI) не являются модулями fakeraid. Все, что может взять BBU, не будет подделкой.

ConcernedOfTunbridgeWells
источник
Если во время записи происходит сбой питания, вы получаете несинхронизированную полосу, которая не повреждена. Несинхронизированная полоса просто означает, что четность не актуальна, поэтому, когда массив смонтирован, четность должна быть обновлена. Кроме того, те «рейдовые» контроллеры, которые могут быть использованы для арахиса, часто являются ложными страхами; у них есть расширения BIOS и Windows-драйверы, которые совершают набег на программное обеспечение.
psusi
@psusi - Большинство контроллеров ASR-2200, которые я купил несколько лет назад, стоили менее 100 долларов, и они представляют собой RAID-контроллеры pukka HW. Я не думаю, что Adaptec на самом деле вообще делает контроллеры Fakeraid. Вы можете легко получить 4 или 8-портовые RAID-контроллеры Adaptec, 3Ware или LSI SAS от ebay за несколько сотен долларов.
ConcernedOfTunbridgeWells
Я бы не назвал несколько сотен долларов за использованный продукт из неизвестного источника "копейками"; это указывает на более $ 50-100 за новый продукт. Устройства в этом классе, как правило, боятся.
Псуси
@psusi - Вы пытаетесь дать отпор аргументу, который я никогда не приводил; Я никогда не использовал слово «копейки» вообще. Пожалуйста, не прибегайте к аргументам соломенного человека - примеры, которые я использовал, не являются поддельными контролерами.
ConcernedOfTunbridgeWells
1

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

Интересно было бы создать основную файловую систему на RAID5 / 6, но поместить журнал на обычный диск, чтобы данные сначала сбрасывались на обычный диск. Производительность, вероятно, пошла бы на пользу, так как вы были бы ограничены скоростью записи одного диска, но надежность возрастала бы. Поэтому я предполагаю, что в ситуации, когда ваша производительность записи не важна, но ваше чтение таково, что это может работать просто отлично.

Или вы можете просто потратить еще 100 $ и получить карту с BBU или небольшой ИБП, и вообще избежать всех этих осложнений;)

Marcin
источник
Что вы думаете о журнале на быстром SSD?
user773568
Это бы сработало, но в этот момент вы платите больше, чем приличный контроллер;) Кроме того, скорость возрастает, но надежность падает, потому что большинство SSD очень быстро умирают.
Марчин
1
@ Марчин, на чем ты это основываешь? Кажется, они не имеют более короткого заданного срока службы, и у меня такой был более года, и я использовал только 5% его циклов записи.
Псуси
@MarcinWell Когда вы говорите, надежность, это сохранение или доступность? Я не ожидал, что потеря моего журнала угрожает общим данным. Является ли? В любом случае я планирую установить ОС и Swap на меньший SSD из-за шума и экономии энергии. RAID может спать таким образом.
user773568
SSD-накопители MLC имеют репутацию проблем с надежностью. Блоки SLC намного надежнее, но и намного дороже. Белая книга о надежности SSD может быть найдена здесь
ConcernedOfTunbridgeWells
1

Программный рейд Linux mdadm разработан так же надежно, как аппаратный рейд с кэшем с резервным питанием от батареи. Нет проблем с внезапной потерей питания, кроме тех, которые также относятся к внезапной потере мощности на одном диске.

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

psusi
источник
1
Это звучит немного оптимистично. Как чистое программное решение может быть таким же надежным, как кэш с резервным питанием от батареи?
user773568
1
Есть плохие вещи, которые могут случиться с массивом RAID, который не может случиться с одним диском. На одном диске каждый сектор находится в старом или новом состоянии. Например, для RAID-5 с дисками 4 + 1, что если сектор 42 дисков 1 и 2 находится в старом состоянии, а сектор 42 дисков 3, 4 и 5 - в новом состоянии? Ни старое государство, ни новое государство не подлежат восстановлению. Я не знаю, принимает ли Linux меры, чтобы избежать этого, и в этом суть вопроса.
Жиль "ТАК - перестань быть злым"
@ user773568 хмм ... я только что объяснил как?
Псуси
@ Жиль, ты только что повторил тот же случай, что и на одном диске. Некоторые секторы находятся в старом состоянии, а некоторые - в новом. Неважно, на каком диске они находятся. Файловые системы имеют дело с неполными записями во время сбоя с журналом.
Псуси
@psusi No: на одном диске каждый сектор находится либо в новом, либо в старом состоянии. В случае нескольких дисков, если драйвер использует наивный подход перезаписи сектора на каждом диске без сохранения информации в другом месте, сектор, который находился в переходном состоянии (старое состояние на некоторых дисках, новое состояние на других), вообще невозможно восстановить. Ошибка может быть обнаружена (если вам повезет: паритет может совпадать случайно), но ее нельзя исправить.
Жиль "ТАК - перестань быть злым"
1

Вот блог, объясняющий проблему с RAID5 и как ZFS RAIDZ решает ее .

Его ключевые моменты:

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

а также

RAID-Z - это схема данных / четности, подобная RAID-5, но она использует динамическую ширину полосы. Каждый блок имеет свою собственную полосу RAID-Z, независимо от размера блока. Это означает, что каждая запись RAID-Z является записью с полной полосой. Это в сочетании с транзакционной семантикой копирования-записи ZFS полностью устраняет дыру в записи RAID.

jlliagre
источник