在 RHEL 9.4 上配置 ARM64 虚拟机

概述

在 RHEL 9.4 上配置 ARM64 虚拟机可以帮助用户在物理服务器上模拟 ARM64 环境,用于测试和开发适用于 ARM64 架构的软件。详细介绍了如何在 RHEL 9.4 系统上配置和运行 ARM64 虚拟机的过程。

范围

适用于在 RHEL 9.4 系统上需要模拟 ARM64 虚拟机环境的技术人员。主要涉及 QEMU、KVM 和相关工具的安装与配置。

职责

  • 系统管理员:负责确保系统已安装必要的软件包,并具备运行虚拟机的权限。
  • 操作员:按照正确配置和运行 ARM64 虚拟机。

要求

  • 运行 RHEL 9.4 操作系统的物理服务器或虚拟主机。
  • 基本的命令行操作知识。
  • 具备 sudo 或 root 权限。
  • 有效的互联网连接以下载必要的软件包和工具。

过程

1. 系统环境准备

1.1 更新系统软件包列表

  • 在进行软件安装前,先确保系统软件包是最新的。
    1
    sudo dnf update -y

1.2 安装 QEMU、KVM 和相关工具

  • 使用 dnf 安装 QEMU 和 KVM 以及相关的虚拟化管理工具:
    1
    2
    sudo dnf install qemu-kvm qemu-img libvirt virt-install virt-manager -y
    sudo dnf install libguestfs-tools -y # 用于管理虚拟机磁盘镜像

1.3 启动并启用 KVM 和 Libvirt 服务

  • 确保 KVM 和 Libvirt 服务已启动并运行:
    1
    2
    sudo systemctl start libvirtd
    sudo systemctl enable libvirtd

1.4 检查 KVM 是否已启用

  • 使用以下命令检查 KVM 是否正常启用(有些情况下虽然没有列出KVM,但是仍然是支持的):
    1
    sudo lsmod | grep kvm
  • 如果输出中包含 kvmkvm_intelkvm_amd,则表示 KVM 已正确启用。
  • 实际测试,不包含kvm也可以使用,具体问题具体分析。

2. 获取和准备 ARM64 镜像

2.1 下载 RHEL 9.4 ARM64 操作系统镜像

  • 从 Red Hat 官方网站或客户门户下载 RHEL 9.4 ARM64 ISO 镜像。确保您有适当的订阅以访问镜像。

2.2 创建虚拟机磁盘镜像

  • 使用 qemu-img 创建虚拟机磁盘镜像:
    1
    qemu-img create -f qcow2 rhel9-arm64.qcow2 20G
  • 解释:
    • -f qcow2:指定磁盘镜像格式为 QCOW2。
    • 20G:设置磁盘大小为 20GB。

3. 创建和配置 ARM64 虚拟机

3.1 启动虚拟机并进行安装

  • 使用以下命令启动虚拟机,并从 ISO 镜像进行安装:
    1
    sudo virt-install --name myvm --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/myvm.qcow2,size=20  --os-variant rhel9.4 --network bridge=virbr0 --graphics none --console pty,target_type=serial --cdrom /path/to/your/iso/file.iso
  • 解释:
    • virt-install:命令行工具,用于创建新的虚拟机。
    • --name myvm:指定虚拟机的名称为 myvm。这个名称将用于管理和识别该虚拟机。
    • --ram 2048:分配给虚拟机的内存大小,以 MB 为单位。这意味着为虚拟机分配了 2048 MB(2 GB)的内存。
    • --vcpus 2:指定虚拟机的虚拟 CPU 数量为 2 个。这决定了虚拟机可以使用的 CPU 核心数。
    • --disk path=/var/lib/libvirt/images/arm64vm.qcow2,size=20:path=/var/lib/libvirt/images/arm64vm.qcow2:定义虚拟机的磁盘映像文件路径和文件名。此文件将存储虚拟机的虚拟硬盘。
    • size=20:为虚拟机的磁盘分配 20 GB 的存储空间。
    • --os-variant generic:指定操作系统的具体版本或变体为 generic,即通用版本。这意味着该配置适用于多种 Linux 发行版。可以使用 osinfo-query os 命令查看可用的具体操作系统变体。
    • --arch aarch64:指定虚拟机的架构为 ARM64(aarch64)。这意味着虚拟机将仿真或使用 ARM64 架构的硬件。
    • --machine virt:指定虚拟机的机器类型为 virt,这是 QEMU 用于 ARM 仿真的通用机器类型,适用于多种 ARM64 设备。
    • --network bridge=virbr0:将虚拟机连接到名为 virbr0 的桥接网络接口。这允许虚拟机与主机及网络中的其他设备进行通信。
    • --graphics none:指定虚拟机不使用图形界面(无图形输出),以纯命令行方式运行。这通常用于服务器或嵌入式系统的设置。
    • --console pty,target_type=serial:设置虚拟机的控制台为伪终端(PTY),并将其连接到虚拟机的串行端口。这允许通过命令行的方式直接与虚拟机进行交互。
    • --cdrom /path/to/your/arm64.iso:指定要加载的 ISO 文件路径,这通常是操作系统安装镜像的路径。虚拟机启动时会从这个 ISO 镜像中引导,并开始安装操作系统。
      • 也可以使用图形界面virtual machine manager进行安装

3.2 安装操作系统

  • 当虚拟机启动后,按照屏幕提示安装 RHEL 9.4 操作系统。安装过程与在物理机上的安装类似。

3.3 完成安装后,重启虚拟机

  • 完成安装后,可以使用以下命令进入虚拟机:
    1
    virsh console myvm
    当提示 Escape character is ^] 时,按 Enter 键进入虚拟机的命令行。如果要退出控制台,您可以使用 Ctrl + ]
    1
    reboot
  • 解释:此命令省略了安装 CD-ROM 部分,仅使用已安装的磁盘镜像启动虚拟机。

4. 维护与管理 ARM64 虚拟机

4.1 快照管理

  • 使用 qemu-img 管理虚拟机快照,便于恢复到之前的状态:
    1
    2
    3
    qemu-img snapshot -c snap1 rhel9-arm64.qcow2  # 创建快照
    qemu-img snapshot -l rhel9-arm64.qcow2 # 列出所有快照
    qemu-img snapshot -a snap1 rhel9-arm64.qcow2 # 恢复到快照

4.2 备份虚拟机

  • 通过复制 QCOW2 镜像文件来备份虚拟机:
    1
    cp rhel9-arm64.qcow2 rhel9-arm64-backup.qcow2

4.3 调整虚拟机资源

  • 停止虚拟机后,可以编辑启动命令来调整虚拟机的 CPU 和内存分配,以满足不同的测试需求。

5. 常见问题与故障排除

5.1 虚拟机性能较差

  • 如果发现虚拟机性能较差,可以考虑增加分配给虚拟机的 CPU 核心和内存,或启用 KVM 加速(如果支持)。

5.2 无法启动虚拟机

  • 检查启动命令中的文件路径和参数是否正确,确保 BIOS 和磁盘镜像文件存在且可访问。

参考文献