我正在尝试设置 Intel 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: <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>
因此,运行 assemble 命令后,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
答案1
mdadm 在 14.04 中新增了对英特尔 fakeraid 的支持。以前的 Ubuntu 版本曾经dmraid
激活它们。请注意,除非您与 Windows 进行双启动,否则您应该完全避免使用 fakeraid 而只使用原生 mdadm。
答案2
对于遇到 bug 的人#1318351 “mdadm 在正常启动期间不会组装 imsm 突袭”至少影响 Ubuntu 14 & 15 上的英特尔硬件 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
适用于法语键盘。
答案3
添加
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 或更高版本。希望这能有所帮助。