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

12990
Reg Edit

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

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

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

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

13

4 ответа на вопрос

12
tylerl

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

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

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

5
Joshua Levitsky

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

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

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

+1 "Вот почему RAID не является резервной копией" Бог знает, сколько раз я слышал "Я в порядке, моя резервная копия покрыта RAID" Urda 14 лет назад 4
Как RAID может различить, какие данные хороши, а какие плохи? 14 лет назад 2
Шон ... если ваши данные съедены вирусом или случайно удалены, RAID никогда не сможет отличить их как хорошие или плохие. Все, за что отвечает RAID - это убедиться (в RAID 1), что оба диска равны. Если у сектора не получается контрольная сумма, контроллер RAID компенсирует его восстановление или запускает перестроение. В RAID 5, если сектор не проходит проверку на четность, запускается перестройка. RAID защищает физические диски от сбоев и потери данных. Они не могут защитить данные, потерянные из-за программных ошибок или вирусов. Urda 14 лет назад 1
Ваша характеристика RAID 5 неточная. Нет отдельного диска четности, вместо этого четность распределяется по всем дискам. В итоге вы получаете общее доступное пространство n-1, но нет диска, предназначенного для контроля четности. MDMarra 13 лет назад 6
@ Урда, нет контрольной суммы для проверки на RAID 1, верно? В этом случае, если система RAID обнаружит, что блок содержит разные данные на каждом диске, разве ей не придется угадывать, какие из них правильные, что может привести к повреждению уровня файловой системы во время восстановления? Renan 10 лет назад 1
Я должен понизить это. RAID1 ** не ** делает контрольную сумму, он только * защищает от полного отказа диска. Если один диск начинает возвращать мусор, он не может сказать, какой из них прав, и с радостью вернет данные мусора. RAID5 я не уверен, из-за проверок четности. Именно поэтому были изобретены файловые системы, такие как ZFS и BTRFS, так что вы получаете RAID-подобную систему с поддержкой данных, которая может корректно корректировать данные мусора, используя контрольные суммы для проверки блоков данных. Alex 8 лет назад 2
5
Bryce

As others have noted, a raid1 system has no way to tell which of two sectors is bad.

Higher end raid systems run a scrub operation in the background to compare both copies, and flag differences. Better yet is a system that reads both blocks from the drive each time, and compares them at read time. Resolving those differences however is impossible for the raid controller.

On Unix systems under mdadm, a scrub check can be initiated with the "sync_action":

md arrays can be scrubbed by writing either check or repair to the file md/sync_action in the sysfs directory for the device.

Requesting a scrub will cause md to read every block on every device in the array, and check that the data is consistent. For RAID1 and RAID10, this means checking that the copies are identical. For RAID4, RAID5, RAID6 this means checking that the parity block is (or blocks are) correct.

raid1 is all about protecting from sudden total drive failure. Look elsewhere for protection against corruption. Beyond that Raid1 offers no "history", so can't recover from human or software error. Look to filesystems like ZFS or a history preserving filesystem like Hammer for protecting against corruption.

3
David Cary

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

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

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

Любой шанс, что вы могли бы дать ответ на этот вопрос .... http://superuser.com/questions/736612/raid-1-without-cache-protection-zmcp-backup-battery Mick 10 лет назад 0

Похожие вопросы