重新启动后RAIDarrays不会重新组装

重新启动后RAIDarrays不会组装。

我有一个用于引导系统的SSD,以及三个属于该arrays的HDD。 该系统是Ubuntu 16.04。

我所遵循的步骤主要基于本指南:

https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04#creating-a-raid-5-array

  1. validation我是否适合去。

    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

输出显示除SSD分区之外的sda,sdb和sdc设备。 我已经通过查看输出来validation这些实际上是否代表HDD:

 hwinfo --disk 

一切都很匹配。

  1. 组装arrays。

     sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc 

我输入以下命令validation它是否正常:cat / proc / mdstat

输出看起来像这样:

 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 7813774336 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [=======>.............] recovery = 37.1% (1449842680/3906887168) finish=273.8min speed=149549K/sec bitmap: 0/30 pages [0KB], 65536KB chunk unused devices:  

我等到过程结束。

 Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices:  
  1. 创建和安装文件系统。

     sudo mkfs.ext4 -F /dev/md0 sudo mkdir -p /mnt/md0 sudo mount /dev/md0 /mnt/md0 df -h -x devtmpfs -x tmpfs 

我放了一些数据,输出如下:

 Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p2 406G 191G 196G 50% / /dev/nvme0n1p1 511M 3.6M 508M 1% /boot/efi /dev/md0 7.3T 904G 6.0T 13% /mnt/md0 
  1. 保存数组布局。

     sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf sudo update-initramfs -u echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab 
  2. 重新启动并validation一切是否正常。

重启后我尝试:cat / proc / mdstat
它没有显示任何活动的raid设备。

 ls /mnt/md0 

是空的。

以下命令不打印任何内容,也不起作用:

 mdadm --assemble --scan -v 

只有以下内容使用数据恢复数组:

 sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc 

应该采取哪些不同的做法?

其他可能有用的信息:

 sudo dpkg-reconfigure mdadm 

输出显示:

 update-initramfs: deferring update (trigger activated) Generating grub configuration file ... Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Found linux image: /boot/vmlinuz-4.4.0-51-generic Found initrd image: /boot/initrd.img-4.4.0-51-generic Found linux image: /boot/vmlinuz-4.4.0-31-generic Found initrd image: /boot/initrd.img-4.4.0-31-generic Adding boot menu entry for EFI firmware configuration done update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Processing triggers for initramfs-tools (0.122ubuntu8.5) ... update-initramfs: Generating /boot/initrd.img-4.4.0-51-generic 

对我来说有趣的部分是“不再支持启动和停止操作;回退到默认值”

此外,/ usr / share / mdadm / mkconf的输出不会在末尾打印任何数组。

 # 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 craftinity@craftinity.com # definitions of existing MD arrays 

而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 # DEVICE /dev/sda /dev/sdb /dev/sdc # 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 craftinity@craftinity.com # definitions of existing MD arrays # This file was auto-generated on Sun, 04 Dec 2016 18:56:42 +0100 # by mkconf $Id$ ARRAY /dev/md0 metadata=1.2 spares=1 name=hinton:0 UUID=616991f1:dc03795b:8d09b1d4:8393060a 

解决方案是什么? 我浏览了一半的互联网,没有人似乎有同样的问题。

几天前我也在serverfault上添加了完全相同的问题(没有回答)。 如果我违反了stack exchange的社区规则,我会道歉。

我有同样的问题,我不确定,但我发现的工作是在LINUX Raid类型的raid成员上创建新分区,然后在创建数组时我使用分区而不是使用设备。

我无法重现您的确切问题,但我认为我发现了系统行为的可能原因:

使用以下命令创建3磁盘RAID5arrays时:

 sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc 

RAID设备处于恢复状态时,mdadm scan命令显示:

 sudo mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 spares=1 name=desktop:0 UUID=da60c69a:1cbe4f2e:e83d0971:0520ac89 

恢复过程完成后, spares=1参数消失了:

 sudo mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 name=desktop:0 UUID=da60c69a:1cbe4f2e:e83d0971:0520ac89 

我假设,使用spares=1参数重新组装3磁盘读取将在完全恢复的软件RAID5上失败,因为您没有任何spares=1磁盘。 如果尝试使用以下命令组装RAID,则会失败:

 sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sda /dev/sdb /dev/sdc 

并且下一个命令将创建不同的RAID布局:

 sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 --spare-devices=1 /dev/sda /dev/sdb /dev/sdc 

另请注意:如果您不需要从RAID5启动,则无需将配置添加到/etc/mdadm/mdadm.conf文件中。 Ubuntu将自动启动RAID,因为配置在RAID超级块中可用。