# KVM實驗環境準備是怎樣的
## 前言
KVM(Kernel-based Virtual Machine)作為Linux內核原生支持的虛擬化技術,因其高性能、低開銷的特點,已成為企業級虛擬化和云計算平臺的重要基礎。本文將詳細講解如何從零開始搭建KVM實驗環境,涵蓋硬件檢查、軟件安裝、網絡配置等關鍵環節,并附贈常見問題解決方案。
---
## 一、硬件環境準備
### 1.1 CPU虛擬化支持檢查
KVM需要CPU硬件虛擬化擴展支持(Intel VT-x或AMD-V):
```bash
# 檢查CPU標志位
grep -E '(vmx|svm)' /proc/cpuinfo
# 或使用專用工具
sudo apt install cpu-checker
kvm-ok
若無輸出結果,需進入BIOS開啟虛擬化功能
建議配置: - 主機內存 ≥ 8GB(每個虛擬機至少分配1GB) - 剩余磁盤空間 ≥ 50GB(推薦SSD) - 交換分區建議為物理內存的1-1.5倍
推薦使用Ubuntu LTS或CentOS Stream:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# RHEL/CentOS
sudo dnf update -y
完整軟件棧安裝:
# Ubuntu/Debian
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients \
bridge-utils virt-manager ovmf
# RHEL/CentOS
sudo dnf install -y @virtualization virt-install virt-viewer
將當前用戶加入相關用戶組:
sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)
newgrp libvirt # 立即生效
sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd
查看默認虛擬網絡:
virsh net-list --all
virsh net-info default
手動創建橋接接口br0
:
# Ubuntu使用netplan(/etc/netplan/01-netcfg.yaml)
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [enp3s0]
dhcp4: yes
parameters:
stp: true
forward-delay: 4
# 應用配置
sudo netplan apply
# 創建隔離網絡
virsh net-define isolated-network.xml
virsh net-start isolated
virsh net-autostart isolated
sudo mkdir -p /var/lib/libvirt/images
virsh pool-define-as default dir - - - - "/var/lib/libvirt/images"
virsh pool-start default
virsh pool-autostart default
# 創建物理卷
sudo pvcreate /dev/sdb
sudo vgcreate vg_kvm /dev/sdb
# 定義LVM池
virsh pool-define-as lvm_pool logical - - /dev/vg_kvm
virsh pool-build lvm_pool
virsh pool-start lvm_pool
virsh pool-define-as nfs_pool netfs - - nfs.example.com:/path/to/share
virsh pool-build nfs_pool
virsh pool-start nfs_pool
創建CentOS Stream 9虛擬機:
virt-install \
--name=centos9 \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/centos9.qcow2,size=20 \
--os-variant=centos-stream9 \
--network bridge=br0 \
--graphics spice \
--location=https://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/
# 啟用UEFI安全啟動
--boot loader=/usr/share/OVMF/OVMF_CODE.secboot.fd,loader_ro=yes,loader_type=pflash,nvram.template=/usr/share/OVMF/OVMF_VARS.secboot.fd
# 配置TPM2.0(Windows 11必需)
--tpm backend.type=emulator,backend.version=2.0
# 啟用KSM內存合并
echo 1 | sudo tee /sys/kernel/mm/ksm/run
# 配置CPU模式為host-passthrough
virsh edit vm_name
<cpu mode='host-passthrough' check='partial'/>
Q1: 虛擬機啟動報錯”Permission denied”
# 檢查SELinux上下文
sudo restorecon -Rv /var/lib/libvirt/images
Q2: 網絡連接失敗
# 檢查iptables/nftables規則
sudo iptables -L -n -v | grep libvirt
Q3: SPICE連接黑屏
# 修改顯卡配置為QXL
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
</video>
# 創建內部快照
virsh snapshot-create-as vm1 snap1 "First snapshot"
# 查看快照列表
virsh snapshot-list vm1
virt-clone \
--original vm1 \
--name vm2 \
--file /var/lib/libvirt/images/vm2.qcow2
# 修改/etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
auth_tcp = "none"
# 重啟服務
sudo systemctl restart libvirtd
通過本文的詳細指導,您應該已經成功搭建起功能完備的KVM實驗環境。建議通過以下方式進一步探索: 1. 嘗試嵌套虛擬化(在VM中運行KVM) 2. 研究SR-IOV直通技術 3. 集成Ceph分布式存儲 4. 探索libvirt API編程控制
附:推薦學習資源
- 官方文檔:https://libvirt.org/docs.html
- KVM優化指南:https://wiki.qemu.org/Features/TuningGuide “`
該文檔包含完整的技術實現細節,可根據實際環境調整: 1. 代碼塊中的具體路徑參數 2. 網絡配置中的接口名稱 3. 存儲方案根據實際硬件選擇 4. 虛擬機配置參數按需修改
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。