Защищает ли RAID 1 от повреждения?

14

Защищает ли Raid 1 от повреждения данных? Например, предположим, что я храню все свои важные файлы на NAS, который использует 2 диска в RAID 1. Если на одном жестком диске есть какая-то внутренняя проблема, и данные становятся поврежденными, распознает ли это RAID автоматически и исправляет ли это это с использованием данных с другого хорошего диска?

Может ли он даже знать, какая копия является хорошей?

Защищает ли RAID 5 от повреждения?

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

Reg Edit
источник

Ответы:

13

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

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

Хотя повреждение данных является скорее исключением, чем правилом, оно также не является неслыханным. Например, один из членов команды ZFS сообщил в интервью, что поврежденные данные были переданы им их высокопроизводительным устройством RAID-5, которое они обнаружили в силу того факта, что ZFS реализует контрольные суммы на уровне этой файловой системы.

tylerl
источник
5

Это зависит от того, откуда исходит коррупция. Если диск в зеркале RAID 1 ненадежен и пишет глупости, то зеркало RAID будет ухудшаться, и будет использоваться хороший диск, и у вас будут хорошие файлы. В случае RAID 5 это делается с двумя дисками данных и диском четности (в простейшем виде), и если одному из трех дисков не удается записать правильные файлы, он потерпит неудачу, и у вас останется либо 2 данных диски или 1 диск данных и диск четности.

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

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

Джошуа Левицкий
источник
4
+1 «Вот почему RAID не является резервной копией» Бог знает, сколько раз я слышал «У меня все в порядке, моя резервная копия покрыта RAID»
Урда
2
Как RAID может различить, какие данные хороши, а какие плохи?
1
Шон ... если ваши данные съедены вирусом или случайно удалены, RAID никогда не сможет отличить их как хорошие или плохие. Все, за что отвечает RAID - это убедиться (в RAID 1), что оба диска равны. Если в секторе отсутствует контрольная сумма, контроллер RAID компенсирует его восстановление или запускает восстановление. В RAID 5, если сектор не проходит проверку на четность, запускается перестройка. RAID защищает физические диски от сбоев и потери данных. Они не могут защитить данные, потерянные из-за программных ошибок или вирусов.
Урда
6
Ваша характеристика RAID 5 является неточной. Нет отдельного диска четности, вместо этого четность распределяется по всем дискам. В итоге вы получаете общее доступное пространство n-1, но нет диска, предназначенного для контроля четности.
MDMarra
2
Я должен понизить это. RAID1 не выполняет контрольное суммирование, он защищает только от полного отказа диска. Если один диск начинает возвращать мусор, он не может определить, какой из них правильный, и с радостью вернет данные мусора. RAID5 я не уверен, из-за проверок четности. Именно поэтому были изобретены файловые системы, такие как ZFS и BTRFS, так что вы получаете RAID-подобную систему с учетом данных, которая может корректно корректировать данные мусора, используя контрольные суммы для проверки блоков данных.
Алекс
5

Как отмечали другие, система raid1 не может определить, какой из двух секторов плох.

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

В системах Unix под mdadm проверка очистки может быть инициирована с помощью «sync_action»:

Массивы md можно очистить, записав либо проверку, либо восстановление в файл md / sync_action в каталоге sysfs для устройства.

Запрос на очистку заставит md прочитать каждый блок на каждом устройстве в массиве и проверить, что данные согласованы. Для RAID1 и RAID10 это означает, что копии идентичны. Для RAID4, RAID5, RAID6 это означает проверку правильности блока четности (или блоков).

raid1 - это защита от внезапного полного отказа диска. Ищите в другом месте защиту от коррупции. Кроме того, Raid1 не предлагает никакой «истории», поэтому не может восстановиться после человеческой или программной ошибки. Для защиты от повреждения обращайтесь к файловым системам, таким как ZFS, или к файловой системе, сохраняющей историю, например, Hammer.

Брайс
источник
3

На практике да. Подавляющее большинство сбоев жесткого диска происходит все или ничего. Либо (а) кабель отключен, либо микроконтроллер накопителя вышел из строя, поэтому контроллер RAID вообще не получает ответа - очевидно, неисправен накопитель. Или (b) Микроконтроллер кабеля и накопителя исправен, но когда он пытается прочитать сектор, микроконтроллер внутреннего накопителя обнаруживает повреждение данных из-за сбоя внутренней контрольной суммы ECC и повторяет попытки чтения этого сектора (в случае, если это временный сбой чтения ) время ожидания истекает, поэтому RAID-контроллер получает вежливый "извините" ответ - явный сбой диска. В любом случае, для контроллера RAID-1 или RAID-5 очевидно, что диск вышел из строя.

В принципе нет. Если что-то пошло не так, как надо, что жесткий диск пишет чепуху, и все же как-то работает достаточно хорошо, чтобы написать правильный внутренний код ECC для этой чепухи, тогда RAID-1 не может определить, какой диск правильный. Система RAID-1, вероятно, перезапишет хорошие данные поврежденными данными при повторной синхронизации. RAID-5 не лучше. Сбой электропитания «дыра записи RAID-5» во время активной записи является одним из редких, но не невозможных случаев.

Насколько я знаю, единственный способ избежать такого повреждения - использовать сквозные контрольные суммы в дополнение к зеркальному отображению файлов, либо автоматически как часть файловой системы (ZFS или Btrfs), либо периодически или вручную (пересчитывая контрольные суммы rsync, простая проверка файлов, наборы файлов Parchive и т. д.); в идеале с криптографическим хешем, таким как SHA-256.

Дэвид Кэри
источник
Любой шанс, что вы могли бы дать ответ на этот вопрос .... superuser.com/questions/736612/…
Мик