Ubuntu Server 14.04-使用 mdadm 创建的 RAID5 在重启后消失

Ubuntu Server 14.04-使用 mdadm 创建的 RAID5 在重启后消失

这是我关于超级用户的第一个问题,因此如果我忘记提及某事,请询问。

我正在尝试设置一台家庭服务器,该服务器将用作文件服务器和媒体服务器。我安装了 Ubuntu Server 14.04,现在我正尝试使用 mdadm 设置一个总共由 5 个磁盘组成的 Raid5。创建 raid 后,我能够使用它,并且还可以从其他 PC 访问 raid。重新启动服务器后,raid 不再显示。我也无法组装 raid。

我已完成以下步骤:

创建 RAID

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=5 /dev/sda /dev/sdc /dev/sdd /dev/sde /dev/sdf

RAID 完成后(watch cat /proc/mdstat),我将 RAID 配置存储起来

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

然后我删除了 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 partitions

# 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

# This file was auto-generated on Fri, 14 Mar 2014 23:38:10 +0100
# by mkconf $Id$
ARRAY /dev/md0 UUID=b73a8b66:0681239e:2c1dd406:4907f892

检查 RAID 是否正常工作 ( mdadm --detail /dev/md0) 将返回以下内容:

/dev/md0:
Version : 1.2
Creation Time : Sat Apr 19 15:49:03 2014
Raid Level : raid5
Array Size : 7813531648 (7451.56 GiB 8001.06 GB)
Used Dev Size : 1953382912 (1862.89 GiB 2000.26 GB)
Raid Devices : 5
Total Devices : 5
Persistence : Superblock is persistent

Update Time : Sat Apr 19 22:13:37 2014
State : clean
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : roembelHomeserver:0  (local to host roembelHomeserver)
UUID : c29ca6ea:951be1e7:ee0911e9:32b215c8
Events : 67

Number   Major   Minor   RaidDevice State
0       8        0        0      active sync   /dev/sda
1       8       32        1      active sync   /dev/sdc
2       8       48        2      active sync   /dev/sdd
3       8       64        3      active sync   /dev/sde
5       8       80        4      active sync   /dev/sdf

据我所知,这一切看起来都很好。下一步我创建了文件系统:

mke2fs -t ext4 /dev/md0

输出结果如下:

mke2fs 1.42.8 (20-Jun-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=512 blocks
244174848 inodes, 1953382912 blocks
97669145 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
59613 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

然后我通过在文件末尾添加以下条目将其更改为 fstab:

/dev/md0    /data    ext4    defaults,nobootwait,no fail     0    2

安装 RAID(mount -a)后,我就可以使用它、创建文件、从其他电脑访问它……

现在问题来了:
重新启动服务器 ( reboot now) 后,RAID 不再存在,即
- 没有 /dev/md0
- 空的 /proc/mdstat(除了个性设置)
- df -h 不显示 raid
- mdadm --assemble --scan 不执行任何操作

有人有什么建议吗?我做错了什么吗?

答案1

听起来你忘了一步 - 告诉 initramfs 在启动时加载你的阵列。你所有的步骤都是正确的,并且按时间顺序排列,但听起来你错过了最后一步。但考虑到我不知道你的服务器的当前状态,我建议你尝试以下操作:

启动并输入

mdadm --detail --scan

你看到了什么吗?如果看到了,你的阵列就在那里,应该可以工作(也就是说下面的解决方案可能没用)。我猜当你重新启动时,你根本看不到你的 RAID 驱动器。如果真是这样,

确保 MDADM 守护程序正在运行ps aux | grep mdadm

这将显示是否有任何 MDADM 进程正在运行(如果没有看到结果,请启动 MDADM)

  1. 确保阵列已安装mount -a

  2. 更新 initramfsupdate-initramfs -u

  3. 验证 MDADM 未运行同步或重建 watch cat /proc/mdstat

如果有任何处理,请先让它完成,以免搞砸你的阵列

重启并测试

答案2

通过使用分区而不是原始驱动器解决了我机器上的问题。因此,

 mdadm --create --verbose /dev/md0 --level=5 --raid-devices=5 /dev/sda /dev/sdc /dev/sdd /dev/sde /dev/sdf

这将是

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=5 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1

确保在每个分区上设置 raid 标志(我使用了 gparted)。我的理解是,这允许 mdadm 守护程序查看分区并在启动时重新初始化阵列。

答案3

我的 RAID 磁盘在重启后也没有挂载。但是,我从 dmesg 中注意到,重启后 /dev/md0 被命名为 /deb/md127。我相应地修复了 fstab,从而解决了问题。

答案4

重启后,可以使用 mdadm --assemble --verbose /dev/md0 组装 mdadm。我认为启动顺序的早期阶段存在问题。

相关内容