我們使用 Proxmox KVM 工作很長時間了。堅持使用它是因為它是開源的並且任何人都可以免費使用它。最近將一些 KVM 虛擬機器移至我新建的 Proxmox 伺服器上。如您所知,Proxmox 是一個基於 KVM 本身的虛擬化管理程序,而且它是免費的。如果您願意,您只需支付支援費用。
如果我需要將虛擬機從一台 KVM 伺服器複製/移動到另一台 KVM 伺服器,我通常會取出虛擬機的 qcow2 映像並使用該映像建立一個新虛擬機,這非常簡單。
最初,當我嘗試將 KVM 虛擬機器移至 Proxmox 伺服器時,我認為這會是小菜一碟,而且我可以輕鬆地在 Proxmox 中使用 QCOW2 映像建立虛擬機器。然而,預設情況下,Proxmox 中沒有像 KVM 那樣從虛擬硬碟導入 VM 的選項。預設選項是僅使用 ISO 映像並從中啟動。這裡的挑戰是我來自網路背景。如果我想啟動任何虛擬防火牆或網路設備,它們中的大多數都不以 iso 格式提供。它主要以虛擬硬碟格式提供,例如 QCOW2、OVA、VHD 等。
要在Proxmox中使用KVM虛擬硬碟(qcow2)作為VM硬碟,需要在Proxmox伺服器上進行一些變更才能成功載入KVM VM。
在本部落格中,我們將使用 qcow2 映像安裝 Proxmox 虛擬機器。安裝完成後,您應該能夠登入虛擬機器並開始使用它。我在這裡提到的步驟非常簡單。
在開始之前,您需要:
- 運行 Proxmox 的伺服器。
- qcow2 映像 – 我們使用從 KVM 伺服器匯出的 Ubuntu KVM VM qcow2 虛擬硬碟。任何其他 qcow2 影像都可以正常運作。
目錄
1.將Qcow2鏡像導入Proxmox伺服器。
您可以將 qcow2 檔案匯入到任何目錄。我將把 qcow2 鏡像移到 Proxmox 伺服器目錄 –**/var/lib/vz/template/qemu**
使用 KVM 的 SCP 命令,我已經傳輸了檔案。
**scp ubuntu.qcow2 root@10.1.40.10:/var/lib/vz/template/qemu**
如果您沒有直接 SCP 存取權限,您可以使用 Filezilla 或 WinSCP 軟體傳輸檔案。
正如你所看到的,Ubuntu.qcow2鏡像現在已經在目錄中可用了,大小為21GB。
2. 建立一個沒有作業系統的虛擬機器。
讓我們繼續在 Proxmox 中建立一個虛擬機,而不指定作業系統。
點選建立虛擬機器。
在一般屬性中;
節點:指定節點。
VM ID:它將自動建立。
名稱:提供一個有意義的名稱。
作業系統配置。
在作業系統配置中,預設會選擇「使用 CD/DVD 磁碟映像檔(iso)」。
我們現在不指定作業系統,因此選擇「不使用任何媒體」。
來賓作業系統:
根據您要安裝的作業系統,您需要選擇類型和版本。
由於我安裝的是基於Linux的Ubuntu,所以我選擇Linux,版本為5.x
將系統設定保留為預設值,然後按一下「下一步」。
新增/刪除虛擬硬碟。
虛擬硬碟選擇中會預設建立一個32GB儲存的預設硬碟。如果 qcow2 映像上有足夠的儲存空間,則無需新增此虛擬硬碟。由於我需要更多儲存空間,因此我將保留整個 32 GB。
將匯流排/裝置變更為 VirtIOBlock。
根據您的儲存要求,您可以在此處增加、減少甚至刪除儲存。添加qcow2鏡像後,您將擁有兩個虛擬硬碟。第一個是您在此處新增的,第二個是我們匯入的 qcow2 映像。
配置CPU。
依作業系統需求配置 CPU。
我提供 2 個 CPU。
內存配置。
最後,所需的記憶體取決於您的作業系統。您可以提供建議的記憶體大小,然後按一下下一步。
選擇您的網路並點擊下一步。
您將看到使用 ID 107 建立的新虛擬機器。
3. 將 qcow2 鏡像匯入 Proxmox 中的虛擬機器。
我們現在將匯入 qcow2 映像作為 Proxmox 的虛擬硬碟。
登入Proxmox CLI並切換到我們匯入的qcow2鏡像目錄。
root@prxmx-ve-01:/# cd /var/lib/vz/template/qemu/
root@prxmx-ve-01:/var/lib/vz/template/qemu# pwd
/var/lib/vz/template/qemu
root@prxmx-ve-01:/var/lib/vz/template/qemu# ls -l -h
total 21G
-rw------- 1 root root 21G Apr 1 22:38 ubuntu.qcow2
root@prxmx-ve-01:/var/lib/vz/template/qemu#
發出以下指令將 qcow2 虛擬硬碟匯入至新建立的虛擬機器。
qm importdisk 107 ubuntu.qcow2 local-lvm
提示:您可以在輸入指令時使用 Tab 鍵。例如,匯入磁碟後,當我點擊選項卡時,我可以看到 Proxmox 中存在的所有 VMID。
此導入虛擬硬碟將花費一些時間,具體取決於 qcow2 映像的大小。對我來說,導入 21 GB 的 qcow2 鏡像,只花了 1 分 3 秒。
root@prxmx-ve-01:/var/lib/vz/template/qemu# qm importdisk 107 ubuntu.qcow2 local-lvm
importing disk 'ubuntu.qcow2' to VM 107 ...
Logical volume "vm-107-disk-1" created.
transferred 0.0 B of 20.0 GiB (0.00%)
transferred 206.8 MiB of 20.0 GiB (1.01%)
transferred 411.6 MiB of 20.0 GiB (2.01%)
.
.
.
transferred 19.9 GiB of 20.0 GiB (99.58%)
transferred 20.0 GiB of 20.0 GiB (100.00%)
transferred 20.0 GiB of 20.0 GiB (100.00%)
Successfully imported disk as 'unused0:local-lvm:vm-107-disk-1'
root@prxmx-ve-01:/var/lib/vz/template/qemu#
4. 將新新增的虛擬硬碟附加到VM。
儘管您可以在 CLI 上進行更改,但我們將在 GUI 中進行以下更改。
登入 Proxmox 伺服器 Web GUI。
選擇步驟2中建立的虛擬機器。
按一下硬體
您將看到新匯入的 qcow2 映像為 Unused disk 0。
雙擊未使用的磁碟 0,或選擇該磁碟並按一下「編輯」。
您將看到一個彈出視窗以新增新的虛擬硬碟。
預設情況下,它選擇 SCSI 作為總線/設備類型。我們需要將其更改為 VirtIO 區塊以獲得更好的效能。其餘一切,保留預設值,然後按一下「新增」。
您將看到在第一個虛擬硬碟旁邊新增了一個容量為 20GB 的新硬碟。
就我而言,我在 KVM 中定義了 20GB 存儲,Proxmox 也保留了相同的存儲空間,這應該不錯。
5. 更改引導順序。
為了讓Proxmox從新加入的qcow2到儲存啟動,我們需要在啟動順序中定義它。
選擇虛擬機器 → 選項 → 選擇啟動順序,然後按一下編輯。
從預設順序更改為以下順序。
新的虛擬硬碟應該是主啟動設備,選擇新添加的虛擬硬碟virtio1,點擊漢堡包圖示拖曳到頂部,點擊Ok。
6. 從導入的 QCOW2 映像引導 VM。
您可以繼續選擇虛擬機,然後按一下控制台並啟動虛擬機。
我們已經成功啟動到 Ubuntu 機器,我們使用 qcow2 映像從 KVM 匯入機器。
結論
現在您可以按照本文操作並匯入基於 QCOW2 格式的任何設備。導入後,它將正常工作,就像您在 Proxmox 伺服器中使用 iso 安裝的任何其他虛擬機器一樣。