web-dev-qa-db-ja.com

2つのドライブの問題でRAID6を修復するmdadm

RAID6アレイで2つのディスク障害が発生しました。 2つの新しいディスクを追加し、次のことを行いました。

  • 2つのディスクでmdadm/dev/md1-removeを実行しました
  • 各ディスクの最初のパーティションにRAIDをセットアップしました(アライメント上の理由から)。交換用ディスクが同じように配置されているので、パーティションレイアウトをコピーするためにdd if =/dev/sdg(作業ディスク)of =/dev/sde(新しいディスク)bs = 512 count = 1を実行しました。 おそらくmdadmスーパーブロックデータをコピーしたので、これが正しいことかどうかはわかりません。
  • 次に、mdadm/dev/md1--addと2つのディスクを実行しました。

Mdadm --detail/dev/md1を実行すると、これが発生します。

Number   Major   Minor   RaidDevice State
   0       8        1        0      active sync   /dev/sda1
   1       8       17        1      active sync   /dev/sdb1
   6       8       65        2      spare rebuilding   /dev/sde1
   3       0        0        3      removed
   4       8       97        4      active sync   /dev/sdg1
   5       8      113        5      active sync   /dev/sdh1

   7       8       81        -      spare   /dev/sdf1

/ proc/mdstatは、一方のディスクを再構築として表示しますが、もう一方は表示しません。 1つのディスクが「取り外され」、適切に交換されていないと思うので、これは正しくないと思います。ドライブ文字は、最後の2つのディスクとまったく同じです。これがmdstatです。

root@precise:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdc1[0] sdd1[1]
  1953379136 blocks super 1.2 [2/2] [UU]

md1 : active raid6 sdf1[7](S) sde1[6] sdb1[1] sdh1[5] sda1[0] sdg1[4]
  11720521728 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/4] [UU__UU]
  [>....................]  recovery =  2.2% (65163484/2930130432) finish=361.0min   speed=132257K/sec

unused devices: <none>`

知りたいのですが(これが正しいと思われる場合)、3番目のエントリを修正して/ dev/sdf1をその場所に配置するにはどうすればよいですか?次に、適切な配列が再び作成されると想定します。私が奇妙だと思うのは、/ dev/sde1を追加することで同期の開始が許可されたようですが、/ dev/sdf1が番号3メジャー0(RaidDevice 3)の代わりになっていないことです。

すべての助けに感謝

乾杯

1
user3526827

まず、安心させてください。mdadmドライブがパーティションベース(例:sda1など)の場合、最初の「dd」は問題なく、mdadmメタデータのコピーは発生しませんでした(メタデータはinsideパーティション自体、MBRの内部ではありません)。

観察しているのは、通常のMDRAIDの動作です。 2つの別々のmdadm-aコマンドを使用して、新しいドライブを再度追加しましたね。この場合、mdadmはfirst最初のドライブを再同期し(2番目のドライブを「スペア」モードにします)、 then2番目のドライブを「スペアの再構築」ステータスに移行します。 1つのコマンドで2つのドライブを再度追加すると(例:mdadm/dev/mdX -a/dev/sdX1/dev/sdY1)、再構築は同時に実行されます。

私の(テスト中の)失敗したRAID6arraidを見てみましょう:

[root@kvm-black test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:51:03 2015
          State : clean, degraded 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost:md200  (local to Host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 105

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       4       0        0        4      removed
       5       0        0        5      removed

2つの別々のコマンド(mdadm/dev/md200 -a/dev/loop6; sleep 1; mdadm/dev/md200 -a/dev/loop7)を使用してドライブを再度追加すると、次の詳細なレポートが発生しました。

[root@kvm-black test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:56:40 2015
          State : clean, degraded, recovering 
 Active Devices : 4
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 9% complete

           Name : localhost:md200  (local to Host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 134

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       6       7        6        4      spare rebuilding   /dev/loop6
       5       0        0        5      removed

       7       7        7        -      spare   /dev/loop7

その後しばらくして:

[root@kvm-black test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:57:43 2015
          State : clean 
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost:md200  (local to Host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 168

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       6       7        6        4      active sync   /dev/loop6
       7       7        7        5      active sync   /dev/loop7

1つのコマンド(mdadm/dev/md200 -a/dev/loop6/dev/loop7)で2つのドライブを追加すると、次のレポートが表示されます。

[root@kvm-black test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:55:44 2015
          State : clean, degraded, recovering 
 Active Devices : 4
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 90% complete

           Name : localhost:md200  (local to Host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 122

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       7       7        7        4      spare rebuilding   /dev/loop7
       6       7        6        5      spare rebuilding   /dev/loop6

つまり、最終的には、mdadmに魔法をかけてもらい、すべてのドライブが「アクティブ」としてマークされているかどうかを確認します。

4
shodanshok