Я провел некоторое исследование возможности живой миграции с RAID 5 на RAID 10, и мне любопытно, почему кажется, что большинство RAID-контроллеров (особенно контроллеров Dell PERC) не поддерживают понятие живой миграции с От RAID 5 до RAID 10.
Я быстро обработал электронную таблицу, которая показывает, что это не только должно быть относительно простым процессом, но и может быть выполнено таким образом, чтобы отказоустойчивость никогда не терялась во время любой части миграции. Единственное требование - как минимум 1 дополнительный диск из-за потери эффективности хранения ... RAID 5 с 3 дисками становится RAID 10 с 4 дисками, RAID 5 с 4 дисками становится RAID 10 с 6 дисками и так далее.
Миграция RAID 5 с 3 дисками (состоящих из дисков A, B и C) в RAID 10 с 4 дисками (добавление диска D) может быть выполнена отказоустойчивым способом за 4 прохода. (Этот процесс, по-видимому, может быть выполнен более эффективно, с некоторыми возможными потерями для отказоустойчивости, но моя цель здесь - просто продемонстрировать, что это возможно)
Начнем с виртуальных блоков данных, которые выглядят так:
A B C D
- - - -
1 2 p
3 p 4
p 5 6
(p=parity; repeats every 6 blocks)
Затем первым шагом становится заполнение D, как если бы это второй диск в RAID 0:
A B C D
- - - -
1 2 p 2
3 p 4 4
p 5 6 6
На этом этапе, если произойдет сбой A-C, это не будет отличаться от обычного сбоя RAID 5. Если D не удалось, единственная потеря - вам нужно будет перезапустить миграцию.
Затем сделать то же самое для C, как если бы это был первый диск в наборе RAID 0:
A B C D
- - - -
1 2 1 2
3 p 3 4
p 5 5 6
Диски AB теперь представляют собой «деградированный» набор RAID 5. Дисковые компакт-диски теперь являются «здоровым» набором RAID 0. Любой сбой одного диска все еще может быть восстановлен - C&D может быть восстановлен из «деградированных» A&B, а состояние A и B может быть пересчитано из состояния C&D
Затем процесс повторяется для B:
A B C D
- - - -
1 2 1 2
3 4 3 4
p 6 5 6
B теперь является зеркалом D, поэтому любой диск может покрыть отказ другого. Если C выходит из строя, A либо уже имеет его копию, либо имеет данные четности для ее восстановления.
И, наконец, обновите биты четности A, чтобы они соответствовали C:
A B C D
- - - -
1 2 1 2
3 4 3 4
5 6 5 6
что дает массив RAID10
Я запускал это для случая миграции с 4-дискового RAID 5 на 6-дисковый RAID 10, и процесс, похоже, проходит нормально (требуется 5 проходов, поскольку диски расширения E и F могут быть заполнены на одном проходе без потери отказоустойчивости.)
Возникает вопрос ... почему никакие RAID-контроллеры на рынке, похоже, не поддерживают этот тип миграции? (Есть ли какие-нибудь такие?) Поскольку «One Big RAID10» пропагандируется как новый стандарт для хранения данных, не имеет ли смысла иметь более простые инструменты для миграции, помимо рекомендуемых в настоящее время «Резервное копирование, воссоздание массива, восстановление»?
Более интересно то, что, по крайней мере, в случае карт Dell PERC, невозможно даже перейти с RAID 0 на RAID 10, что, похоже, не должно отличаться от перехода с RAID 1 без RAID на RAID 1.