Raid

mdadm:raid1 重建期間電源故障

  • November 2, 2020

使用 mdadm 創建的 RAID1 陣列;發生電源故障時正在重建陣列。回來後,陣列似乎已經死了。

# cat /proc/mdstat
Personalities : [raid1]
md0 : inactive sdb1[2](S) sda1[3](S)
15627751424 blocks super 1.2

# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
mdadm: /dev/md1 assembled from 0 drives and 1 rebuilding - not enough to start the array.

我不知道為什麼它說 0 個驅動器 - 我預計 1 個重建,但另一個驅動器應該沒問題。我真的不想意外地做任何破壞性的事情——我應該怎麼做才能讓陣列恢復到可以在其上執行 fsck 的狀態?

/dev/sda1:
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x3
    Array UUID : c4ea2289:c63bc8ce:e6fe5806:5bebe020
          Name : ******:0  (local to host ******)
 Creation Time : Thu Aug 20 20:48:53 2020
    Raid Level : raid1
  Raid Devices : 2

Avail Dev Size : 15627718656 (7451.88 GiB 8001.39 GB)
    Array Size : 7813859328 (7451.88 GiB 8001.39 GB)
   Data Offset : 264192 sectors
  Super Offset : 8 sectors
Recovery Offset : 7331083264 sectors
  Unused Space : before=264112 sectors, after=0 sectors
         State : clean
   Device UUID : ae984a41:f3e421f4:f10e1fac:d7955178

Internal Bitmap : 8 sectors from superblock
   Update Time : Sat Oct 31 17:13:53 2020
 Bad Block Log : 512 entries available at offset 40 sectors
      Checksum : 4be47968 - correct
        Events : 1079809


  Device Role : Active device 0
  Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb1:
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x1
    Array UUID : c4ea2289:c63bc8ce:e6fe5806:5bebe020
          Name : ******:0  (local to host ******)
 Creation Time : Thu Aug 20 20:48:53 2020
    Raid Level : raid1
  Raid Devices : 2

Avail Dev Size : 15627784192 (7451.91 GiB 8001.43 GB)
    Array Size : 7813859328 (7451.88 GiB 8001.39 GB)
 Used Dev Size : 15627718656 (7451.88 GiB 8001.39 GB)
   Data Offset : 264192 sectors
  Super Offset : 8 sectors
  Unused Space : before=264112 sectors, after=65536 sectors
         State : active
   Device UUID : 0abf70e2:7e0e43ca:a22548a2:ef87e9c0

Internal Bitmap : 8 sectors from superblock
   Update Time : Sat Oct 31 17:13:31 2020
 Bad Block Log : 512 entries available at offset 40 sectors
      Checksum : 4cf65df4 - correct
        Events : 1079799


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

查看帶有 xxd 的驅動器,兩者似乎仍然包含數據。這是我自己可以合理管理的事情,還是該找數據恢復公司了?

編輯:Wazoox 的回答有效。

#  mdadm --assemble --scan --force
mdadm: forcing event count in /dev/sda1(1) from 1079799 upto 1079809
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.
# cat /proc/mdstat
Personalities : [raid1]
md0 : active (auto-read-only) raid1 sdb1[3] sda1[2]
     7813859328 blocks super 1.2 [2/1] [_U]
     bitmap: 59/59 pages [236KB], 65536KB chunk

您的兩個驅動器都顯示為“備用”。停止陣列,然後嘗試使用掃描選項重新組裝它:

 mdadm --stop /dev/md0
 mdadm --assemble --scan

如果這不起作用,請嘗試

 mdadm --stop /dev/md0
 mdadm --assemble --scan --force

檢查一切是否恢復正常。還請報告 /proc/mdstat 之後的樣子。

如果您想安全起見,請事先斷開其中一個驅動器的連接,然後僅使用一個驅動器啟動陣列。兩個驅動器之間只有 10 個不同的事件,所以它們可能都可以,但為了快速 fsck。

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