Lvm

Linux:pvmove 的 ZFS 模擬 - 如何從 vdev 移出數據?

  • October 15, 2019

我需要擴展伺服器的磁碟容量。該池以 1Tb 磁碟啟動,然後使用 2Tb 磁碟進行擴展。有超過 1Tb 的可用空間,即所有數據都可以輕鬆容納 2Tb 部分,但目前分配在 1Tb 磁碟上。

實際上,這些磁碟分別是一對 1Tb 和一對 2Tb 上的硬體 (PERC) RAID1 陣列。

我想用 3Tb 替換這些 1Tb 磁碟。“一個接一個”的替換並不是一個真正的選擇。原則上,這個物理 RAID 可以一個一個地替換磁碟,然後擴大陣列以填滿磁碟。但是,我想避免這條路徑,因為它會在磁碟冗餘失去時留下一些相當長的時間段。

我想將所有數據從 1Tb 中移出,然後將其刪除,並替換為 3Tb。一切都在執行中完成,系統執行,停機時間為零。

使用 LVM,操作必須非常簡單易懂:

  1. pvmove 從 1Tb 物理磁碟中分配的所有數據(RAID 術語中的 VD)
  2. vgreduce 從 vg 中刪除該 pv 並 pvremove 刪除 pv 元數據
  3. 使用 megacli 刪除 1Tb 陣列(PERC 更名為 LSI/Avago MegaRAID SAS)
  4. 物理更換磁碟
  5. 使用 megacli 再次組裝另一個陣列
  6. 創建一個新的 pv 並將其添加到 vg

這是我以前做的例行程序。每一步都很好理解,在每一步我都可以完全控制正在發生的事情,如果出現問題,我總是知道如何進行等等。

如何使用 ZFS 安全且有意識地執行相同的過程?

如果這很重要:

  • 伺服器是戴爾 PowerEdge R730
  • 作業系統是 Proxmox VE 6.0,它基於 Debian 10.1。它是從 PVE ISO 映像安裝的,即不是從 Debian 安裝轉換而來的。
  • 系統不依賴於這個池,因為它是從組裝到另一個池中的一組 SSD 執行的
  • 該池託管一些不需要高性能的 VM 虛擬磁碟。但是,這些數據很有價值,如果失去,我不能容忍。因此,程序應該清晰易懂
  • 系統不斷被使用者使用,但他們會容忍數據遷移過程中的性能損失

如何將數據從 vdev 中移出?

除鏡像池外,無法完成。

引用自:https://serverfault.com/questions/988036