Raid

突襲陣列“乾淨,退化”?

  • December 16, 2018

今天我注意到有一堆消息抱怨 RAID 陣列(它是一個軟體 RAID10),所以我開始研究它但需要幫助,因為我不確定我是否正確解釋了狀態輸出(我有點忘記了實際RAID 設置,因為機器位於遠端位置,我大約在一兩年前配置它)……如果我沒記錯的話,系統應該有 8 個 2TB 磁碟,但這就是我能記得的全部。

系統郵件:

N 14 root@edmedia.loca  Wed May 25 21:30   32/1059  Fail event on /dev/md/0:EDMedia
N 15 root@edmedia.loca  Thu May 26 06:25   30/1025  DegradedArray event on /dev/md/0:EDMedia
N 16 root@edmedia.loca  Thu May 26 06:25   30/1025  SparesMissing event on /dev/md/0:EDMedia

現在我正在查看輸出,這讓我特別困惑的是:

Number   Major   Minor   RaidDevice State
  0       0        0        0      removed

這是否意味著磁碟已被移除(或從陣列中刪除)?我應該嘗試重新添加 ‘/dev/sda1’ 嗎?有什麼方法可以告訴我’/dev/sda1’ 是’/dev/md0’ 的一部分,而不添加某個正在使用的分區磁碟,只會讓事情變得更糟?


狀態輸出:


‘mdadm -D /dev/md0’ 輸出:

/dev/md0:
       Version : 1.2
 Creation Time : Mon Feb  8 23:15:33 2016
    Raid Level : raid10
    Array Size : 2197509120 (2095.71 GiB 2250.25 GB)
 Used Dev Size : 1465006080 (1397.14 GiB 1500.17 GB)
  Raid Devices : 3
 Total Devices : 2
   Persistence : Superblock is persistent

 Intent Bitmap : Internal

   Update Time : Thu Sep  1 19:54:05 2016
         State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0

        Layout : near=2
    Chunk Size : 512K

          Name : EDMEDIA:0
          UUID : 6ebf98c8:d52a13f0:7ab1bffb:4dbe22b6
        Events : 4963861

   Number   Major   Minor   RaidDevice State
      0       0        0        0      removed
      1       8       17        1      active sync   /dev/sdb1
      2       8       33        2      active sync   /dev/sdc1

’lsblk’ 輸出:

NAME                       MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
sda                          8:0    0   1.4T  0 disk
└─sda1                       8:1    0   1.4T  0 part
sdb                          8:16   0   1.4T  0 disk
└─sdb1                       8:17   0   1.4T  0 part
 └─md0                      9:0    0     2T  0 raid10
   ├─md0p1                259:0    0   1.5M  0 md
   ├─md0p2                259:1    0 244.5M  0 md     /boot
   └─md0p3                259:2    0     2T  0 md
     ├─EDMedia--vg-root   253:0    0     2T  0 lvm    /
     └─EDMedia--vg-swap_1 253:1    0    16G  0 lvm    [SWAP]
sdc                          8:32   0   1.4T  0 disk
└─sdc1                       8:33   0   1.4T  0 part
 └─md0                      9:0    0     2T  0 raid10
   ├─md0p1                259:0    0   1.5M  0 md
   ├─md0p2                259:1    0 244.5M  0 md     /boot
   └─md0p3                259:2    0     2T  0 md
     ├─EDMedia--vg-root   253:0    0     2T  0 lvm    /
     └─EDMedia--vg-swap_1 253:1    0    16G  0 lvm    [SWAP]
sdd                          8:48   0   1.4T  0 disk
└─sdd1                       8:49   0   1.4T  0 part
sdj                          8:144  0 298.1G  0 disk
└─sdj1                       8:145  0 298.1G  0 part
sr0                         11:0    1  1024M  0 rom

“df”輸出:

Filesystem      1K-blocks       Used Available Use% Mounted on
/dev/dm-0      2146148144 1235118212 801988884  61% /
udev                10240          0     10240   0% /dev
tmpfs             1637644      17124   1620520   2% /run
tmpfs             4094104          0   4094104   0% /dev/shm
tmpfs                5120          0      5120   0% /run/lock
tmpfs             4094104          0   4094104   0% /sys/fs/cgroup
/dev/md0p2         242446      34463    195465  15% /boot

‘watch -n1 cat /proc/mdstat’ 輸出:

Every 1.0s: cat /proc/mdstat                                                                                                                                                           Thu Sep  1 21:26:22 2016

Personalities : [raid10]
md0 : active raid10 sdb1[1] sdc1[2]
     2197509120 blocks super 1.2 512K chunks 2 near-copies [3/2] [_UU]
     bitmap: 16/17 pages [64KB], 65536KB chunk

unused devices: <none>

按照rudimeier的建議檢查系統日誌,發現早在 5 月份就發生了停電事件,之後 RAID 陣列錯誤開始彈出。由於這是一個軟體 RAID10 (1+0),我很慶幸只有備用磁碟飛出陣列,而不是整個陣列不可逆轉地崩潰。在使用可信賴的舊 Hiren 啟動 CD 進行了幾次 HDD 測試後,只是為了多樣化 - 分區嚮導可啟動……所有可疑磁碟都已檢查,沒有錯誤/問題。

我擦除(使用分區嚮導可引導,以便磁碟未格式化和未分區),然後使用以下方法重新添加備用:

mdadm --add /dev/md0 /dev/sda1

似乎您的 raid10 陣列配置為具有 2 個活動驅動器和一個備用驅動器。備件不見了。

這可能有幾個原因:

  1. 也許您從伺服器中刪除了備用磁碟
  2. 也許一個驅動器死了,而現有的熱備用在重建後現在變得活躍。
  3. 也許熱備用在它可以使用之前就死了。
  4. 也許一個驅動器(或電纜)在過去曾​​經“被”損壞過,並且已自動從陣列中移除。

您可以檢查您的伺服器是否有一個損壞的磁碟,您甚至在 lsblk 輸出中都看不到它。也可能是您的其他驅動器之一(sda1 或 sdd1)過去是您的陣列的一部分,但現在已損壞。(它不能是 sdj1 因為它太小了)。

從伺服器中移除所有損壞的驅動器。

為避免出現警告,請重新添加熱備用驅動器(可能是未使用的未損壞驅動器之一)或將您的陣列配置為不再有熱備用。請注意,在情況 4 中,同一驅動器再次發生故障的可能性很高。

順便說一句,要查看過去到底發生了什麼,您可以 grep 舊日誌文件以獲取相關消息。

引用自:https://unix.stackexchange.com/questions/307278