Mdadm - 更改 RAID 10 塊大小並切換到“遠”佈局
我在軟體 RAID 10 中執行帶有 4 個 2TB 驅動器的 Ubuntu Linux NAS 伺服器。
我在安裝過程中創建了陣列(使用 Ubuntu Server 光碟),但佈局是
near
,塊大小是64
.我想將塊大小更改為
256
並將佈局更改為far
. 我該怎麼做呢?這是 mdstat 的輸出:
root@server:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid10 sde1[3] sdd1[2] sdc1[1] sdb1[0] 3907026816 blocks 64K chunks 2 near-copies [4/4] [UUUU]
我寧願以非破壞性方式進行更改,以節省再次複製數據的時間,但數據已備份,因此破壞性更改也可以。
感謝您的任何幫助。
唯一的方法是使用新參數銷毀並重新創建數組。Neil Brown 在他最近發表的 md 路線圖中寫道:
支持 RAID10 陣列的重塑。
RAID10 陣列目前根本無法重塑。可以將“近”模式 RAID10 轉換為 RAID0,但僅此而已。一些真正的重塑是可能的,應該實施。
整個路線圖在這裡: http: //lwn.net/Articles/428206/
我也想試試這個,現在有一些關於這樣做的警告。正如 Pawel 所說,沒有重建就無法完成。沒有捷徑,我所做的只是禁用陣列,使用相同的分區重新創建,然後嘗試掛載,希望通過一些奇蹟奇蹟般地工作(他們沒有)。如果你嘗試,你會得到核心恐慌(是的,我試過了,這就是發生的事情)。如果您有遠端伺服器並且沒有 KVM 遠端/重新啟動,那麼這是一個非常糟糕的主意(幸運的是我有,但很多人沒有)。
另一個需要注意的是,我很震驚地看到 –layout=f2 中的相同分區稍微小了數百個塊。為什麼這是個問題?如果您使用的是 DRBD 之類的大小必須完全相同的東西,那將是一個困境。
舉一個有關 mdadm 的 DRBD 問題的範例,請參見此處(f2 佈局中 512 個塊的差異): RAID10 –layout=n2 size: Array Size : 897500160 (855.92 GiB 919.04 GB) RAID10 –layout=f2 size: Array大小:897500672(855.92 GiB 919.04 GB)
我實際上希望 mdadm 在 RAID10 中預設為 –layout=f2。本質上要獲得真正的 RAID1 性能,您需要在 f2 佈局中進行兩盤 RAID10(非常愚蠢),但至少它是一種選擇。