使用 3 个磁盘中的 2 个在新机器上访问干净的 RAID5

使用 3 个磁盘中的 2 个在新机器上访问干净的 RAID5

我的一台服务器坏了。在服务器上,我有 3 个磁盘,每个硬盘的第二个分区上都有一个软件 raid。

现在我已经在 PC 中插入了三块硬盘中的两块(第三块硬盘已经没地方放了!)。以下是我到目前为止尝试过的方法:

# cat /proc/mdstat 
Personalities : [raid1] 
md125 : inactive sdc2[5](S) sdd2[4](S)
      5859503624 blocks super 1.1

md126 : active raid1 sda[1] sdb[0]
      488383488 blocks super external:/md127/0 [2/2] [UU]

md127 : inactive sda[1](S) sdb[0](S)
      6192 blocks super external:imsm

unused devices: <none>

相关的只有 md125。md127 是一些旧垃圾(不知道,不相关)。我用它删除了它,mdadm --stop /dev/md125现在:

# cat /proc/mdstat 
Personalities : [raid1] 
md126 : active raid1 sda[1] sdb[0]
      488383488 blocks super external:/md127/0 [2/2] [UU]

md127 : inactive sda[1](S) sdb[0](S)
      6192 blocks super external:imsm

unused devices: <none>

更远:

#  mdadm --examine /dev/sd[c-d]2
/dev/sdc2:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x1
     Array UUID : f94898fc:8310c296:adb8b51e:74344af4
           Name : socrates:0
  Creation Time : Fri Aug  3 21:55:59 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 5859503120 (2794.03 GiB 3000.07 GB)
     Array Size : 5859503104 (5588.06 GiB 6000.13 GB)
  Used Dev Size : 5859503104 (2794.03 GiB 3000.07 GB)
    Data Offset : 2048 sectors
   Super Offset : 0 sectors
   Unused Space : before=1976 sectors, after=16 sectors
          State : active
    Device UUID : d136f9e1:9971b337:52b603e1:6c711fd0

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Aug 24 12:33:37 2019
       Checksum : 67b6a3c3 - correct
         Events : 5440945

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd2:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x1
     Array UUID : f94898fc:8310c296:adb8b51e:74344af4
           Name : socrates:0
  Creation Time : Fri Aug  3 21:55:59 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 5859504128 (2794.03 GiB 3000.07 GB)
     Array Size : 5859503104 (5588.06 GiB 6000.13 GB)
  Used Dev Size : 5859503104 (2794.03 GiB 3000.07 GB)
    Data Offset : 2048 sectors
   Super Offset : 0 sectors
   Unused Space : before=1976 sectors, after=1024 sectors
          State : active
    Device UUID : 7960d3f8:10353972:2cdd25bc:681bb674

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Aug 24 12:33:37 2019
       Checksum : 38cf65af - correct
         Events : 5440945

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)

我想得到它活动且只读。将不同的网站放在一起,命令应该是

mdadm --assemble --verbose --readonly --scan --run

--run因为阵列不完整

这是我得到的(省略其他数组):

mdadm: /dev/sdc2 has wrong uuid.
mdadm: no recogniseable superblock on /dev/sdc1
mdadm: Cannot assemble mbr metadata on /dev/sdc
mdadm: /dev/sdd2 has wrong uuid.
mdadm: no recogniseable superblock on /dev/sdd1
mdadm: Cannot assemble mbr metadata on /dev/sdd

我关注了这个问题这里

我还有以下信息:

# mdadm --examine --scan
ARRAY metadata=imsm UUID=407fbb06:df3d3717:dd6d0115:5bfe417b
ARRAY /dev/md/Volume1 container=407fbb06:df3d3717:dd6d0115:5bfe417b member=0 UUID=1cb761a5:8dcdc9fd:37cddbc1:b04cf067
ARRAY /dev/md/0  metadata=1.1 UUID=f94898fc:8310c296:adb8b51e:74344af4 name=socrates:0

最后一行是最重要的:socrates 是死机的主机名。

难以置信,现在我再次尝试以下操作:

加上

# ARRAY /dev/md/0  metadata=1.1 UUID=f94898fc:8310c296:adb8b51e:74344af4 name=socrates:0
# to
vim /etc/mdadm.conf

mdadm --assemble --verbose --readonly --scan --run得到了

mdadm: /dev/sdc2 is identified as a member of /dev/md/0, slot 1.
mdadm: /dev/sdd2 is identified as a member of /dev/md/0, slot 0.
mdadm: added /dev/sdc2 to /dev/md/0 as 1
mdadm: no uptodate device for slot 2 of /dev/md/0
mdadm: added /dev/sdd2 to /dev/md/0 as 0
mdadm: failed to RUN_ARRAY /dev/md/0: Input/output error
mdadm: Not enough devices to start the array while not clean - consider --force.

我现在的问题是:如果我添加--force命令,究竟会发生什么?

答案1

手册页说明了如果使用 会发生什么情况--force

       -f, --force
              Assemble  the array even if the metadata on some devices appears
              to be out-of-date.  If mdadm cannot find enough working  devices
              to  start the array, but can find some devices that are recorded
              as having failed, then it will mark those devices as working  so
              that  the array can be started.  An array which requires --force
              to be started may contain data corruption.  Use it carefully.

您应该尽一切努力连接第三个磁盘(如果您确实有的话)。您似乎不太可能无法使用某些可以插入所有三个磁盘的 PC 硬件。如有必要,请断开现有磁盘。您不是想恢复数据吗?如果没有所有三个磁盘,您将面临其中一个驱动器发生故障的风险,在这种情况下,您将失去一切。您还面临着其中一个驱动器上已经存在损坏数据的风险。如果连接了所有三个磁盘,则可以修复此问题,但如果只有两个磁盘,您可能会丢失一些数据。

相关内容