这个问题与使用 Pacemaker 管理 raid6 设备但是,除了涉及到的事实之外,所链接的问题中没有任何内容与该问题相关Pacemaker
。
为了回答这个问题,我假设阵列不是分布式的,但仍由 管理pacemaker
。我创建了一个raid6
由 4 个设备组成的阵列。Pacemaker
管理阵列及其所有设备,全部作为资源。我添加了适当的约束,以便在至少 2 个设备启动并可用之前不会组装阵列。
当其中一个设备发生故障时,麻烦就来了。从一个完全干净的阵列开始,如果其中一个设备发生故障,或者其任何依赖项发生故障,则pacemaker
通过其资源代理停用相应的设备。但是,设备本身无法关闭,因为活动raid6
阵列使用它。为了解决这个问题,我进行了配置pacemaker
,以便首先使阵列上的设备发生故障,然后将其移除。然后,由于不再使用该设备,它可以停用资源并关闭设备。在我的一次测试中,我怀疑pacemaker
失败了,并移除了太多设备(4 个中的 3 个)并关闭阵列。现在,mdadm
拒绝重新组装阵列:
[root@ceph01 ~]# mdadm --assemble /dev/md/disk1 /dev/cluster/ceph0*-disk1
mdadm: /dev/md/disk1 assembled from 1 drive and 3 spares - not enough to start the array.
[root@ceph01 ~]#
如果我检查每个设备,我会发现其中 3 个被标记为备用,一个被标记为活动:
[root@ceph01 ~]# mdadm --assemble /dev/md/disk1 /dev/cluster/ceph0*-disk1
mdadm: /dev/md/disk1 assembled from 1 drive and 3 spares - not enough to start the array.
[root@ceph01 ~]# mdadm --examine /dev/cluster/ceph01-disk1
/dev/cluster/ceph01-disk1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 2929c57b:b3a7c8b6:36cb160e:b691c7a4
Name : ceph02:disk1
Creation Time : Wed May 10 16:19:13 2023
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 7812667392 sectors (3.64 TiB 4.00 TB)
Array Size : 7812667392 KiB (7.28 TiB 8.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : a83c4b13:338d9a52:54863e4b:6cb96cd3
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Jun 1 13:19:35 2023
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 7d767571 - correct
Events : 175
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : .... ('A' == active, '.' == missing, 'R' == replacing)
[root@ceph01 ~]# mdadm --examine /dev/cluster/ceph02-disk1
/dev/cluster/ceph02-disk1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 2929c57b:b3a7c8b6:36cb160e:b691c7a4
Name : ceph02:disk1
Creation Time : Wed May 10 16:19:13 2023
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 7812667392 sectors (3.64 TiB 4.00 TB)
Array Size : 7812667392 KiB (7.28 TiB 8.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : 6196eccc:bd4d6f31:b7f12e0a:45482818
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Jun 1 13:19:35 2023
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 199889f1 - correct
Events : 175
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : .... ('A' == active, '.' == missing, 'R' == replacing)
[root@ceph01 ~]# mdadm --examine /dev/cluster/ceph03-disk1
/dev/cluster/ceph03-disk1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 2929c57b:b3a7c8b6:36cb160e:b691c7a4
Name : ceph02:disk1
Creation Time : Wed May 10 16:19:13 2023
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 7812667392 sectors (3.64 TiB 4.00 TB)
Array Size : 7812667392 KiB (7.28 TiB 8.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : f85b705c:f5b270bf:a937406f:528916df
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Jun 1 13:19:35 2023
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 631d3bc1 - correct
Events : 175
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : .... ('A' == active, '.' == missing, 'R' == replacing)
[root@ceph01 ~]# mdadm --examine /dev/cluster/ceph04-disk1
/dev/cluster/ceph04-disk1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 2929c57b:b3a7c8b6:36cb160e:b691c7a4
Name : ceph02:disk1
Creation Time : Wed May 10 16:19:13 2023
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 7812667392 sectors (3.64 TiB 4.00 TB)
Array Size : 7812667392 KiB (7.28 TiB 8.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : 8e577afd:eaafa63b:fda2a699:5d55ed8b
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Jun 1 13:18:40 2023
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 579e6b6b - correct
Events : 166
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : ...A ('A' == active, '.' == missing, 'R' == replacing)
[root@ceph01 ~]#
仅 1 个活动设备就足以启动raid6
阵列,因为这意味着缺少 3 个设备,raid6
只能处理 2 个故障。我还可以看到,所有 3 个标记为备用的设备都设置为相同的Events
计数器 (175),该计数器严格高于一个活动设备 (166)。我还知道,当设备 1、2 和 3 是阵列的一部分时,它们分别在阵列中有插槽 0、1 和 2。但是,mdadm --examine
没有显示这一点。
因为我有 4 个磁盘中的 3 个,它们分别位于同 4 个设备raid6
阵列的不同插槽中,并且所有这 3 个设备都是干净的且具有相同的Events
计数器值,所以我认为应该可以使用它们重新组装我的阵列;但我找不到如何操作。
我尝试仅使用备用设备和--run
标志来重新组装阵列:
[root@ceph01 ~]# mdadm --assemble /dev/md/disk1 /dev/cluster/ceph0{1..3}-disk1 --run
mdadm: failed to RUN_ARRAY /dev/md/disk1: Invalid argument
mdadm: Not enough devices to start the array.
[root@ceph01 ~]#
我尝试了与上面相同的命令,但--force
添加了标志:
[root@ceph01 ~]# mdadm --assemble --force /dev/md/disk1 /dev/cluster/ceph0{1..3}-disk1 --run
mdadm: failed to RUN_ARRAY /dev/md/disk1: Invalid argument
mdadm: Not enough devices to start the array.
[root@ceph01 ~]#
我尝试让它mdadm
发现它可以使用的设备,只指向uuid
我想要组装的数组,并使用--force
或--run
或两个标志:
[root@ceph01 ~]# mdadm --assemble --scan --uuid=2929c57b:b3a7c8b6:36cb160e:b691c7a4 --run
mdadm: failed to RUN_ARRAY /dev/md/disk1: Input/output error
mdadm: Not enough devices to start the array.
mdadm: No arrays found in config file or automatically
[root@ceph01 ~]# mdadm --assemble --scan --uuid=2929c57b:b3a7c8b6:36cb160e:b691c7a4 --force
mdadm: /dev/md/disk1 assembled from 1 drive and 3 spares - not enough to start the array.
mdadm: No arrays found in config file or automatically
[root@ceph01 ~]# mdadm --assemble --scan --uuid=2929c57b:b3a7c8b6:36cb160e:b691c7a4 --force --run
mdadm: failed to RUN_ARRAY /dev/md/disk1: Input/output error
mdadm: Not enough devices to start the array.
mdadm: No arrays found in config file or automatically
[root@ceph01 ~]#
到目前为止,什么都没起作用,我在网上找不到任何想法或建议。有什么方法可以恢复我的阵列吗?