:::

Proxmox VE用備份(vzdump)與還原(restore)複製虛擬機器 (clone Virtual Machine)

11月 19, 2011 , 1 Comments Edit Post

image

Proxmox VE是一套開放原始碼的虛擬機器環境,他同時使用了OpenVZ容器虛擬化與KVM全虛擬化兩種技術,可以根據需求選用不同的方式來建立虛擬機器。

本篇要介紹虛擬機器的複製方式,這包括了備份(匯出)與還原(匯入)的指令。依照使用的技術不同,OpenVZ與KVM都必須使用各自的指令。


為什麼需要複製虛擬機器?

有時候,我們建立好一個提供了完整服務的虛擬機器。現在有另一群人想要把這個虛擬機器的內容進行修改,可是又想要保留原有的虛擬機器。這時候你就需要複製功能。

或著是說,你想要建立一個Proxmox VE沒有提供的虛擬應用樣板,作為其他應用的基礎。例如具備XAMPP環境的作業系統。這樣就可以省下每次都要從空的作業系統中安裝XAMPP的手續,讓後面的人更容易從XAMPP架設網站。

在我上一篇介紹Proxmox VE的虛擬應用樣板中有提到,OpenVZ必須要從特定的樣板中建立虛擬機器,而要建立一個虛擬應用樣板也不是這麼容易的事情。相較之下,用複製的方式從原有的虛擬機器建立另一個虛擬機器,這方法就容易多了。

在了解了背景需求之後,以下再來介紹複製的方法。

複製虛擬機器的步驟

在Proxmox VE複製虛擬機器的步驟,我個人看來是有三步:1. 準備來源虛擬機器、2. 備份(匯出)、3. 還原(匯入)、4. 設定新建立的虛擬機器。以下介紹各步驟的作法。

1. 準備來源虛擬機器

image

在進行複製之前,你必須先準備一台虛擬機器。

你需要注意的設定有兩點:

  1. VMID:這台虛擬機器的ID。
  2. 虛擬化技術:OpenVZ容器虛擬化技術或是KVM全虛擬化技術。

要注意的是,OpenVZ跟KVM的操作方式都有一些不同,請依據你使用的技術選擇正確的指令。

image

確定了你要備份的虛擬機器之後,請先將該虛擬機器關機,以便進行接下來的備份動作。

2. 備份(匯出)虛擬機器

儘管Proxmox VE有提供排程備份的功能,但在這邊我們選擇使用指令列的方式來進行備份。

2011-11-19_180900 ssh - mask

在Proxmox VE安裝完成之後,我們就可以用SSH連進去。我通常使用的SSH連線軟體是PieTTY,預設連接埠22,登入帳號是root與安裝時使用的密碼。

現在要開始執行備份的指令。假設你的虛擬機器的VMID是165,暫存目錄擺在「/tmp」底下,不論是OpenVZ還是KVM,備份的執行指令如下:

proxmox:~# vzdump --dumpdir /tmp --compress 165

備份需要花點時間等待,請耐心等候吧。

image

備份完成之後,就會顯示上述訊息。備份VM 165總共花了7分鐘,備份檔案大小為1.54GB,備份檔案的路徑為「/tmp/vzdump-qemu-165-2011_11_19-18_36_22.tgz」。請記得備份檔的路徑,待會還原時會再使用。

因為我這個VM 165是Windows XP系統,所以備份起來檔案頗大。如果是OpenVZ的話,基本的作業系統通常不會超過300MB。

2011-11-19_194353 download backup - mask

如果有需要的話,你也可以在/tmp目錄中下載該備份檔喔。

3. 還原(匯入)虛擬機器

接下來的步驟中,就要依照該虛擬機器使用的技術,選擇相對應的還原指令了。

以KVM為例,剛剛的備份檔的路徑為「/tmp/vzdump-qemu-165-2011_11_19-18_36_22.tgz」,如果你想要以此建立一臺新的虛擬機器,VMID編號為170(編號必須為100~999之間,而且此編號不能先被佔用喔),那麼請使用qmrestore指令:

proxmox:~# qmrestore /tmp/vzdump-qemu-165-2011_11_19-18_36_22.tgz 170

如果你剛剛備份的是OpenVZ檔案,則檔案的名稱會有所不同(雖然依然是用vzdump指令)。假如現在有個OpenVZ備份檔的路徑為「/tmp/vzdump-openvz-350-2011_10_28-02_25_51.tgz」,你想要以此建立一臺新的虛擬機器,VMID編號為170,那麼請使用vzrestore指令:

proxmox:~# vzrestore /tmp/vzdump-openvz-350-2011_10_28-02_25_51.tgz 170

2011-11-19_200227 qmrestore - mask

還原指令執行時,會出現上圖的訊息,這是以qmrestore還原KVM備份檔的結果。

2011-11-19_200613 list

還原成功之後,你就可以在Proxmox VE網頁管理介面看到該虛擬機器了。

4. 設定新建立的虛擬機器

image

設定完成之後,你最好先調整一下其他參數再來使用,特別是網路IP的設定、Hostname主機名稱等等。以免直接開啟新建立的虛擬機器時,造成與來源的虛擬機器相衝的問題喔。

image

設定好之後就開啟來使用吧,這又是一個跟來源一樣的Windows XP虛擬機器囉。


結語

用複製的方式建立虛擬機器有幾個缺點,像是管理者密碼不能在建立時供人自訂(但還是可以建立完之後再修改,如上述的第四步驟)、虛擬機器的備註(Notes)與網路等各種設定都會被複製過去,讓人覺得這並不是一個「全新」的機器。

不過換個角度來看,如果只是在組織內部複製虛擬機器而不需要供外界使用的話,保持相同的帳號與密碼,說不定這樣還比較方便管理呢。

有時間的話,我也想建立真正的「虛擬應用樣板」。但那就改天再說吧。

總共1 則留言, (我要發問)

  1. 多年後回來看到這篇,還是覺得蠻實用的,不錯。

    回覆刪除

留言工具: