據我了解,這是可能的,但我在任何地方都找不到關於具體如何進行的直接答案,而且我不想冒著丟失數據的風險自己進行實驗,所以我在這裡問。
我有一個帶有五個磁碟的家庭伺服器,運行 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 的經驗來解釋你到底要如何做到這一點。
一如既往,準備好備份(突襲不是備份!)。