建立範例 RAID 10 陣列

建立範例 RAID 10 陣列

目前我有 8 個磁碟,每個磁碟大小為 32G,形成 RAID 10。這是生產設備,因此 RAID 中已經存在關鍵資料。檔案系統是XFS。有沒有什麼方法可以增加該 RAID 的大小而不影響該 RAID 上正在執行的讀取/寫入操作。如果沒有,如何以最短的離線時間做到這一點?

答案1

現有的答案已經相當過時了。到了 2020 年,mdadm只需增加 2 個或更多相同大小的磁碟即可擴充軟體 RAID 10。

建立範例 RAID 10 陣列

出於測試目的,我創建了 6 個 10GB 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 個“驅動器”,40GB 磁碟區中的容量為 20GB,正如 RAID 10 所預期的那樣。

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完成重塑,我們現在可以看到陣列大小為 ~30G 而不是 ~20G,這意味著重塑是成功的並且相對輕鬆:)

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. 您用更大的驅動器替換現有驅動器,將它們一一替換,每次在磁碟上建立 2 個分割區。您將第一個分割區(例如sdX1 新增至現有陣列(它應該會自動復原)),然後您可以在所有第二個分割區( sdX2 )上建立一個新陣列。會影響效能(基本上,如果您在兩個陣列之間複製資料)。

在這兩種情況下,您都不會丟失數據,如果您的硬體允許熱插拔,您將不會出現停機情況。

順便說一句,即使 mdadm 允許動態調整陣列大小,我也不會冒險使用生產資料。

答案3

假設這是在 Linux 上mdadm- 你不能。

mdadm不支援不斷增長的RAID10

相關內容