私は小さなレベルのデータセキュリティのために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