現在、RAID 10 を構成する 32G のディスクが 8 台あります。ここで、ディスクを追加してこの RAID のサイズを増やしたいと考えています。これは実稼働デバイスなので、RAID にはすでに重要なデータが入っています。ファイルシステムは XFS です。この RAID で実行中の読み取り/書き込みに影響を与えずに、この RAID のサイズを増やす方法はありますか。ない場合は、オフライン時間を最小限に抑えてこれを行うにはどうすればよいですか。
答え1
mdadm
既存の回答はかなり古くなっています。2020 年の現在では、同じサイズのディスクを 2 つ以上追加するだけで、ソフトウェア RAID 10を拡張できるようになりました。
サンプルの RAID 10 アレイの作成
テスト目的で、物理ドライブの代わりに 6 つの 10 GB LVM ボリュームを作成しましたが、 mdadm から/dev/vg0/rtest1
はrtest6
何も問題はありませんでした。
# Using the thinpool lvthin on VG vg0 - I created 6x 10G volumes
lvcreate -T vg0/lvthin -V 10G -n rtest1
lvcreate -T vg0/lvthin -V 10G -n rtest2
...
rtestX
次に、最初の4つのボリュームを使用してRAID 10 mdadmアレイを作成しました。
mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/vg0/rtest[1-4]
mdadm -D
(に等しい)を使用すると--detail
、アレイには 4 つの「ドライブ」があり、RAID 10 で予想されるとおり、40 GB のボリュームのうち 20 GB の容量があることがわかります。
root@host ~ # mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Nov 20 09:02:39 2020
Raid Level : raid10
Array Size : 20953088 (19.98 GiB 21.46 GB)
Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri Nov 20 09:04:24 2020
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : someguy123:0 (local to host someguy123)
UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
Events : 23
Number Major Minor RaidDevice State
0 253 9 0 active sync set-A /dev/dm-9
1 253 10 1 active sync set-B /dev/dm-10
2 253 11 2 active sync set-A /dev/dm-11
3 253 12 3 active sync set-B /dev/dm-12
2つの新しい同じサイズのボリューム/ディスクでRAID10を拡張する
アレイを拡張するには、まず--add
アレイにディスクのペアを追加し、次に--grow --raid-devices=X
(X は RAID 内のディスクの新しい合計数) を使用して、mdadm に RAID10 を再形成して 2 つのスペア ディスクをアレイの一部として使用するように要求する必要があります。
mdadm --add /dev/md0 /dev/vg0/rtest5 /dev/vg0/rtest6
mdadm --grow /dev/md0 --raid-devices=6
再同期プロセスを監視する
ここが退屈な部分です。RAID の大きさに応じて、mdadm が新しいドライブの再形成を完了するまで、数分、数時間、数日、あるいは数週間待機します。
確認するとmdadm -D
、RAID が現在再形成中であることがわかります。
mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Nov 20 09:02:39 2020
Raid Level : raid10
Array Size : 20953088 (19.98 GiB 21.46 GB)
Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Fri Nov 20 09:15:05 2020
State : clean, reshaping
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Reshape Status : 0% complete
Delta Devices : 2, (4->6)
Name : someguy123:0 (local to host someguy123)
UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
Events : 31
Number Major Minor RaidDevice State
0 253 9 0 active sync set-A /dev/dm-9
1 253 10 1 active sync set-B /dev/dm-10
2 253 11 2 active sync set-A /dev/dm-11
3 253 12 3 active sync set-B /dev/dm-12
5 253 14 4 active sync set-A /dev/dm-14
4 253 13 5 active sync set-B /dev/dm-13
より大きな RAID10 アレイをお楽しみください!
最終的にmdadm
再形成が完了すると、配列のサイズが ~20G ではなく ~30G になっていることがわかります。これは、再形成が成功し、比較的簡単に実行できたことを意味します :)
mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Nov 20 09:02:39 2020
Raid Level : raid10
Array Size : 31429632 (29.97 GiB 32.18 GB)
Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Fri Nov 20 09:25:01 2020
State : clean
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : someguy123:0 (local to host someguy123)
UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
Events : 93
Number Major Minor RaidDevice State
0 253 9 0 active sync set-A /dev/dm-9
1 253 10 1 active sync set-B /dev/dm-10
2 253 11 2 active sync set-A /dev/dm-11
3 253 12 3 active sync set-B /dev/dm-12
5 253 14 4 active sync set-A /dev/dm-14
4 253 13 5 active sync set-B /dev/dm-13
答え2
2つのケースがあります:
- 新しいドライブを追加する場合、最も簡単で安全な方法は、新しいドライブ上に新しいアレイを作成し、新しいアレイ上に物理ボリュームを作成することです。これで、パフォーマンスの低下はありません。ボーナスとして、データをいずれかのアレイに配置するために、新しいボリューム グループを作成することもできます。
- 既存のドライブをより大きなドライブに交換します。 それらを 1 つずつ交換し、そのたびにディスクに 2 つのパーティションを作成します。 最初のパーティション (たとえば sdX1) を既存のアレイに追加し (自動的に回復するはずです)、2 番目のすべてのパーティション (sdX2) に新しいアレイを作成できます。 使用状況によっては、一部の操作でパフォーマンスが低下する可能性があります (基本的に、両方のアレイ間でデータをコピーする場合)。
どちらの場合も、データが失われることはなく、ハードウェアがホットプラグを許可している場合はダウンタイムも発生しません。
ちなみに、たとえ mdadm がアレイの動的なサイズ変更を許可していたとしても、実稼働データではそのリスクを冒すつもりはありません。
答え3
これが Linux 上にあると仮定するとmdadm
、それはできません。
mdadm
拡張可能なRAID10をサポートしていない