首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mdadm没有足够的设备启动数组-恢复可能吗?

mdadm没有足够的设备启动数组-恢复可能吗?
EN

Unix & Linux用户
提问于 2021-05-29 15:38:59
回答 1查看 1.7K关注 0票数 1

MD raid5数组似乎突然停止工作。症状在某种程度上与本期相似,因为我的错误涉及到没有足够的设备来启动数组,但是在我的例子中,所有三个驱动器上的事件计数是相等的。这是一个raid 5阵列,应该有2个活动驱动器和一个奇偶校验,但是mdadm --对每个驱动器的检查显示,其中两个驱动器的角色被列为空闲驱动器,而只有一个驱动器是活动驱动器。

我试过mdadm --停止/dev/md1 1,然后是mdadm -组装/dev/md1 1(包括使用-force和-run标志的尝试)。

智能数据并不表示驱动器有任何问题(当前挂起和重新分配的扇区计数都为零),我已经通过设置映射的覆盖设备的步骤尝试了下面通过frostschutz链接的raid.wiki.kernel.org指南

然后,我假设运行以下命令将创建一个raid数组,然后我可以尝试将其挂载为只读,并查看这是否会导致可读的文件系统或混乱(即确定我对sdf1是奇偶校验驱动器的猜测是否正确,还是应该再次尝试使用sde1) --但是它提供了下面的错误显示(也尝试了与相关的循环设备进行每次丢失-列表,结果相同)。

mdadm -创建/dev/md2 -假设-清洁-级别=5-数据块=64K-数据-偏移量=261888s-raid-设备=3缺失/dev/mapper/sdh1 1/dev/mapper/sdf1 1

代码语言:javascript
复制
mdadm: super1.x cannot open /dev/mapper/sdh1: Device or resource busy
mdadm: /dev/mapper/sdh1 is not suitable for this array.
mdadm: super1.x cannot open /dev/mapper/sdf1: Device or resource busy
mdadm: /dev/mapper/sdf1 is not suitable for this array.
mdadm: create aborted

此外,尽管mdadm -detail /dev/md1先前给出了以下输出(进一步),但它现在给出了:

代码语言:javascript
复制
/dev/md1:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 3
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 3

              Name : bob:1  (local to host bob)
              UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
            Events : 373364

    Number   Major   Minor   RaidDevice

       -     253       11        -        /dev/dm-11
       -     253       10        -        /dev/dm-10
       -     253        9        -        /dev/dm-9

此外,我注意到dmsetup状态为所有三种覆盖提供了相同的信息,并且有一个看起来可疑的数字,它可能引用原始raid数组(16 8TB)的大小,而不是单个驱动器(8TB)的大小--不确定这是否是应该的?

代码语言:javascript
复制
sde1: 0 15627528888 snapshot 16/16777216000 16
sdh1: 0 15627528888 snapshot 16/16777216000 16
sdf1: 0 15627528888 snapshot 16/16777216000 16

不确定从这一点到试图创建设备、挂载和检查文件系统以确认我是否猜到了正确的奇偶校验设备,使用覆盖来防止将任何内容写入实际驱动器。

更新:根据frostschutz下面的建议,数组在某种程度上处于某种状态,在能够对底层驱动器做任何事情之前,需要发出--停止。以前,当cat /proc/mdstat将数组显示为非活动时,我认为这意味着不可能是连接驱动器的东西,但事实并非如此(我以前也是运行-停止,但似乎后来做了一些事情,触发了不停止状态)。在获得驱动器顺序正确后(不是第一次尝试,很高兴我使用了overlays),数组通过了fsck检查,没有报告错误,现在启动并运行,好像什么都没有发生过一样。

运行其他诊断命令的结果:

cat /proc/mdstat

代码语言:javascript
复制
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : inactive sdh1[1](S) sde1[3](S) sdf1[0](S)
      23440900500 blocks super 1.2

mdadm --详细/dev/md1

代码语言:javascript
复制
/dev/md1:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 3
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 3

              Name : bob:1  (local to host bob)
              UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
            Events : 373364

    Number   Major   Minor   RaidDevice

       -       8      113        -        /dev/sdh1
       -       8       81        -        /dev/sdf1
       -       8       65        -        /dev/sde1

当尝试mdadm时,dmesg中出现的行--组装/dev/md1 1:

代码语言:javascript
复制
md/raid:md1: device sdh1 operational as raid disk 1
md/raid:md1: not enough operational devices (2/3 failed)
md/raid:md1: failed to run raid set.
md: pers->run() failed ..

-检查

代码语言:javascript
复制
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
           Name : bob:1  (local to host bob)
  Creation Time : Mon Mar  4 22:10:29 2019
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
     Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
  Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
    Data Offset : 261888 sectors
   Super Offset : 8 sectors
   Unused Space : before=261808 sectors, after=312 sectors
          State : clean
    Device UUID : e856f539:6a1b5822:b3b8bfb7:4d0f4741

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun May 30 00:22:45 2021
  Bad Block Log : 512 entries available at offset 40 sectors
       Checksum : 9b5703bc - correct
         Events : 373364

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : spare
   Array State : .AA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
           Name : bob:1  (local to host bob)
  Creation Time : Mon Mar  4 22:10:29 2019
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
     Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
  Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
    Data Offset : 261888 sectors
   Super Offset : 8 sectors
   Unused Space : before=261800 sectors, after=312 sectors
          State : clean
    Device UUID : 7919e56f:2e08430e:95a4c4a6:1e64606a

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun May 30 00:22:45 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : d54ff3e1 - correct
         Events : 373364

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : spare
   Array State : .AA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sdh1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
           Name : bob:1  (local to host bob)
  Creation Time : Mon Mar  4 22:10:29 2019
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
     Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
  Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
    Data Offset : 261888 sectors
   Super Offset : 8 sectors
   Unused Space : before=261800 sectors, after=312 sectors
          State : clean
    Device UUID : 0c9a8237:7e79a439:d4e35b31:659f3c86

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun May 30 00:22:45 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 6ec2604b - correct
         Events : 373364

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 1
   Array State : .AA ('A' == active, '.' == missing, 'R' == replacing)
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-05-29 16:54:55

看起来很奇怪。为此您可能必须使用mdadm -用覆盖创建 (具有正确的数据偏移量、块大小和驱动器顺序)。也许第一个驱动器不见了,因为这似乎是第一个失败了.

基本上,一旦一个驱动器不再记得它的设备角色,就没有办法用传统的方法恢复。两者都说它们是“备用的”,所以不知道驱动器是角色0,还是角色2,还是什么都没有(一些raid5设置实际上是出于某种原因使用备件)。因此,目前还不清楚:它们是否有有用的数据,如果有的话,它们的顺序是什么。你得自己决定。

当您正在执行时,也要检查智能数据,并首先使用ddrescue,如果这些驱动器中的任何一个实际上已经重新分配或挂起可能导致raid失败的扇区。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/651961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档