:第三章 搭建獨立的KVM虛擬化

在第二章,你瞭解了KVM的內部結構;在本章中,您將瞭解如何將Linux服務器設置爲虛擬化主機。咱們正在討論將KVM用於虛擬化並將libvirt做爲虛擬化管理引擎。前端

KVM開啓了虛擬化並利用你的服務器或工做站來運行虛擬機。從技術術語來講,KVM是一組針對具有虛擬化擴展的x86架構硬件的內核模塊;被加載後,它能夠將Linux服務器轉化爲虛擬化hypervisor。可加載模塊包括kvm.ko,它提供了核心虛擬化功能,以及一個處理器相關的模塊,如kvm-intel.ko或者kvm-amd.ko。node

NOTE:根據https://en.wikipedia.org/wiki/Hypervisor。hypervisor/VMM是一種計算機軟件、固件或硬件,用來建立和運行虛擬機。python

要啓動虛擬機,僅僅加載KVM模塊還不夠。您須要emulator來模擬虛擬機的外圍硬件設備。下面是介紹QEMU的時間。es6

QEMU是一個開源機器仿真軟件。這個模擬器將幫助您在一個架構上運行爲另外一種架構設計的的操做系統。例如,QEMU 能夠在x86平臺上運行爲ARM平臺設計的操做系統。然而,這裏有一個問題。因爲QEMU使用二進制轉譯(一種用於在主機上執行虛擬機指令的技術),所以VM運行會比較緩慢。shell

若是QEMU運行緩慢,那它如何能以接近物理機的速度運行基於KVM的虛擬機呢?KVM開發人員考慮到了這個問題,並修改了QEMU做爲解決方案。這個修改後的QEMU被稱爲QEMU-KVM,它能夠直接與KVM模塊交互,並在不使用動態轉譯的狀況下,直接在CPU上執行指令。簡而言之,咱們使用qemu-kvm來運行基於KVM的虛擬機。後端

是否是越聽越迷糊了?若是qemu-kvm能夠運行虛擬機,那麼爲何還須要libvirt。答案很簡單,libvirt管理qemu-kvm,qemu-kvm運行KVM虛擬機api

NOTE:qemu-kvm已經棄用,如今全部的代碼都已經與qemu-system-x86_64合併了。爲了便於理解,咱們仍是使用qemu-kvm。一些Linux發行版仍然帶有qemu-kvm。服務器

閒話少說,讓咱們看看這一章將討論什麼話題:網絡

  • 介紹libvirt
  • libvirt管理工具
  • 硬件組裝建議

熟悉libvirt

libvirt是一組位於最終用戶和hypervisor之間的API。hypervisor能夠基於任何libvirt支持的虛擬化技術來構建。截至此文成稿時,libvirt支持下列hypervisor:架構

  • The KVM/QEMU Linux hypervisor
  • The Xen hypervisor on Linux and Solaris hosts
  • The LXC Linux container system
  • The OpenVZ Linux container system
  • The User Mode Linux paravirtualized kernel
  • The VirtualBox hypervisor
  • The VMware ESX and GSX hypervisors
  • The VMware Workstation and Player hypervisors
  • The Microsoft Hyper-V hypervisor
  • The IBM PowerVM hypervisor
  • The Parallels hypervisor
  • The Bhyve hypervisor

libvirt是一個透明層,它接受用戶的命令,根據底層虛擬化技術修改它們,而後在hypervisor上執行它們。這意味着,若是您知道如何使用基於libvirt的管理工具,您就可以管理前面提到的hypervisor,而不須要一一瞭解它們。您能夠選擇任何虛擬化管理技術。他們都使用libvirt做爲後端基礎設施管理層,儘管前端工具看起來不一樣;例如,oVirt、RHEV(Red Hat企業虛擬化技術)、OpenStack、Eucalyptus等。這本書是關於KVM libvirt及其工具的。

在下面的圖中,咱們將總結這些全部的東西是如何鏈接的:

Libvirt將負責存儲、網絡和虛擬硬件需求,以啓動虛擬機和VM生命週期管理。

這裏演示了使用libvirt啓動VM是多麼容易。在這裏,咱們使用virsh啓動一個名爲TestVM的VM。

# virsh start TestVM

NOTE:virsh是與libvirt服務交互的CLI命令行,而virt-manager是它的GUI前端。稍後,您將在本書中瞭解更多有關這些工具的知識。

在後端,你能夠看到libvirt搭配一系列參數初始化qemu進程:

# qemu-system-x86_64 -machine accel=kvm -name TestVM -S -machine pc-i440fx-1.6,accel=kvm,usb=off -m 4000 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 39ac4786-1eca-1092-034c-edb6f93d291c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/TestVM.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/dev/vms/TestVM,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -netdev tap,fd=27,id=hostnet0,vhost=on,vhostfd=28 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:a5:cd:61,bus=pci.0,addr=0x3,bootindex=1 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 127.0.0.1:2 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

NOTE:在介紹libvirt的同時,咱們有意避免提到libvirt的不少特性。這樣作是爲了使概念更加清晰,並將重點放在libvirt的關鍵功能上。當你學完這些章節,你將徹底掌握這些功能特性。

如今,您已經熟悉了使用基於KVM的虛擬化所需的關鍵內容。在咱們學習如何搭建環境以前,咱們應該先了解一下系統需求。

Host系統需求

虛擬機須要分配必定數量的CPU、內存和存儲。這意味着您計劃在該主機上運行的虛擬機的數量決定了KVM hypervisor的硬件需求。

讓咱們從最低需求開始,在KVM上啓動兩個簡單的虛擬機,每臺756 MB內存:

  •  Intel或AMD 64-bit CPU,擁有虛擬化擴展(Intel VT-x或者AMD-v)
  • 2GB 內存
  • 安裝Linux系統後,在KVM hypervisor上有8 GB的空閒磁盤空間
  • 100 Mbps網絡鏈接

NOTE:咱們使用Fedora 21演示書中的例子。儘管如此,你也可使用其餘支持KVM和libvirt的Linux發行版(Ubuntu,Debian,CentOS或其餘)。咱們假設您已經安裝了Fedora 21或其餘Linux發行版,完成了包括網絡在內的全部設置。

肯定適合您環境的系統需求

這是一個很是重要的階段,咱們須要把它作好。擁有正確的系統配置是虛擬機得到近似原生性能的關鍵。讓咱們從CPU開始。

1. 物理CPU

Intel或AMD 64-bit CPU,擁有虛擬化擴展(Intel VT-x或者AMD-v)。

爲了肯定您的CPU是否支持虛擬化擴展,您能夠檢查如下標誌:

# grep --color -Ew 'svm|vmx|lm' /proc/cpuinfo
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi flexpriority ept vpid

svm標誌意味着CPU支持AMD-v,vmx標誌意味着CPU支持VT-x,lm意味着CPU支持64位。

若是您的CPU支持虛擬化擴展,那麼您的系統可能已經準備好承載KVM虛擬機了。您還會注意到,無需額外的配置,對應的KVM模塊就會自動加載。爲了驗證模塊是否已加載,可使用如下命令:

# lsmod | grep kvm
kvm_intel           148081  9
kvm                 461126  1 kvm_intel

若是系統是AMD,你會看到kvm_amd而不是kvm_intel。

若是您沒有看到前面的CPU標誌,或者全部KVM模塊都沒有加載,可是您肯定系統支持虛擬化擴展,能夠嘗試如下排障步驟:

  1. 從新系統並進入BIOS。
  2. 進入CPU高級選項。啓用Intel Virtualization Technology或Virtualization Extensions。對於AMD來講,應該是默認啓用的。確切的描述可能會根據您的BIOS不一樣而有所不一樣。
  3. 重啓主機。
  4. 您如今應該看到加載的KVM模塊。若是您仍然沒有看到它們的加載,那麼嘗試手動加載它們。# modprobe kvm kvm_intel or modprobe kvm kvm_amd
  5. 若是您可以手動加載它們,但它們仍然不能正常工做,那麼應該聯繫您的硬件供應商,或者仔細檢查Intel或AMD各自產品頁面的處理器細節。

除了虛擬化擴展以外,您可能還須要在BIOS中啓用Intel VT-d或AMD IOMMU(AMD-Vi)。這是將PCI設備直接分配給虛擬機所須要的,例如,將物理網絡接口卡(NIC)從hypervisor分配給虛擬機;咱們將在接下來的章節中詳細介紹這些內容。

2. CPU CORES

若是你計劃運行服務器級別的虛擬機,那麼推薦一個core對應一個vCPU。在計算core數時,不要在Intel CPU上計算 超線程core,而是隻計算實際core。固然,你能夠超過實際core數超量分配vCPU,但這會致使性能損失。

若是您計劃運行桌面級的虛擬機或非CPU密集型的虛擬機,那麼您能夠放心地超量分配使用CPU,由於性能要求退居二線,每hypervisor虛擬機運行密度這一指標的優先級高於性能。

NOTE:超量分配的意思是,分配超過實際物理資源的虛擬資源。

單個hypervisor能夠運行多少個VM並無明確的定義。這徹底取決於VM的工做負載類型以及您可以承受多少程度性能降低。若是全部的VM都運行CPU密集型任務,那麼vCPU的超分配就不是個好主意。

TIP:使用lscpu命令查看CPU拓撲。

3. 物理內存

您可使用一個簡單的經驗法則來決定物理節點須要多少內存:將計劃分配給虛擬機的全部內存加相加,併爲hypervisor自己添加額外2GB RAM。

若是您計劃運行內存密集型工做負載,那麼這就是預期的配置。

與CPU類似,KVM也支持內存的超分配。這意味着您能夠冒着內存耗盡的風險,分配更多的內存給VM,而非hypervisor實際擁有的內存。一般這種類型的分配方式適合桌面級別虛擬機或測試虛擬機。

您可使用如下公式來計算可供VM使用的RAM總量(單位GB):

  • 對於擁有64 GB內存的系統:RAM - 2 GB = 可供VM使用的內存總量
  • 對於超過64 GB內存的系統:RAM - (2 GiB + 0.5 *(RAM/64))= 可供VM使用的內存總量

在強制2GB的基礎上,每64GB咱們多分配500 MiB內存給hypervisor。使用這個公式能夠粗略地瞭解有多少內存可供虛擬機使用。在某些工做負載中,您可能不須要超過5 GB的RAM用於hypervisor,即便咱們的公式代表,在擁有1TB內存的系統上您可能須要保留10 GB內存給hypervisor。

4. 存儲

在考慮hypervisor的存儲空間時,您須要考慮OS安裝、SWAP空間和虛擬機磁盤使用所需的空間。

推薦的SWAP空間大小是多少?(hypervisor的SWAP空間)

肯定交換空間大小的理想數值有點複雜。若是您不打算執行任何內存超分策略,那麼您可使用下面oVirt Node的配置建議,它是一個專門用於運行VM的KVM hypervisor:

  • 4GB或者更少,分配2GB SWAP空間
  • 4GB到16GB內存,分配4GB SWAP空間
  • 16GB到64GB內存,分配8GB SWAP空間
  • 64GB到256GB內存,分配16GB SWAP空間

若是您計劃執行內存超分策略,則須要添加額外的交換空間。若是超分比率0.5(即比可用物理RAM多50%),那麼您須要使用如下公式來肯定交換空間大小:

(RAM x 0.5) + SWAP for OS = SWAP space required for overcommitting

舉例,若是你的系統有32 GB內存,你打算實行0.5的超分比例,則須要的交換空間是(32 * 0.5)+ 8 = 24 GB。

虛擬磁盤能夠以文件的方式存儲在本地文件系統(ext3,ext4,xfs等)或者共享文件系統(NFS,GlusterFS等)中。虛擬磁盤也能夠經過塊設備建立,例如LVM、本地磁盤分區、iSCSI磁盤、FC、FCoE等等。簡而言之,您能夠將hypervisor看到的任何塊設備附加到VM上。正如您所猜想的,(虛擬磁盤)空間是由VM須要多少磁盤空間,或者是安裝在上面的應用程序決定的。在存儲中,你也能夠像CPU和內存同樣進行超量分配,可是對I/O負載較重的VM並不推薦。超分的虛擬磁盤稱爲瘦置備磁盤。

關於CPU、內存和存儲超分的進一步說明,將在後面的章節中給出,這些章節涵蓋了虛擬機性能調優的相關內容。

5. 網絡

建議使用至少1 GBps帶寬的網卡來保證平滑的網絡操做,但這徹底取決於你如何配置虛擬網絡基礎設施,和網絡需求根據不一樣的場景的變化。

建議使用Linux bonding技術將多個網絡接口匯聚成一個通道,並基於它來構建VM網絡基礎設施。它將有助於增長帶寬和提供冗餘。

NOTE:bonding mode有好多種,但並不都是支持用來構建虛擬網絡基礎設施。支持的bonding模式有Mode 1 (active-backup),Mode 2 (balance-xor),Mode 4 (802.3ad/LACP)和Mode 5 (balance-tlb);其他的bonding模式都不被支持。Mode 1和Mode 4最推薦和穩定的。

環境搭建

本節將指導你完成虛擬化軟件包安裝的整個過程,從啓動libvirt服務開始,並驗證系統已經準備好使用KVM虛擬化技術來運行虛擬機。

NOTE:咱們假設您有一個Fedora 21系統,它具有圖形用戶界面和Internet鏈接能夠訪問默認的Fedora yum源,並經過它能夠下載所需的KVM虛擬化軟件包。咱們還假設在你服務器的BIOS中已經啓用了虛擬化技術(VT)功能。

要驗證您的系統是否啓用了默認的yum源,可使用yum repolist命令。該命令列出了系統中已定義的yum源:

在輸出中尋找一個名爲Fedora/21/x86-64的repo源。經過這個源你能夠訪問全部KVM虛擬化的軟件包。

1. 安裝虛擬化軟件包

這是將Fedora 21服務器或工做站系統轉換爲虛擬化主機的第一步。你只需以root權限執行 yum install <packages> 命令,<packages> 是空格分割的軟件包包名的列表。

在Fedora 21系統上搭建虛擬化環境所需的最基本的包是libvirt、qemu-kvm和virt-manager。因此你須要執行如下命令:

# yum install qemu-kvm libvirt virt-install virt-manager virt-install -y

有不少依賴包會隨着上述三個包一塊兒安裝,可是你不須要知道或者記住它們的名字,yum 命令會自動檢查依賴併爲你安裝這些軟件包。

yum groupinstall 命令也能夠用於安裝必須和可選的軟件包,用以搭建KVM虛擬化環境:

# yum groupinstall "virtualization" -y

它除了安裝核心的libvirt和qemu-kvm軟件包之外,還會安裝guestfs-browser,libguestfs-tools,python-libguestfs,virt-top,如下是yum groupinfo 「virtuallization」的輸出,供您參考:

#yum groupinfo "virtualization"
Group: Virtualization
 Group-Id: virtualization
 Description: These packages provide a virtualization environment.
 Mandatory Packages:
   +virt-install
 Default Packages:
  libvirt-daemon-config-network
  libvirt-daemon-kvm
  qemu-kvm
   +virt-manager
   +virt-viewer
 Optional Packages:
   guestfs-browser
   libguestfs-tools
   python-libguestfs
   virt-top

目前,咱們建議你使用yum安裝命令安裝核心軟件包,以免任何混淆。後面的章節中,會經過示例和安裝步驟完整地解釋KVM虛擬化的可選實用程序。

2. 啓動libvirt服務

安裝KVM虛擬化軟件包以後,首先要作的是啓動libvirt服務。當你啓動libvirt服務時,它會對外發佈一個應用程序接口(API)與qemu-kvm應用程序進行交互。virsh和virt-manager等客戶端使用這個API與qemu-kvm進行通訊,完成虛擬機生命週期的管理。要啓用和啓動服務,請運行如下命令:

# systemctl enable libvirtd && systemctl start libvirtd

TIP:使用 libvirtd --version 命令查詢libvirt版本。

3. 驗證和了解你係統的virt功能

在建立虛擬機以前,瞭解什麼是virt功能,驗證系統並確保它知足KVM虛擬化主機的全部先決條件是很是重要的。

瞭解這些信息將幫助您規劃虛擬機的數量和系統上能夠承載的配置。有兩個重要的命令能夠幫助驗證KVM的系統配置。讓咱們從virt-host-validate開始:

  • virt-host-validate:以root用戶執行此命令,將執行對KVM功能的完整性檢查,以驗證虛擬化主機是否配置恰當。例如:TestSys1主機安裝有KVM虛擬化全部必需的軟件包,但缺少硬件虛擬化支持。在這種狀況下,它將輸出如下內容:
root@'TestSys1 ~]#virt-host-validate
QEMU: Checking for hardware virtualization                : WARN (Only emulated CPUs are available, performance will be significantly limited)
QEMU: Checking for device /dev/vhost-net                  : PASS
QEMU: Checking for device /dev/net/tun                    : PASS
LXC: Checking for Linux >= 2.6.26                         : PASS
  • 這個輸出清楚地顯示,系統沒有啓用硬件虛擬化,只支持「qemu」模式,它與qemu-kvm相比運行很是慢。

硬件虛擬化支持(hardware virtualization support)幫助KVM(qemu-kvm)虛擬機直接訪問物理CPU,幫助它達到近似原生的性能。硬件支持不存在於單獨的qemu中。

如今讓咱們看看,驗證KVM虛擬化系統時,virt-host-validate命令還檢查了其餘哪些參數:

  • /dev/kvm:KVM驅動在主機上建立了一個/dev/kvm字符設備,幫助虛擬機直接訪問硬件。沒有這個設備意味着VM沒法訪問物理硬件,哪怕它在BIOS中已經啓用,這將大大下降VM的性能。
  • /dev/vhost-net:vhost-net驅動在主機上建立了一個/dev/vhost-net字符設備。這個字符設備是配置vhost-net實例的接口。沒有這個設備會大大下降虛擬機的網絡性能。
  • /dev/net/tun:這是另外一個用來建立tun/tap設備,促進虛擬機網絡聯通性的字符設備。tun/tap設備的詳細內容將在後面的章節說明。就目前而言,你只需理解,擁有一個字符設備對於KVM虛擬化的正常工做很是重要。

在系統上建立虛擬機以前,應始終確保已經經過全部virt-host-validate的完整性檢查。驗證完畢全部參數後,您將在系統上看到如下輸出:

[root@kvmHOST ~]# virt-host-validate
  QEMU: Checking for hardware virtualization                   : PASS
  QEMU: Checking for device /dev/kvm                           : PASS
  QEMU: Checking for device /dev/vhost-net                     : PASS
  QEMU: Checking for device /dev/net/tun                       : PASS
   LXC: Checking for Linux >= 2.6.26                           : PASS
[root@kvmHOST ~]#

第二個命令是virsh。virsh(virtualization shell)是一個命令行接口,用於管理Linux系統上的VM和hypervisor。它使用libvirt管理API,能夠做爲圖形化工具virt-manager和Web化工具kimchi-project的替代選擇。virsh命令是分類隔離的,如下是一些重要的virsh命令分類:

  • Guest管理命令(start,stop)
  • Guest監控命令(memstat,cpustat)
  • Host和hypervisor命令(capabilities,nodeinfo
  • 虛擬網絡命令(net-list,net-define)
  • 存儲管理命令(pool-list,pool-define)
  • 快照命令(create-snapshot-as)

TIP:咱們建議你經過man手冊學習virsh命令,virsh是一個文檔很是完善的命令,能夠經過 # man virsh 查看virsh命令的man手冊。

之因此要在本章中介紹virsh命令,是由於virsh能夠顯示不少關於主機功能的信息,好比主機CPU拓撲、虛擬機可用內存等等。讓咱們看一下virsh nodeinfo命令的輸出,它將提供物理節點的系統資源信息:

#virsh nodeinfo

CPU model:         x86_64
CPU(s):            4
CPU frequency:     2534 MHz
CPU socket(s):     1
Core(s) per socket:  2
Thread(s) per core:  2
NUMA cell(s):      1
Memory size:       7967796 KiB

NOTE:你必須以root權限運行virsh命令。

在virsh nodeinfo輸出中,您能夠看到系統硬件架構、CPU拓撲、內存大小等。顯然,一樣的信息也可使用標準的Linux命令來收集,可是您必須運行多個命令。你可使用這些信息,在硬件資源方面判斷這是否是一臺合適的主機,可供你建立合適的虛擬機。

另外一個重要的命令是 #virsh domcapabilities。該命令顯示了一個XML文檔,描述了主機qemu-kvm的能力和libvirt的版本。瞭解emulator的功能很是有用。它能夠幫助你肯定虛擬機可以使用的虛擬磁盤的類型、可分配的vCPU的最大數量等等。

硬件配置舉例

讓咱們來看看一些常見的硬件配置;virsh命令的domcapabilities選項會顯示主機的功能。您能夠經過解析輸出,找到特定硬件配置的確切支持值,用於虛擬機的設置。如下是你能夠在VM上設置的最大vCPU的值:

[root@kvmHOST ~]# virsh domcapabilities  | grep -i max
  <vcpu max='255'/>
[root@kvmHOST ~]#

根據輸出,在這個主機上,能夠爲虛擬機配置最多255個vCPU:

[root@kvmHOST ~]# virsh domcapabilities  | grep diskDevice -A 5
    <enum name='diskDevice'>
      <value>disk</value>
      <value>cdrom</value>
      <value>floppy</value>
      <value>lun</value>
    </enum>
[root@kvmHOST ~]#

根據輸出,這個主機上,能夠爲虛擬機配置disk,cdrom,floppy和lun類型的設備。

許多物理節點hypervisor的功能經過該命令輸出。檢視全部的功能選項超出本書的目標,所以,您可能想嘗試在你本身的環境中運行這個命令來查看它所輸出的報告。Alternatively, it might be good to link it to a definitive online resource。所以咱們建議你在系統上運行該命令並學習其功能選項。

除了安裝libvirt和qemu-kvm軟件包,咱們還在系統上安裝了virt-manager軟件包。如前所述,virt-manager是一個GUI工具,能夠管理本地或者遠程的hypervisor。如今,在完成本章以前,咱們將向您展現如何啓動virt-manager並將其鏈接到本地KVM hypervisor:

  1. 首先,確保libvirtd服務處於運行狀態,並且已經經過virt-host-validate命令的全部檢查項。
  2. 而後,導航到Menu -- System tools,點擊Virtual Machine Manager
  3. 點擊virt-manager之後,與本地hypervisor(qemu-kvm)鏈接的Virtual Machine Manager圖形工具將被打開,相似下圖:
  4. 假如不能查找並鏈接到本地hypervisor,點擊File菜單,打開Add Connection對話框,填寫鏈接信息:

前面的hypervisor一欄必須從下拉菜單中選擇QEMU/KVM,而後點擊Connect。就是這樣,它將經過libvirt將virt-manager鏈接到本地qemu-kvm hypervisor。若是你須要鏈接到遠程hypervisor,選中Connect to remote host並填寫詳細信息。

若是你的virt-manager成功地鏈接到本地KVM hypervisor,那麼你如今就能夠建立虛擬機了。若是鏈接失敗,請檢查/user-home/.cache/virt-manager/virt-manager.log日誌文件。

概述

在本章中,咱們連帶libvirt管理工具一塊兒,學習了KVM虛擬化。咱們還學習了與KVM和libvirt相關的各類工具,以及使您的系統平穩運行的硬件樣例配置。

在下一章中,你將經過示例瞭解更多關於virsh命令及其語法的知識。您還將學習如何使用virt-manager建立虛擬機。咱們還將詳細解釋virt-manager和virsh命令,並舉例說明如何建立虛擬機。

相關文章
相關標籤/搜索