サンプルの RAID 10 アレイの作成

サンプルの RAID 10 アレイの作成

現在、RAID 10 を構成する 32G のディスクが 8 台あります。ここで、ディスクを追加してこの RAID のサイズを増やしたいと考えています。これは実稼働デバイスなので、RAID にはすでに重要なデータが入っています。ファイルシステムは XFS です。この RAID で実行中の読み取り/書き込みに影響を与えずに、この RAID のサイズを増やす方法はありますか。ない場合は、オフライン時間を最小限に抑えてこれを行うにはどうすればよいですか。

答え1

mdadm既存の回答はかなり古くなっています。2020 年の現在では、同じサイズのディスクを 2 つ以上追加するだけで、ソフトウェア RAID 10を拡張できるようになりました。

サンプルの RAID 10 アレイの作成

テスト目的で、物理ドライブの代わりに 6 つの 10 GB LVM ボリュームを作成しましたが、 mdadm から/dev/vg0/rtest1rtest6何も問題はありませんでした。

# 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. 既存のドライブをより大きなドライブに交換します。 それらを 1 つずつ交換し、そのたびにディスクに 2 つのパーティションを作成します。 最初のパーティション (たとえば sdX1) を既存のアレイに追加し (自動的に回復するはずです)、2 番目のすべてのパーティション (sdX2) に新しいアレイを作成できます。 使用状況によっては、一部の操作でパフォーマンスが低下する可能性があります (基本的に、両方のアレイ間でデータをコピーする場合)。

どちらの場合も、データが失われることはなく、ハードウェアがホットプラグを許可している場合はダウンタイムも発生しません。

ちなみに、たとえ mdadm がアレイの動的なサイズ変更を許可していたとしても、実稼働データではそのリスクを冒すつもりはありません。

答え3

これが Linux 上にあると仮定するとmdadm、それはできません。

mdadm拡張可能なRAID10をサポートしていない

関連情報