私の友人は9つのディスクを持つmdadm-raid5を持っていますが、もう組み立てられません。
システムログを調べた後、ディスクsdiがアレイから追い出されたことがわかりました。
Jul 6 08:43:25 nasty kernel: [ 12.952194] md: bind<sdc>
Jul 6 08:43:25 nasty kernel: [ 12.952577] md: bind<sdd>
Jul 6 08:43:25 nasty kernel: [ 12.952683] md: bind<sde>
Jul 6 08:43:25 nasty kernel: [ 12.952784] md: bind<sdf>
Jul 6 08:43:25 nasty kernel: [ 12.952885] md: bind<sdg>
Jul 6 08:43:25 nasty kernel: [ 12.952981] md: bind<sdh>
Jul 6 08:43:25 nasty kernel: [ 12.953078] md: bind<sdi>
Jul 6 08:43:25 nasty kernel: [ 12.953169] md: bind<sdj>
Jul 6 08:43:25 nasty kernel: [ 12.953288] md: bind<sda>
Jul 6 08:43:25 nasty kernel: [ 12.953308] md: kicking non-fresh sdi from array!
Jul 6 08:43:25 nasty kernel: [ 12.953314] md: unbind<sdi>
Jul 6 08:43:25 nasty kernel: [ 12.960603] md: export_rdev(sdi)
Jul 6 08:43:25 nasty kernel: [ 12.969675] raid5: device sda operational as raid disk 0
Jul 6 08:43:25 nasty kernel: [ 12.969679] raid5: device sdj operational as raid disk 8
Jul 6 08:43:25 nasty kernel: [ 12.969682] raid5: device sdh operational as raid disk 6
Jul 6 08:43:25 nasty kernel: [ 12.969684] raid5: device sdg operational as raid disk 5
Jul 6 08:43:25 nasty kernel: [ 12.969687] raid5: device sdf operational as raid disk 4
Jul 6 08:43:25 nasty kernel: [ 12.969689] raid5: device sde operational as raid disk 3
Jul 6 08:43:25 nasty kernel: [ 12.969692] raid5: device sdd operational as raid disk 2
Jul 6 08:43:25 nasty kernel: [ 12.969694] raid5: device sdc operational as raid disk 1
Jul 6 08:43:25 nasty kernel: [ 12.970536] raid5: allocated 9542kB for md127
Jul 6 08:43:25 nasty kernel: [ 12.973975] 0: w=1 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973980] 8: w=2 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973983] 6: w=3 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973986] 5: w=4 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973989] 4: w=5 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973992] 3: w=6 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973996] 2: w=7 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.973999] 1: w=8 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 6 08:43:25 nasty kernel: [ 12.974002] raid5: raid level 5 set md127 active with 8 out of 9 devices, algorithm 2
残念ながら、これは認識されず、他のドライブがキックされます(sde)。
Jul 14 08:02:45 nasty kernel: [ 12.918556] md: bind<sdc>
Jul 14 08:02:45 nasty kernel: [ 12.919043] md: bind<sdd>
Jul 14 08:02:45 nasty kernel: [ 12.919158] md: bind<sde>
Jul 14 08:02:45 nasty kernel: [ 12.919260] md: bind<sdf>
Jul 14 08:02:45 nasty kernel: [ 12.919361] md: bind<sdg>
Jul 14 08:02:45 nasty kernel: [ 12.919461] md: bind<sdh>
Jul 14 08:02:45 nasty kernel: [ 12.919556] md: bind<sdi>
Jul 14 08:02:45 nasty kernel: [ 12.919641] md: bind<sdj>
Jul 14 08:02:45 nasty kernel: [ 12.919756] md: bind<sda>
Jul 14 08:02:45 nasty kernel: [ 12.919775] md: kicking non-fresh sdi from array!
Jul 14 08:02:45 nasty kernel: [ 12.919781] md: unbind<sdi>
Jul 14 08:02:45 nasty kernel: [ 12.928177] md: export_rdev(sdi)
Jul 14 08:02:45 nasty kernel: [ 12.928187] md: kicking non-fresh sde from array!
Jul 14 08:02:45 nasty kernel: [ 12.928198] md: unbind<sde>
Jul 14 08:02:45 nasty kernel: [ 12.936064] md: export_rdev(sde)
Jul 14 08:02:45 nasty kernel: [ 12.943900] raid5: device sda operational as raid disk 0
Jul 14 08:02:45 nasty kernel: [ 12.943904] raid5: device sdj operational as raid disk 8
Jul 14 08:02:45 nasty kernel: [ 12.943907] raid5: device sdh operational as raid disk 6
Jul 14 08:02:45 nasty kernel: [ 12.943909] raid5: device sdg operational as raid disk 5
Jul 14 08:02:45 nasty kernel: [ 12.943911] raid5: device sdf operational as raid disk 4
Jul 14 08:02:45 nasty kernel: [ 12.943914] raid5: device sdd operational as raid disk 2
Jul 14 08:02:45 nasty kernel: [ 12.943916] raid5: device sdc operational as raid disk 1
Jul 14 08:02:45 nasty kernel: [ 12.944776] raid5: allocated 9542kB for md127
Jul 14 08:02:45 nasty kernel: [ 12.944861] 0: w=1 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944864] 8: w=2 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944867] 6: w=3 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944871] 5: w=4 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944874] 4: w=5 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944877] 2: w=6 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944879] 1: w=7 pa=0 pr=9 m=1 a=2 r=9 op1=0 op2=0
Jul 14 08:02:45 nasty kernel: [ 12.944882] raid5: not enough operational devices for md127 (2/9 failed)
これでアレイが起動しなくなりました。ただし、各ディスクにはRAIDメタデータが含まれているようです。
/dev/sda:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 8600bda9:18845be8:02187ecc:1bfad83a
Update Time : Mon Jul 14 00:45:35 2014
Checksum : e38d46e8 - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAA.AAA.A ('A' == active, '.' == missing)
/dev/sdc:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : fe612c05:f7a45b0a:e28feafe:891b2bda
Update Time : Mon Jul 14 00:45:35 2014
Checksum : 32bb628e - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AAA.AAA.A ('A' == active, '.' == missing)
/dev/sdd:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 1d14616c:d30cadc7:6d042bb3:0d7f6631
Update Time : Mon Jul 14 00:45:35 2014
Checksum : 62bd5499 - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAA.AAA.A ('A' == active, '.' == missing)
/dev/sde:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : active
Device UUID : a2babca3:1283654a:ef8075b5:aaf5d209
Update Time : Mon Jul 14 00:45:07 2014
Checksum : f78d6456 - correct
Events : 123123
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAAAAA.A ('A' == active, '.' == missing)
/dev/sdf:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : e67d566d:92aaafb4:24f5f16e:5ceb0db7
Update Time : Mon Jul 14 00:45:35 2014
Checksum : 9223b929 - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 4
Array State : AAA.AAA.A ('A' == active, '.' == missing)
/dev/sdg:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 2cee1d71:16c27acc:43e80d02:1da74eeb
Update Time : Mon Jul 14 00:45:35 2014
Checksum : 7512efd4 - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 5
Array State : AAA.AAA.A ('A' == active, '.' == missing)
/dev/sdh:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : c239f0ad:336cdb88:62c5ff46:c36ea5f8
Update Time : Mon Jul 14 00:45:35 2014
Checksum : c08e8a4d - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 6
Array State : AAA.AAA.A ('A' == active, '.' == missing)
/dev/sdi:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : active
Device UUID : d06c58f8:370a0535:b7e51073:f121f58c
Update Time : Mon Jul 14 00:45:07 2014
Checksum : 77844dcc - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : AAAAAAA.A ('A' == active, '.' == missing)
/dev/sdj:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : f2de262f:49d17fea:b9a475c1:b0cad0b7
Update Time : Mon Jul 14 00:45:35 2014
Checksum : dd0acfd9 - correct
Events : 123132
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 8
Array State : AAA.AAA.A ('A' == active, '.' == missing)
ただし、見てわかるように、2つのドライブ(sde、sdi)がアクティブであるが(raidは停止)、sdiはスペアドライブです。 sdeは他のほとんどのドライブよりも少しイベント数が少なく(123132ではなく123123)、sdiのイベント数は0です。だから私はsdeがほぼ最新バージョンだと思います。しかし、sdiはそうではありません。
今、私たちは、深刻な停電がこのような「ブロック」メッセージを引き起こす可能性があることをオンラインで見ています。実際、私の友人は1〜2回深刻な停電を引き起こしました。だから私たちはオンラインで見つけた指示に従ってsdeをアレイに追加しようとしました。
$ mdadm /dev/md127 --add /dev/sde
mdadm: add new device failed for /dev/sde as 9: Invalid argument
しかし、失敗し、mdadm --examine /dev/sde
sdeのイベントカウントも0です(+はsdiのように待機状態になりました)。
/dev/sde:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b8a04dbb:0b5dffda:601eb40d:d2dc37c9
Name : nasty:stuff (local to host nasty)
Creation Time : Sun Mar 16 02:37:47 2014
Raid Level : raid5
Raid Devices : 9
Avail Dev Size : 7814035120 (3726.02 GiB 4000.79 GB)
Array Size : 62512275456 (29808.18 GiB 32006.29 GB)
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 689e0030:142122ae:7ab37935:c80ab400
Update Time : Mon Jul 14 00:45:35 2014
Checksum : 5e6c4cf7 - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : AAA.AAA.A ('A' == active, '.' == missing)
私たちは、2つのドライブエラーが通常raid5の死を意味することを知っています。しかし、データを保存できるように少なくともsdeをレイドに追加する方法はありますか?
答え1
さて、今襲撃に入ることができるようです。少なくとも最初に確認したファイルは大丈夫です。これが私たちがしたことです:
これ襲撃回復記事kernel.org wikiでは、問題に対する2つの可能な解決策を提案しています。
使用
--assemble --force
(derobertも言及します)
記事は次のように言います。[...] イベント数が 50 個未満に差がある場合、ドライブの情報はまだ正常である可能性があります。 [...] イベントの数がほとんど一致しているが正確でない場合は、「mdadm --assemble --force /dev/mdX」を使用して、mdadm がアレイをアセンブルするように強制します [...]。ドライブのイベント数が[...]から大幅に超えている場合は、ドライブ[...]をアセンブリに含めないでください。
この例では、ドライブ
sde
のイベント差分は9です。したがって、--force
成功する可能性が高いです。ただし、--add
コマンドを実行した後、イベント数が0に低下し、ドライブがスペアとしてマークされました。だから私たちはそれを使用するのをやめることをお勧めします
--force
。配列の再作成
このソリューションは、誤ってデータが失われる可能性があるため、危険であると明示的に示されます。しかし、これが私たちの唯一の選択肢のようです。アイデアは、古いraidと同じ構成で既存のraidデバイスに新しいraidを作成し(つまり、デバイスのスーパーブロックを上書きする)、mdadmにそのraidがすでに存在し、クリーンであると仮定する必要があることを明示的に通知することです。
イベント数の差が9に過ぎなかったため、唯一の問題はスーパーブロックを失ったということでした。したがって、
sde
新しいスーパーブロックを作成すると、データにアクセスするための良い機会がありました。 :-)
私たちのソリューション
注:この回避策は当社の問題に固有のものであり、お客様の設定には適用されない場合があります。タスクの完了方法を理解するには、次のメモを作成する必要があります。しかし、状況に最も適したものが何であるかを調べる必要があります。
サポート
私たちはスーパーブロックを失いました。そのため、今回はsd[acdefghij]
ddを使用してRAIDを処理する前に、各RAIDデバイス()の最初と最後のGBを保存しました。各攻撃台デバイスに対してこれを行います。
# save the first gigabyte of sda
dd if=/dev/sda of=bak_sda_start bs=4096 count=262144
# determine the size of the device
fdisk -l /dev/sda
# In this case the size was 4000787030016 byte.
# To get the last gigabyte we need to skip everything except the last gigabyte.
# So we need to skip: 4000787030016 byte - 1073741824 byte = 3999713288000 byte
# Since we read blocks auf 4096 byte we need to skip 3999713288000/4096=976492502 blocks.
dd if=/dev/sda of=bak_sda_end bs=4096 skip=976492502
情報を収集する
レイドを再生成するときは、前のレイドと同じ構成を使用することが重要です。これは、異なる mdadm バージョンを使用して別のコンピュータでアレイを再作成する場合に特に重要です。この場合、mdadmのデフォルト値が異なる場合があり、既存のraidに合わないスーパーブロックが生成されることがあります(wikiの記事を参照)。
私たちの場合は、同じシステム(したがって同じmdadmバージョン)を使用してアレイを再作成します。ただし、アレイは最初にサードパーティのツールによって作成されます。したがって、ここではデフォルト値に依存したくなく、既存の攻撃台に関するいくつかの情報を収集する必要があります。
出力では、mdadm --examine /dev/sd[acdefghij]
raidに関する次の情報を取得します(注:sdbはオペレーティングシステムを含むSSDであり、raidの一部ではありません)。
Raid Level : raid5
Raid Devices : 9
Used Dev Size : 7814034432 (3726.02 GiB 4000.79 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Used Dev Size
512バイトブロック単位で価格が設定されます。以下を確認できます。
7814034432*512/1000000000 ~= 4000.79
ただし、mdadmにはキビバイト単位のサイズが必要です。7814034432*512/1024 = 3907017216
Device Role
新しいレードでは、各デバイスが以前と同じ役割を果たす必要があることが重要です。私たちの例では:
device role
------ ----
sda 0
sdc 1
sdd 2
sde 3
sdf 4
sdg 5
sdh 6
sdi spare
sdj 8
注:再起動後にドライブ文字(および順序)が変わる可能性があります!
次のステップにはレイアウトとブロックサイズも必要です。
攻撃隊を再現する
これで、最後のステップの情報を使用して配列を再作成できます。
mdadm --create --assume-clean --level=5 --raid-devices=9 --size=3907017216 \
--chunk=512 --layout=left-symmetric /dev/md127 /dev/sda /dev/sdc /dev/sdd \
/dev/sde /dev/sdf /dev/sdg /dev/sdh missing /dev/sdj
装置を正しい順序で通過することは非常に重要です!また、イベント数が少なすぎて追加
しませんでした。sdi
だから7番目のレイドスロットをmissing
。したがって、raid5には9つのデバイスのうち8つが含まれており、劣化モードで組み立てられます。そしてスペアが足りないため、自動的に再構築が始まりません。
--examine
次に、新しいスーパーブロックが古いスーパーブロックに合うことを確認するために使用します。実際に :-) ファイルシステムをマウントしてデータを読み取ることができました。次のステップは、データをバックアップして再度追加してsdi
再構築を開始することです。
答え2
mdadm --force
この問題は解決する必要があります。同期しているふりをしながら少しデータが破損する可能性があります。次のように使用してください。
mdadm --stop /dev/md127
(現在実行中のプログラムを最初に停止する必要があります)mdadm -v --assemble --run --force /dev/md127 /dev/sd[a-hl-z]
。鍵はここから出ることです。/dev/sdi
なぜなら知るディスクが最新の状態です。注:すべてのディスクがアレイに属していない場合は、シェルワイルドカードを使用するよりも実際にここにディスクを一覧表示する方が安全です。- 複数のメッセージを表示する必要があり、そのうちの1つは有効期限が切れたディスクが含まれていることを示します
/dev/sde
。/proc/mdstat
実行中ですが、パフォーマンスが低下したRAID5があることを確認してください。 - ディスクが落ちた理由をご覧ください。理由によって、すぐにデータをコピーする必要がある場合(ディスクの寿命が終わっている場合)、
/dev/sdi
データを再追加して再構築することもできます。
mdadmはアレイを監視し、ディスク損失などの不都合な状況が発生したときに警告を送信するように設定できます。正しく設定する必要があります。
答え3
ドライブがスペアドライブになり、そのメタデータが失われたため、唯一のオプションはRAIDを再作成することです。これは非常に危険であり、一度の誤りでデータが消去される可能性があります。
RAIDを再作成するときに考慮すべきいくつかの点があります。--assume-clean
同期しないように使用する必要があります。 1つのドライブ(可能な限り最も悪いドライブ)を指定して予約する必要がありますmissing
。最後に、ドライブ順序、メタデータバージョン、RAIDレベル、ブロックサイズ、レイアウト、データオフセットなど、すべての変数を正しく設定する必要があります。
デフォルト値は時間の経過とともに変化する傾向があるため、ここではデフォルト値を信頼できませんmdadm
。リカバリ環境がmdadm
RAIDが元々作成した環境と同じバージョンを使用せず、まったく同じパラメータを使用しない場合。デフォルト値に依存すると問題が発生する可能性があります。
少なくともmdadm
実験をキャンセルできるように、各ドライブの最初と最後のギガバイトの程度をバックアップする必要があります。理想的には、コピー全体でこれらすべてを実行するか、書き込み中にコピーモードでdm-snapshotsまたはnbd-serverを使用して読み取り専用ビューを取得します。これを見てオーバーレイの操作方法。
投稿した出力を正しく解釈すると、--examine
ドライブ文字が変更されていないと仮定し、これが再作成する正しいコマンドである可能性がありますが、何も保証できません。
mdadm --create /dev/md42 --assume-clean --metadata=1.2 --data-offset=1M \
--level=5 --chunk=512 --layout=ls --raid-devices=9 \
/dev/sda /dev/sdc /dev/sdd /dev/sde /dev/sdf \
/dev/sdg /dev/sdh missing /dev/sdj
また、見ることができますhttps://raid.wiki.kernel.org/index.php/RAID_Recoveryしかし助言に注意して受け入れなさい。エンターテイメントは恐ろしいことで、間違えやすいです。
RAIDを作成したら、読み取り専用モードで表示する必要があります。
mdadm --readonly /dev/md42
file -s /dev/md42
fsck -n /dev/md42
mount -o ro /dev/md42 /mnt/md42
これまで動作している場合は、大きなファイル(ブロックサイズ*ドライブ)を見つけて、すべてが問題ないことを確認する必要があります。間違った2つのドライブを交換すると、ファイルシステムが正しくマウントされる可能性がありますが、ファイルが破損する可能性があります。
mdadm.conf
新しいuuidなどを含む新しいレイドになるので、背中を更新する必要があります。
答え4
私は2つのドライブがアレイから除外されたRAID 5設定(5つのドライブ、それぞれ1 TB)でこれを試しました。私は危険にさらされ、次のコマンドを使用して2つのブートドライブを追加しました。
mdadm --create --assume-clean --level=5 --raid-devices=5 --chunk=512 --layout=left-symmetric /dev/md127 /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdb
ここで、sddとsdfはブートドライブです(一部の予備介入のおかげで)。