Linux

LVM 導出和導入:如何將 VG 移動到具有同名卷組的另一台機器

  • October 4, 2020

我一直在 VMWare 伺服器上使用 VM linux (RHEL OS)。結果,我想將虛擬硬碟從一個虛擬機連接到另一個虛擬機。我怎樣才能把它掛載到新的虛擬機上?順便說一句,我將 LVM 用於兩個 VM linux。

舊機器:

--- Physical volume ---

PV Name /dev/sdc -> VG Name u01_vg  -> LV Name u01_lv
PV Name /dev/sdd -> VG Name u01_vg  -> LV Name u01_lv

新機器:

--- Physical volume ---

PV Name /dev/sdb -> VG Name u01_vg  -> LV Name u01_lv
PV Name /dev/sdc -> VG Name u01_vg  -> LV Name u01_lv

我正在考慮如下的工作流程。我對麼 ?如果我錯了,請糾正我。

LVM 導出和導入工作流程:

  • 由於使用了重複的捲組名稱。首先在舊機器上重命名卷組

    • vgrename UUID New_VG_Name
    • vgchange -is New_VG_Name
  • 從 OLD Virtual Linux/Unix Server 解除安裝文件系統

    • 解除安裝/掛載點/
    • vgchange -an New_VG_Name
    • vgexport New_VG_Name
    • 當機器下一次關閉時,磁碟可以被 unplgged 然後連接到它的新機器。
  • 將整個卷組移動到另一個系統

    • pvscan
    • vgimport New_VG_Name
    • vgchange -is New_VG_Name
    • mkdir/舊數據/
    • 掛載 /dev/New_VG_Name/data_lv /olddata/

謝謝,

在您的場景中,vgexport/vgimport並不是真正需要的,正是因為您已經知道新機器中現有的 VG 名稱。

要在舊系統上重命名 VG,您很可能需要先解除安裝並停用它,並且由於那裡沒有 VG 名稱衝突,您不必使用 VG UUID 代替舊 VG 名稱(儘管如果你願意,你可以):

umount /mount-point/
vgchange -an Old_VG_Name
vgrename Old_VG_Name New_VG_Name
vgchange -ay New_VG_Name
<edit /etc/fstab to replace Old_VG_Name with New_VG_Name>
mount /mount-point

卸下磁碟之前:

<edit /etc/fstab to comment out/remove the line for the /mount-point/>
umount /mount-point/
vgchange -an Old_VG_Name   # technically the shutdown procedure would do this too

如果在停用 VG 後執行此操作,您甚至可以熱拔出磁碟:

echo 1 > /sys/block/sdc/device/delete
echo 1 > /sys/block/sdd/device/delete

這告訴核心為這些設備即將物理斷開做準備。(如果您在虛擬機中使用半虛擬化驅動程序,虛擬化主機可能會在熱移除虛擬磁碟之前向驅動程序發送警告消息,因此無需此步驟。)

一旦磁碟被移動到新系統,正常的系統啟動過程將在大多數發行版中自動執行 和 的等效項pvscanvgchange -ay預設情況下會自動啟動所有不衝突的 VG。在這種情況下,您只需要創建一個掛載點目錄,編輯/etc/fstab並掛載該卷:

mkdir /olddata
<edit /etc/fstab>
mount /olddata

你可能會問vgexport/那麼的目的是什麼?vgimport適用於不知道新系統中是否會有同名VG的情況。導出 VG 時,磁碟上的 VG 元數據被有效標記為“跳過我”,因此 VG 將避免系統啟動時的自動啟動步驟,所有 LVM 管理命令將優先選擇現有的未導出 VG在新系統上可能命名衝突的新來者,直到系統管理員開始重命名和導入它。vgimport刪除此標記。它什麼也不做。

上述情況適用於 Linux LVM 版本 2,它從 2.6 核心系列開始就存在。如果您處理 2.4.xx 或更舊的核心,您可能擁有 LVM 版本 1,其中vgexport/vgimport命令的工作方式可能有所不同(我不記得那些細節了)。

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