mdadmとデータを含む1つのディスクを使用してRAID 5を構築する

mdadmとデータを含む1つのディスクを使用してRAID 5を構築する

私は小さなレベルのデータセキュリティのためにMDADMを使用してraid-5を実行したい3つの同じドライブ(4TB Ironwolf)を持っています。これで問題は、1つのドライブがバックアップできないデータでいっぱいになっていることです。

はい、ビルドとドライブに障害が発生すると、すべてのデータが消えることがわかりますが、まだ最善を尽くしたいと思います。

わかりやすいように、sda1とsdb1(空)、sdc1(データを含む)と呼びます。

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sda1 /dev/sdb1;
rsync -av --exclude-from=excludefile /dev/sdc1 /dev/md0;    
mkfs.ext4 /dev/sdc1;    
mdadm --add /dev/md0 /dev/sdc1;    
mdadm --grow --raid-devices=3 --spare-devices=1 /dev/md0;

これが正しいアプローチであることを確認できる人はいますか?

答え1

空きディスク容量が少ない場合は、ループバックデバイスを使用してこれらのコマンドをテストできます。

ループバックデバイスa、b、cを生成します。

dd if=/dev/zero bs=1M count=50 > diska.img    # Plan for RAID5
dd if=/dev/zero bs=1M count=50 > diskb.img    # Likewise
dd if=/dev/zero bs=1M count=50 > diskc.img    # Original data will be here

la=$(losetup --find --show diska.img); echo $la
lb=$(losetup --find --show diskb.img); echo $lb
lc=$(losetup --find --show diskc.img); echo $lc

「重要な生データ」を作成して3番目のディスクに挿入します($lc)。

mkfs -t ext4 -L data "$lc"
mount "$lc" /mnt
cp -a /usr/share/man/man1 /mnt
umount /mnt

今、あなたのアイデアに基づいてRAID5アレイを作成しましょう。この場合、2 つの空のディスクが$laあり、重要な 3 番目のディスクを表します。$lb$lc

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 "$la" "$lb"

成功します。 2 つのメンバーで構成される RAID5 アレイが作成されます。個人的に私は3つを指定します。 3番目の要素はwordですmissing。これにより、私の意図がより明確になります。

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 "$la" "$lb" missing

ただし、次のコマンドが正しくありません。rsyncデバイス間ではなくファイルシステム間でコピーするので、まず新しいファイルシステムを作成し、両方をマウントする必要があります。

mkfs -t ext4 -L data /dev/md0
mkdir -p /mnt/src /mnt/dst
mount "$lc" /mnt/src             # Here you could use mount /dev/sdc1 /mnt/src
mount /dev/md0 /mnt/dst
rsync -av --exclude-from=excludefile /mnt/src/ /mnt/dst

rsync --dry-run実行する前に何をすべきかを確認する必要があります。

umount /mnt/src
umount /mnt/dst

この時点では、既存のディスクがアレイに追加されるため、元のディスクのデータを新しい(ダウングレードされた)RAID5アレイに正常にコピーしたことを確認する必要があります。

元の2つのデバイスのみを指定した場合は、3番目のデバイスを含むようにアレイを拡張する必要があります。

mdadm --grow /dev/md0 --raid-devices=3 --add "$lc"    # /dev/sd1c when you do this for real

一方、私のアドバイスを受け入れて3つのデバイス(そのうちの1つはmissing)で始まる場合は、デバイスを追加するだけです。

mdadm --manage /dev/md0 --add "$lc"

最後に、ファイルシステムの任意の部分にRAID 5アレイを再マウントできます。cat /proc/mdstat再同期の進行状況を表示するために使用されます。

テストベンチの場合のみ、アレイを停止してコンポーネントを削除するだけです。

mdadm --stop /dev/md0
losetup -d "$la"
losetup -d "$lb"
losetup -d "$lc"
rm diska.img diskb.img diskc.img

関連情報