Lvm

將 LV 中的所有數據移動到第一個 PV,移除其他數據

  • December 8, 2018

我有一個邏輯卷,/dev/echohome/home01

它具有三個物理卷:/dev/sda1, /dev/sdb1, /dev/sdc1

sda1 是 4TB,有 0 個可用區,sdb1 是 4TB,有 476930 個可用區,sdc1 是 1TB,有 0 個可用區

目前的 ext4 文件系統已滿約 45% @ 3.1TB。邏輯卷大小為 6.37TB。

我想將所有數據移動到 sda1 或 sdb1,然後刪除另外兩個 PV。根據我所做的閱讀,我可以嘗試一些組合resize2fs pvmovelvreduce可能完成我正在尋找的東西。

我在其他問題中似乎沒有解決的具體細節是我試圖保留的數據的物理位置——如果我不知道文件物理駐留在哪個 PV 上,我怎麼能自信地resize2fs然後最終pvremove

編輯:我認為最簡單的解決方案可能是將整個文件系統備份到更大的磁碟,縮小它,然後將其移回重新配置的 LV,但我目前沒有備用磁碟空間。:(

我在其他問題中似乎沒有解決的具體細節是我試圖保留的數據的物理位置——如果我不知道文件物理駐留在哪個 PV 上,我怎麼能自信地resize2fs然後最終pvremove

你不需要知道這一點。這是 LVM 的工作。resize2fs 作用於允許跨越多個磁碟的邏輯卷。一旦你的文件系統小到可以放在一個磁碟上,你可以告訴 LVM 把它移過來,然後移除其他磁碟。


有四個步驟可以做到這一點。

  1. 將文件系統的大小減小到 4TB 以下。( resize2fs)
  2. 將邏輯卷的大小減少到 4TB 以下。( lvreduce)

(如果您將文件系統截斷得太遠,此步驟可能會失去數據,因此請閱讀手冊頁!) 3. 將邏輯卷從每個驅動器移開。( pvmove <source pv> <dest pv>)

(您需要一次處理一張磁碟。) 4. 取出磁碟。(vgreduce然後pvremove

引用自:https://unix.stackexchange.com/questions/441659