
學習如何安全的從LVM中移除磁盤,當磁盤卷中有磁盤出現問題或是想把磁盤卷中的磁盤重新使用時就顯得十分有用。本教程將重點關注以下問題:
- 如何安全的從LVM中移除磁盤
- 如何聯機從VG中移除磁盤
- 如何在物理層面進行磁盤數據拷貝
- 如何聯機替換LVM中的故障磁盤
- 如何在物理層面將磁盤分區移動至另一磁盤
- 如何釋放磁盤以縮小VG容量
- 如何安全的減少VG
首先, 我們需要了解一下服務器的情況。要了解服務器磁盤情況,可以使用lsblk命令,命令執行結果如下圖所示:

可以看到,主機目前具有兩個LVM,其中root是在安裝系統時生成的,掛載到根目錄;另一個Lv01是新添加的LVM,掛載到/mydata目錄。另外,主機還安裝了一塊空白磁盤”sdc”,我們將要做的就是用”sdc”磁盤替換Lv01中的”sdb”磁盤,以達到安全移除LVM磁盤的目的。注意所有操作都是聯機進行,並不會對系統產生任何影響。
要替換磁盤,那么很明顯首先要把新磁盤”sdc”加入到vg01中。使用pvcreate命令可以將”/dev/sdc”生成一個新的pv,然后使用vgextend命令將”/dev/sdc”添加到vg01中。命令執行步驟如下圖所示:

現在,我們將要移除的磁盤”/dev/sdb”和替換磁盤”/dev/sdc”都處於同vg01中,可以用pvs命令進行查看:

可以看到,”/dev/sdb”磁盤的一個分區”sdb1″加入到了vg01,現在需要做的就是將該分區移動到新安裝磁盤”/dev/sdc”中。使用pvmove命令可以完成以上工作。

如圖所示,”/dev/sdb1″的數據已經聯機移動到了”/dev/sdc”,這樣,就可以為移動磁盤做准備了。如果需要移動的數據較多,這條命令可能會執行很長時間,為了不影響其他操作,可以使用如下命令將其置於后台執行:
pvmove /dev/sdb1 2>error.log >normal.log &
以上命令會將pvmove命令置於后台執行,並將執行的結果輸出至”normal.log”,標准錯誤輸出至”error.log”。
在移除原數據盤之前,還需要將該磁盤從其屬於的VG中刪除,這樣才不會對系統產生影響。從vg01中刪除從屬磁盤,並不是使用”remove”命令,而是使用vgreduce命令,命令執行如下圖所示:

現在,”/dev/sdb1″的分區已經從vg01中移除了,如果該磁盤的其他分區並沒有被掛載,那么,這塊磁盤就可以從系統中移除了。
以上就是我們使用pvmove命令完成移除LVM卷磁盤的全過程,這條命令可以方便的進行聯機數據移動。當然,這條命令還提供了一些可選參數,”-v”參數可以輸出更多的命令執行細節:

而”-i”參數可以讓pvmove命令按”-i”后跟的秒數為間隔來顯示命令的執行進度更新,命令示例如下:
# pvmove -i 1 /dev/sdc
轉自:https://www.daehub.com/archives/8560.html
