创建 Linux VM

本文讨论如何通过安装或克隆的方式创建 Linux VM。本文还包含特定于供应商的安装说明。

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

注意

如果客户希望为次要更新版本高于 XenServer 当前支持版本的 Red Hat Enterprise Linux(RHEL 版本)创建 VM,应从最新的受支持介质安装,然后使用 yum update 将 VM 更新到最新版本。这也适用于 RHEL 衍生产品,例如 CentOS 和 Oracle Linux。

例如,XenServer 7.1 支持 RHEL 5.10;希望使用 RHEL v5.11 的客户首先应安装 RHEL v5.10,然后使用 yum update 更新到 RHEL 5.11。

我们建议您在安装操作系统之后立即安装 XenServer PV Tools。对于某些操作系统,XenServer PV Tools 提供了一个专用于 XenServer 的内核,取代了供应商所提供的内核。而其他操作系统(例如 RHEL 5.x)则要求您安装供应商提供的特定版本的内核。

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

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

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

  3. 安装 XenServer PV Tools(推荐)。

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

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

  1. 从 Internet 存储库安装

  2. 从物理 CD 安装

  3. 从 ISO 库安装

警告

“Other install media”(其他安装介质)模板适用于高级用户,这些用户可能会尝试安装运行其他不受支持的操作系统的 VM。XenServer 已经过测试,只能运行所提供的标准模板中包含的受支持发行版本和特定版本,但支持使用“Other install media”(其他安装介质)模板安装的任何 VM。

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

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

PV Linux 发行版

支持的 PV Linux 发行版包括:

版本 从 CD 进行供应商安装 从网络存储库进行供应商安装 注意
Debian Squeeze 6.0(32/64 位) X X  
Debian Wheezy 7(32/64 位) X X  
Red Hat Enterprise Linux 4.5–4.8(32 位) X X 要求在安装 RHEL 后安装 XenServer Tools 以应用 Citrix RHEL 4.8 内核。
Red Hat Enterprise Linux 5.0–5.11(32/64 位) X X 如果使用 5.4 或更高版本的内核,则受支持。
Red Hat Enterprise Linux 6.0–6.8(32/64 位) X X  
CentOS 4.5–4.8(32 位) X X  
CentOS 5.0–5.11(32/64 位) X X  
CentOS 6.0–6.8(32/64 位) X X  
Oracle Linux 5.0–5.11(32/64 位) X X  
Oracle Linux 6.0–6.8(32/64 位) X X  
Scientific Linux 5.11(32/64 位) X X 如果使用 5.4 或更高版本的内核,则受支持。
Scientific Linux 6.6–6.8(32/64 位) X X  
SUSE Linux Enterprise Server 10 SP1、SP2、SP4(32/64 位) X X  
SUSE Linux Enterprise Server 10 SP3(32 位)     仅当从 SLES 10 SP2 升级时受支持
SUSE Linux Enterprise Server 10 SP3(64 位) X X  
SUSE Linux Enterprise Server 11、11 SP1、11 SP2、11 SP3、11 SP4(32/64 位) X X  
SUSE Linux Enterprise Server 12、12 SP1、12 SP2(64 位) X X  
SUSE Linux Enterprise Desktop 11 SP3(64 位) X X  
SUSE Linux Enterprise Desktop 12、12 SP1、12 SP2(64 位) X X  
Ubuntu 10.04(32/64 位)   X  
Ubuntu 12.04(32/64 位) X X  
NeoKylin Linux Advanced Server 6.5(64 位) X X  

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

注意

  • 不支持在内存大于 128 GB 的主机上运行 32 位 PV Linux VM。

  • XenServer 硬件安全性功能会降低 32 位 PV VM 的整体性能。如果此问题会对您产生影响,可以执行以下操作之一:

    • 运行 64 位版本的 PV Linux VM

    • 通过 no-smep no-smap 选项启动 Xen。

    我们不建议使用此选项,因为此选项会降低主机安全性的深度。

HVM Linux 发行版

HVM Linux VM 可以利用新处理器中的 x86 虚拟容器技术来提高性能。从这些来宾系统访问网络和存储仍使用内核中内置的驱动程序在 PV 模式下运行。

支持的 HVM Linux 发行版包括:

版本 从 CD 进行供应商安装 从网络存储库进行供应商安装
Debian Jessie 8.0(32/64 位) X X
Debian Stretch 9.0(32/64 位) X X
Red Hat Enterprise Linux 7.x (64 位) X X
CentOS 7.x(64 位) X X
Oracle Linux 7.x(64 位) X X
Scientific Linux 7.x(64 位) X X
SUSE Linux Enterprise Server 12 SP3(64 位) X X
SUSE Linux Enterprise Desktop 12 SP3(64 位) X X
Ubuntu 14.04(64 位) X X
Ubuntu 16.04(64 位) X X
CoreOS Stable(64 位) X X
Linx Linux V6.0(64 位) X X
Linx Linux V8.0(64 位) X X
Yinhe Kylin(64 位) X X

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

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

示例:从网络库安装 Debian Squeeze VM

  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 镜像列表,以查看这些代码的一览表)。对于多次安装,Citrix 建议使用本地镜像或 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. 请参阅下文以了解关于如何安装来宾实用程序以及如何配置图形显示的说明。

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

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

示例:从 CD/DVD 安装 Debian Squeeze VM(使用 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. 获取 XenServer 主机上的物理 CD 驱动器的名称:

    xe cd-list
    

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

  5. 将 XenServer 主机的 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 插入到 XenServer 主机上的 CD 驱动器中。

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

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

    xe vm-start uuid=UUID
    

请参阅后面的各个部分,以了解关于如何安装来宾实用程序以及如何配置图形显示的说明。

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

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

示例:从支持网络访问的 ISO 映像安装 Linux VM

  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 控制台,然后执行操作系统安装。

网络安装说明

使用 XenServer 来宾系统安装程序,可以通过支持网络访问的 ISO 映像将操作系统安装到 VM。为了准备从 ISO 进行安装,需要构建供应商介质( ISO 映像)的分解网络存储库,并通过 NFS、HTTP 或 FTP 将其导出,以便可以从 XenServer 主机管理界面进行访问。

该网络存储库必须可通过 XenServer 主机的控制域来进行访问,通常使用管理接口进行访问。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 前,应确保正确设置了内核命令行。这可以通过使用 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. 设置存储库的位置,以便 XenServer 知道从何处获取内核和 initrd 以用于安装程序引导:

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

    注意

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

安装 Linux 来宾代理

尽管所有受支持的 Linux 版本都是本机半虚拟化的(因此不需要特殊驱动程序即可正常运行),但 XenServer 还包含一个来宾代理,该代理向主机提供有关 VM 的其他信息。必须在每个 Linux VM 上安装来宾代理,才能启用动态内存控制 (DMC)。

升级 XenServer 过程中请务必保持 Linux 来宾代理处于最新状态(请参阅更新 VM)。

安装来宾代理

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

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

    mount -o ro,exec /dev/disk/by-label/XenServerincloudsphere\\x20Tools /mnt
    

    注意

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

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

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

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

注意

连接到 Linux 虚拟机的 CD-ROM 驱动器和 ISO 显示为设备,如 /dev/xvdd(或者在 Ubuntu 10.10 和更高版本中为 /dev/sdd),而不是您可能认为的 /dev/cdrom。原因是它们不是真正的 CD-ROM 设备,而是普通设备。通过 XenCenter 或 CLI 弹出 CD 时,将从 VM 中热拔出该设备,之后该设备将消失。Windows 虚拟机则不同,CD 会以空状态保留在 VM 中。

Linux 版本的其他安装说明

下表列出了在创建指定的 Linux VM 之前应当注意的其他特定于供应商的配置信息。

重要

有关所有版本的详细发行说明,请参阅发行说明

CentOS 5.x(32/64 位)

对于 CentOS 5.x VM,必须确保操作系统使用 CentOS 5.4 内核或更高版本(可从发行商处获取)。5.4 版之前的 Enterprise Linux 内核版本中存在的某些问题会阻止 XenServer VM 正常运行。按照供应商的常规内核升级过程升级内核。

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

对于 RHEL 5.x VM,必须确保操作系统使用 RHEL 5.4 内核 (2.6.18-164.el5) 或更高版本(可从发行商处获取)。5.4 版之前的 Enterprise Linux 内核版本中存在的某些问题会阻止 XenServer VM 正常运行。按照供应商的常规内核升级过程升级内核。

Red Hat Enterprise Linux7.x(32/64 位)

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

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

Oracle Linux 5.x(32/64 位)

对于 OEL 5.x VM,必须确保操作系统使用 OEL 5.4 内核或更高版本(可从发行商处获取)。5.4 版之前的 Enterprise Linux 内核版本中存在的某些问题会阻止 XenServer VM 正常运行。

按照供应商的常规内核升级过程升级内核。

对于 OEL 5.6(64 位),Unbreakable Enterprise Kernel (UEK) 不支持 Xen 平台。如果您尝试将 UEK 与此操作系统结合使用,内核将无法正确引导。

Oracle Linux 6.9(64 位)

对于内存超过 2 GB 的 OEL 6.9 VM,请设置启动参数 <crashkernel=no> 以禁用崩溃内核。仅在设置了此参数时,VM 才会成功重新启动。如果使用早期版本的 OEL 6.x,请在更新到 OEL 6.9 之前设置此启动参数。要使用 XenCenter 设置此参数,请将其添加到“新建 VM”向导的“安装介质”页面中的高级操作系统启动参数字段。要使用 XenCenter 修改现有 VM,请右键单击 VM,选择属性 > 引导选项 > 操作系统启动参数

Debian 6.0 (Squeeze)(32/64 位)

如果在 XenCenter 中指定了专用镜像,该镜像将仅用于检索安装程序内核。在安装程序正常运行之后,您将需要再次输入要用于检索软件包的镜像地址。

Debian 7 (Wheezy)(32/64 位)

如果在 XenCenter 中指定了专用镜像,该镜像将仅用于检索安装程序内核。在安装程序正常运行之后,您将需要再次输入要用于检索软件包的镜像地址。

Ubuntu 10.04(32/64 位)

对于具有多个 vCPU 的 Ubuntu 10.04 VM,Citrix 强烈建议您将来宾系统内核更新为“2.6.32-32 #64”。有关此问题的详细信息,请参阅知识库文章 CTX129472“Ubuntu 10.04 Kernel Bug Affects SMP Operation”(Ubuntu 10.04 内核缺陷影响 SMP 操作)。

Asianux Server 4.5

必须通过图形安装程序执行安装。在安装介质选项卡中的高级操作系统启动参数字段中添加“VNC”。

Linx Linux v6.0

最多支持 6 个 vCPU。要向 Linx Linux V6.0 VM 添加磁盘,请按照以下步骤设置 大于 3 的设备 ID:

  1. 获取可用的设备 ID:

    xe vm-param-get param-name=allowed-VBD-devices uuid=VM-uuid
    
  2. 使用列表中大于 3 的 ID:

    xe vbd-param-set userdevice=Device-UD uuid=VM-uuid>
    

Yinhe Kylin 4.0

对于来宾工具安装,请在 grub 菜单中启用 root 用户并以 root 用户身份安装来宾工具。

NeoKylin Linux Security OS V5.0(64 位)

默认情况下,NeoKylin Linux Security OS 5(64 位)禁用 /etc/init/controlalt-delete.conf 中的设置。因此,不能通过 xe 命令或 XenCenter 重新启动。要解决此问题,请执行以下操作之一:

  • 运行 xe 以重新启动 VM 时指定 force =1 选项:

    xe vm-reboot force=1 uuid=<vm uuid>
    

    或者,在 XenCenter 中单击“重新启动”后单击“强制重启”按钮。

  • 请务必在来宾操作系统的 /etc/init/control-altdelete.conf 文件中启用下面两行:

    start on control-alt-delete
    exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
    

默认情况下,SELinux 在操作系统中处于启用状态。因此,用户无法通过 XenCenter 登录 VM。要解决此问题,请执行以下操作:

  1. 通过 XenCenter 向“引导选项”中添加 selinux=0 来禁用 Selinux:
  2. 访问 VM 后,记录 VM 的 IP 地址。
  3. 从上述步骤中获取 IP 地址后,使用任意第三方软件(例如 Xshell)连接到 VM 并删除 selinux=0。

    注意:

    仅当禁用了 SELinux 时才能使用 XenCenter 访问 VM。

  4. 如果不需要使用 XenCenter 访问 VM,请通过删除之前添加的选项来再次启用 SELinux。

Debian Apt 存储库

对于低频率或一次性的安装来说,最好直接使用 Debian 镜像。但是,如果您计划安装多个 VM,我们建议您使用缓存代理或本地镜像。Apt-cacher 为代理服务器的实现,它将保留本地软件包缓存。debmirror 是用于创建 Debian 存储库的部分或完整镜像的工具。这些工具中的任意一个都可以安装到 VM 中。

准备克隆 Linux VM

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

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

可能需要自定义 VM 以识别这些更改。

计算机名称

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

IP 地址

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

MAC 地址

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

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

  2. 某些 Linux 发行版使用 udev 规则记住每个网络接口的 MAC 地址,并为该接口保留名称。其目的是使同一物理 NIC 始终映射到同一 ethn 接口,这对可移动 NIC(如便捷式计算机)很有用。但是,此行为在 VM 环境中会出现问题。例如,如果您在安装 VM 时配置了两个虚拟 NIC,然后关闭该 VM 并删除第一个 NIC,重新启动时,XenCenter 将仅显示一个 NIC,但其称为 eth0。同时,VM 会特意强制其为 eth1。结果导致网络连接无法工作。

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

Linux VM 发行说明

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

Red Hat Enterprise Linux 4.5–4.8

已将下列问题报告给 Red Hat 并在 Xen 内核(可以使用内置 guest-tools.iso CD 映像中的 /mnt/Linux/install.sh 脚本安装该内核)中进行了修复:

  • 挂起 RCU 时,RHEL 4.8 中的 Xen 内核有时会进入无响应 (Tickless) 模式。触发此动作时,通常处于 synchronize_kernel() 中,这意味着来宾实质上一直处于挂起状态,直到一些外部事件(例如 SysRQ)将其释放为止 (Red Hat Bugzilla 427998)

  • 在内存不足的情况下,实时迁移有时会导致内核崩溃 (Red Hat Bugzilla 249867)

  • 来宾内核有时可能会因其他 XenStore 活动挂起 (Red Hat Bugzilla 250381)

  • RHEL 4.7 包含一个缺陷,该缺陷通常会阻止 RHEL 4.7 在其 RAM 多于 64 GiB 的主机上进行引导 (Red Hat Bugzilla 311431)。为此,默认情况下,仅在低于 64 GiB 的范围内为 XenServer RHEL 4.7 来宾分配 RAM 地址。这可能导致 RHEL 4.7 来宾无法启动,即使 RAM 看起来可用也是如此。在这种情况下,重新启动或关闭其他来宾可以使适当的 RAM 变得可用。如果所有其他尝试都失败,则在引导 RHEL 4.7 VM 之前,请暂时关闭其他来宾。

    成功引导 RHEL 4.7 VM 后,请安装 XenServer PV Tools 并运行以下命令:

    xe vm-param-remove uuid=vm_uuid param-name=other-config \
    param-key=machine-address-size
    

    删除内存限制。

  • 在一些硬件(通常是较新系统)上,CPU 有时生成操作系统应该忽略的异常虚假页面错误。遗憾的是,RHEL 4.5–4.7 版本均无法忽略该虚假错误并且该错误会导致它们崩溃 (Red Hat Bugzilla 465914)。

    此问题在我们的内核中已修复。已使用 suppress-spurious-page-faults 参数设置 RHEL 4 VM 模板。这就确保了将继续安全安装,直到将标准内核替换为 Citrix 提供的内核。

    由于此参数设置会对性能产生影响,因此,VM 安装完成后,在 VM 的命令提示符下,运行命令:

    xe vm-param-remove uuid=vm_uuid other-config: \
    param-key=suppress-spurious-page-faults
    
  • 在 RHEL 4.5–4.7 中,如果 xenbus 交易结束命令失败,suspend_mutex 可能会保持锁定状态,以防止进一步产生任何 xenbus 流量。应用 Citrix RHEL 4.8 内核可解决此问题。[EXT-5]

  • 在 RHEL 4.5–4.8 中,使用 XFS 文件系统在特殊情况下会导致内核混乱。应用 Citrix RHEL 4.8 内核可解决此问题。[EXT-16 ]

  • 在 RHEL 4.5–4.8 中,内核会进入无响应空闲模式,并且 RCU 挂起;这会导致来宾操作系统锁定。应用 Citrix RHEL 4.8 内核可解决此问题。[EXT-21]

  • 在 RHEL 4.7、4.8 中,主机具有 64 GiB RAM 或更高配置时,VM 可能会崩溃。应用 Citrix RHEL 4.8 内核可解决此问题。[EXT-30]

  • 在 RHEL 4.5–4.8 中,网络驱动器存在一个问题,在极少数情况下,会导致内核死锁。应用 Citrix RHEL 4.8 内核可解决此问题。[EXT-45]

其他说明:

  • 对于 RHEL 4.7、4.8,当有许多设备连接到 VM 时,有时会没有足够的时间来连接所有这些设备,并且启动会失败。[EXT-17]

  • 如果您尝试在具有 2 个以上虚拟 CPU(RHEL 4.x 不支持)的 VM 上安装 RHEL 4.x,则错误消息将错误地报告检测到的 CPU 数量。

为克隆准备 RHEL 4.5–4.8 来宾

要准备 RHEL 4.5–4.8 来宾系统以进行克隆(请参阅“准备克隆 Linux VM”),请在将 VM 转换成模板之前编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,并删除 HWADDR 行。

注意

Red Hat 建议使用 kickstart 执行自动安装,而不是直接克隆磁盘映像(请参阅 Red Hat 知识库文章 1308)。

RHEL 图形安装支持

要执行图形安装,请在 XenCenter 中逐步完成“新建 VM”向导。在“安装介质”页面上的高级操作系统启动参数部分中,向列表参数中添加 vnc

graphical utf8 vnc

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

Red Hat Enterprise Linux 5

XenServer 要求运行 RHEL 5.4 内核或更高版本。旧内核具有以下已知问题:

  • 在 XenServer 7.1 上,使用原始内核的 RHEL 5.0 64 位来宾操作系统无法启动。在尝试将 XenServer 主机升级至版本 7.1 之前,客户应将内核更新为版本 5.4 (2.6.18-164.el5xen) 或更高版本。如果运行这些来宾系统的客户已经将主机升级至 XenServer 7.1,则应参阅 CTX134845,了解有关升级内核的信息。

  • 在挂起的 VM 上执行恢复操作期间,可以执行导致交换活动的分配,但是由于仍然需要重新连接交换磁盘,所以交换活动无法执行。这种情况极少发生。(Red Hat Bugzilla 429102)。

  • 运行 RHEL 5.3 或 5.4(32/64 位)的客户不应使用动态内存控制 (DMC),因为这会导致来宾系统崩溃。如果您想要使用 DMC,那么 Citrix 建议升级到最新版本的 RHEL 或 CentOS。[EXT-54]

  • 在 RHEL 5.3 中,当有许多设备连接到 VM 时,有时将会没有足够的时间来连接所有这些设备,并且启动会失败。[EXT-17]

  • 在 RHEL 5.0-5.3 中,使用 XFS 文件系统在特殊情况下会导致内核混乱。应用 Red Hat RHEL 5.4 或更高版本的内核可解决此问题。[EXT-16]

  • 在 RHEL 5.2 和 5.3 中,主机具有 64 GiB RAM 或更高配置时,VM 可能会崩溃。应用 Red Hat RHEL 5.4 或更高版本的内核可解决此问题。[EXT-30]

  • 在 RHEL 5.0-5.3 中,网络驱动器存在一个在极少数情况下会导致内核死锁的问题。应用 Red Hat RHEL 5.4 或更高版本的内核可解决此问题。[EXT-45]

注意

在先前的版本中,XenServer 具有一个备用 RHEL 5 内核,修复了某些会阻止 RHEL 5 作为虚拟机有效运行的关键问题。Red Hat 已在 RHEL 5.4 及更高版本中解决了这些问题。因此,XenServer 不再包括 RHEL 5 的特定内核。

为克隆准备 RHEL 5.x 来宾

要准备 RHEL 5.x 来宾系统以进行克隆(请参阅“准备克隆 Linux VM”),请在将 VM 转换成模板之前编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,并删除 HWADDR 行。

注意

Red Hat 建议使用 kickstart 执行自动安装,而不是直接克隆磁盘映像(请参阅 Red Hat 知识库文章 1308)。

Red Hat Enterprise Linux 6

注意

Red Hat Enterprise Linux 6.x 还包括 Red Hat Enterprise Linux Workstation 6.6(64 位)和 Red Hat Enterprise Linux Client 6.6(64 位)。

  • RHEL 6.0 内核存在一个缺陷,将影响多个虚拟化平台上的磁盘 I/O。此问题导致运行 RHEL 6.0 的 VM 丢失中断信号。有关详细信息,请参阅 Red Hat Bugzilla 681439603938652262

  • 尝试从正在运行 RHEL 6.1 和 6.2(32/64 位)的 VM 中分离虚拟磁盘映像 (VDI) 可能不会成功,并且会导致来宾系统内核崩溃,并显示 NULL pointer dereference at <xyz> 错误消息。客户应将内核更新到 6.3 (2.6.32-238.el6) 版或更高版本才能解决此问题。有关详细信息,请参阅Red Hat Bugzilla 773219

Red Hat Enterprise Linux 7

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

CentOS 4

有关 CentOS 4 发行说明的列表,请参阅 RHEL 4 限制

CentOS 5

有关 CentOS 5.x 发行说明的列表,请参阅 RHEL 5 限制

CentOS 6

有关 CentOS 6.x 发行说明的列表,请参阅 RHEL 6 限制

CentOS 7

有关 CentOS 7.x 发行说明的列表,请参阅 RHEL 7 限制

Oracle Linux 5

有关 Oracle Linux 5.x 发行说明的列表,请参阅 RHEL 5 限制

Oracle Linux 6

升级到 v6.5 后,如果安装 Oracle Linux 6.x 来宾的 XenServer 主机运行的是早于 v6.5 的版本,则此来宾系统将继续运行 Red Hat 内核。要切换到 UEK 内核(全新安装中使用的默认设置),请删除 dom0 中的 /etc/pygrub/rules.d/oracle-5.6 文件。您可以通过编辑 VM 中的引导加载程序配置来选择此 VM 要使用哪个内核。

有关 OEL 6.x 发行说明的列表,请参阅 RHEL 6 限制

Oracle Linux 7

有关 Oracle Linux 7.x 发行说明的列表,请参阅 RHEL 7 限制

Scientific Linux 5

有关 Scientific Linux 5.x 发行说明的列表,请参阅 RHEL 5 限制

Scientific Linux 6

有关 Scientific Linux 6.x 发行说明的列表,请参阅 RHEL 6 限制

Scientific Linux 7

有关 Scientific Linux 7.x 发行说明的列表,请参阅 RHEL 7 限制

SUSE Enterprise Linux 10 SP1

XenServer 使用与 SLES 10 SP2 一起提供的标准 Novell 内核作为来宾内核。此内核中发现的所有缺陷均已向上报告给 Novell 并在下面列出:

  • 最多支持 3 个虚拟网络接口。

  • 引导时,有时不会正确连接磁盘。(Novell Bugzilla 290346)。

SUSE Enterprise Linux 10 SP3

由于 Novell SUSE Linux Enterprise Server 10 SP3(32 位)版本中存在的打包缺陷,用户将无法创建此版本的 VM。解决方法:必须安装 SLES 10 SP2,然后在 VM 中使用 yast(例如)将其升级至 SLES SP3。有关详细信息,请参阅 Novell 文档 7005079

SUSE Enterprise Linux 11

XenServer 使用与 SLES 11 一起提供的标准 Novell 内核作为来宾内核。此内核中发现的所有缺陷均已向上报告给 Novell 并在下面列出:

  • 高负载下 SLES 11 VM 的实时迁移可能会失败,同时会提示以下消息:An error occurred during the migration process。这归因于已向 Novell 报告的一个已知的 SLES 11 内核问题。预计 Novell 的内核更新 2.6.27.23-0.1.1 以及更高版本将会解决此问题。

SUSE Enterprise Linux 11 SP2

创建 SLES 11 SP2(32 位)VM 可能会导致 SLES 安装程序或 VM 由于 SLES 11 SP2 内核中的缺陷而崩溃。要解决此问题,客户至少应为 VM 分配 1 GB 内存。可以在安装 VM 的更新后减少分配的内存量。有关详细信息,请参阅 Novell Bugzilla 809166

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

注意

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

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

为克隆准备 SLES 来宾系统(请参阅“准备克隆 Linux VM”):

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

  2. 编辑内容如下的行:

    FORCE_PERSISTENT_NAMES=yes
    

    更改为

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

Ubuntu 10.04

在引导期间 (VCPUs-at-startup),如果在 Ubuntu 10.04(64 位)VM 上,尝试将可用于 VM 的 vCPU 最大数 (VCPUs-max) 设置为高于 vCPU 的可用数,则在引导期间会导致 VM 崩溃。有关详细信息,请参阅 Ubuntu Launchpad 1007002

Ubuntu 12.04

配备了原始内核的 Ubuntu 12.04 VM 在启动过程中会崩溃。要解决此问题,客户应使用供应商支持的最新安装介质创建 Ubuntu 12.04 VM,或者使用来宾内置的更新机制将现有 VM 更新到最新版本。

Ubuntu 14.04

尝试引导 PV 来宾系统可能会导致来宾系统崩溃,并显示以下错误:kernel BUG at /build/buildd/linux-3.13.0/arch/x86/kernel/paravirt.c:239!。这是因为未从中断上下文正确调用非原子函数。客户应将 Linux 映像包更新至版本 3.13.0-35.62 以解决此问题。有关详细信息,请参阅 Ubuntu Launchpad 1350373