Linux VM

创建 Linux VM 时,请使用与要用来运行 VM 的操作系统对应的模板创建 VM。可以使用 Citrix Hypervisor 为您的操作系统提供的模板,也可以使用之前您自己创建的模板。可以从 XenCenter 或 CLI 中创建 VM。本节重点介绍如何使用 CLI。

注意:

如果要创建的 VM 要运行的 RHEL 版本是高于 Citrix Hypervisor 支持安装的版本的次要更新版本,请完成以下步骤:

  • 从支持的最新介质安装
  • 使用 yum update 使 VM 保持最新

此过程也适用于 RHEL 衍生产品,例如 CentOS 和 Oracle Linux。

我们建议您在安装操作系统之后立即安装 Citrix VM Tools。有关详细信息,请参阅安装 Linux 来宾代理。对于某些操作系统,Citrix VM Tools 提供了一个 Citrix Hypervisor 专用的内核,以取代供应商提供的内核。其他操作系统要求您安装供应商提供的内核的特定版本。

下面将概括介绍 Linux VM 的创建过程:

  1. 使用 XenCenter 或 CLI 为目标操作系统创建 VM。

  2. 使用供应商的安装介质安装操作系统。

  3. 安装 Citrix VM Tools(推荐)。

  4. 按照在常规非虚拟环境中的配置方式,在 VM 和 VNC 上配置正确的时间和时区。

Citrix Hypervisor 支持将多个 Linux 版本安装到 VM 中。有以下三种安装方法:

警告:

其他安装介质模板适用于希望尝试安装运行不受支持操作系统的 VM 的高级用户。Citrix Hypervisor 已经过测试,只能运行提供的标准模板中包含的受支持发行版本和特定版本。使用其他安装介质模板安装的任何 VM 均受支持。

使用其他安装介质模板创建的 VM 将作为 HVM 来宾系统创建。此行为可能意味着,某些 Linux VM 将使用性能较低的仿真设备,而不是性能较高的 I/O 驱动程序。

有关特定 Linux 版本的信息,请参阅 Linux 发行版安装说明

支持的 Linux 发行版

受支持的 Linux 版本包括:

  • Debian Jessie 8(32/64 位)
  • Debian Stretch 9(32/64 位)
  • Red Hat Enterprise Linux 7.x(64 位)
  • Red Hat Enterprise Linux 8.x(64 位)
  • CentOS 7.x(64 位)
  • Oracle Enterprise Linux 7.x(64 位)
  • Scientific Linux 7.x(64 位)
  • SUSE Linux Enterprise Server 12 SP3、12 SP4(64 位)
  • SUSE Linux Enterprise Desktop 12 SP3、12 SP4(64 位)
  • SUSE Linux Enterprise Server 15、15 SP1(64 位)
  • SUSE Linux Enterprise Desktop 15、15 SP1(64 位)
  • Ubuntu 16.04(32/64 位)
  • Ubuntu 18.04(64 位)
  • CoreOS Stable(64 位)

其他 Linux 发行版受支持。但是,与 Red Hat Enterprise Linux 使用相同安装机制的版本(例如 Fedora Core)可以使用同一模板成功安装。

通过从 Internet 存储库进行安装来创建 Linux VM

本节以 Debian Squeeze 为例,说明通过从 Internet 存储库安装操作系统来创建 Linux VM 的 xe CLI 过程。

  1. 从 Debian Squeeze 模板创建 VM。系统会返回该 VM 的 UUID:

    xe vm-install template=template-name new-name-label=squeeze-vm
    
  2. 指定安装存储库。此安装存储库是一个 Debian 镜像,包含安装基本系统所需的软件包,以及在执行 Debian 安装程序期间选择的额外内容:

    xe vm-param-set uuid=UUID other-config:install-repository=path_to_repository
    

    例如,有效的存储库路径为 http://ftp.xx.debian.org/debian,其中 xx 是您所在国家/地区的代码(请参阅 Debian 镜像列表,以查看这些代码的一览表)。对于多次安装,我们建议使用本地镜像或 apt 代理,以避免在中央库产生过大的网络流量或负载。

    注意:

    Debian 安装程序仅支持 HTTP 和 FTP Apt 存储库。NFS 不受支持。

  3. 找到要连接到的网络的 UUID。例如,如果网络连接到 xenbr0

    xe network-list bridge=xenbr0 --minimal
    
  4. 创建一个 VIF 以将新 VM 连接到此网络:

    xe vif-create vm-uuid=vm_uuid network-uuid=network_uuid mac=random device=0
    
  5. 启动 VM。它将直接引导至 Debian 安装程序:

    xe vm-start uuid=UUID
    
  6. 按照 Debian 安装程序的步骤,以您需要的配置安装 VM。

  7. 安装来宾代理,并配置图形显示。有关详细信息,请参阅安装 Linux 来宾代理

通过从物理 CD 或 DVD 进行安装来创建 Linux VM

本节以 Debian Squeeze 为例,说明通过从物理 CD/DVD 安装操作系统来创建 Linux VM 的 xe CLI 过程。

  1. 从 Debian Squeeze 模板创建 VM。系统会返回该 VM 的 UUID:

    xe vm-install template=template-name new-name-label=vm-name
    
  2. 获取新 VM 根磁盘的 UUID:

    xe vbd-list vm-uuid=vm_uuid userdevice=0 params=uuid --minimal
    
  3. 使用返回的 UUID,将根磁盘设置为不可引导:

    xe vbd-param-set uuid=root_disk_uuid bootable=false
    
  4. 获取 Citrix Hypervisor 服务器上的物理 CD 驱动器的名称:

    xe cd-list
    

    在此命令为您提供的结果中,name-label 字段为类似 SCSI 0:0:0:0 的值。

  5. 将 Citrix Hypervisor 服务器的 CD 驱动器name-label 参数用作 cd-name 参数,向新 VM 添加虚拟 CD-ROM:

    xe vm-cd-add vm=vm_name cd-name="host_cd_drive_name_label" device=3
    
  6. 获取与新虚拟 CD 驱动器对应的 VBD 的 UUID:

    xe vbd-list vm-uuid=vm_uuid type=CD params=uuid --minimal
    
  7. 将虚拟 CD 的 VBD 设置为可引导:

    xe vbd-param-set uuid=cd_drive_uuid bootable=true
    
  8. 将 VM 的安装存储库设置为 CD 驱动器:

    xe vm-param-set uuid=vm_uuid other-config:install-repository=cdrom
    
  9. 将 Debian Squeeze 安装 CD 插入到 Citrix Hypervisor 服务器上的 CD 驱动器中。

  10. 使用 XenCenter 或 SSH 终端打开 VM 控制台,然后按照相关步骤执行操作系统安装。

  11. 启动 VM。它将直接引导至 Debian 安装程序:

    xe vm-start uuid=UUID
    
  12. 安装来宾实用程序,并配置图形显示。有关详细信息,请参阅安装 Linux 来宾代理

通过从 ISO 映像进行安装来创建 Linux VM

本节说明通过从支持网络访问的 ISO 安装操作系统来创建 Linux VM 的 xe CLI 过程。

  1. 运行以下命令

    xe vm-install template=template new-name-label=name_for_vm sr-uuid=storage_repository_uuid
    

    该命令将返回新 VM 的 UUID。

  2. 找到要连接到的网络的 UUID。例如,如果网络连接到 xenbr0

    xe network-list bridge=xenbr0 --minimal
    
  3. 创建一个 VIF 以将新 VM 连接到此网络:

    xe vif-create vm-uuid=vm_uuid network-uuid=network_uuid mac=random device=0
    
  4. other-config 参数的 install-repository 键设置为您的网络存储库的路径。例如,将 http://mirror.centos.org/centos/6/os/x86_64 用作供应商介质的 URL:

    xe vm-param-set uuid=vm_uuid other-config:install-repository=http://mirror.centos.org/centos/6/os/x86_64
    
  5. 启动 VM:

    xe vm-start uuid=vm_uuid
    
  6. 使用 XenCenter 或 VNC 连接到 VM 控制台,然后执行操作系统安装。

网络安装说明

使用 Citrix Hypervisor 来宾系统安装程序,可以通过支持网络访问的 ISO 映像将操作系统安装到 VM。要准备从 ISO 进行安装,应创建供应商介质(而 ISO 映像)的分解网络存储库。通过 NFS、HTTP 或 FTP 将其导出,以便可以从 Citrix Hypervisor 服务器管理接口进行访问。

该网络存储库必须可通过 Citrix Hypervisor 服务器的控制域来进行访问,通常使用管理界面进行访问。URL 必须指向网络服务器上的 CD/DVD 映像库,并采用以下格式:

  • HTTP: http://<server>/<path>
  • FTP: ftp://<server>/<path>
  • NFS: nfs://<server>/<path>
  • NFS: nfs:<server>/<path>

有关如何准备基于网络的安装的信息,例如解压 ISO 的位置,请参阅供应商安装说明。

注意:

从 XenCenter 使用 NFS 安装方法时,应始终使用 nfs:// 样式的路径。

从模板创建 VM 时,XenCenter 新建 VM 向导会提示您输入存储库的 URL。使用 CLI 时,正常使用 vm-install 安装模板,然后将 other-config:install-repository 参数设置为 URL 的值。随后启动 VM 时,开始执行网络安装过程。

警告:

安装基于 Linux 的新 VM 时,务必要完成安装并重新启动该 VM,然后再对其执行任何其他操作。此过程类似于不中断 Windows 安装,否则可能导致 VM 无法正常运行。

高级操作系统引导参数

创建 VM 时,可以使用 XenCenter 或 xe CLI 指定高级操作系统引导参数。例如,在配置自动安装半虚拟化来宾系统时,指定高级参数可能很有用。例如,可以按如下过程使用 Debian preseed 或 RHEL kickstart 文件。

要使用 preseed 文件安装 Debian,请执行以下操作:

  1. 创建一个 preseed 文件。有关创建 preseed 文件的信息,请参阅 Debian 文档了解详细信息。

  2. 在启动 VM 之前为 VM 正确设置内核命令行。使用 XenCenter 中的“新建 VM”向导或执行类似如下的 xe CLI 命令:

    xe vm-param-set uuid=uuid PV-args=preseed_arguments
    

要使用 kickstart 文件安装 RHEL,请执行以下操作:

注意:

Red Hat Kickstart 文件是一种自动安装方法,与应答文件类似,您可以用来提供对 RHEL 安装提示的响应。要创建此文件,请手动安装 RHEL。kickstart 文件位于 /root/anaconda-ks.cfg 中。

  1. 在 XenCenter 中,选择适当的 RHEL 模板。

  2. 在 XenCenter 的“新建 VM”向导中指定要用作内核命令行参数的 kickstart 文件。按照与在 PXE 配置文件中指定此值完全相同的方式指定此值。例如:

    ks=http://server/path ksdevice=eth0
    
  3. 在命令行中,使用 vm-param-set 设置 PV-args 参数以利用 kickstart 文件

    xe vm-param-set uuid=vm_uuid PV-args="ks=http://server/path ksdevice=eth0"
    
  4. 设置存储库的位置,以便 Citrix Hypervisor 知道从何处获取内核和 initrd 以用于安装程序引导:

    xe vm-param-set uuid=vm_uuid other-config:install-repository=http://server/path
    

注意:

要使用 kickstart 文件进行安装(不通过新建 VM 向导),可以将相应的参数添加到高级操作系统引导参数文本框中。

安装 Linux 来宾代理

虽然受支持的所有 Linux 发行版都是本机半虚拟化的(并且不需要特殊驱动程序即可实现最佳性能),但是 Citrix Hypervisor 仍安装了来宾代理。此来宾代理向主机提供有关 VM 的额外信息。应在每个 Linux VM 上安装来宾代理,才能启用动态内存控制 (DMC)。

升级 Citrix Hypervisor 服务器时务必使 Linux 来宾代理保持最新。有关详细信息,请参阅更新 Linux 内核和来宾实用程序

注意:

在 SUSE Linux Enterprise Desktop 或 Server 15 来宾上安装来宾代理之前,请务必在来宾上安装 insserv-compat-0.1-2.15.noarch.rpm

安装来宾代理:

  1. 所需的文件位于内置 guest-tools.iso CD 映像中,也可以通过依次选择 XenCenter 中的 VM安装 Citrix VM Tools 选项进行安装。

  2. 通过运行以下命令将映像装载到来宾系统中:

    mount -o ro,exec /dev/disk/by-label/Citrix VM Tools /mnt
    

    注意:

    如果装载映像失败,可以通过运行以下命令来定位该映像:

    blkid -t LABEL="Citrix VM Tools"
    
  3. 以 root 用户身份执行安装脚本:

    /mnt/Linux/install.sh
    
  4. 通过运行以下命令从来宾系统卸载映像:

    umount /mnt
    
  5. 如果内核已升级,或者 VM 已从早期版本升级,请立即重新启动 VM。

    注意:

    连接到 Linux 虚拟机的 CD-ROM 驱动器和 ISO 显示为设备,例如 /dev/xvdd/dev/sdd,而不是您可能认为的 /dev/cdrom。出现此行为的原因是,它们不是真正的 CD-ROM 设备,而是普通设备。使用 XenCenter 或 CLI 弹出 CD 时,将从 VM 中热拔出该设备,并且该设备将不再显示。在 Windows VM 中,行为有所不同,CD 会保留在 VM 中,但处于空白状态。

Linux 发行版安装说明

本节列出了在创建指定的 Linux VM 之前要考虑的供应商特定的配置信息。

有关所有发行版的更多详细发行说明,请参阅 Linux VM 发行说明

Red Hat Enterprise Linux* 7.x(32/64 位)

适用于这些来宾系统的新模板指定 2 GB RAM。此 RAM 大小是成功安装 v7.4 及更高版本的一个要求。对于 v7.0 - v7.3,该模板指定 2 GB RAM,但与早期版本的 Citrix Hypervisor 一样,1 GB RAM 已足够。

注意:

此信息适用于 Red Hat 和 Red Hat 衍生产品。

Apt 存储库 (Debian)

对于不经常进行或一次性的安装来说,建议直接使用 Debian 镜像。但是,如果您计划进行多次 VM 安装,我们建议您使用缓存代理服务器或本地镜像。以下任一工具都可以安装到 VM 中。

  • Apt-cacher:保留本地软件包缓存的代理服务器的实现。
  • debmirror:用于创建 Debian 存储库的部分或完整镜像的工具。

准备克隆 Linux VM

通常情况下,克隆 VM 或计算机时,除非要使克隆的映像通用化,否则,将会在您的环境中复制该计算机特有的属性。克隆时复制的其中一些特有属性为 IP 地址、SID 或 MAC 地址。

因此,克隆 Linux VM 时,Citrix Hypervisor 会自动更改某些虚拟硬件参数。使用 XenCenter 复制 VM 时,XenCenter 会自动为您更改 MAC 地址和 IP 地址。如果这些接口是在您的环境中动态配置的,可能不需要修改克隆的 VM。但是,如果这些接口是静态配置的,可能需要修改其网络配置。

可能需要自定义 VM 以识别这些更改。有关特定受支持的 Linux 版本的说明,请参阅 Linux VM 发行说明

计算机名称

克隆的 VM 是另一台计算机,与网络中的任何新计算机一样,它在网络域中必须具有唯一名称。

IP 地址

克隆的 VM 必须在所属网络域中具有唯一的 IP 地址。通常情况下,使用 DHCP 分配地址时,此要求不是问题。当 VM 引导时,DHCP 服务器将为其分配一个 IP 地址。如果克隆的 VM 具有静态 IP 地址,必须在克隆的 VM 引导前为其指定一个未使用的 IP 地址。

MAC 地址

在两种情况下,我们会建议在克隆之前禁用 MAC 地址规则:

  1. 在某些 Linux 版本中,克隆 VM 的虚拟网络接口的 MAC 地址记录在网络配置文件中。但是,克隆 VM 时,XenCenter 会为新克隆的 VM 分配一个不同的 MAC 地址。因此,首次启动新 VM 时,网络会识别新 VM,但不会自动显示出来。

  2. 某些 Linux 发行版使用 udev 规则记住每个网络接口的 MAC 地址,并为该接口保留名称。此行为的目的是使同一物理 NIC 始终映射到同一 ethn 接口,这对可移动 NIC(如便捷式计算机)很有用。但是,此行为在 VM 的上下文中存在问题。

    例如,假设在以下情况下存在此行为:

    1. 在安装 VM 时配置两个虚拟 NIC
    1. 关闭 VM
    1. 删除第一个 NIC
    

    VM 重新启动时,XenCenter 仅显示一个 NIC,但其称为 eth0。同时,VM 会特意强制此 NIC 为 eth1。结果导致网络连接无法工作。

对于使用静态名称的 VM,应在克隆之前禁用这些规则。如果您不希望禁用静态名称,则必须在 VM 中重新配置网络连接(按常规方法进行操作)。但是,XenCenter 中显示的信息将与网络中的实际地址不符。

更新 Linux 内核和来宾实用程序

可以通过重新运行内置 guest-tools.iso CD 映像中的 Linux/install.sh 脚本来更新 Linux 来宾实用程序(请参阅安装 Linux 来宾代理)。

对于启用了 yum 的发行版(CentOS 和 RHEL),xe-guest-utilities 会安装 yum 配置文件,以便能够以标准方式使用 yum 进行后续更新。

对于 Debian,会填充 /etc/apt/sources.list 以便能够在默认情况下使用 apt 更新。

升级时,我们建议始终重新运行 Linux/install.sh。此脚本可自动确定 VM 是否需要更新,并在需要时安装更新。

从 PV 升级到 HVM 来宾

要将现有不受支持的 PV Linux 来宾升级到在 HVM 模式下运行的受支持版本,请执行来宾内升级。此时,升级的来宾系统仅在 PV 模式下运行,这不受支持且存在已知问题。应运行以下脚本,将新升级的来宾系统转换为受支持的 HVM 模式。

在 Citrix Hypervisor 服务器上,打开本地 shell,以 root 用户身份登录,然后输入以下命令:

/opt/xensource/bin/pv2hvm vm_name

/opt/xensource/bin/pv2hvm vm_uuid

重新启动 VM 以完成此过程。

Linux VM 发行说明

大多数主流 Linux 版本直接支持 Xen 半虚拟化,但是具有不同的安装机制和一些内核限制。

RHEL 图形安装支持

要使用图形安装程序,请在 XenCenter 中逐步完成新建 VM 向导。在安装介质页面的高级操作系统启动参数部分中,向列出的参数中添加 vnc

graphical utf8 vnc

![“新建 VM”向导的屏幕截图。在“安装介质”页面上的“高级操作系统启动参数”中输入值 graphical utf8 vnc。](/zh-cn/citrix-hypervisor/media/rhel-graphical-network-install.png)

系统将提示您为新 VM 提供网络连接配置,以便能够实现 VNC 通信。依次完成“新建 VM”向导的剩余部分。完成向导后,在基础结构视图中选择 VM,然后单击控制台以查看 VM 的控制台会话。此时,将使用标准安装程序。VM 安装最初在文本模式下启动,并且可能要求提供网络配置。提供后,XenCenter 窗口右上角将显示切换到图形控制台按钮。

Red Hat Enterprise Linux 7

迁移或挂起 VM 后,在恢复期间,RHEL 7.x 来宾系统可能会冻结。有关详细信息,请参阅 Red Hat 问题 1141249

CentOS 7

有关 CentOS 7.x 发行说明列表,请参阅 Red Hat Enterprise Linux 7

Oracle Linux 7

有关 Oracle Linux 7.x 发行说明列表,请参阅 Red Hat Enterprise Linux 7

Scientific Linux 7

有关 Scientific Linux 7.x 发行说明列表,请参阅 Red Hat Enterprise Linux 7

Debian 10

如果使用 PXE 网络引导安装 Debian 10 (Buster),请勿在引导参数中添加 console=tty0。此参数可能会导致安装过程出现问题。请仅在引导参数中使用 console=hvc0。 有关详细信息,请参阅 Debian 问题 944106944125

SUSE Linux Enterprise 12

准备 SLES 来宾系统以进行克隆

注意:

在准备 SLES 来宾系统以进行克隆之前,请确保清除网络设备的 udev 配置,如下所示:

cat< /dev/null > /etc/udev/rules.d/30-net_persistent_names.rules

准备 SLES 来宾系统以进行克隆

  1. 打开文件 /etc/sysconfig/network/config

  2. 编辑内容如下的行:

    FORCE_PERSISTENT_NAMES=yes
    

    更改为

    FORCE_PERSISTENT_NAMES=no
    
  3. 保存更改并重新启动 VM。

有关详细信息,请参阅准备克隆 Linux VM

Ubuntu 18.04

Ubuntu 18.04 提供以下类型的内核:

  • 通用版本 (GA) 内核,在单点发布时不会更新
  • 硬件支持 (HWE) 内核,在单点发布时更新

Ubuntu 18.04 的某些次要版本(例如 18.04.2 和 18.04.3)默认使用 HWE 内核,该内核在运行图形控制台时可能会遇到问题。要解决这些问题,可以选择运行使用 GA 内核的 Ubuntu 18.04 的这些次要版本,或者更改某些图形设置。有关详细信息,请参阅CTX265663 - Ubuntu 18.04.2 VM 可能无法在 Citrix Hypervisor 上启动