Я создал RAID-массив на основе mdadm 5 с шести жестких дисков, используя следующую команду:
# 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
? На странице man указано, что «Specif [ies] количество запасных (eXtra) устройств в исходном массиве». Но это, похоже, не так.
Этот вывод правильный. Вы создали RAID 5 с 5 дисками (только 4 из них будут «использоваться» для пробела). И вы добавили дополнительный запасной диск.
Таким образом, у вас действительно есть RAID 5, который позволяет сбой одного диска + дополнительный запасной диск.
Если вы хотите на самом деле RAID 5 с 6 дисками и иметь 5 дисков, вам нужно изменить свою команду на:
mdadm --create /dev/md0 --level=5 --raid-devices=6 \ /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1
Но в этом случае вы можете терпеть только один сбой диска по спецификациям RAID 5.
EDIT: добавление ссылки с официальной страницы рейда: вы можете увидеть рейд 5 с 6 дисками, и он указывает на резерв = 1: создание начального массива
ОБНОВЛЕНИЕ: я решил создать рейд 5 в своей системе, и запасное значение исчезает после того, как массив находится в чистом состоянии:
Raid Devices : 4 Total Devices : 4 State : clean, degraded, recovering Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1
Чистое состояние:
Raid Devices : 4 Total Devices : 4 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0
Таким образом, это как комментарий OP, во время первоначального создания рейда 5 у него есть запасной диск до завершения сборки / синхронизации рейда.
Для ясности я обобщил информацию, предоставленную derobert и Alexandre Alves, и некоторые дополнительные испытания здесь:
--spare-devices
mdadm
--spare-devices
работает как состояние man-страницы, то есть определяет количество «горячих резервных» дисков в массиве. «Горячий запас», как и в обычной терминологии RAID, не имеет ничего общего с дополнительными дисками, присутствующими в массиве RAID 5 или RAID 6, – это дополнительный диск, который должен взять на себя, как только диск в массиве провалился.
Количество запасных дисков задается во время создания массива. Позже это можно проверить, используя #mdadm --detail --scan
.
Однако в течение короткого периода инициализации RAID 5 на базе mdadm существует оптимизация, описанная в https://raid.wiki.kernel.org/index.php/Initial_Array_Creation , что делает дополнительный запасной диск в вывод этой команды:
«Для raid5 есть оптимизация: mdadm берет один из дисков и маркирует его как« запасной », а затем создает массив в деградированном режиме. Ядро отмечает запасной диск как« перестройку »и начинает читать из« хорошего », диски, вычисляет четность и определяет, что должно быть на запасном диске, а затем просто записывает на него ».
После завершения инициализации массива количество запасных частей возвращается к числу, выбранному во время создания.