Почему md raid не собирается после перезагрузки?

Я пытаюсь настроить Intel RAID. Проблема у меня в том, что после перезагрузки рейд недоступен.

Это шаги, которые я выполняю, чтобы настроить Intel RAID с помощью команды mdadm. Я следовал за шагами на http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/rst-linux-paper.pdf.

$ sudo mdadm --detail-platform
   Platform : Intel(R) Matrix Storage Manager
    Version : 12.0.0.1783
RAID Levels : raid0 raid1 raid10 raid5
Chunk Sizes : 4k 8k 16k 32k 64k 128k
2TB volumes : supported
  2TB disks : supported
  Max Disks : 6
Max Volumes : 2 per array, 4 per controller
I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA)

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
unused devices: <none>

$ sudo mdadm --create /dev/md/imsm /dev/sd[b-c] -n 2 -e imsm
mdadm: container /dev/md/imsm prepared.                                                                                                                                         

$ sudo mdadm --create /dev/md/vol0 /dev/md/imsm -n 2 -l 1                                                                                                                       
mdadm: cannot open device: 11:0
mdadm: array /dev/md/vol0 started.

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 sdc[1] sdb[0]
  1953511424 blocks super external:/md127/0 [2/2] [UU]
  [>....................]  resync =  0.4% (8213824/1953511424) finish=192.8min speed=168142K/sec

md127 : inactive sdc[1](S) sdb[0](S)
  2210 blocks super external:imsm

unused devices: <none>

$ sudo mdadm --examine --scan --config=mdadm.conf
ARRAY metadata=imsm UUID=1b6e3d9e:e14f7906:38f86e54:1f85cdcd
ARRAY /dev/md/vol0 container=1b6e3d9e:e14f7906:38f86e54:1f85cdcd member=0 UUID=546b601a:ccfa6f04:2cc1d0f5:aa05edc2

$ sudo vi /etc/mdadm/mdadm.conf
$ cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY metadata=imsm UUID=1b6e3d9e:e14f7906:38f86e54:1f85cdcd
ARRAY /dev/md/vol0 container=1b6e3d9e:e14f7906:38f86e54:1f85cdcd member=0 UUID=546b601a:ccfa6f04:2cc1d0f5:aa05edc2

= - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
Затем я перезагрузился здесь с рабочим рейдом
= - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
unused devices: <none>
$ sudo mdadm --assemble --scan
mdadm: Container /dev/md/imsm0 has been assembled with 2 drives
mdadm: Started /dev/md/vol0 with 2 devices
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 sdb[1] sdc[0]
  1953511424 blocks super external:/md127/0 [2/2] [UU]
  [>....................]  resync =  4.0% (78945280/1953511424) finish=30274.0min speed=1024K/sec

md127 : inactive sdc[1](S) sdb[0](S)
  6306 blocks super external:imsm

unused devices: <none>

Таким образом, после запуска команды сборки, рейд доступен, но почему его нет после перезагрузки по умолчанию?

Система работает;

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.10
DISTRIB_CODENAME=saucy
DISTRIB_DESCRIPTION="Ubuntu 13.10"

$ uname -a
Linux mdk1 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

5 ответов

Поддержка Intel Fakeraids является новым для mdadm в 14.04. Предыдущие выпуски Ubuntu использовались dmraid активировать их. Обратите внимание, что если вы не используете двойную загрузку с Windows, вам следует полностью избегать фейков и просто придерживаться нативного mdadm.

Для людей, сталкивающихся с ошибкой # 1318351 "mdadm не собирает imsm raids во время обычной загрузки", затрагивающей Intel Hardware RAID (imsm) по крайней мере в Ubuntu 14 и 15, это решило проблему:

редактировать /etc/default/grub иметь:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomdmonddf nomdmonisw"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

редактировать /etc/default/grub.d/dmraid2mdadm.cfg иметь:

DMRAID2MDADM_TOAPPEND=""

Запуск:

sudo dpkg-reconfigure mdadm
sudo update-grub
sudo update-initramfs -u

Вы можете остановиться здесь, если это решило вашу проблему. Ниже идет дальше.

Это, конечно, предполагает ваш /etc/mdadm/mdadm.conf это хорошо. Мой выглядит так для NTFS RAID0:

CREATE owner=MYUSERNAME group=disk mode=0775 auto=yes
MAILADDR root
ARRAY /dev/md0 level=container num-devices=2 metadata=imsm UUID=XXXXXXXX:XXXXXXXX:XXXXXXXX:XXXXXXXX devices=/dev/sdb,/dev/sdc
ARRAY /dev/md1 level=raid0 num-devices=2 container=/dev/md0 member=0 UUID=YYYYYYYY:YYYYYYYY:YYYYYYYY:YYYYYYYY devices=/dev/sdb,/dev/sdc auto=md

Он был создан с:

sudo mdadm --assemble --scan
sudo mdadm --detail --scan --verbose

И немного адаптирован.

Наконец, если диски правильно собраны при загрузке (отображается в Nautilus), вы можете начать играть с /etc/fstab смонтировать диск при загрузке.

Всегда проверяйте ваш /etc/fstab, чтобы избежать зависания при загрузке:

sudo mount -a

Если после редактирования fstab происходит сбой обычной загрузки, загрузитесь в режиме восстановления и перейдите к командной строке:

loadkeys fr
mount -o remount,rw /
pico /etc/fstab

fr для французских клавиатур.

У меня такая же проблема с фальшивым биосом. Так как мой raid необходим для загрузки, мне пришлось поместить скрипт в /usr/share/initramfs-tools/scripts/init-premount для сборки raid:

#!/bin/sh
mdadm --assemble --scan

Затем я обновляю initram с помощью команды:

update-initramfs -u

Я пытаюсь заставить мой raid работать с dmraid, но работал только набор raid0. raid5 похоже работает только с mdadm. Однако с Ubuntu 12.04 оба набора рейдов работали с dmraid.

Добавлять

auto=md

к правильной строке ARRAY в mdadm.conf:

До:

ARRAY /dev/md/vol0 container=1b6e3d9e:e14f7906:38f86e54:1f85cdcd member=0    UUID=546b601a:ccfa6f04:2cc1d0f5:aa05edc2

После:

ARRAY /dev/md/vol0 container=1b6e3d9e:e14f7906:38f86e54:1f85cdcd member=0 UUID=546b601a:ccfa6f04:2cc1d0f5:aa05edc2 auto=md

В моем случае я не использую контейнеры (как в документе Intel), поэтому у меня есть только одна строка, в которой я также указываю формат метаданных, как показано ниже:

ARRAY /dev/md/hdd level=raid10 metadata=1.0 num-devices=4 UUID=462b55f7:e09bc196:deb847c4:b6be609c name=hdd auto=md

В md имена raid работают только с метаданными 1.0 или выше. Надеюсь, это поможет.

Это известная проблема:

https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1318351

Пожалуйста, оставьте сообщение об ошибке

Другие вопросы по тегам