Linux RAID1 は大容量ディスクを置き換えます。

Linux RAID1 は大容量ディスクを置き換えます。

2つの256GB SSDを搭載したサーバーがあります。そのパーティションは次のとおりです。

/dev/sda1 100GB linux-raid-autodetect
/dev/sda2 100GB linux-raid-autodetect
/dev/sda3 23,6GB linux-raid-autodetect

/dev/sdb1 100GB linux-raid-autodetect
/dev/sdb2 100GB linux-raid-autodetect
/dev/sdb3 23,6GB linux-raid-autodetect

2つのraid1デバイスがビルドされ実行されています(mdadmを使用)。

/dev/md1 (built of /dev/sda2 and /dev/sdb2) containing an ext4 filesystem mounted on /
/dev/md2 (built of /dev/sda3 and /dev/sdb3) containing swap filesystem

/dev/sda1 and /dev/sdb1 were used in former times and now are unused.

したがって、未使用のパーティション/dev/sdx1を削除し、/dev/sdx2を2倍のサイズ(200GB)に増やしたいと思います。

私は次のステップに従いました。

mdadm --manage /dev/md1 --fail /dev/sda2
mdadm --manage /dev/md1 --remove /dev/sda2

その後、fdiskに移動して/dev/sda1と/dev/sda2を削除し、古い/dev/sda1と/dev/sda2の完全な空き領域を使用する新しいパーティション/dev/sda2を作成しました。パーティション識別子をlinux-raid-autoDetect(fd)に設定し、パーティションテーブルをディスクに書きました。これを実行した後、/dev/sda2を/dev/md1として読みました。

mdadm --manage /dev/md1 --add /dev/sda2

そして、レイド同期が完了するのを待ちます。すべてが期待どおりに動作します。結果は、/dev/sda2(200GB) および /dev/sdb2(100GB) を含む新しい /dev/md1 です。これで、以前と同様に/dev/sdbを使い続けます。プロセス全体を完了した後、次のSSDパーティションを取得しました:/dev/sda2 200GB linux-raid-autoDetect /dev/sda3 23,6GB linux-raid-autoDetect

/dev/sdb2 200GB linux-raid-autodetect
/dev/sdb3 23,6GB linux-raid-autodetect

これは以前と同じRAID1の一部です(/ dev / md1および/ dev / md2)。両方のRAIDは正常に動作します。影響を受けない/dev/md2は完璧ですが、新しい/dev/md1は100GB(理論的に利用可能なスペースの半分)しか表示しません。もちろん:RAIDデバイスのサイズを最大容量に調整する必要があり、これを実行した後にファイルシステム(ext4)のサイズを変更する必要があります。だから始めました。

mdadm --grow --array-size=max /dev/md1

...しかし、まったく効果がありません。次のような

resize2fs /dev/md1

結果は、「ファイルシステムの長さはすでに26198016(4k)ブロックです。何もしません!」です。

問題は何ですか?私はすでに/dev/md1でシステムを使用しているので、マウントされました。 RAIDとファイルシステムのサイズを変更するには、回復システムを使用する必要があります(/ dev / md1はマウントされていません)?それとも私が何か間違っているのでしょうか?

答え1

その間私はそれを修正しました。 mdadm 成長の構文エラーです。確かにそうです

mdadm --grow /dev/md1 --size=max

これにより、配列のサイズを変更してからファイルシステムのサイズを変更できます。これらの操作はすべて、再起動を必要とせずにマウントされたファイルシステムで機能します。

関連情報