Software-Raid

使用 3 個磁碟中的 2 個在新機器上訪問乾淨的 RAID5

  • August 29, 2019

我的一個伺服器死了。在伺服器上,我在每個 HD 的第二個分區上有 3 個磁碟和軟體 raid。

現在我已經在 PC 中插入了三分之二的 HD(第三個沒有位置!)。這是我到目前為止所嘗試的:

# 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到命令中會發生什麼?

手冊頁說明瞭如果您使用--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 硬體。如有必要,斷開現有磁碟。你不是要恢復數據嗎?如果沒有所有三個磁碟,您將面臨其中一個驅動器發生故障的風險,在這種情況下,您將失去一切。您還冒著已經在其中一個驅動器上存在損壞數據的風險。連接所有三個磁碟後,可以修復此問題,但僅使用兩個磁碟可能會失去一些數據。

引用自:https://serverfault.com/questions/981135