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

Каковы последствия выхода из строя горячего резерва во время восстановления массива?

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

Возникает вопрос: почему перестройка не может просто начаться со следующего доступного диска горячего резервирования (их больше одного)?


Итак, позвольте мне подумать: допустим, 5-дисковый RAID5 + горячее резервирование:

  1. Все диски целы, все данные есть, четность есть на всякий случай.
  2. Один диск выходит из строя, четность на оставшихся 4 дисках используется для восстановления неисправного 5-го диска в горячем резерве.
  3. Во время восстановления
    • чтение блоков изначально на отказавшем диске может быть вычислено по четности
    • один из этих блоков тем временем модифицируется: должна измениться четность на оставшихся 4 дисках, чтобы учесть это (обновленный блок должен быть перезаписан на горячий резерв, если он уже был записан, поэтому некоторые вид измененных блоков битовой карты должен существовать)
    • при изменении данных на дисках 1-4 информация о четности на горячем резерве должна каждый раз перезаписываться

Теперь, если во время реконструкции произойдет сбой горячего резервирования, у нас все еще будут данные с 4 дисков + информация о четности, что позволит использовать новый горячий резерв и начать все заново.

Единственное, о чем я могу думать прямо сейчас, - это нехватка памяти для очень большого битового массива измененных блоков (на случай, если во время реконструкции было много записей).

Что я забываю? (Я не пробовал реализовать это :-P)

Да ладно. Первоначальное предположение было неверным: горячий резерв не отказал, но другой диск из группы raid отказал во время восстановления.

Массив сохранял диск живым столько, сколько мог, но некоторые секторы были неизбежно потеряны (ошибка двойной четности в одном рейде).