跳至内容

在 Rocky Linux 上设置 libvirt

简介

libvirt 是一个强大的虚拟化 API,它允许您使用 KVM 作为管理程序,QEMU 作为模拟器,来虚拟化几乎任何您选择的操作系统。

本文档将提供在 Rocky Linux 9 上设置 libvirt 的说明。

先决条件

  • 一台运行 Rocky Linux 9 的 64 位机器。
  • 确保在 BIOS 设置中启用了虚拟化。如果以下命令返回输出,则表示虚拟化已启用。
sudo grep -e 'vmx' /proc/cpuinfo

仓库设置和软件包安装

  • 启用 EPEL (Enterprise Linux 的额外软件包) 仓库
sudo dnf install -y epel-release
  • 安装 `libvirt` 所需的软件包 (如果需要使用 GUI 管理 VM,也可以安装 `virt-manager`)
sudo dnf install -y bridge-utils virt-top libguestfs-tools bridge-utils virt-viewer qemu-kvm libvirt virt-manager virt-install

libvirt 用户设置

  • 将您的用户添加到 `libvirt` 组。这使得您可以以非 root 用户身份管理您的 VM 并使用 `virt-install` 等命令。
sudo usermod -aG libvirt $USER
  • 使用 `newgrp` 命令激活 `libvirt` 组。
sudo newgrp libvirt
  • 启用并启动 `libvirtd` 服务。
sudo systemctl enable --now libvirtd

设置桥接接口以直接访问虚拟机

  • 检查当前正在使用的接口,并记下具有 Internet 连接的主接口。
sudo nmcli connection show
  • 删除连接到 Internet 的接口以及当前存在的任何虚拟桥接连接。
sudo nmcli connection delete <CONNECTION_NAME>

警告

请确保您能够直接访问该机器。如果您是通过 SSH 配置机器,在删除主接口连接后,SSH 连接将被中断。

  • 创建新的桥接连接。
sudo nmcli connection add type bridge autoconnect yes con-name <VIRTUAL_BRIDGE_CON-NAME> ifname <VIRTUAL_BRIDGE_IFNAME>
  • 分配静态 IP 地址。
sudo nmcli connection modify <VIRTUAL_BRIDGE_CON-NAME> ipv4.addresses <STATIC_IP/SUBNET_MASK> ipv4.method manual
  • 分配网关地址。
sudo nmcli connection modify <VIRTUAL_BRIDGE_CON-NAME> ipv4.gateway <GATEWAY_IP>
  • 分配 DNS 地址。
sudo nmcli connection modify <VIRTUAL_BRIDGE_CON-NAME> ipv4.dns <DNS_IP>
  • 添加桥接从属连接。
sudo nmcli connection add type bridge-slave autoconnect yes con-name <MAIN_INTERFACE_WITH_INTERNET_ACCESS_CON-NAME> ifname <MAIN_INTERFACE_WITH_INTERNET_ACCESS_IFNAME> master <VIRTUAL_BRIDGE_CON-NAME>
  • 启动桥接连接。
sudo nmcli connection up <VIRTUAL_BRIDGE_CON-NAME>
  • 将 `allow all` 行添加到 `bridge.conf`。
sudo tee -a /etc/qemu-kvm/bridge.conf <<EOF
allow all
EOF
  • 重启 `libvirtd` 服务。
sudo systemctl restart libvirtd

虚拟机安装

  • 将 `/var/lib/libvirt` 目录及其子目录的所有权设置为您的用户。
sudo chown -R $USER:libvirt /var/lib/libvirt/
  • 您可以使用 `virt-install` 命令在命令行上创建虚拟机。例如,要创建 Rocky Linux 9.5 Minimal VM,可以运行以下命令。
virt-install --name Rocky-Linux-9 --ram 4096 --vcpus 4 --disk path=/var/lib/libvirt/images/rocky-linux-9.img,size=20 --os-variant rocky9 --network bridge=virbr0,model=virtio --graphics none --console pty,target_type=serial --extra-args 'console=ttyS0,115200n8' --location ~/isos/Rocky-9.5-x86_64-minimal.iso
  • 对于那些希望通过 GUI 管理其 VM 的用户,`virt-manager` 是一个完美的工具。

如何关闭虚拟机

  • `shutdown` 命令可以完成此操作。
virsh shutdown --domain <YOUR_VM_NAME>
  • 要强制关闭无响应的 VM,请使用 `destroy` 命令。
virsh destroy --domain <YOUR_VM_NAME>

如何删除虚拟机

  • 使用 `undefine` 命令。
virsh undefine --domain <YOUR_VM_NAME> --nvram
  • 有关更多 `virsh` 命令,请参阅 `virsh` 的 `man` 手册页。

结论

  • libvirt 提供了许多可能性,让您可以轻松地安装和管理您的虚拟机。如果您对此文档有任何进一步的补充或修改建议,作者诚挚地邀请您分享。

作者:Howard Van Der Wal

贡献者:Steven Spencer