在linux中的3ware控制器下將2個磁碟(raid 1)替換為更大的一對
我有一個 3ware 9650se,在 raid-1 拓撲中帶有 2 個 2TB 磁碟。
我最近用 2 個更大 (3TB) 的磁碟一個接一個地替換了這些磁碟。整個遷移過程很順利。我現在遇到的問題是,我不知道我還需要做什麼才能讓系統意識到這個驅動器大小的增加。
一些資訊:
root@samothraki:~# tw_cli /c0 show all /c0 Model = 9650SE-4LPML /c0 Firmware Version = FE9X 4.10.00.024 /c0 Driver Version = 2.26.02.014 /c0 Bios Version = BE9X 4.08.00.004 /c0 Boot Loader Version = BL9X 3.08.00.001 .... Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------ u0 RAID-1 OK - - - 139.688 Ri ON u1 RAID-1 OK - - - **1862.63** Ri ON VPort Status Unit Size Type Phy Encl-Slot Model ------------------------------------------------------------------------------ p0 OK u0 139.73 GB SATA 0 - WDC WD1500HLFS-01G6 p1 OK u0 139.73 GB SATA 1 - WDC WD1500HLFS-01G6 p2 OK u1 **2.73 TB** SATA 2 - WDC WD30EFRX-68EUZN0 p3 OK u1 **2.73 TB** SATA 3 - WDC WD30EFRX-68EUZN0
請注意,磁碟
p2
&p3
被正確辨識為 3TB,但 raid1 陣列u1
仍然看到 2TB 陣列。遵循LSI 3ware 9650se 10.2 程式碼集指南(注意:程式碼集 9.5.3 使用者指南包含完全相同的程序)。
sync
我將我的數據和umount
raid 數組增加了三倍u1
。接下來,我使用以下命令從命令行中刪除 raid 陣列:tw_cli /c0/u1 remove
最後我重新掃描控制器以再次找到數組:
tw_cli /c0 rescan
不幸的是,新
u1
陣列仍然辨識出 2TB 磁碟。有什麼問題?
一些額外的資訊。
u1
陣列對應於,而dev/sdb/
後者又對應於更大的 LVM 磁碟的物理卷。現在我更換了兩個驅動器,分區表似乎是空的。然而 LVM 磁碟工作正常。這正常嗎?!root@samothraki:~# fdisk -l /dev/sdb Disk /dev/sdb: 2000.0 GB, 1999988850688 bytes 255 heads, 63 sectors/track, 243151 cylinders, total 3906228224 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes root@samothraki:~#
好的,這個答案附加到
grs's
答案中。所以 70% 的答案確實有學分。筆記:
- 如果此答案適合您,請立即獲取備份。
- 如果您擁有 UPS,請立即將其連接到有問題的電腦上。
- 以下過程是在 linux 中,在 DATA 磁碟陣列上執行的。它可能需要一些修改才能在作業系統/引導陣列上工作。
- 以下過程需要多次重新啟動,我沒有說明,因為我在幾週的時間跨度內成功完成了該過程,我多次嘗試並失敗了。不過好在,當電腦開機時,我不再有停機時間,也沒有失去數據(即,我不需要依賴我的備份)。
總結一下情況:
- 無法在 3ware 9650se 系統上從 raid1 遷移到 raid1。
- 無法拆分磁碟並期望 /c0/uX 會自動更新其陣列大小。
- 您必須刪除一個單元並重新創建它以檢測更大的磁碟。
所以關鍵是一次刪除一個驅動器,每次都重新創建一個新陣列。總體:
- 拆分 raid1 陣列。這將生成 2 個具有舊磁碟大小的陣列(在我的情況下為 2TB)。
tw_cli /c0/u1 migrate type=single
/dev/sdX
指向 raid1的寶貝/u1
應該仍然存在(並且可以工作!)。您還將獲得一個/u2
基於鏡像的第二個驅動器的新單元。 2. 刪除不再使用的鏡像磁碟(/u2
在我的情況下它屬於一個新單元,並且必須/dev/sdX
在重新啟動後獲得一個新的文件描述符)。tw_cli /c0/u2 del
single
使用未使用的磁碟創建一個新單元。注意:我從 BIOS 執行了此步驟,因此我不確定這是否應該按照下面的說明進行。在 BIOS 中,我做了“創建單元”而不是“遷移”。有人請驗證這一點。tw_cli /c0/u2 migrate type=single disk=3
新
/u2
單元應該“看到”所有 3TB。 4. 繼續將數據從 2TB 磁碟傳輸到 3TB 磁碟。 5. 一旦數據在新單元上,更新所有對新 /dev/sdX 的引用。 6. 剩餘的 2TB 磁碟(應該!)現在未使用,所以繼續刪除它。tw_cli /c0/u1 del
single
使用未使用的磁碟創建一個新單元。tw_cli /c0/u1 migrate type=single disk=2
新
/u1
單元現在也應該有 3TB 的空間。 8. 最後,深吸一口氣,將2個單盤合併到新擴展的raid1中tw_cli /c0/u2 migrate type=raid1 disk=2
/u1
現在應該消失,單位/u2
應該開始重建。 9. 享受生活。就像,認真的。
u1
在從作業系統中增加文件系統之前,您需要更新大小。後者在 3ware 控制器通知它之前不會“看到”新大小。3ware中的單位容量擴展稱為遷移。我確定它適用於 RAID5 和 6,沒有嘗試使用 RAID1。這是要執行的遷移命令的範例:
# tw_cli /c0/u1 migrate type=raid1 disk=p2-p3
完成後
fdisk -l /dev/sdb
應該會產生 3TB 並vgdisplay <VG name>
會列出一些空白空間。從那裡您將增加 VG 大小,然後是相應的 LV,最後是 LV 中的文件系統。編輯:我認為你不走運 - 請參閱使用者指南第 129 頁。
您可以將 RAID1 遷移到不同的陣列類型。
這是另一種選擇(它有一些風險,因此請確保您的備份良好):
tw_cli /c0/u1 migrate type=single
- 這會將您的u1
單元分成兩個單獨的驅動器;tw_cli /c0/u1 migrate type=raid1 disk=2-3
- 這應該將您的單個單元遷移回具有正確大小的 RAID1當然,還有其他方法可以解決這個問題,我上面列出的方法是為了以防您希望您的數據一直線上。