まず、いくつかの背景。私はThecus N4200Pro NASアレイに大量のデータを保存します。アレイ内の4つのドライブのうちの1つにスマートエラーが表示されるという報告がありました。
- それで問題のあるドライブ(#4)を交換して再構築を始めました。再構築中、約60%の時間、アレイ内の他のドライブの1つが離れます(この場合は#1)。
- いいですね。サイコロがありません。
- そのため、不良ドライブを交換して回復できることを確認するために、システムをシャットダウンし、#1と#2を交換し、#4を半再構成ドライブに交換しました。振り返ってみるとこれは迷惑なことだ。最初のディスクの後に閉じて、そこからすべてのソースディスクを複製する必要があります。
- デバイスが再起動し、もちろんRAIDの組み立てに失敗し、ディスク3と4のみのスペアとしてマークされていることだけが表示されます。
- この時点で、すべてを閉じてすべてのディスクを削除し、複製して番号付け順序を追跡しました。
- 4つのクローンディスクをすべてunbutu 16.04 LTSボックスに正しいドライブ順序で挿入して起動しました。
- 4つのディスクはすべて、ディスクに表示されているパーティションとともに表示されます。また、raid5配列とraid1配列も表示します。
raid1配列はNASのシステム情報であり、これとは何の関係もありません。 raid5配列は私が興味を持っている配列です。これにはすべてのデータが含まれていますが、その中にあるものにはアクセスできません。これで破棄を始める時間です。
cat /proc/mdstat
まず、配列を見るために走りました。
jake@ubuntu-box:~$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4]
[raid10]
md0 : active raid1 sdd1[3]
1959884 blocks super 1.0 [4/1] [___U]
md1 : inactive sdd2[3](S) sdc2[2](S) sdb2[1](S) sda2[0](S)
3899202560 blocks
unused devices: <none>
いいですね。 2つの配列が表示されます。したがって、我々は以下からmd1の詳細を得る。mdadm --detail /dev/md1
jake@ubuntu-box:~$ sudo mdadm --detail /dev/md1
/dev/md1:
Version : 0.90
Raid Level : raid0
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
State : inactive
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Events : 0.14344
Number Major Minor RaidDevice
- 8 50 - /dev/sdd2
- 8 34 - /dev/sdc2
- 8 18 - /dev/sdb2
- 8 2 - /dev/sda2[/CODE]
うーん..以上です raid を raid0 と表示しますが、そうではありません。では、個々のパーティションを確認してみましょう。mdadm --examine /dev/sdXX
ディスク1
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sda2/
dev/sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Creation Time : Thu Aug 18 14:30:36 2011
Raid Level : raid5
Used Dev Size : 974800000 (929.64 GiB 998.20 GB)
Array Size : 2924400000 (2788.93 GiB 2994.59 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Tue Mar 13 14:00:33 2018
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 1
Spare Devices : 1
Checksum : e52c5f8 - correct
Events : 20364
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 2 0 active sync /dev/sda2
0 0 8 2 0 active sync /dev/sda2
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
ディスク2
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sdb2/
dev/sdb2:
Magic : a92b4efc
Version : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Creation Time : Thu Aug 18 14:30:36 2011
Raid Level : raid5
Used Dev Size : 974800000 (929.64 GiB 998.20 GB)
Array Size : 2924400000 (2788.93 GiB 2994.59 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Tue Mar 13 14:56:30 2018
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Checksum : e597e42 - correct
Events : 238868
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 1 8 18 1 active sync /dev/sdb2
0 0 0 0 0 removed
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
ディスク3
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sdc2/
dev/sdc2:
Magic : a92b4efc
Version : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Creation Time : Thu Aug 18 14:30:36 2011
Raid Level : raid5
Used Dev Size : 974800000 (929.64 GiB 998.20 GB)
Array Size : 2924400000 (2788.93 GiB 2994.59 GB)
Raid Devices : 4
Total Devices : 3
Preferred Minor : 1
Update Time : Tue Mar 13 15:10:07 2018
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : e598570 - correct
Events : 239374
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 2 8 34 2 active sync /dev/sdc2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
そしてディスク4
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sdd2/
dev/sdd2:
Magic : a92b4efc
Version : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Creation Time : Thu Aug 18 14:30:36 2011
Raid Level : raid5
Used Dev Size : 974800000 (929.64 GiB 998.20 GB)
Array Size : 2924400000 (2788.93 GiB 2994.59 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Tue Mar 13 11:03:10 2018
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Checksum : e526d87 - correct
Events : 14344
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 3 8 50 3 active sync /dev/sdd2
0 0 8 2 0 active sync /dev/sda2
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 8 50 3 active sync /dev/sdd2
したがって、このセットの間には、マジックナンバーとUUIDの両方が適しています。 #4を再構築する代わりに、交換された#4をバックアップとして再構築しようとしたため、イベントは完全に混乱しました。
ディスク4には、私が元々取り出したドライブであり、何も上書きしなかったため、正しいRAID情報と順序があります。ディスク1~3は、アイテム交換による様々な混乱した状況を示す。
それでは、2つの質問 -
なぜraid0と表示されますか?
mdadm --detail
mdadm --examine /dev/sdd2
誤って作成したクラスタではなく、必要なものすべてを表示できるように、最初の3つのディスクに関する情報を更新できますか?私考えるこれらのパーティションまたはディスクの情報を更新する方法が見つかった場合、RAIDは正しく再構築され、自分で再構築され、データにアクセスできるようになります。
私はこの問題を直接解決するために最善を尽くしてたくさん検索したので、どんなアイデアでも役に立ちます。
答え1
あなたは言う:
再構築中にアレイ内の他のドライブの1つが低下する時間の約60%
これはRAID-5の既知のリスクであり、今日RAID-5を使用するのに安全ではないと考えられる理由の1つです。 RAID-5アレイの2つのドライブが同時に失敗した場合、データは回復できません。残念なことに、1つのドライブに障害が発生したアレイを再構築すると、他のドライブに十分なストレスがかかるため、再構築中に他のドライブに障害が発生する可能性が大幅に高まる可能性があります。再構築時間が長くなるほど(つまり、ドライブが大きくなり、他の実際の作業を実行するのに忙しいほど)、これが起こる可能性は高くなります。
これは、RAIDアレイが長年使用されており、ドライブが予想寿命に近づいている場合に特に当てはまります。または、アレイ内のすべてのドライブが同じ生産で実行され、同様の欠陥(「間違ったバッチ」の場合)または同様の期待寿命がある場合。
4ディスクRAID-5アレイ(つまり、3つのストライプデータ用ディスク、1つのパリティ用ディスク)のドライブ全体にデータがストライプ化されているため、2つのドライブに障害が発生した場合各ファイルの少なくとも3分の1が失われます。。これは、1つ以上のドライブが故障したときにRAID-0ストライピングで発生するのと似ています。つまり、故障したドライブにあったストライプ部分が消えます。
RAID-6は、すべてのデータが失われる前に2つのドライブが故障することを可能にし、これをわずかに改善しますが、3つのドライブが同時に故障すると同じ問題が発生します。
RAID-1は、あるドライブに障害が発生した場合に別のドライブ(または複数のドライブにミラーリングされている場合は別のドライブ)からデータを取得できるため、より安全です。ミラーセット内のすべてのドライブに障害が発生すると、すべてが失われます。
RAID-10はRAID-1に似ています。ミラーセット内のすべてのドライブが同時にシャットダウンすると、脆弱なままになります。 RAID-10は、2つのドライブ障害にも生き残ることができますが、ただ失敗したドライブが同じミラーセットにない場合。たとえば、ドライブa、b、c、dと2つのミラーリングペア(a + b、c + d)があり、他のペアの2つのドライブの組み合わせ(たとえば、a + c、a + d、b + c、またはb +d)が失敗するとデータが失われることはありませんが、a + bまたはc + dが失敗するとデータは失われます。
RAID-1 および RAID-10 の場合、各ミラーセットにさらに多くのドライブを含めることでリスクを軽減できます。たとえば、6つのドライブRAID-10は、a + b、c + d、e + f(ミラーリングされたペア3つ、合計容量=ドライブ数/ 2)、またはa + b + cおよびd + e +で構成されます。できます。 f(ミラートリプレット2個、総容量=ドライブ数/3)
したがって、すべてのRAIDレベルには致命的なデータ損失をもたらす可能性があるエラーモードがあります。
これらすべてで覚えておくべき重要な点は次のとおりです。
RAIDは定期バックアップを置き換えません。
答え2
だからいくつか試してみました。まず、今朝コンピュータを再起動して攻撃を中断しました。
jake@ubuntu-box:~$ sudo mdadm -S /dev/md1
mdadm: stopped /dev/md1
次に、配列のuuidを使用してアセンブルしようとしています。
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 --
uuid=e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
mdadm: /dev/md1 assembled from 1 drive - not enough to start the array.
まあ、それはまさに私が期待していたものです。それでは強制的に試してみましょう:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 --force --
uuid=e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
mdadm: forcing event count in /dev/sdb2(1) from 238868 upto 239374
mdadm: forcing event count in /dev/sda2(0) from 20364 upto 239374
mdadm: /dev/md1 assembled from 3 drives - not enough to start the array.
うーん..しなければならないもう職場にいます。 RAIDの個々のパーティションを呼び出して手動で再組み立てしてみましょう。
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2
/dev/sdc2 /dev/sdd2 --force
mdadm: /dev/md1 has been started with 3 drives (out of 4).
ビンゴ! 4つのドライブのうち3つから始まるようです。これで私のデータにアクセスできるという意味です!笑いながら詳細を確認しましょう。
jake@ubuntu-box:~$ sudo mdadm --detail /dev/md1/dev/md1:
Version : 0.90
Creation Time : Thu Aug 18 14:30:36 2011
Raid Level : raid5
Array Size : 2924400000 (2788.93 GiB 2994.59 GB)
Used Dev Size : 974800000 (929.64 GiB 998.20 GB)
Raid Devices : 4
Total Devices : 3
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Tue Mar 13 14:00:33 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Events : 0.239374
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
2 8 34 2 active sync /dev/sdc2
6 0 0 6 removed
私たちが話している間にデータをコピーしています。したがって、データを回復できないわけではありません。襲撃を強制的に再編成する正しい命令を知ることが重要です。