Я создал RAID 5 на основе mdadm из шести жестких дисков, используя следующую команду:
# mdadm --create /dev/md0 --level=5 --raid-devices=5 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \
--spare-devices=1 /dev/sdg1
Я ожидал, что массив будет иметь один горячий резерв, а именно / dev / sdg1. Однако проверка mdadm --detail
показывает 2 запчасти:
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 spares=2 name=...
Кроме того, размер массива, как показано на рисунке, df
равен 2 ТБ, что соответствует только четырем из моих 500 ГБ используемых дисков.
Так что же такое семантика --spare-devices
? На странице руководства указано, что она «указывает [число] количество запасных (eXtra) устройств в исходном массиве», но здесь это не так.
mdadm
software-raid
jstarek
источник
источник
mdadm --detail
Включая диск четности в число «запасных частей».) Вы можете проверить это, создав массив RAID 6 без оперативного резерва; если моя теория верна, она также покажет spares = 2.cat /proc/mdstat
), я думаю, вы увидите ожидаемое 1.Ответы:
Этот вывод правильный. Вы создали RAID 5 с 5 дисками (только 4 из них будут «использованы» для пространства). И вы добавили дополнительный запасной диск.
Таким образом, у вас действительно есть RAID 5, который допускает один сбой диска + дополнительный запасной диск.
Если вам нужен RAID 5 с 6 дисками и объемом 5 дисков, вам нужно изменить команду на:
Но в этом случае вы можете допустить только один сбой диска в соответствии со спецификациями RAID 5.
РЕДАКТИРОВАТЬ: Добавление ссылки с официальной страницы рейда: Вы можете увидеть рейд 5 с 6 дисками, и он заявляет запасной = 1: Начальное создание массива
ОБНОВЛЕНИЕ: я решил создать raid 5 в моей системе, и запасное значение исчезает, когда массив находится в чистом состоянии:
Чистое состояние:
Таким образом, это как комментарий OP, во время первоначального создания рейда 5 у него есть запасной диск до завершения сборки или синхронизации рейда.
источник
Для ясности я соберу информацию, предоставленную Деробертом и Александром Алвесом, и проведу здесь некоторые дальнейшие проверки:
mdadm
«S--spare-devices
параметр работает как состояния человека страниц, т.е. определяет количество„горячих“запасных дисков в массиве. «Горячий» резерв, как и в обычной терминологии RAID, не имеет ничего общего с дополнительными дисками, присутствующими в массиве RAID 5 или RAID 6, - это дополнительный диск, предназначенный для замены, как только диск в массиве провалился.Количество запасных дисков указывается при создании массива. Позже это можно проверить с помощью
#mdadm --detail --scan
.Однако в течение короткого периода инициализации RAID 5 на основе mdadm существует оптимизация, описанная в https://raid.wiki.kernel.org/index.php/Initial_Array_Creation , которая заставляет дополнительный запасной диск появляться в вывод этой команды:
«Для raid5 существует оптимизация: mdadm берет один из дисков и помечает его как« запасной »; затем создает массив в деградированном режиме. Ядро помечает резервный диск как« перестроенный »и начинает читать из« хорошего » дисков, вычислить четность и определить, что должно быть на запасном диске, а затем просто записать на него ".
После завершения инициализации массива количество сообщаемых запасных частей возвращается к числу, выбранному во время создания.
источник