IntelliCache™
将 XenServer® 与 IntelliCache 结合使用,可以通过同时使用共享存储和本地存储,使托管的虚拟桌面基础架构部署更具成本效益。当许多虚拟机 (VM) 都共享一个共同的操作系统映像(主映像)时,它尤其有益。存储阵列的负载得以减少,性能得到提升。此外,由于本地存储会缓存来自共享存储的主映像,因此进出共享存储的网络流量也会减少。
IntelliCache 的工作原理是在虚拟机主机上的本地存储中缓存虚拟机的数据。此本地缓存数据包括:
- 主映像(虚拟机的父 VDI)的缓存副本。此文件采用精简配置且为只读。它会随着从共享存储上的主映像 VDI 读取数据而填充。当许多虚拟机共享一个共同的主映像 VDI 时,虚拟机可以使用从另一个虚拟机读取到缓存中的数据。无需进一步访问共享存储上的主映像。
- 每个 VDI 增量磁盘的缓存副本。更改可以写入此本地增量磁盘。对于非持久性虚拟机,本地缓存增量磁盘中的数据在虚拟机启动时被丢弃。对于持久性虚拟机,本地缓存增量磁盘中的数据在虚拟机启动时写回共享存储上的增量磁盘。
先决条件
IntelliCache 功能具有以下要求:
-
高级版许可证:IntelliCache 仅在使用 XenServer 高级版和 Citrix Virtual Desktops 时受支持。
-
存储:要使用 IntelliCache,您需要一个用于缓存数据的本地 SR 和一个用于源虚拟磁盘映像 (VDI) 的共享 SR。仅将这些 SR 用于 IntelliCache 虚拟机。不要在同一个 SR 上混合使用传统虚拟机和 IntelliCache 虚拟机。
-
共享存储:用于托管源 VDI 的共享存储必须是以下类型之一:
- NFS
- SMB3
- 共享 LVM(iSCSI 或 HBA)
-
本地存储:我们建议您使用高性能本地存储设备,以确保最快的数据传输。例如,使用固态硬盘或高性能 RAID 阵列。在确定本地磁盘大小时,请同时考虑数据吞吐量和存储容量。
IntelliCache 需要精简配置的 EXT3/EXT4 本地 SR。精简配置必须启用,才能使 Citrix Virtual Desktops 本地缓存正常工作。您可以在 XenServer 安装时或之后,通过命令行启用精简配置。精简配置会将主机的默认本地存储类型从 LVM 更改为 EXT4。有关详细信息,请参阅 IntelliCache 部署。
精简配置是一种优化可用存储使用的方法。这种方法允许您更多地使用本地存储而不是共享存储。它依赖于数据块的按需分配。在其他方法中,所有块都是预先分配的。精简配置允许管理员向连接到存储库 (SR) 的虚拟机提供比 SR 上可用空间更多的存储空间。没有空间保证,并且在虚拟机写入数据之前,LUN 的分配不会占用任何数据块。
精简配置的 SR 可能会耗尽物理空间,因为其中的虚拟机可以按需增长以消耗磁盘容量。当本地 SR 缓存已满时,IntelliCache 虚拟机通过自动回退到共享存储来处理这种情况。请勿在同一个 SR 上混合使用传统虚拟机和 IntelliCache 虚拟机,因为 IntelliCache 虚拟机的大小会快速增长。
-
IntelliCache 部署
要使用 IntelliCache 功能,您必须在 XenServer 和 Citrix Virtual Apps and Desktops™ 上启用它。
在 XenServer 上
要使用 IntelliCache,必须在主机安装期间启用本地 SR 的精简配置,或者使用 CLI 在运行中的主机上手动启用。精简配置将主机的默认本地存储类型从 LVM 更改为 EXT4。
在主机安装时启用
若要在主机安装期间启用精简配置,请在“虚拟机存储”屏幕上选择“启用精简配置”。此选项选择主机的本地 SR 作为用于虚拟机 VDI 本地缓存的 SR。

将现有主机转换为使用精简配置
要删除现有的 LVM 本地 SR 并将其替换为精简配置的 EXT3/EXT4 SR,请键入以下命令。
警告:
这些命令将删除您现有的本地 SR,并且 SR 上的虚拟机将被永久删除。
localsr=`xe sr-list type=lvm host=hostname params=uuid --minimal`
echo localsr=$localsr
pbd=`xe pbd-list sr-uuid=$localsr params=uuid --minimal`
echo pbd=$pbd
xe pbd-unplug uuid=$pbd
xe pbd-destroy uuid=$pbd
xe sr-forget uuid=$localsr
sed -i "s/'lvm'/'ext'/" /etc/firstboot.d/data/default-storage.conf
rm -f /var/lib/misc/ran-storage-init
systemctl restart storage-init.service
xe sr-list type=ext
<!--NeedCopy-->
要启用本地缓存,请键入以下命令:
xe host-disable host=hostname
localsr=`xe sr-list type=ext host=hostname params=uuid --minimal`
xe host-enable-local-storage-caching host=hostname sr-uuid=$localsr
xe host-enable host=hostname
<!--NeedCopy-->
在 Citrix 虚拟应用和桌面 上
在 Citrix Studio 中将 Citrix Virtual Apps and Desktops 连接到 XenServer 时,请选择使用 IntelliCache。如果在 XenServer 中启用了本地 SR 的精简预配,则在创建与 XenServer 的连接时,Citrix Studio 会显示选项 使用 IntelliCache 减少共享存储设备上的负载。
有关详细信息,请参阅 Citrix Virtual Apps and Desktops 产品文档。
使用 IntelliCache 的 VM 行为
VDI 标志 on-boot 决定了 VM 启动时 VM VDI 的行为,VDI 标志 allow-caching 决定了缓存行为。
这些参数的值取决于您正在创建的 VM 类型及其预期用途:
-
对于共享或随机分配的计算机:
- 将
on-boot参数设置为reset。 - 将
allow-caching参数设置为true
例如:
xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true <!--NeedCopy-->在 VM 启动时,VDI 将恢复到上次启动时的状态。VM 运行时所做的所有更改在下次启动 VM 时都会丢失。新的 VM 数据仅写入本地存储。没有写入共享存储。这种方法意味着共享存储上的负载会减少。但是,VM 无法在主机之间迁移。
如果您计划向用户提供无法进行永久更改的标准化桌面,请选择此选项。
- 将
-
对于静态或专用计算机:
- 将
on-boot参数设置为persist。 - 将
allow-caching参数设置为true
例如:
xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true <!--NeedCopy-->虚拟机启动时,VDI 处于上次关机时的状态。新的虚拟机数据会写入本地存储和共享存储。读取缓存数据不需要共享存储的 I/O 流量,因此共享存储上的负载会降低。允许将虚拟机迁移到另一个主机,并且新主机上的本地缓存会在数据读取时填充。
如果您计划允许用户对其桌面进行永久性更改,请选择此选项。
- 将
注意:
对于 VDI 位于 GFS2 SR 上的虚拟机,其启动行为与 VDI 位于其他类型 SR 上的虚拟机不同。对于 GFS2 SR 上的 VDI,启动选项在虚拟机关机时应用,而不是在虚拟机启动时应用。
实施详情和故障排除
问: IntelliCache 是否与实时迁移和高可用性兼容?
答: 当虚拟桌面处于私有模式时,即当 on-boot=persist 时,您可以将实时迁移和高可用性与 IntelliCache 结合使用。
警告:
如果虚拟机的任何 VDI 的缓存行为标志设置为
on-boot=reset和allow-caching=true,则无法迁移该虚拟机。具有这些属性的虚拟机的迁移尝试将失败。
问: 本地缓存位于本地磁盘的什么位置?
答: 缓存位于存储库 (SR) 中。每个主机都有一个配置参数(称为 local-cache-sr),指示哪个(本地)SR 用于缓存文件。通常,此 SR 是 EXT3/EXT4 类型的 SR。当您运行带有 IntelliCache 的虚拟机时,您会看到 SR 中名称为 uuid.vhdcache 的文件。此文件是具有给定 UUID 的 VDI 的缓存文件。这些文件不会在 XenCenter 中显示。查看它们的唯一方法是登录到 dom0 并列出 /var/run/sr-mount/sr-uuid 的内容。
问: 如何指定用作缓存的特定 SR?
答: 主机对象字段 local-cache-sr 引用一个本地 SR。您可以通过运行以下命令查看其值:
xe sr-list params=local-cache-sr,uuid,name-label
<!--NeedCopy-->
此字段可以设置为:
-
在主机安装后,如果您在主机安装程序中选择了“启用精简配置”选项,或者
-
通过运行
xe host-enable-local-storage-caching host=host sr-uuid=sr。此命令要求指定的主机处于禁用状态。使用此命令时请关闭虚拟机。
第一个选项使用 EXT3/EXT4 类型的本地 SR,并在主机安装期间创建。第二个选项使用在命令行中指定的 EXT3/EXT4 类型的 SR。
警告:
这些步骤仅适用于配置了多个本地 SR 的用户。
问: 本地缓存何时删除?
答: 本地缓存包含两种类型的信息:
- 主映像磁盘的共享缓存。此共享缓存文件镜像共享存储中的只读 VDI,并且在对单个 VDI 执行操作时不会被删除或重置。
-
每个 VDI 的每个 VDI 增量磁盘缓存。对于非持久性虚拟机,当 VDI 附加到虚拟机时(例如,在虚拟机启动时),增量磁盘缓存会重置。此缓存文件仅在 VDI 本身被删除时才会被删除。如果删除 VDI 时主机处于离线状态,则在启动时运行的 SR 同步会垃圾回收该缓存文件。
注意:
当虚拟机迁移到其他主机或关闭时,增量磁盘缓存文件不会从主机中删除。