Raid1プロセスからRaid5までデータを保存できますか?

Raid1プロセスからRaid5までデータを保存できますか?

レイド1があります。

/dev/sda /dev/sdb

〜のようにmd0

それではRaid5を拡張したい

だから私の考えは

sudo mdadm --add /dev/md0 /dev/sdd

sudo mdadm --grow /dev/md0 --level=raid5 --raid-devices=3

この過程で。

ハードドライブの内容は削除されますか? ?

答え1

はい、これは完全に可能であり、ライブシステムでも実行できます。

重要なヒント処置:変換中にディスク障害が発生した場合、データは保持されません。バックアップしてください。

以下は、いくつかのファイルを使用したデモです。

# Two "disks", probably called /dev/loop0 ($a) and /dev/loop1 ($b)
dd bs=1M count=100 </dev/zero >/tmp/img.a
a=$(losetup --show --find /tmp/img.a)

dd bs=1M count=100 </dev/zero >/tmp/img.b
b=$(losetup --show --find /tmp/img.b)

# Create RAID 1
mdadm --create /dev/md0 --metadata=1.2 --level=raid1 --raid-devices=2 $a $b

# See what is going on
cat /proc/mdstat

# Add a filesystem and mount it
mkfs -t ext4 -L md /dev/md0

mkdir -p /mnt/dsk
mount /dev/md0 /mnt/dsk

それではディスクアレイを追加しましょう。

# Another disk, probably /dev/loop2 ($d)
dd bs=1M count=100 </dev/zero >/tmp/img.d
d=$(losetup --show --find /tmp/img.d)

# Add it as a spare
mdadm --add /dev/md0 $d

# Convert from RAID 1 to RAID 5
mdadm --grow /dev/md0 --level=raid5 --raid-devices=3

# See what is going on
cat /proc/mdstat

プロセスが実際に安全であることを自分で確認したら、物理ディスクを使用してプロセスを繰り返すことができます。バックアップはありますか?

a=/dev/sda b=/dev/sdb` d=/dev/sdd

答え2

RAID1をRAID5に拡張することはうまく機能します(ただし、場合に備えてバックアップが必要です)

sudo mdadm --add /dev/md0 /dev/sdd

/dev/sddこのコマンドはRAID1にスペアドライブを追加します。/dev/md0

メタデータ以外には何も記録されませんmdadm(他のドライブの1つに障害が発生しない限り、スペアドライブは冗長性を復元するために使用されます)。

sudo mdadm --grow /dev/md0 --level=raid5 --raid-devices=3

このコマンドは、2ディスクRAID1を3ディスクRAID5に拡張します。このプロセスは、すべてのデータを再構成/再配置します(前の2つのドライブミラーから3つのドライブRAID5レイアウトへ)。このプロセスでは、古いコンテンツは/dev/sdd新しいコンテンツで上書きされます/dev/md0。成長が完了した後に容量を増やさない限り、デバイスのデータは/dev/md0まったく変わりません。容量を増やすにはファイルシステムを拡張する必要があります。

これら2つのコマンドを1つにまとめることができます。

mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd

一般的に言えば、--grow安全でなければならず、データを保管する必要があります。mdadm危険な作業(縮小など)を実行したい場合、または追加の手順(バックアップファイルの提供など)が必要な場合は警告を受け取る必要があります。

たとえば、ドライブが多すぎる--createか、メンバードライブが複雑になると、データが失われます。mkfs--fail

/dev/sddRAIDを拡張するために使用されるため、/dev/sdd現在のコンテンツで上書きされるため、何でも失われます/dev/md0

データが失われた場合は--growそれを使用する必要はなく、--createまず新しいデータが必要です。

関連情報