我一直在运行带有 8 磁盘 raid 6 阵列的 Ubuntu 18.04 系统,该阵列在出现故障磁盘时崩溃(我只是在崩溃后才注意到有故障磁盘)。该 raid 阵列已在多次 Ubuntu 安装中幸存下来,因此这不是我第一次遇到故障磁盘,通常我会让阵列保持运行,直到收到替换磁盘,但这次我无法让它再次运行(我的计划是先让它再次运行,然后只有当我确定阵列可以恢复时才订购替换磁盘)。
我已断开故障驱动器的连接,其他 7 个驱动器似乎仍在运行,但 mdadm 似乎认为这 7 个驱动器是 raid 0 阵列的一部分,而不是 raid 6 阵列的一部分。因此,目前,我没有足够的勇气去尝试任何可能具有破坏性的事情,至少要先确认这样做比破坏数据更有可能成功(多年来,我断断续续地备份过,但上面可能还有一些照片尚未备份……是的,我知道我需要一个更好的备份策略,而且一如既往,这将是我在修复此问题或确定无法修复后要做的第一件事)。
当我运行时mdadm --assemble --scan
我得到以下输出:
mdadm: /dev/md127 assembled from 7 drives - not enough to start the array while not clean - consider --force.
我想尝试该--force
选项,但输出mdadm --detail /dev/md127
如下:
/dev/md127:
Version : 1.2
Raid Level : raid0
Total Devices : 7
Persistence : Superblock is persistent
State : inactive
Working Devices : 7
Name : Ares:RaidStorage (local to host Ares)
UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Events : 1627931
Number Major Minor RaidDevice
- 8 32 - /dev/sdc
- 8 0 - /dev/sda
- 8 112 - /dev/sdh
- 8 80 - /dev/sdf
- 8 48 - /dev/sdd
- 8 16 - /dev/sdb
- 8 96 - /dev/sdg
而且由于mdadm --assemble --help
这--force
涉及修改超级块,我担心运行--force
会用 raid 0 阵列的信息覆盖超级块。
我让 mdadm 检查成员设备,它们仍然认为它们是 8 磁盘 raid 6 阵列的一部分(我希望这意味着仍然有恢复的机会):
root@Ares:/# for i in a b c d f g h; do mdadm --examine /dev/sd$i; done
/dev/sda:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=944 sectors
State : active
Device UUID : 1e104c8a:529eb411:a7fd472a:5854d356
Update Time : Fri Mar 1 21:50:02 2019
Checksum : 712f8115 - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=944 sectors
State : active
Device UUID : d3bb43b7:9f39be47:102328fa:2bab3f5e
Update Time : Fri Mar 1 21:50:02 2019
Checksum : ab7d4456 - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=944 sectors
State : active
Device UUID : 325a0adf:3d917a47:977edea3:db21d42a
Update Time : Fri Mar 1 21:50:02 2019
Checksum : 494b0c89 - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=944 sectors
State : active
Device UUID : 6c0200a0:37b50833:683a868b:ebfb9e94
Update Time : Fri Mar 1 21:50:02 2019
Checksum : 47416ea1 - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=944 sectors
State : active
Device UUID : b91d04d3:3f1508ad:687bb30f:7d6fc687
Update Time : Fri Mar 1 21:50:02 2019
Checksum : 6b999e8b - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 4
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1960 sectors, after=944 sectors
State : active
Device UUID : 64ba7519:7d47e97c:21c5622a:18df9eca
Update Time : Fri Mar 1 21:50:02 2019
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : df7c2710 - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 5
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdh:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
Name : Ares:RaidStorage (local to host Ares)
Creation Time : Mon Jun 25 18:19:09 2012
Raid Level : raid6
Raid Devices : 8
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=944 sectors
State : active
Device UUID : 493cfa55:b00800db:40c8fbc4:c94dabbb
Update Time : Fri Mar 1 21:50:02 2019
Checksum : 5b4dbb3 - correct
Events : 1627931
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 6
Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
为了完整起见,这里还有一些可能相关的其他命令的输出:
root@Ares:/# mdadm --examine --scan
ARRAY /dev/md/RaidStorage metadata=1.2 UUID=8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1 name=Ares:RaidStorage
root@Ares:/# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
root@Ares:/# cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# 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
# 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 /dev/md/RaidStorage metadata=1.2 UUID=8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1 name=Ares:RaidStorage
# This configuration was auto-generated on Mon, 01 Oct 2018 20:35:13 +0200 by mkconf
为了排除我的 Kubuntu 安装中某些配置错误的可能性,我还尝试mdadm --assemble --scan
从 Kubuntu USB 记忆棒进行安装,但效果与从我的正常安装运行完全相同。
我的问题如下:
- 为什么所有驱动器都认为它们是我的 8 磁盘 raid 6 阵列的一部分,但
mdadm --assemble --scan
仍然导致 raid 0 阵列处于非活动状态? - 我可以安全地拨打电话吗
mdadm --assemble --scan --force
? - 如果 2 上没有:我该如何说服 mdadm 将我的 7 个磁盘视为 8 磁盘 raid 6 的一部分?
答案1
这对我有用:
- 进入
/etc/mdadm/mdadm.conf
编辑阵列的行并添加 raid 级别和磁盘编号。我的是
level=raid6 num-devices=6
显然你需要说 8 个设备:)
看起来我的系统严重过热——两个盒子放在一个狭小的空间里,磁盘都出问题了。一个磁盘掉了,我以为是它搞砸了,另一个磁盘就消失了,但当我检查事件时,我发现有 5 个磁盘有同样的问题,第一个掉出来的磁盘排在后面。
设置完成后mdadm.conf
,我重新启动了系统,检查所有磁盘是否都已检测到,然后命令assemble
需要选项--force
(可怕),但运行正常并开始自行检查。然后重新添加第一个要退出的磁盘,看起来它刚刚更新了它,现在一切都干净了。