Назад | Перейти на главную страницу

Расчет raid5 xor - несколько вопросов

У меня несколько вопросов по raid5. рассмотрите возможность создания устройства raid5, скажем md0 с тремя дисками.

После создания вы начинаете запись на диск. Здесь, когда записывается файл размером, скажем, 1 ГБ, сколько фактического размера данных записывается на три диска?

Я понимаю, что расчет xor выполняется при выполнении записи (только для восстановления). Если вычисление xor не выполнено должным образом (например, ошибка в алгоритме вычисления xor), запись все равно будет успешной?

Как во время чтения используется вычисленное значение xor? ИЛИ, другими словами, вычисленное значение XOR действительно используется при чтении?

Для 1 ГБ данных каждая часть данных распределяется по трем устройствам, скажем, first_piece на первое устройство, second_piece на второе устройство, а затем третья вычисляемая часть xor (из первой и второй частей) в третье устройство. Верно ли мое понимание?

Считайте Linux используемой ОС. Спасибо!

всякий раз, когда записывается файл размером, скажем, 1 ГБ, сколько фактического размера данных записывается на три диска.?

500 МБ на каждый диск в этой трехсторонней конфигурации R5, в меньших кластерах, чем 500 ГБ, но в целом 500 ГБ. Вы правильно понимаете, как кластеры загружаются на все диски, но помните, что в отличие от R4 данные четности не записываются на один диск, а распределяются по дискам вместе с реальными данными. Да и ОС здесь не имеет значения.

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

В дополнение к тому, что уже написал Chopper3:

  • то, что вы называете «частями» данных, на самом деле называется «полосами» или «фрагментами» в языке RAID. Размер полосы обычно является параметром конфигурации во время создания тома, типичные значения находятся в диапазоне от 32 до 256 КБ. Я считаю, что md по умолчанию использует 32 КБ.

  • то, используются ли значения XOR или нет, является деталью реализации алгоритма чтения и в основном является компромиссом. Не использование четности для чтения может означать более длительное время обслуживания, если диски заняты. Использование четности для чтения неизбежно означает больше вычислений и, следовательно, более высокую нагрузку. С достаточно сложным планировщиком он мог бы учитывать текущую глубину очереди и отправлять запросы чтения на диски с наименьшей нагрузкой, даже если они содержат часть данных с четностью, но отдавать предпочтение данным без четности, если нагрузка на диск одинаково низко.

  • в настоящий Причина, по которой профессионалы не любят RAID 5, состоит в том, что он неуклюжий, как утка, для нагрузок ввода-вывода типа «случайная небольшая запись». Но посмотрите сами и прочтите некоторые документы из Сайт BAARF для более подробного обсуждения