擴展 Linux MD RAID 10 陣列以使用更大的磁碟

擴展 Linux MD RAID 10 陣列以使用更大的磁碟

據我了解,這是可能的,但我在任何地方都找不到關於具體如何進行的直接答案,而且我不想冒著丟失數據的風險自己進行實驗,所以我在這裡問。

我有一個帶有五個磁碟的家庭伺服器,運行 CentOS。一種是保存作業系統的 SSD。其餘四個磁碟是 4TB 硬碟,配置為具有 mdraid 的 RAID10。使用的檔案系統是 xfs。

我正在考慮嘗試用 8TB 磁碟替換 4TB 磁碟。究竟需要做什麼才能實現此替換,而不必重新配置新的 RAID 並不會遺失資料?

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1

答案1

對每個磁碟完成以下步驟;/dev/sda1根據需要更換為其他磁碟。您必須完成全部對一個磁碟執行這些步驟,然後才能繼續處理下一個磁碟。

  • 將磁碟標記為故障,以便 MD 停止使用它:mdadm --manage /dev/md127 --fail /dev/sda1
  • 從陣列中刪除磁碟:mdadm --manage /dev/md127 --remove /dev/sda1
  • 物理更換磁碟。
  • 0xDA使用一個分割區跨越整個磁碟的類型對新磁碟進行分割。
  • 將新磁碟新增至陣列:mdadm --manage /dev/md127 --add /dev/sda1

新增替換磁碟後,MD 將重建陣列。確保重建完成您繼續到下一個磁碟。您可以透過執行來檢查陣列的狀態cat /proc/mdstat

一次全部已更換磁碟並重建陣列,擴展陣列至填滿所有磁碟的最大容量mdadm --grow /dev/md127 --size=max。您可以從那裡調整檔案系統的大小以填充擴展的 RAID;根據您的情況,請使用該xfs_growfs命令。

有關如何增長 MD 陣列的更多信息,請訪問Linux RAID 維基

與任何其他磁碟操作任務一樣,您應該在開始之前進行備份。

答案2

您需要先逐一交換每個磁碟。

為此,您需要對每個磁碟進行「故障」處理,並用新的8Tb 替換件進行替換,事實上,如果您有備用端口,您可以添加額外的磁碟,然後使用mdadm “替換”到位,而不是從其中刪除磁碟突襲並具有更高的失敗風險。

這個問題詳細介紹了我能找到的「安全」做到這一點的最佳方法

完成此操作後,您只需將現有 FS 擴展到新建立的空間即可。看起來這個命令是“xfs_growfs”,但我沒有使用 xfs 的經驗來解釋你到底要如何做到這一點。

一如既往,準備好備份(突襲不是備份!)。

相關內容