2019年1月26日 星期六

[經驗分享]Proxmox VE 複製虛擬機的幾種方法



在 Proxmox VE 裡建置好虛擬機後,想要再複製一台新虛擬機還有那些方法?




方法一

最簡單的方法,是使用 WebUI 上的 Clone 複製。

複製虛擬機


點選 Clone 複製後,會帶出下一個畫面,可以進行調整。

複製到新虛擬機的選項


系統會自動編號 VMID,你需要做的是選取要放新虛擬機的節點、名稱自填、目標儲存選擇後,即可開始。







方法二

若該虛擬機曾經有做過備份,那麼從備份檔還原為新機有時是比較快的作法。

請在 WebUI 上進入 Storage 儲存的 Content 內容頁籤(而非虛擬機的 Backup 備份頁籤),選取要用來複製新虛擬機的來源虛擬機備份檔。

至儲存區用備份檔還原



按下 Restore 還原按鈕,會進入下一個設定頁面。


還原至新虛擬機的選項


選擇還原後要放置的儲存區,並輸入 VMID,若 VMID 與原本的相同,就會還原至原本的虛擬機。若輸入其它 VMID,就會還原成一台新的虛擬機。

在我的使用經驗,用還原成新機的方法,會比方法一的複製快上許多。

特別注意:
採用此方法做出來的虛擬機,名稱、網卡 MAC 位址、UUID 都會一樣,記得要回去 WebUI 的 VM 設定中修改,以免衝突






方法三


如果喜歡 CLI 指令,也可以試試手工作法。

例如我們要把 VMID 109 這一台虛擬機直接複製出一台 111,其實很容易。

複製虛擬機組態檔
cp /etc/pve/qemu-server/109.conf /etc/pve/qemu-server/111.conf

組態檔完成以後,還要將虛擬磁碟也進行複製。

依據所設定的儲存區不同,以及存取形式的不同 (File Level 或 Block Level),指令會有所區別。

指令中複製的儲存區路徑,請依實際的環境做修改,不一定會是 /vmiamge。

複製虛擬機虛擬磁碟檔 (qcow2)
mkdir /vmimage/images/111
cp /vmimage/images/109/vm-109-disk-0.qcow2 /vmimage/images/111/vm-111-disk-0.qcow2

複製虛擬機虛擬磁碟檔 (zfs)
zfs snapshot vmimage/vm-109-disk-0@copy
zfs send -Rv vmimage/vm-109-disk-0@copy | zfs receive -F vmimage/vm-111-disk-0
zfs destroy vmimage/vm-109-disk-0@copy ; zfs destroy vmimage/vm-111-disk-0@copy

虛擬磁碟也複製完成以後,還需要進入組態檔修改磁碟對應。

修改虛擬機組態檔磁碟對應 (qcow2)


修改虛擬機組態檔磁碟對應 (zfs)


修改圖中紅框處,把 109 修改為 111 後存檔,即可完成新複製的虛擬機。


特別注意:
採用此方法做出來的虛擬機,名稱、網卡 MAC 位址、UUID 都會一樣,記得要回去 WebUI 的 VM 設定中修改,以免衝突。





結論

方法一最簡單也最安全的作法。

方法三是最快速也最有彈性的作法,唯一要注意的是下達指令時千萬不要弄錯,以免造成資料遺失。

其實在 PVE 當中,還有一種稱之為「Template 樣板」的作法,但這個作法我並不是這麼推薦它,所以本次的作法中不列入介紹。





參考資料