RAID-10アレイ内でミラーリングされているドライブを見つける必要がある


8

openSUSE 12.2でホームメディアサーバーを実行しています。RAID-10構成で8つの2TBドライブを使用しています。私は故意に2種類のドライブを購入しました。4つはSeagate Barracuda Greenで、もう4つはWestern Digital Redです。私の目標は、アレイ内のミラーリングされた各ペアが異なるドライブ(つまり、1つのSeagateドライブと1つのWDドライブ)で構成されるようにRAIDを構成することです。残念ながら、YaST2 Partitionerはアレイの構造でこのレベルの選択を提供しなかったため、デフォルトのRAID10構造がどのように見えるかを調べようとしています。

私は次のことを知っています:

  • sdc、sdd、sde、sdfはすべてWDドライブです
  • sdg、sdh、sdi、sdjはすべてSeagateドライブ

RAIDを作成するときに、デフォルトの「n2」レイアウトを選択しました。これらの2つのソースからの情報に基づく私の推測は、隣接するドライブがミラーリングされている(つまり、sdc == sdd、sde == sdfなど)と思いますが、確実に知りたいです。

以下は、「mdadm --detail / dev / md0」の出力です。

/dev/md0:
        Version : 1.0
  Creation Time : Sat Mar 16 12:55:11 2013
     Raid Level : raid10
     Array Size : 7814045696 (7452.05 GiB 8001.58 GB)
  Used Dev Size : 1953511424 (1863.01 GiB 2000.40 GB)
   Raid Devices : 8
  Total Devices : 8
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sat Mar 16 13:09:37 2013
          State : active, resyncing
 Active Devices : 8
Working Devices : 8
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 2048K

  Resync Status : 1% complete

           Name : aldaris:0  (local to host aldaris)
           UUID : c6cc3943:97394500:b77d44cd:f02ed876
         Events : 149

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       2       8       65        2      active sync   /dev/sde1
       3       8       81        3      active sync   /dev/sdf1
       4       8       97        4      active sync   /dev/sdg1
       5       8      113        5      active sync   /dev/sdh1
       6       8      129        6      active sync   /dev/sdi1
       7       8      145        7      active sync   /dev/sdj1

そしてここに/ proc / mdstatの内容があります:

Personalities : [raid10] md0 : active raid10 sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0]
      7814045696 blocks super 1.0 2048K chunks 2 near-copies [8/8] [UUUUUUUU]
      [>....................]  resync =  4.8% (375163456/7814045696) finish=1206.5min speed=102751K/sec
      bitmap: 57/59 pages [228KB], 65536KB chunk

unused devices: <none>

だから私の質問は:

  1. どのドライブがお互いのミラーであるかをどのように確認しますか?
  2. これを変更する方法はありますか、または(ドライブ文字を交換するため)ワイヤーを交換してからRAIDを再構築する必要がありますか?

前もって感謝します。


接線メモ、これを行う私の理由を知りたい人のために:同じモデルとバッチのドライブは、同様の使用負荷、稼働時間、温度で動作し、系統的な変動はほとんどなく、ドライブ間の障害までの時間の違いが主に駆動されます製造プロセスのランダムな変動による。これにより、複数のドライブが同時に停止するリスクが高まります。異なるバッチからだけでなく、完全に異なるメーカーからドライブを購入することで、アレイに体系的なバリエーションを導入し、どのドライブが同じようなときに故障するかに影響を与えています。


1
ホームメディアサーバーは、ServerFaultのトピックから外れています。そうは言っても、あなたは明らかにこれにいくらかの努力を払っており、私はunix.SEへの移行のためにそれにフラグを立てます。
Andrew B

@AndrewB、なぜですか?
poige 2013年

これは非常に興味深い質問であり、その背後にある理由は非常によく理解されています。RAIDを(再)作成するときにディスクを指定する方がはるかに簡単なので、配線を変更する必要はありません。
poige 2013年

@poigeこれは、家庭環境のあらゆるものに該当します。私はこれにもかかわらず十分に調査された質問を検討したことを明確にしようとしました。
Andrew B

私が乱暴に推測するなら、あなたはそのRaidDeviceコラムを見ることができると思います。(0,1)、(2,3)、(4,5)、(6,7)のように単純な場合もあります。そのため、WD / Sea / WD / Sea / etcのようにRaidDeviceを整列させる必要があると思いますが、それについては100%確実ではありません。
Zoredache 2013年

回答:


5

の最近のバージョンでmdadmは、アレイの詳細にこの権利が示されています。からの例mdadm v3.3 - 3rd September 2013

 $ mdadm --detail /dev/md1

/dev/md1:
        Version : 1.1
  Creation Time : Tue Aug 23 11:45:41 2016
     Raid Level : raid10
     Array Size : 3864803328 (3685.76 GiB 3957.56 GB)
  Used Dev Size : 1932401664 (1842.88 GiB 1978.78 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Fri Aug 26 09:39:28 2016
          State : active
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : px4-300r-THXOAP:1  (local to host px4-300r-THXOAP)
           UUID : 5ee06437:83dfdb64:808feaa2:5d57b1e6
         Events : 620

    Number   Major   Minor   RaidDevice State
       4       8       50        0      active sync set-A   /dev/sdd2
       1       8       34        1      active sync set-B   /dev/sdc2
       2       8       18        2      active sync set-A   /dev/sdb2
       3       8        2        3      active sync set-B   /dev/sda2

set-Aまたはの表記に注意してくださいset-B。上記の場合、sddおよびsdbデータの損失なしに一緒に失敗する可能性があります。ただし、アレイの再構築中はこのデータを利用できない可能性があります。


2

私は同じ問題を抱えていて、しばらくグーグルした後、信頼できる答えが見つかりませんでした。考えてみたところ、ミラーには同じデータがあり、その一部を比較できることがわかりました。

注:同じチェックサムで2つ以上のドライブがある場合は、空のディスクスペースを比較している可能性があるため、別のオフセットを選択してください(スキップオプション)。

このいくつかのコマンドで、あなたはそれを理解することができます:

for disk in sda sdb sdc sdd
do
  echo -n "$disk = ";
  dd if=/dev/$disk skip=1M bs=1M count=1 2>/dev/null | md5sum;
done

これは次のようなものを出力します:

sda = 7c4ef0f3e0143b35e044d5d65908a3a2  -
sdb = 7c4ef0f3e0143b35e044d5d65908a3a2  -
sdc = e02f7d61ad3791bd691da5b7516928a5  -
sdd = e02f7d61ad3791bd691da5b7516928a5  -

これで、sda / sdbが1つのミラーであり、sdc / sddが別のミラーであることがわかりました。データの損失を回避するために、それぞれ1つずつ存在する必要があります。

"dd"コマンドは、ディスクスタートから1メガバイトオフセット(スキップ= 1M)で1メガバイト(bs = 1M)を1回(count = 1)読み取っています。ディスクの先頭にはさまざまな情報が含まれているため、= 0をスキップしないでください。データは通常1MBの後に始まります。


dd if=/dev/$disk skip=1M bs=1M count=1うまくいきませんでした。dd (coreutils) 8.23Debian 8(Jessie)skipのユニットではサポートされていません。代わりにskip=11がに相対的な場所を使用しましたbs。おそらくタイプミスですか?
DanielBöhmer2016

参考:MD5サムが表示されている場合d41d8cd98f00b204e9800998ecf8427edd呼び出しは失敗します。それは空の文字列のハッシュです:-)
DanielBöhmer

0

あなたは本当のRAID 10アレイ(1 + 0ストライプミラーリング)について話していると思います

sdc/sdg = md0 raid1 2TB |
sdd/sdh = md1 raid1 2TB |_  md4 raid0 8TB
sde/sdi = md2 raid1 2TB |
sdf/sdj = md3 raid1 2TB |

1. 4つのraid1アレイを作成します。

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/{sdc,sdg}
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/{sdd,sdh}
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/{sde,sdi}
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/{sdf,sdj}

現在、4つのRAID 1アレイがあり、それぞれに2TBのスペースがあります。

2.組み立てましょう!

mdadm --create /dev/md4 --run --level=0 --raid-devices=4 /dev/md{0,1,2,3}

--runオプションは、一部のコンポーネントが別のアレイでアクティブであるため便利です

3. mdadm.confファイルを調整します

新しい構成(/ dev / md4)に関する変更を反映するようにこのファイルを調整する必要がある場合があります(構成によって異なります)。

4.お楽しみください。 新しいDIY raid10アレイ!


いいえ、彼はLinuxのmdadm raid10パーソナリティについて話しています。私はあなたの答えは当てはまらないと信じています(ただし、公平にするために、OPに彼がする必要があることを達成するための代替手段を与えています)
GnP

パフォーマンスとサポートされる機能も異なります。
Joachim Wagner

0

次の例のように、大まかな方法​​でデータを比較することで、ミラーであるかどうかを常に確認できます。

# dd if=/dev/sda1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
7c01afa434fc74aeddc8ec0546e4c332  -
# dd if=/dev/sdb1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
1f0f8166857710d555cb35db4a23891a  -
# dd if=/dev/sdg1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
7c01afa434fc74aeddc8ec0546e4c332  -
# dd if=/dev/sdf1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
1f0f8166857710d555cb35db4a23891a  -

(一致が得られない場合は、RAIDスーパーブロックをスキップしないため、skip =を増やす必要があるかもしれません。また、3つ以上のディスクで同じmd5sumを取得する場合は、count =を増やす必要があるかもしれません。おそらくゼロを読み取ってm5summingしている-最初にraidにデータを置く必要があることを防ぐために、そうでなければゼロでいっぱいになる可能性がある)

ワイヤの交換については、その必要はありません。mdadmは、コマンドラインで指定されたデバイスでmdadm --createのRAIDを作成する必要があるため、コマンドラインでドライブを異なる順序で指定するだけです。


0

各コンポーネントデバイス(つまり、/ dev / sda1、/ dev / sdb1など)で「mdadm --examine device」を実行します。そこにある情報は、どのコンポーネントがお互いのミラーであるかを判断するのに役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.