Linux 虚拟机
当您想要创建 Linux 虚拟机时,请使用您希望在虚拟机上运行的操作系统的模板来创建虚拟机。您可以使用 XenServer 为您的操作系统提供的模板,也可以使用您之前创建的模板。您可以通过 XenCenter® 或 CLI 创建虚拟机。本节重点介绍如何使用 CLI。
注意:
要创建比 XenServer® 支持安装的 RHEL 版本更新的次要更新虚拟机,请完成以下步骤:
- 从最新支持的介质安装
- 使用
yum update更新虚拟机此过程也适用于 RHEL 派生版本,例如 CentOS 和 Oracle Linux。
我们建议您在安装操作系统后立即安装 XenServer VM Tools for Linux。有关详细信息,请参阅安装 XenServer VM Tools for Linux。
创建 Linux 虚拟机的概述如下:
-
使用 XenCenter 或 CLI 为目标操作系统创建虚拟机。
-
使用供应商安装介质安装操作系统。
-
安装 XenServer VM Tools for Linux(推荐)。
-
在虚拟机和 VNC 上配置正确的时间和时区,就像在正常的非虚拟环境中一样。
XenServer 支持将许多 Linux 发行版安装为虚拟机。
警告:
“其他安装介质”模板适用于希望尝试安装运行不受支持的操作系统的虚拟机的高级用户。XenServer 仅测试了运行标准提供的模板所涵盖的受支持的发行版和特定版本。任何使用“其他安装介质”模板安装的虚拟机都不受支持。
有关特定 Linux 发行版的信息,请参阅Linux 发行版安装说明。
支持的 Linux 发行版
有关支持的 Linux 发行版列表,请参阅来宾操作系统支持。
创建 Linux 虚拟机
本节包含通过从物理 CD/DVD 或网络可访问的 ISO 安装操作系统来创建 Linux 虚拟机的过程。
使用 xe CLI 创建 Linux 虚拟机
本节介绍通过从物理 CD/DVD 或网络可访问的 ISO 安装操作系统来创建 Linux 虚拟机的 CLI 过程。
-
从相应的模板创建虚拟机。将返回虚拟机的 UUID:
xe vm-install template=template-name new-name-label=vm-name <!--NeedCopy--> -
(可选)更改虚拟机的引导模式。
xe vm-param-set uuid=<uuid> HVM-boot-params:firmware=<mode> xe vm-param-set uuid=<UUID> platform:device-model=qemu-upstream-uefi xe vm-param-set uuid=<uuid> platform:secureboot=<option> <!--NeedCopy-->mode的值可以是BIOS或uefi,如果您的虚拟机操作系统支持该选项,则默认为uefi。否则,模式默认为BIOS。option的值可以设置为true或false。如果您未指定安全引导选项,则默认为auto。有关详细信息,请参阅来宾 UEFI 引导和安全引导。
-
将虚拟 CD-ROM 添加到新虚拟机:
-
如果要从 CD 或 DVD 安装,请获取 XenServer 主机上物理 CD 驱动器的名称:
xe cd-list <!--NeedCopy-->此命令的结果将为
name-label字段提供类似 SCSI 0:0:0:0 的内容。将此值参数用作
cd-name参数:xe vm-cd-add vm=vm_name cd-name="host_cd_drive_name_label" device=3 <!--NeedCopy--> -
如果您要从网络可访问的 ISO 进行安装,请使用 ISO 库标签中的 ISO 名称作为
cd-name参数的值:xe vm-cd-add vm=vm_name cd-name="iso_name.iso" device=3 <!--NeedCopy-->
-
-
将操作系统安装 CD 插入 XenServer 主机上的 CD 驱动器。
-
使用 XenCenter 或 SSH 终端打开 VM 控制台,然后按照步骤执行操作系统安装。
-
启动 VM。它会直接引导到操作系统安装程序:
xe vm-start uuid=UUID <!--NeedCopy--> -
安装客户机实用程序并配置图形显示。有关详细信息,请参阅 安装适用于 Linux 的 XenServer VM Tools。
使用 XenCenter 创建 Linux VM
-
在 XenCenter 工具栏上,单击“新建 VM”按钮以打开“新建 VM”向导。
“新建 VM”向导允许您配置新 VM,调整 CPU、存储和网络资源的各种参数。
-
选择一个 VM 模板,然后单击“下一步”。
每个模板都包含创建具有特定客户机操作系统 (OS) 和最佳存储的 VM 所需的设置信息。此列表反映了 XenServer 当前支持的模板。
注意:
如果您要在 VM 上安装的操作系统仅与原始硬件兼容,请选中“将主机 BIOS 字符串复制到 VM”框。例如,您可能将此选项用于随特定计算机一起打包的操作系统安装 CD。
首次启动 VM 后,您无法更改其 BIOS 字符串。请确保在首次启动 VM 之前 BIOS 字符串正确无误。
要使用 CLI 复制 BIOS 字符串,请参阅 从经销商选项套件(BIOS 锁定)介质安装 VM。
高级用户可以设置用户定义的 BIOS 字符串。有关详细信息,请参阅 用户定义的 BIOS 字符串。
-
输入新 VM 的名称和可选描述。
-
选择要在新 VM 上安装的操作系统介质源。
从 CD/DVD 安装是入门最简单的选项。
- 选择默认安装源选项(DVD 驱动器)
- 将磁盘插入 XenServer 主机的 DVD 驱动器。
XenServer 还允许您从各种来源(包括预先存在的 ISO 库)获取操作系统安装介质。
要附加预先存在的 ISO 库,请单击 新建 ISO 库 并指明 ISO 库的位置和类型。然后,您可以从列表中选择特定的操作系统 ISO 介质。
-
在 安装介质 选项卡中,您可以为 VM 选择启动模式。默认情况下,XenCenter 会为 VM 操作系统版本选择最安全的可用启动模式。
注意:
- 如果您选择的 VM 模板不支持 UEFI 启动,则 UEFI 启动 和 UEFI 安全启动 选项将显示为灰色。
- 首次启动 VM 后,您无法更改启动模式。
有关详细信息,请参阅 来宾 UEFI 启动和安全启动。
-
为 VM 选择一个主服务器。
主服务器是为池中的 VM 提供资源的主机。当您为 VM 指定主服务器时,XenServer 会尝试在该主机上启动 VM。如果此操作不可能,则会自动选择同一池中的备用主机。要选择主服务器,请单击 将 VM 放置在此服务器上 并从列表中选择一个主机。
注意:
- 在启用 WLB 的池中,指定的主服务器不用于启动、重新启动、恢复或迁移 VM。相反,工作负载平衡通过分析 XenServer 资源池指标并推荐优化措施来为 VM 指定最佳主机。
- 如果 VM 分配有一个或多个虚拟 GPU,则主服务器指定不生效。相反,主机指定基于用户设置的虚拟 GPU 放置策略。
- 在滚动池升级期间,迁移虚拟机时不会考虑主服务器。相反,虚拟机将迁移回升级前所在的宿主机。 如果您不想指定主服务器,请单击不为此虚拟机分配主服务器。虚拟机将在具有所需资源的任何宿主机上启动。
单击下一步继续。
-
为 VM 分配处理器和内存资源。单击下一步继续。
-
分配虚拟 GPU。
如果支持 vGPU,则新建 VM 向导会提示您为 VM 分配专用 GPU 或一个或多个虚拟 GPU。此选项使 VM 能够使用 GPU 的处理能力。借助此功能,您可以更好地支持高端 3D 专业图形应用程序,例如 CAD/CAM、GIS 和医学成像应用程序。
-
为新 VM 分配和配置存储。
单击下一步以选择默认分配 (24 GB) 和配置,或者您可能需要执行以下额外配置:
- 通过单击编辑更改虚拟磁盘的名称、描述或大小。
- 通过选择添加来添加新的虚拟磁盘。
-
在新 VM 上配置网络。
单击下一步以选择默认 NIC 和配置,包括为每个 NIC 自动创建的唯一 MAC 地址。或者,您可能需要执行以下额外配置:
- 通过单击编辑更改虚拟磁盘的物理网络、MAC 地址或服务质量 (QoS) 优先级。
- 通过选择 添加 来添加新的虚拟网卡。
-
检查设置,然后单击 立即创建 以创建虚拟机并返回到 搜索 选项卡。
新虚拟机的图标将显示在 资源 窗格中主机下方。
在 资源 窗格中,选择虚拟机,然后单击 控制台 选项卡以查看虚拟机控制台。
-
按照操作系统安装屏幕进行操作并做出选择。
-
操作系统安装完成后,虚拟机重新启动,然后安装适用于 Linux 的 XenServer VM Tools。
使用 PXE 启动创建 Linux 虚拟机
您可以使用 PXE 启动来安装 Linux 虚拟机的操作系统。当您需要创建许多 Linux 虚拟机时,此方法会很有用。
要使用 PXE 启动进行安装,请在 Linux 虚拟机所在的网络中设置以下先决条件:
- 配置为将所有 PXE 启动安装请求定向到 TFTP 服务器的 DHCP 服务器
- 托管 Linux 操作系统安装文件的 TFTP 服务器
创建 Linux 虚拟机时,运行以下命令:
-
从相应的模板创建虚拟机。将返回虚拟机的 UUID:
xe vm-install template=template-name new-name-label=vm-name <!--NeedCopy--> -
设置启动顺序,使其从磁盘启动,然后从网络启动:
xe vm-param-set uuid=<UUID> HVM-boot-params:order=cn <!--NeedCopy--> -
启动虚拟机以开始 PXE 启动安装:
xe vm-start uuid=<UUID> <!--NeedCopy--> -
安装客户机实用程序并配置图形显示。有关详细信息,请参阅安装适用于 Linux 的 XenServer VM Tools。
有关使用 PXE 引导安装 Linux 操作系统的信息,请参阅操作系统文档:
- Debian: 使用网络引导安装 Debian
- Red Hat: 使用 PXE 自动启动 Kickstart 安装
- CentOS: 产品文档
- SLES: 准备网络引导环境
- Ubuntu: 在 amd64 上进行服务器安装程序的网络引导
安装适用于 Linux 的 XenServer VM Tools
尽管所有受支持的 Linux 发行版都原生支持半虚拟化(并且不需要特殊驱动程序即可获得完整性能),但适用于 Linux 的 XenServer VM Tools 提供了客户机代理。此客户机代理向主机提供有关 VM 的额外信息。在每个 Linux VM 上安装客户机代理以受益于以下功能:
-
在 XenCenter 中查看 VM 性能数据。
例如,仅当安装了 XenServer VM Tools 时,以下内存性能值才会在 XenCenter 中显示:“已用内存”、“磁盘”、“网络”和“地址”。
-
在 XenCenter 中,查看 Linux 客户机操作系统信息。
-
在 XenCenter 的网络选项卡中,查看 VM 的 IP 地址。
-
从 XenCenter 启动到 VM 的 SSH 控制台。
-
调整正在运行的 Linux VM 上的 vCPU 数量。
-
启用动态内存控制 (DMC)。
注意:
某些 Linux 客户机操作系统不支持 Xen® 虚拟机管理程序的内存气球技术,因此无法使用动态内存控制 (DMC) 功能。有关此功能适用的客户机操作系统的信息,请参阅 客户机操作系统功能支持。
在升级 XenServer 主机时,保持 Linux 客户机代理最新非常重要。有关详细信息,请参阅 更新 Linux 内核和客户机实用程序。
注意:
在 SUSE Linux Enterprise Desktop 或 Server 15 客户机上安装客户机代理之前,请确保客户机上已安装
insserv-compat-0.1-2.15.noarch.rpm。
安装适用于 Linux 的 XenServer VM Tools:
-
从 XenServer 下载页面 下载适用于 Linux 的 XenServer VM Tools 文件。
-
将
LinuxGuestTools-xxx.tar.gz文件复制到您的 Linux VM 或 Linux VM 可以访问的共享驱动器。 -
提取 tar 文件的内容:
tar -xzf LinuxGuestTools-xxx.tar.gz -
以 root 用户身份运行安装脚本:
/<extract-directory>/install.sh <!--NeedCopy--> -
如果内核已升级,或者 VM 已从以前的版本升级,请立即重新启动 VM。
卸载适用于 Linux 的 XenServer VM Tools
从版本 8.4.0-1 开始,您可以使用 install.sh 脚本卸载适用于 Linux 的 XenServer VM Tools。要卸载这些工具,请以 root 用户身份运行以下命令:
/<extract-directory>/install.sh -u
<!--NeedCopy-->
在您的安全启动 Linux VM 上安装第三方驱动程序
要在启用了 UEFI 安全启动的 Linux 虚拟机中安装第三方驱动程序,您必须创建一个签名密钥,将其作为机器所有者密钥 (MOK) 添加到虚拟机,并使用该密钥对驱动程序进行签名。例如,如果您在 Linux 虚拟机中使用 XenServer 图形功能,则可能需要在虚拟机上安装 NVIDIA 图形驱动程序。
请完成以下步骤来创建密钥并使用它安装第三方驱动程序:
- 生成公钥和私钥对。
- 在 MOK 中注册公钥。
- 将您创建的密钥设置为驱动程序的模块签名密钥。
以下示例详细展示了在启用了安全启动的 Ubuntu 虚拟机上安装 NVIDIA 图形驱动程序的步骤:
-
将 NVIDIA 驱动程序下载到您的虚拟机。
-
创建一个目录(例如,
/root/module-signing)来存放密钥:mkdir -p /root/module-signing -
创建用于签名驱动程序的公钥和私钥:
openssl req -new -x509 -newkey rsa:2048 -keyout /root/module-signing/Nvidia.key -outform DER -out /root/module-signing/Nvidia.der -nodes -days 36500 -subj "/CN=Graphics Drivers" -
使用
mokutil将公钥导入 MOK:mokutil --import /root/module-signing/Nvidia.der在此步骤中,系统会要求您创建一个密码。下次启动时,系统会提示您提供在此处创建的密码。
-
确保虚拟机启动目标设置为图形界面:
systemctl set-default graphical.target -
重新启动虚拟机。
-
启动期间,将显示 Perform MOK manageement GUI。

在此界面中,完成以下步骤:
- 选择 Enroll MOK > 继续。
- 当询问是否 Enroll the key(s)? 时,选择 Yes。
- 出现提示时,提供您在导入公钥时创建的密码(步骤 4)。
-
安装软件包
libglvnd-dev:apt install pkg-config libglvnd-dev -
安装 NVIDIA 驱动程序,将您创建的密钥指定为模块签名密钥:
bash ./NVIDIA-Linux-x86_64-535.129.03-grid.run --module-signing-secret-key=/root/module-signing/Nvidia.key --module-signing-public-key=/root/module-signing/Nvidia.der
Linux 发行版安装注意事项
本节列出了在创建指定 Linux 虚拟机之前需要考虑的供应商特定配置信息。
有关所有发行版的更详细发行说明,请参阅 Linux VM Release Notes。
Apt 存储库 (Debian)
对于不频繁或一次性安装,直接使用 Debian 镜像库是合理的。但是,如果您打算进行多次虚拟机安装,我们建议您使用缓存代理或本地镜像库。以下任一工具都可以安装到虚拟机中。
-
Apt-cacher:一个代理服务器实现,用于维护软件包的本地缓存 -
debmirror:一个用于创建 Debian 存储库部分或完整镜像的工具
准备克隆 Linux 虚拟机
通常,在克隆虚拟机或计算机时,除非您对克隆映像进行泛化处理,否则该机器特有的属性会在您的环境中重复。克隆时重复的一些独特属性包括 IP 地址、SID 或 MAC 地址。
因此,当您克隆 Linux 虚拟机时,XenServer 会自动更改一些虚拟硬件参数。当您使用 XenCenter 复制虚拟机时,XenCenter 会自动为您更改 MAC 地址和 IP 地址。如果这些接口在您的环境中是动态配置的,您可能不需要修改克隆的虚拟机。但是,如果接口是静态配置的,您可能需要修改它们的网络配置。
可能需要自定义虚拟机以使其了解这些更改。有关特定受支持的 Linux 发行版的说明,请参阅Linux VM 发行说明。
计算机名称
克隆的虚拟机是另一台计算机,与网络中的任何新计算机一样,它必须在网络域中具有唯一的名称。
IP 地址
克隆的虚拟机必须在其所属的网络域中具有唯一的 IP 地址。通常,当使用 DHCP 分配地址时,此要求不是问题。当虚拟机启动时,DHCP 服务器会为其分配一个 IP 地址。如果克隆的虚拟机具有静态 IP 地址,则必须在启动前为克隆分配一个未使用的 IP 地址。
MAC 地址
在克隆之前,我们建议在以下两种情况下禁用 MAC 地址规则:
-
在某些 Linux 发行版中,克隆虚拟机的虚拟网络接口的 MAC 地址记录在网络配置文件中。但是,当您克隆虚拟机时,XenCenter 会为新的克隆虚拟机分配不同的 MAC 地址。因此,当新虚拟机首次启动时,网络无法识别新虚拟机,并且不会自动启动。
-
某些 Linux 发行版使用 udev 规则来记住每个网络接口的 MAC 地址,并为该接口保留一个名称。此行为旨在使相同的物理网卡始终映射到相同的
ethn 接口,这对于可移动网卡(如笔记本电脑)很有用。但是,此行为在虚拟机环境中存在问题。例如,考虑以下情况中的行为:
1. Configure two virtual NICs when installing a VM 1. Shut down the VM 1. Remove the first NIC当虚拟机重新启动时,XenCenter 只显示一个网卡,但将其称为
eth0。同时,虚拟机故意强制此网卡为eth1。结果是网络无法工作。
对于使用持久名称的虚拟机,请在克隆之前禁用这些规则。如果您不想关闭持久名称,则必须在虚拟机内部重新配置网络(以通常的方式)。但是,XenCenter 中显示的信息与您网络中实际的地址不匹配。
更新 Linux 内核和客户机实用程序
可以通过重新运行 XenServer VM Tools for Linux 中的 install.sh 脚本来更新 Linux 客户机实用程序(请参阅安装 XenServer VM Tools for Linux)。
对于 yum 启用的发行版,如 CentOS 和 RHEL,xe-guest-utilities 会安装一个 yum 配置文件,以便后续更新可以使用 yum 以标准方式进行。
对于 Debian,/etc/apt/sources.list 会被填充,以便默认使用 apt 进行更新。
升级时,我们建议您始终重新运行 install.sh。此脚本会自动判断您的虚拟机是否需要任何更新,并在必要时进行安装。
Linux 虚拟机的多页支持
多页支持可用于提升存储性能。
要在 Linux 虚拟机上启用多页支持,请完成以下步骤:
-
首先,验证您的内核是否支持
max_ring_page_order参数。运行以下命令:
modinfo xen_blkfront | grep max_ring_page_order如果此命令返回空响应,则您的内核不支持此功能。请勿继续执行这些步骤。
-
为您的虚拟机创建快照。
-
在虚拟机上,运行以下命令:
echo 'options xen_blkfront max_ring_page_order=3' >/etc/modprobe.d/xen_blkfront.conf -
根据您的 Linux 发行版,运行以下命令之一:
- 对于 RHEL、CentOS 或 Oracle Enterprise Linux 系统:
dracut -f -v - 对于基于 Debian 的发行版:
update-initramfs -u -k all
- 对于 RHEL、CentOS 或 Oracle Enterprise Linux 系统:
-
重启您的虚拟机。
Linux VM 发行说明
大多数现代 Linux 发行版都直接支持 Xen 半虚拟化,但它们具有不同的安装机制和一些内核限制。
RHEL 图形安装支持
要使用图形安装程序,请在 XenCenter 中逐步完成新建 VM 向导。在安装介质页面上,在高级操作系统引导参数部分中,将 vnc 添加到参数列表:
graphical utf8 vnc
<!--NeedCopy-->
系统会提示您为新 VM 提供网络配置,以启用 VNC 通信。完成新建 VM 向导的其余部分。向导完成后,在基础结构视图中,选择 VM,然后单击控制台以查看 VM 的控制台会话。此时,它使用标准安装程序。VM 安装最初以文本模式启动,并可能请求网络配置。提供后,切换到图形控制台按钮将显示在 XenCenter 窗口的右上角。
SUSE Linux 企业版 12
准备用于克隆的 SLES 客户机
注意:
在准备用于克隆的 SLES 客户机之前,请确保按如下方式清除网络设备的 udev 配置:
cat< /dev/null > /etc/udev/rules.d/30-net_persistent_names.rules
要准备用于克隆的 SLES 客户机,请执行以下操作:
- 打开文件
/etc/sysconfig/network/config -
编辑以下行:
FORCE_PERSISTENT_NAMES=yes <!--NeedCopy-->更改为
FORCE_PERSISTENT_NAMES=no <!--NeedCopy--> - 保存更改并重新启动 VM。 有关详细信息,请参阅准备克隆 Linux VM。
乌班图 24.04
-
Ubuntu 22.04 上的硬件启用 (HWE) 内核不受支持。
-
由于 Ubuntu 24.04 上 Mesa 驱动程序的一个已知问题,在默认启用 Wayland 协议的 AMD 平台主机上安装 Ubuntu 24.04(桌面版)虚拟机后,您可能会遇到重复的重新登录提示。
要解决此问题,您可以禁用 Wayland 或切换到 lightdm 作为默认显示管理器。
-
禁用 Wayland。
打开命令提示符并运行以下命令:
sudo nano /etc/gdm3/custom.conf <!--NeedCopy-->设置以下值以禁用 Wayland:
WaylandEnable=false <!--NeedCopy-->重启虚拟机以完成此过程。
-
切换到 lightdm。
安装 lightdm:
sudo apt install lightdm <!--NeedCopy-->将其设置为默认显示管理器:
sudo dpkg-reconfigure lightdm <!--NeedCopy-->重启虚拟机以完成此过程。
-