Я пытаюсь создать программный массив raid5 с помощью mdadm:
$ linux # mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 --spare-devices=0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: array /dev/md0 started.
Однако при проверке / proc / mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sdc1[2] sdb1[1] sda1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
[>....................] recovery = 0.3% (2970496/976759936) finish=186.1min speed=87172K/sec
unused devices: <none>
Кажется, что один диск не активен, поэтому я проверяю детали массива:
/dev/md0:
Version : 00.90.03
Creation Time : Tue Jul 21 16:29:53 2009
Raid Level : raid5
Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Jul 21 16:29:53 2009
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 0% complete
UUID : ce8b2f40:821d003c:0027688e:a70977ec
Events : 0.1
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
4 8 49 3 spare rebuilding /dev/sdd1
А активных устройств вроде всего 3, причем одно запасное.
Это только у меня, или тут что-то не так?
Это руководство описывает создание массива raid5 с помощью mdadm. Вы не можете использовать raid5 менее чем с тремя устройствами.
Что вы имеете в виду под запасным? Raid5 разработан для обеспечения избыточности, чтобы выдержать отказ одного устройства. Если этого не происходит, значит, это больше не raid5.
Редактировать после редактирования вопроса:
When creating a RAID5 array, mdadm will automatically create a degraded
array with an extra spare drive. This is because building the spare
into a degraded array is in general faster than resyncing the parity on
a non-degraded, but not clean, array. This feature can be overridden
with the --force option.
Похоже, что mdadm настраивает новый массив как деградированный с запасным, а затем вставляет запасной для создания массива.
если у вас есть чистые диски и вы создаете новый массив, более быстрый вариант первоначального восстановления -
(в моем случае)
mdadm --create --verbose --force --assume-clean /dev/md0 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Он также показывает, что в данный момент восстанавливается, а ваш запасной диск восстанавливается. Мне было бы интересно посмотреть, как будет выглядеть ваш результат после его завершения.
Если вы хотите создать деградированный RAID5 из известных чистых дисков / разделов, вам нужно как минимум 2 диска (например, для RAID5 с 3 дисками), вы должны:
mdadm --create --verbose --force --assume-clean /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 missing