如果你查字典中的virtualize這個詞,你會發現它的意思是“創建某物的虛擬(而非實際)版本”。在計算機領域,虛擬化這個術語指的是在同一個物理(硬體)系統的頂部,同時運行多個操作系統並使它們相互隔離的可能性,這在虛擬化架構中被稱為宿主。

通過使用虛擬機監控器(也稱為hypervisor),虛擬機器(稱為guests)從基礎硬件獲得虛擬資源(例如CPU、RAM、存儲、網絡接口等)。
有了這一點,很明顯虛擬化的主要優勢之一是節省成本(在設備和網絡基礎設施方面以及在維護工作量方面),以及大幅減少所需的物理空間以容納所有必要的硬件。
由於這個簡單的操作指南無法涵蓋所有虛擬化方法,我建議您參考摘要中列出的文檔,以獲取有關該主題的進一步詳細信息。
請記住,本文旨在作為學習在RHEL 7中使用命令行工具的KVM(基於內核的虛擬機器)的虛擬化基礎知識的起點,而不是對該主題的深入討論。
驗證硬件要求並安裝軟件包
為了設置虛擬化,您的 CPU 必須支援它。您可以使用以下命令來驗證系統是否符合要求:
# grep -E 'svm|vmx' /proc/cpuinfo
在下面的截圖中,我們可以看到當前系統(搭載 AMD 微處理器)支援虛擬化,這由 svm 標示。如果我們使用基於 Intel 的處理器,則在上述命令的結果中將看到 vmx。

此外,您需要在主機的固件(BIOS 或 UEFI)中啟用虛擬化功能。
現在安裝必要的套件:
- qemu-kvm 是一個開源虛擬化程序,為 KVM hypervisor 提供硬體仿真,而 qemu-img 則提供一個用於操作磁碟映像的命令行工具。
- libvirt 包括與操作系統的虛擬化功能交互的工具。
- libvirt-python 包含一個模組,允許使用 libvirt 提供的接口的 Python 應用程序使用。
- libguestfs-tools:用於虛擬機的各種系統管理員命令行工具。
- virt-install:用於虛擬機管理的其他命令行工具。
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install
安裝完成後,確保您啟動並啟用 libvirtd 服務。
# systemctl start libvirtd.service # systemctl enable libvirtd.service
默認情況下,每個虛擬機器只能與同一物理伺服器內的其他虛擬機器和主機進行通信。為了允許客戶端訪問我們 LAN 內的其他設備和互聯網,我們需要在主機中設置一個橋接接口(例如,br0),方法如下:
1.將以下行添加到我們主要網絡介面的配置文件中(很可能是 /etc/sysconfig/network-scripts/ifcfg-enp0s3
):
BRIDGE=br0
2.創建 br0 的配置文件(/etc/sysconfig/network-scripts/ifcfg-br0
),內容如下(請注意您可能需要更改 IP 地址、網關地址和 DNS 資訊):
DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.18 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NM_CONTROLLED=no DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=br0 ONBOOT=yes DNS1=8.8.8.8 DNS2=8.8.4.4
3.最後,在 /etc/sysctl.conf
中啟用封包轉發:
net.ipv4.ip_forward = 1
並將更改加載到當前核心配置中:
# sysctl -p
請注意,您可能還需要告訴 firewalld 允許此類流量通過。請記住,如果需要幫助,您可以參考本系列文章中有關該主題的文章(第 11 部分:使用 FirewallD 和 Iptables 進行網絡流量控制)。
Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/