在现代 IT 基础设施中,虚拟化技术已经成为数据中心和云平台的核心能力。通过虚拟化,企业可以在一台物理服务器上运行多个独立系统,从而提升资源利用率、降低成本并提高运维灵活性。
在开源虚拟化领域,KVM(Kernel-based Virtual Machine) 已成为企业级虚拟化的重要选择,它能够提供接近裸机的性能,同时无需商业授权费用。
本文将从 系统架构、部署步骤、核心命令解析、网络设计、性能优化 等方面,详细讲解如何在 KVM 上部署 Ubuntu 24.04 Server。
Kernel-based Virtual Machine 是 Linux 内核中的虚拟化模块,可以让 Linux 直接充当 Hypervisor(虚拟机监控器)。
简单理解:
物理服务器
│
Linux Kernel
│
KVM + QEMU
│
虚拟机(Ubuntu / Windows / CentOS)
KVM 将 Linux 变成 Type-1 Hypervisor(类似 VMware ESXi)。
核心组件:
| 组件 | 作用 |
|---|---|
| KVM | 提供 CPU 虚拟化能力 |
| QEMU | 提供设备虚拟化 |
| libvirt | 虚拟机管理 API |
| virt-install | 创建虚拟机 CLI |
| virt-manager | GUI 管理工具 |
KVM 在企业环境流行的主要原因:
KVM 是 完全开源的虚拟化技术,无需像 VMware 那样支付许可证费用。
适合:
KVM 利用 CPU 的硬件虚拟化技术:
因此虚拟机性能几乎接近物理机。
许多云平台默认使用 KVM,例如:
KVM 内置 Linux 安全机制:
提供虚拟机隔离和访问控制。
在创建虚拟机前,需要确认宿主机环境。
| 项目 | 建议配置 |
|---|---|
| 操作系统 | Ubuntu / RHEL |
| CPU | 支持 VT-x 或 AMD-V |
| 内存 | ≥16GB |
| 磁盘 | ≥500GB |
| 软件 | KVM + QEMU + libvirt |
egrep -c '(vmx|svm)' /proc/cpuinfo
说明:
| 参数 | 含义 |
|---|---|
| vmx | Intel VT-x |
| svm | AMD-V |
返回值 >0 表示支持虚拟化。
lsmod | grep kvm
如果看到:
kvm_intel
kvm
说明 KVM 已加载。
下载官方 ISO:
sudo wget -O /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso \
https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-live-server-amd64.iso
/var/lib/libvirt/images/
这是 libvirt 默认虚拟机镜像目录。
优点:
核心命令:
sudo virt-install \
--name ubuntu-server \
--description "Ubuntu 24.04 Production Server" \
--memory 8192 \
--vcpus 4 \
--disk path=/var/lib/libvirt/images/ubuntu-server.qcow2,size=100,bus=virtio,format=qcow2 \
--os-variant ubuntu20.04 \
--network network=management,model=virtio \
--network bridge=baremetal,virtualport_type=openvswitch,model=virtio,driver.name=vhost \
--network bridge=isolated01,virtualport_type=openvswitch,model=virtio,driver.name=vhost \
--graphics none \
--console pty,target_type=serial \
--location /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \
--extra-args 'console=ttyS0,115200n8 serial'
--name ubuntu-server
用途:
管理命令:
virsh start ubuntu-server
virsh shutdown ubuntu-server
--description "Ubuntu 24.04 Production Server"
仅用于运维备注。
--memory 8192
单位 MB
表示:
8GB RAM
--vcpus 4
虚拟 CPU 数量。
例如:
物理CPU: 32核心
VM: 4 vCPU
--disk path=/var/lib/libvirt/images/ubuntu-server.qcow2,size=100,bus=virtio,format=qcow2
解释:
| 参数 | 含义 |
|---|---|
| path | 磁盘文件路径 |
| size | 磁盘大小 |
| bus=virtio | 高性能虚拟设备 |
| format=qcow2 | KVM专用格式 |
QCOW2 是 QEMU 的磁盘格式。
优势:
--os-variant ubuntu20.04
用于优化虚拟硬件。
说明:
Ubuntu 24.04 在某些版本 libvirt 还未识别,因此用 20.04。
虚拟机配置 三个网卡:
management
baremetal
isolated01
作用:
| 网络 | 用途 |
|---|---|
| management | 管理网络 |
| baremetal | 生产网络 |
| isolated01 | 隔离网络 |
virtualport_type=openvswitch
使用:
Open vSwitch
它是 软件定义网络交换机(SDN)。
优势:
model=virtio
VirtIO 是虚拟化优化驱动。
优势:
--graphics none
意思:
不用 VNC GUI。
改用:
Serial Console
好处:
--console pty,target_type=serial
作用:
通过 串口连接 VM 控制台。
--location ISO,kernel=casper/vmlinuz,initrd=casper/initrd
原因:
Ubuntu Live ISO 需要手动指定内核路径。
--extra-args 'console=ttyS0,115200n8 serial'
意思:
让系统输出到 串口控制台。
虚拟机启动后会进入安装界面。
配置:
English
例如:
IP: 10.10.201.10/16
Gateway: 10.10.0.1
DNS: 8.8.8.8
建议:
username: admin
并启用 SSH Key。
默认使用:
LVM
优点:
ip addr show
ip route
ping google.com
编辑:
/etc/netplan/00-installer-config.yaml
示例:
network:
version: 2
ethernets:
enp1s0:
addresses: [10.10.201.10/16]
gateway4: 10.10.0.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
应用:
sudo netplan apply
virsh vcpupin ubuntu-server 0 4
作用:
把 VM CPU 绑定到物理 CPU。
好处:
修改:
virsh edit ubuntu-server
添加:
<driver name='qemu' type='qcow2' cache='writeback' io='threads'/>
解释:
| 参数 | 作用 |
|---|---|
| cache=writeback | 提高写性能 |
| io=threads | 多线程IO |
<driver name='vhost' queues='4'/>
作用:
启用多队列网络。
企业通常不会手动创建 VM。
可以使用:
例如:
- name: Deploy VM
command: virt-install ...
自动化创建虚拟机。
安装:
sudo apt install virt-top
运行:
virt-top
类似 Linux top,用于查看 VM 资源。
创建快照:
virsh snapshot-create-as ubuntu-server snapshot1
导出配置:
virsh dumpxml ubuntu-server > ubuntu-server.xml
通过 KVM 部署 Ubuntu 24.04 Server 可以构建 高性能、低成本、可扩展的企业虚拟化平台。
这种架构特别适合:
KVM + Ubuntu LTS 的组合,既具备开源生态优势,又能提供稳定的长期支持,是企业级虚拟化的理想选择。



