Skip to content

虚拟化平台指南:使用 KVM 和 QEMU

本指南将带您了解如何在 Debian 服务器上搭建一个基于 KVM (Kernel-based Virtual Machine) 的强大虚拟化环境。KVM 是集成在 Linux 内核中的虚拟化解决方案,它利用 CPU 的硬件虚拟化扩展(如 Intel VT-x 或 AMD-V),可以提供卓越的性能。我们将结合 QEMU (一个模拟和虚拟化软件) 和 libvirt (一个管理工具套件) 来创建和管理全功能的虚拟机。

为什么选择 KVM?

  • 高性能: 作为内核级虚拟化技术(Type 1 Hypervisor),其性能非常接近物理机。
  • 成本效益: 完全开源免费,无需昂贵的许可费用。
  • 成熟稳定: KVM 是许多大型云平台(如 OpenStack)和企业虚拟化解决方案的基石。
  • 与 Linux 生态无缝集成: 可以充分利用 Linux 的所有功能,如网络、存储和安全模型。

步骤 1: 检查硬件兼容性

在安装之前,必须确认您的 CPU 支持硬件虚拟化。

bash
# 检查 CPU 是否有 vmx (Intel) 或 svm (AMD) 标志
egrep -c '(vmx|svm)' /proc/cpuinfo

如果输出结果是 1 或更大的数字,说明您的 CPU 支持硬件虚拟化。如果结果是 0,您将无法使用 KVM,需要先在服务器的 BIOS/UEFI 中启用虚拟化技术(通常称为 VT-x, an-V, 或 Virtualization Technology)。

您也可以安装一个工具来检查:

bash
sudo apt-get install cpu-checker
sudo kvm-ok

如果一切正常,您会看到 "KVM acceleration can be used" 的提示。


步骤 2: 安装 KVM 及相关软件包

我们需要安装 QEMU、KVM、libvirt 管理守护进程和一些虚拟机管理工具。

bash
sudo apt-get update
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-install
  • qemu-kvm: QEMU 和 KVM 的核心包。
  • libvirt-daemon-system: 运行 libvirt 守护进程。
  • libvirt-clients: 提供用于管理虚拟机的客户端工具,如 virsh
  • bridge-utils: 用于创建和管理桥接网络。
  • virt-install: 一个用于通过命令行创建虚拟机的便捷工具。

安装完成后,将您的当前用户添加到 libvirtkvm 用户组,这样您就可以在不使用 sudo 的情况下管理虚拟机。

bash
sudo adduser `id -un` libvirt
sudo adduser `id -un` kvm

重要: 您需要注销并重新登录,以使用户组的更改生效。


步骤 3: 使用 virt-install 创建虚拟机

现在,我们将通过命令行创建一个新的 Debian 12 虚拟机。virt-install 支持多种安装方式,这里我们使用网络安装,它会自动从 Debian 官方镜像源下载安装所需的文件。

bash
virt-install \
--name=debian12-vm \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/debian12-vm.qcow2,size=20 \
--os-variant=debian12 \
--network network=default \
--graphics none \
--console pty,target_type=serial \
--location='http://deb.debian.org/debian/dists/bookworm/main/installer-amd64/' \
--extra-args='console=ttyS0,115200n8 serial'
  • --name: 虚拟机的名称。
  • --ram: 分配的内存大小(单位 MB)。
  • --vcpus: 分配的虚拟 CPU 核心数。
  • --disk: 定义虚拟磁盘。path 是镜像文件路径,size 是大小(单位 GB)。
  • --os-variant: 操作系统变体,有助于 libvirt 优化虚拟机配置。
  • --network: 连接到名为 default 的默认 NAT 网络。
  • --graphics none: 表示我们不使用图形界面,通过纯文本控制台进行安装。
  • --console: 设置串行控制台,以便我们在终端中看到安装过程。
  • --location: 指定网络安装源的 URL。
  • --extra-args: 向内核传递额外参数,以确保安装程序的输出重定向到我们的串行控制台。

执行此命令后,安装过程将直接在您当前的终端窗口中启动。您需要像在物理机上一样,完成 Debian 的标准安装步骤(语言、时区、分区、设置用户等)。


步骤 4: 使用 virsh 管理虚拟机

virsh 是一个强大的命令行工具,用于管理虚拟机和虚拟化主机。

bash
# 列出所有正在运行的虚拟机
virsh list

# 列出所有虚拟机 (包括已关闭的)
virsh list --all

# 启动虚拟机
virsh start debian12-vm

# 正常关闭虚拟机
virsh shutdown debian12-vm

# 强制关闭虚拟机 (类似拔掉电源)
virsh destroy debian12-vm

# 连接到虚拟机的控制台
virsh console debian12-vm

要退出 virsh console,请按 Ctrl + ]


(可选) 图形化管理

如果您在带有桌面环境的机器上操作,或者可以远程 X11 转发,您也可以使用图形界面的 virt-manager

bash
sudo apt-get install virt-manager

运行 virt-manager 将为您提供一个易于使用的图形界面来创建、管理和监控您的所有虚拟机。