在 DaDesktop 中使用 Virt Manager 建立虛擬機器

介紹

在準備課程時,經常需要在 DaDesktop 內虛擬化一台伺服器,也許同樣地也虛擬化一兩台客戶端機器,可能使用相同的作業系統或是 Windows/Linux 混合環境。

執行「巢狀虛擬機器」可以透過 Virt Manager 或 VirtualBox 進行,當使用 Linux 時可選擇搭配 Vagrant,若 DaDesktop 機器是 Windows 10 則使用 VirtualBox。

DD Machines Nested Virt

經過大量測試後,我們建議優先使用 Virt Manager,因為使用 VirtualBox 會有一些問題;因此目前我們不建議以此方式使用 VirtualBox。

VirtManager 應用程式使用 libvirt 函式庫來提供虛擬機器管理服務。它具備桌面介面,可協助建立、刪除及管理多台虛擬機器。它主要用於 KVM 虛擬機器,但也支援其他虛擬化管理程式,例如 Xen 和 LXC。

Virt Manager 也能與 Vagrant 完美搭配,只需簡單執行以下指令:

apt install vagrant-libvirt

值得注意的是,相較於 VirtualBox,可供 libvirt/kvm 使用的 Vagrant box 數量較少,但可以輕鬆進行轉換以便在 libvirt 上使用,範例如下:

https://medium.com/@gamunu/use-vagrant-with-libvirt-unsupported-boxes-12e719d71e8e
 

使用者介面提供了所有虛擬機器的摘要檢視,包括其狀態、CPU 使用量、執行中虛擬機器的即時效能圖表以及資源使用統計。

如果您過去未曾使用過 Virt Manager,它與 VirtualBox 非常相似,但有以下幾項重要差異。

這是一份關於在 Ubuntu Linux 上使用 virt-manager 的實用指南 - https://www.debugpoint.com/virt-manager/

 

為什麼我應該使用 Virt Manager 而非 Virtualbox?

優點
  1. 效能大幅提升 - Virt Manager 使用 VirtIO 驅動程式來處理儲存、網路和圖形,因此提供更優異的效能。virtio 驅動程式是 KVM 的半虛擬化裝置驅動程式,適用於在 KVM 主機上執行的 Linux 和 Windows 客體虛擬機器。virtio 套件支援區塊(儲存)裝置、網路介面控制器以及圖形。VirtIO 驅動程式是開放原始碼,因此若您的 Linux 發行版尚未預先安裝,也能輕鬆安裝。
  2. 提供更多組態選項
  3. 與 Vagrant 配合良好
  4. VirtualBox 的部分元件並非完全開放原始碼
  5. 每當核心升級時,Virt Manager 不需要像 VirtualBox 那樣重新編譯模組。
  6. VirtualBox 在需要核心升級時有時會出現問題。
缺點
  1. VirtualBox 的學習曲線可能略短
  2. 在 VirtualBox 上設定「主機網路」比設定 NAT 更容易,然而對於大多數網路使用情境而言,兩個系統上的 NAT 都能相當輕鬆地運作。
  3. VirtualBox 可在許多平台上使用,而 Virt Manager 僅適用於 Linux


總而言之,我們認為在 DaDesktop 機器內執行伺服器時,Virt Manager 是較佳的選擇。

 

安裝

由於 libvirt 持續改進,請務必使用最新的非 LTS 版 Ubuntu 或 Debian。

安裝 kvm 和 virt-manager。這些是簡短的安裝說明,但請遵循您所選 DaDesktop 作業系統的最新指南。以下是一份指南 https://www.debugpoint.com/virt-manager/

sudo apt install virt-manager
sudo adduser student libvirt
sudo systemctl restart libvirtd

重新啟動 DaDesktop 機器,然後從應用程式選單執行 Virt Manager

 

組態

  1. 如何匯入或轉換虛擬機器? 雖然可以很輕鬆地建立符合您作業系統與規格需求的虛擬機器,但對於較複雜的設定,通常偏好匯入既有的伺服器或設備虛擬機器組態。這些通常以 VMDK 映像檔提供,可直接加入至 Virt Manager,儘管在目前版本中是否確實可行還不太清楚。若是 VirtualBox 伺服器映像,則無法直接匯入(新增)至 Virt Manager,但可以輕鬆匯出為其他虛擬化格式,例如開放虛擬化格式(.OVF),Virt Manager 可以輕易匯入該格式。或者,如果您有 VmWare Convertor,也可以使用它,或是改用 Virt-V2V https://www.redhat.com/en/blog/importing-vms-kvm-virt-v2v。Qemu-convert 也是一個優秀的開放原始碼工具,可讓不同虛擬機器格式輕鬆轉換。
    若要從 VirtualBox 轉換為 Virt Manager 的 KVM 格式,請遵循以下說明:https://ostechnix.com/how-to-migrate-virtualbox-vms-into-kvm-vms-in-linux/
  2. 在獨立環境中匯入大型檔案的最佳方法。 最近新增了一種方法,可輕鬆地從您的機器上傳檔案到 DaDesktop 機器內

    否則,可以考慮使用雲端檔案工具,例如 Google Drive、Microsoft 365 等。然後可以透過在 DaDesktop 機器內登入這些工具來存取檔案。

  3. 當匯入其他虛擬機器,尤其是來自其他格式時,通常需要變更圖形和/或磁碟類型。  Virt Manager 最棒的一點就是它對 VirtIO 驅動程式提供了非常出色的支援。這些是開放原始碼的全虛擬化驅動程式,相較於原始的磁碟、網路或圖形驅動程式,能提供更優異的效能,且幾乎適用於所有作業系統,包括對客體 Windows 10 機器的卓越支援。如果您的客體作業系統支援這些驅動程式,它們通常是使用 Virt Manager (KVM) 時在相容性與效能方面的首選。https://wiki.archlinux.org/title/Libvirt
  4. 使用 Virt Manager 時的虛擬機器最佳設定 VirtIO 驅動程式目前已內建於幾乎所有開放原始碼伺服器作業系統中,並且可以在 Windows 中輕鬆安裝。一般來說,最佳的驅動程式就是 virtio,但在某些情況下可能會需要使用其他多種類型之一。對大多數網路情境來說,NAT 通常已足夠,除非您需要更複雜的設定,可能需要橋接主機網路,但這通常較難順利運作。 
    https://wiki.manjaro.org/index.php?title=Virt-manager 是一份很棒的入門指南。
    執行 Windows 需要一些額外步驟,並且需要將 VirtIO 驅動程式整合到 Windows 10 ISO 中才能使其開機。
    在選擇硬碟格式時,若追求速度,請使用 .raw 檔案,除非需要快照功能;若是如此,請使用 qcow2 格式,但這會稍微慢一些。
  5. 雖然 Wayland 在大多數情況下作為顯示管理器運作良好,我們建議您目前仍使用 X11。儘管如此,在您自己的特定設定中嘗試 Wayland 可能是值得的,而且各發行版對 Wayland 的支援也日益改善。
  6. 不必費心使用 ksm,因為雖然它能在巢狀環境中運作,也可在 Virt Manager 中使用,但在實務上幾乎沒有差異。
  7. 技術支援 若有需要,在轉換磁碟映像使之可用於 Virt Manager 時,以及為 DaDesktop 課程設定 Virt Manager 時,隨時提供協助。
  8. 磁碟映像檔案在檔案系統中的位置為何?Virt Manager 使用以下位置來儲存映像檔案,但這可進行設定,若有偏好也可以使用其他位置。

    /var/lib/libvirt/images