突襲陣列“乾淨,退化”?
今天我注意到有一堆消息抱怨 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 個活動驅動器和一個備用驅動器。備件不見了。
這可能有幾個原因:
- 也許您從伺服器中刪除了備用磁碟
- 也許一個驅動器死了,而現有的熱備用在重建後現在變得活躍。
- 也許熱備用在它可以使用之前就死了。
- 也許一個驅動器(或電纜)在過去曾經“被”損壞過,並且已自動從陣列中移除。
您可以檢查您的伺服器是否有一個損壞的磁碟,您甚至在 lsblk 輸出中都看不到它。也可能是您的其他驅動器之一(sda1 或 sdd1)過去是您的陣列的一部分,但現在已損壞。(它不能是 sdj1 因為它太小了)。
從伺服器中移除所有損壞的驅動器。
為避免出現警告,請重新添加熱備用驅動器(可能是未使用的未損壞驅動器之一)或將您的陣列配置為不再有熱備用。請注意,在情況 4 中,同一驅動器再次發生故障的可能性很高。
順便說一句,要查看過去到底發生了什麼,您可以 grep 舊日誌文件以獲取相關消息。