Я пытаюсь создать RAID0 из двух одинаковых жестких дисков, но при попытке создать массив выхожу из mdadm с ошибкой, mdadm: RUN_ARRAY failed: Invalid аргумент
. Вот что я делаю, что приводит к ошибке:
Диски - это / dev / sdc и / dev / sdg. Я разбил каждый диск с помощью gdisk. Это распечатка таблицы разделов из gdisk (для / dev / sdc, но похожая для обоих дисков):
Disk /dev/sdc: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 34188C22-446D-4BE5-9E25-A03A9603EC33
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 976773134 465.8 GiB FD00 Linux RAID
Нулевой суперблок на каждом диске:
# mdadm --zero-superblock /dev/sdc1
# mdadm --zero-superblock /dev/sdg1
Создать массив:
# mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=2 /dev/md1 /dev/sdc1 /dev/sdg1
Но mdadm сообщает об ошибках:
mdadm: chunk size defaults to 512K
mdadm: RUN_ARRAY failed: Invalid argument
dmesg:
[2312487.125558] md: bind<sdc1>
[2312487.125786] md: bind<sdg1>
[2312487.128886] md: personality for level 0 is not loaded!
[2312487.128900] md: md1 stopped.
[2312487.128905] md: unbind<sdg1>
[2312487.157311] md: export_rdev(sdg1)
[2312487.157335] md: unbind<sdc1>
[2312487.190623] md: export_rdev(sdc1)
У меня все еще есть устройство в / dev / md1 (похоже, я не могу его активировать), поэтому в перерывах между попытками я его удаляю:
# mdadm --stop /dev/md1
# mdadm --remove /dev/md1
Единственный совет, который я могу найти в Интернете:
Если вы получаете сообщение об ошибке, например:
«mdadm: RUN_ARRAY failed: Invalid argument»
убедитесь, что ваше ядро поддерживает (либо через модуль, либо путем прямой компиляции> в) режим raid, который вы пытаетесь использовать.
Я использую «стандартное» ядро Arch и считаю, что оно поддерживает RAID0, но я не знаю, как это проверить.
Если я проверю /proc/config.gz, он будет содержать следующую строку:
CONFIG_MD_RAID0 = m
Я не знаком с конфигурацией ядра. Подтверждает ли эта строка, что мое ядро поддерживает RAID0?
В системе есть рабочий RAID5, настроенный с помощью mdadm.
Мысли? Другая информация, которой я должен поделиться?
CONFIG_MD_RAID0 = m
означает, что ваша поддержка raid0 построена как модуль ( m
для модуля), и md: индивидуальность для уровня 0 не загружается!
сообщает, что модуль не загружен. Чтобы загрузить его:
modprobe raid0
Затем вы сможете создать массив. Помните, что вам необходимо загружать модуль при каждой загрузке перед сборкой массива (вы можете и должны сделать это в сценариях загрузки).