Citrix Hypervisor

虚拟机高级注释

本节介绍有关虚拟机的一些高级注释。

VM 引导行为

对于 VM 引导时虚拟机 VDI 的行为,有两个选项:

注意:

必须先关闭 VM,才能更改其引导行为设置。

静态

提示:

如果您托管的 Citrix Virtual Desktops 属于静态或专用计算机,请使用此引导行为。

此行为是 VM 引导时的默认行为。VDI 处于上一次关机时的状态。

如果您打算允许用户对其桌面进行永久性更改,请选择此选项。要选择永久,请关闭 VM,然后输入以下命令:

xe vdi-param-set uuid=vdi_uuid on-boot=persist
<!--NeedCopy-->

重置

提示:

如果您托管的 Citrix Virtual Desktops 属于共享或随机分配的计算机,请使用此引导行为。

在 VM 引导时,VDI 还原为上一次引导时的状态。VM 下次引导时,在 VM 运行时所做的任何更改都将丢失。

如果您打算交付用户无法进行永久性更改的标准化桌面,请选择此选项。要选择重置,请关闭 VM,然后输入以下命令:

xe vdi-param-set uuid=vdi_uuid on-boot=reset
<!--NeedCopy-->

警告:

更改 on-boot=reset 后,下次关闭/启动或重新启动时将放弃保存到 VDI 的所有数据。

使 ISO 库可供 Citrix Hypervisor 服务器使用

要使 ISO 库可供 Citrix Hypervisor 服务器使用,请创建一个外部 NFS 或 SMB/CIFS 共享目录。NFS 或 SMB/CIFS 服务器必须允许对该共享目录进行根访问。对于 NFS 共享,可通过在 NFS 服务器上的 /etc/exports 中创建共享条目时设置 no_root_squash 标志来允许访问。

然后,使用 XenCenter 连接 ISO 库,或连接到主机控制台并运行以下命令:

xe-mount-iso-sr host:/volume
<!--NeedCopy-->

要实现高级用途,可以向 mount 命令传递额外的参数。

要使 Windows SMB/CIFS 共享可供主机使用,请使用 XenCenter,或连接到主机控制台并运行以下命令:

xe-mount-iso-sr unc_path -t cifs -o username=myname/myworkgroup
<!--NeedCopy-->

unc_path 参数中的反斜杠替换为正斜杠。例如:

xe-mount-iso-sr //server1/myisos -t cifs -o username=johndoe/mydomain
<!--NeedCopy-->

装载共享后,任何可用的 ISO 都将列在 XenCenter 的从 ISO 库或 DVD 驱动器安装列表中。这些 ISO 还作为 CD 映像在 CLI 命令中使用。

将 ISO 连接到合适的 Windows 模板。

使用远程桌面连接到 Windows VM

您可以使用以下方法之一查看 Windows VM 控制台,这两种方法均支持充分利用键盘和鼠标。

  • 使用 XenCenter。此方法提供标准的图形控制台,并使用 Citrix Hypervisor 的内置 VNC 技术提供对虚拟机控制台的远程访问。

  • 使用 Windows 远程桌面进行连接。此方法使用远程桌面协议技术。

在 XenCenter 中的控制台选项卡上,有一个切换到远程桌面按钮。此按钮可禁用 XenCenter 中的标准图形控制台,并切换为使用远程桌面。

如果在 VM 中未启用远程桌面,此按钮将处于禁用状态。要将其启用,请安装适用于 Windows 的 XenServer VM Tools(以前称为 Citrix VM Tools)。按照下列过程在要使用远程桌面连接的每个 VM 中启用此按钮:

要在 Windows VM 上启用远程桌面,请执行以下操作:

  1. 打开系统,方法是单击开始按钮,在计算机上单击鼠标右键,然后选择属性

  2. 单击远程设置。如果系统提示您输入管理员密码,请键入您在安装 VM 时创建的密码。

  3. 远程桌面区域中,单击标记为允许运行任意版本远程桌面的计算机连接的复选框。

  4. 要选择可连接到此 Windows VM 的任何非管理员用户,请单击选择远程用户按钮,然后提供用户名。默认情况下,对 Windows 域拥有管理员权限的用户可以进行连接。

现在,您可以使用远程桌面连接到此 VM。有关详细信息,请参阅 Microsoft 知识库文章 Connect to another computer using Remote Desktop Connection(使用远程桌面连接连接到其他计算机)。

注意:

无法连接到处于睡眠状态或休眠状态的 VM。在远程计算机上将睡眠和休眠设置设为从不

Windows VM 中的时间处理

对于 Windows 来宾系统,最初是由控制域时钟驱动时间。在 VM 生命周期操作(例如挂起和重新启动)期间,时间会更新。我们建议在控制域和所有 Windows VM 中运行可靠的 NTP 服务。

如果手动将 VM 设置为比控制域早 2 小时,则其将永久保留。在 VM 中使用时区偏差可能会将 VM 的时间提前。如果以后更改了控制域时间(手动或由 NTP 更改),VM 将相应做出调整,但会保持 2 小时的偏差。控制域时区变动不会影响 VM 时区或偏差。Citrix Hypervisor 使用 VM 的硬件时钟设置来同步 VM。Citrix Hypervisor 不会使用 VM 的系统时钟设置。

执行挂起和恢复操作或使用实时迁移时,请确保安装了最新版本的适用于 Windows 的 XenServer VM Tools。适用于 Windows 的 XenServer VM Tools 通知 Windows 内核恢复后需要执行时间同步(可能在其他物理主机上)。

注意:

如果您在 Citrix Virtual Desktops 环境中运行 Windows VM,必须确保主机时钟与 Active Directory (AD) 域具有相同来源。未能同步时钟可能会导致 VM 显示不正确的时间,导致 Windows PV 驱动程序崩溃。

Linux VM 中的时间处理

除 Citrix Hypervisor 定义的行为之外,操作系统设置和行为可以影响 Linux VM 的时间处理行为。某些 Linux 操作系统可能会定期同步其系统时钟和硬件时钟,或者操作系统可能会默认使用自己的 NTP 服务。有关详细信息,请参阅您的 Linux VM 的操作系统文档。

注意:

安装新 Linux VM 后,请确保将时区从默认 UTC 更改为本地值。有关特定发行版说明,请参阅 Linux 发行说明

Linux VM 中的硬件时钟与控制域中运行的时钟同步,并且可以独立更改。VM 启动时,控制域时间用于设置硬件时钟和系统时钟的初始时间。

如果您更改了硬件时钟上的时间,此更改在 VM 重新启动时将持续存在。

系统时钟行为取决于 VM 的操作系统。有关详细信息,请参阅您的 VM 操作系统对应的文档。

不能更改此 Citrix Hypervisor 的时间处理行为。

从经销商可选套件(锁定了 BIOS)介质安装 VM

有两种类型的 VM:BIOS 通用和 BIOS 自定义。要能够将 Windows 的经销商可选套件(锁定了 BIOS)OEM 版安装到 VM,应从随附了介质的主机中复制该 VM 的 BIOS 字符串。此外,高级用户可以将用户定义的值设置为 BIOS 字符串。

BIOS 通用

VM 具有通用 Citrix Hypervisor BIOS 字符串。

注意:

如果 VM 在启动时未设置 BIOS 字符串,则会向该 VM 中插入标准 Citrix Hypervisor BIOS 字符串,并且该 VM 将具有通用 BIOS。

BIOS 自定义

对于 HVM VM,可以采用两种方式自定义 BIOS:复制主机 BIOS 字符串和用户定义的 BIOS 字符串。

注意:

先启动 VM 后,便无法更改其 BIOS 设置。在首次启动 VM 之前,请确保 BIOS 设置正确无误。

复制主机 BIOS 字符串

VM 具有池中特定服务器的 BIOS 字符串的副本。要安装主机随附的锁定了 BIOS 的介质,请按照下面的过程进行操作。

使用 XenCenter:

  1. 单击“新建 VM”向导中的将主机 BIOS 字符串复制到 VM复选框。

使用 CLI:

  1. 运行 vm-install copy-bios-strings-from 命令。指定 host-uuid 作为从其复制字符串的主机(即,随附了介质的主机):

    xe vm-install copy-bios-strings-from=host uuid \
        template=template name sr-name-label=name of sr \
        new-name-label=name for new VM
    <!--NeedCopy-->
    

    此命令将返回新创建的 VM 的 UUID。

    例如:

    xe vm-install copy-bios-strings-from=46dd2d13-5aee-40b8-ae2c-95786ef4 \
        template="win7sp1" sr-name-label=Local\ storage  \
        new-name-label=newcentos
        7cd98710-bf56-2045-48b7-e4ae219799db
    <!--NeedCopy-->
    
  2. 如果将主机中的相关 BIOS 字符串成功复制到 VM 中,则 vm-is-bios-customized 命令会确认此操作已成功:

    xe vm-is-bios-customized uuid=VM uuid
    <!--NeedCopy-->
    

    例如:

    xe vm-is-bios-customized uuid=7cd98710-bf56-2045-48b7-e4ae219799db
        This VM is BIOS-customized.
    <!--NeedCopy-->
    

    注意:

    启动 VM 时,是在从其复制了 BIOS 字符串的物理主机上启动此 VM。

警告:

任何 EULA 都规定了如何使用安装的锁定了 BIOS 的所有操作系统,您必须遵守其中的规定。

用户定义的 BIOS 字符串

用户可以选择使用 CLI/API 在选定的 BIOS 字符串中设置自定义值。要在具有自定义的 BIOS 的 HVM VM 中安装介质,请按照下面的过程进行操作。

使用 CLI:

  1. 运行 vm-install 命令(不带 copy-bios-strings-from):

    xe vm-install template=template name sr-name-label=name of sr \
          new-name-label=name for new VM
    <!--NeedCopy-->
    

    此命令将返回新创建的 VM 的 UUID。

    例如:

    xe vm-install template="win7sp1" sr-name-label=Local\ storage  \
          new-name-label=newcentos
        7cd98710-bf56-2045-48b7-e4ae219799db
    <!--NeedCopy-->
    
  2. 要设置用户定义的 BIOS 字符串,请在首次启动 VM 之前运行以下命令:

    xe vm-param-set uuid=VM_UUID bios-strings:bios-vendor=VALUE \
        bios-strings:bios-version=VALUE bios-strings:system-manufacturer=VALUE \
        bios-strings:system-product-name=VALUE bios-strings:system-version=VALUE \
        bios-strings:system-serial-number=VALUE bios-strings:enclosure-asset-tag=VALUE
    <!--NeedCopy-->
    

    例如:

    xe vm-param-set uuid=7cd98710-bf56-2045-48b7-e4ae219799db \
        bios-strings:bios-vendor="vendor name" \
        bios-strings:bios-version=2.4 \
        bios-strings:system-manufacturer="manufacturer name" \
        bios-strings:system-product-name=guest1 \
        bios-strings:system-version=1.0 \
        bios-strings:system-serial-number="serial number" \
        bios-strings:enclosure-asset-tag=abk58hr
    <!--NeedCopy-->
    

    备注:

    • 在单个 CLI/API 调用中设置用户定义的 BIOS 字符串后,将不能进行修改。
    • 您可以决定要为设置用户定义的 BIOS 字符串提供的参数数量。

警告:

您有责任:

  • 遵从适用于要在 VM 的 BIOS 中设置的值的所有 EULA 和标准。
  • 确保为参数提供的值属于有效参数。提供不正确的参数会导致引导/介质安装失败。

为 Windows VM 分配 GPU (与 Citrix Virtual Desktops 结合使用)

您可以通过 Citrix Hypervisor 将 Citrix Hypervisor 服务器中的物理 GPU 分配给同一主机上运行的 Windows VM。需要高性能图形能力的图形高级用户(例如 CAD 设计师)可从此 GPU 直通功能受益。仅支持与 Citrix Virtual Desktops 结合使用。

尽管 Citrix Hypervisor 支持每个 VM 仅对应一个 GPU,但是它会自动检测同一个池中各主机上完全相同的物理 GPU,并将它们组合到一起。将某个 VM 分配给一组 GPU 之后,该 VM 可以在池中具有该组内可用 GPU 的任何主机上启动。VM 连接到 GPU 后,其具有的某些功能(包括 实时迁移、含内存数据的 VM 快照和挂起/恢复)将不再可用。

为池中的 VM 分配 GPU 不会干扰池中其他 VM 的运行。但是,连接 GPU 的 VM 将被视为不具有灵活性。如果连接了 GPU 的 VM 属于启用了高可用性的池,则这两项功能将忽略这些 VM。这些 VM 无法自动迁移。

可以使用 XenCenter 或 xe CLI 启用 GPU 直通。

要求

特定的计算机和 GPU 支持 GPU 直通功能。在所有情况下,Citrix Hypervisor 服务器上都必须提供并启用 IOMMU 芯片组功能(对于 Intel 型号称为 VT-d)。在启用 GPU 直通功能之前,请访问硬件兼容性列表

为 VM 分配 GPU 之前的准备工作

在为 VM 分配 GPU 之前,应将相应的物理 GPU 装到您的 Citrix Hypervisor 服务器中,然后重新启动该计算机。在重新启动时,Citrix Hypervisor 会自动检测任何物理 GPU。要查看池中各个主机上的所有物理 GPU,请使用 xe pgpu-list 命令。

确保在主机上启用 IOMMU 芯片组功能。为此,请输入以下命令:

xe host-param-get uuid=uuid_of_host param-name=chipset-info param-key=iommu
<!--NeedCopy-->

如果输出的值为 false,则表示未启用 IOMMU,并且无法通过指定的 Citrix Hypervisor 服务器使用 GPU 直通功能。

要使用 XenCenter 为 Windows VM 分配 GPU,请执行以下操作:

  1. 关闭要为其分配 GPU 的 VM。

  2. 打开 VM 属性:在 VM 上单击鼠标右键,然后选择属性

  3. 为该 VM 分配 GPU:从 VM 属性列表中选择 GPU,然后选择一种 GPU 类型。单击确定

  4. 启动 VM。

使用 xe CLI 为 Windows VM 分配 GPU:

  1. 使用 xe vm-shutdown 命令关闭要为其分配 GPU 组的 VM。

  2. 通过输入以下命令显示该 GPU 组的 UUID:

    xe gpu-group-list
    <!--NeedCopy-->
    

    此命令将输出池中的所有 GPU 组。请记录相应 GPU 组的 UUID。

  3. 通过输入以下命令将该 VM 连接到相应的 GPU 组:

    xe vpgu-create gpu-group-uuid=uuid_of_gpu_group vm-uuid=uuid_of_vm
    <!--NeedCopy-->
    

    要确保已连接该 GPU 组,请运行 xe vgpu-list 命令。

  4. 使用 xe vm-start 命令启动该 VM。

  5. 启动后,在该 VM 上安装图形卡驱动程序。

    必须安装驱动程序,使 VM 能够直接访问主机上的硬件。驱动程序由硬件供应商提供。

注意:

如果您尝试在相应 GPU 组中没有可用 GPU 的主机上启动具有 GPU 直通功能的 VM,Citrix Hypervisor 会输出错误。

要使用 XenCenter 将 Windows VM 与 GPU 分离,请执行以下操作:

  1. 关闭 VM。

  2. 打开 VM 属性:在 VM 上单击鼠标右键,然后选择属性

  3. 将 GPU 与 VM 分离:从 VM 属性列表中选择 GPU,然后选择作为 GPU 类型。单击确定

  4. 启动 VM。

使用 xe CLI 将 Windows VM 与 GPU 分离:

  1. 使用 xe vm-shutdown 命令关闭 VM。

  2. 通过输入以下命令显示与 VM 相连的 vGPU 的 UUID:

    xe vgpu-list vm-uuid=uuid_of_vm
    <!--NeedCopy-->
    
  3. 通过输入以下命令将 GPU 与 VM 分离:

    xe vgpu-destroy uuid=uuid_of_vgpu
    <!--NeedCopy-->
    
  4. 使用 xe vm-start 命令启动该 VM。

创建 ISO 映像

Citrix Hypervisor 可使用 ISO 映像作为 Windows 或 Linux VM 的安装介质和数据来源。本节说明如何通过 CD/DVD 介质创建 ISO 映像。

要在 Linux 系统上创建 ISO,请执行以下操作:

  1. 将 CD-ROM或 DVD-ROM 磁盘放入驱动器中。请确保未装载磁盘。要进行检查,请运行以下命令:

    mount
    <!--NeedCopy-->
    

    如果光盘已装载,请将其卸载。如有必要,请参阅您的操作系统文档以寻求帮助。

  2. 以 root 用户身份运行以下命令:

    dd if=/dev/cdrom of=/path/cdimg_filename.iso
    <!--NeedCopy-->
    

    此命令需要一些时间。成功完成该操作后,您将看到类似如下所示的内容:

    1187972+0 records in
    1187972+0 records out
    <!--NeedCopy-->
    

    您的 ISO 文件已就绪。

要在 Windows 系统上创建 ISO,请执行以下操作:

Windows 计算机没有创建 ISO 的等效操作系统命令。大多数 CD 刻录工具可将 CD 另存为 ISO 文件。