OpenSUSE12.2でホームメディアサーバーを実行しています。 RAID-10構成で8台の2TBドライブを使用しています。私は意図的に2つの異なるタイプのドライブを購入しました:4つのSeagate BarracudaGreenと4つのWesternDigitalRedです。私の目標は、アレイ内のミラーリングされた各ペアが異なるドライブ(つまり、1つのSeagateドライブと1つのWDドライブ)で構成されるようにRAIDを構成することです。残念ながら、YaST2パーティショナは、アレイの構造でこのレベルの選択を提供しなかったため、デフォルトのRAID10構造がどのように見えるかを調べようとしています。
私は次のことを知っています:
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>
だから私の質問は:
前もって感謝します。
接線の注意、これを行う理由を知りたい人は次のとおりです。同じモデルとバッチのドライブで、同様の使用負荷、稼働時間、温度で動作する場合、系統的な変動はほとんどなく、ドライブ間の故障までの時間の違いは主に駆動されます製造工程のランダムな変動による。これにより、複数のドライブが同時に死ぬリスクが高まります。異なるバッチからだけでなく、まったく異なるメーカーからドライブを購入することで、アレイに体系的なバリエーションを導入し、同じ時間にどのドライブが故障するかに影響を与えています。
最近のバージョンの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つ以上のドライブがある場合は、おそらく空のディスクスペースを比較しているので、別のオフセットを選択してください(スキップオプション)。
このいくつかのコマンドで、あなたはそれを理解することができます:
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」コマンドは、ディスクの開始位置(skip = 1M)から1メガバイトのオフセットで1メガバイト(bs = 1M)を1回(count = 1)読み取っています。ディスクの先頭にはさまざまな情報が含まれているため、0をスキップしないでください。データは通常1MB以降に始まります。
各コンポーネントデバイス(つまり、/ dev/sda1、/ dev/sdb1など)で「mdadm--examinedevice」を実行します。そこにある情報は、どのコンポーネントがお互いのミラーであるかを判断するのに役立つはずです。
あなたは本当のRAID10アレイ(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}
現時点では、それぞれに2TBのスペースを持つ4つのRAID1アレイがあります。
2。組み立てましょう!
mdadm --create /dev/md4 --run --level=0 --raid-devices=4 /dev/md{0,1,2,3}
-runオプションは、一部のコンポーネントが別の配列でアクティブになっているため便利です。
。mdadm.confファイルを適応させます
新しいアレイ(/ dev/md4)に関する変更を反映するようにこのファイルを適合させる必要がある場合があります(構成によって異なります)。
4。お楽しみください..新しいDIY raid10アレイ!
データを比較する大まかな方法で、どちらがミラーであるかをいつでも確認できます。次に例を示します。
# 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 superblockslをスキップしていないため、skip =を増やす必要があります。3つ以上のディスクで同じmd5sumを取得する場合は、増加するcount =、おそらくゼロを読み取ってm5summingしているので、最初にレイドにデータを配置する必要がないようにします。そうしないと、ゼロでいっぱいになる可能性があります)
ワイヤの交換に関しては、それを行う必要はありません-mdadmはmdadm --createのコマンドラインで指定されたデバイスでRAIDを作成する必要があるため、ドライブを異なる順序で指定するだけです。コマンドライン。