重启后为什么不进行md raid组装?

我正在尝试安装英特尔RAID。 我遇到的问题是重启后raid不可用。

以下是使用mdadm命令设置Intel RAID的步骤。 我已按照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:  $ sudo mdadm --create /dev/md/imsm /dev/sd[bc] -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:  $ 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  # 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 

= – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = –
然后我重新启动了raid工作
= – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = – = –

 $ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] unused devices:  $ 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:  

所以在运行一个汇编命令之后,raid可用但是为什么默认情况下重启后它不在那里?

系统正在运行;

 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 

对于英特尔假冒伪装的支持是14.04中mdadm的新function。 以前的Ubuntu版本使用dmraid来激活它们。 请注意,除非你使用Windows进行双重启动,否则你应该完全避免使用伪造的东西,而只是坚持使用原生的mdadm。

对于面临bug #1318351 “mdadm在正常启动期间没有组装imsm raid”的人至少在Ubuntu 14和15上影响Intel硬件RAID(imsm),这解决了这个问题:

编辑/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为法国键盘。

 auto=md 

到mdadm.conf中正确的ARRAY行:

之前:

 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 

在我的情况下,我没有使用容器(如在英特尔论文中),所以我只有一行我也指定了元数据格式,如下所示:

 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或更高版本。 希望这有帮助。

我用一个假的bios raid遇到了同样的问题。 由于我的raid需要启动,我不得不在/ usr / share / initramfs-tools / scripts / init-premount中放置一个脚本来组装raid:

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

然后我通过运行命令更新initram:

 update-initramfs -u 

我尝试使用dmraid进行raid工作,但只有raid0设置正常工作。 raid5似乎只适用于mdadm。 但是对于Ubuntu 12.04,raid set都与dmraid合作。

这是一个已知的问题:

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

请发布一个跟进bug