XenServer在启用Intellicache功能以后,作为虚拟桌面的基础架构服务器部署,能够有效的利用本地存储和共享存储,减少共享存储的压力。特别对单一镜像的虚机带来的存储性能要求大大降低,缓存减少了网络的压力同时,降低了存储的压力。

Intellicache在启动时,会缓存VM的Parent VDI(父VDI,主VDI)的数据。Local Cache(本地缓存)将作为Parent VDI的数据在以后的读的缓存,这样,当大量的VM共享一个parent VDI(比如MCS在同一个SR中,共享同一个master image),一个虚机的数据请求会被local cache缓存,这样,在其他VM再次访问的时候,就能提供数据访问速度,减少对共享存储上的parent VDI的访问。
另外,为了启用Intellicache,在安装的时候需要开启thin provisioning。Thin Provisioning可以增加可用的存储空间,相比于LVM,更加适合作为共享存储的本地缓存,因为EXT形式的SR,VM是以VHD格式保存,按需分配,而Intellicache需要再本地有一个VDI-UUIS.vhdcache的VDI,如果使用LVM,那么对容量的需求将大大超过预期,所以,Citrix选择了在EXT3文件系统上启用Intellicache功能。
启用Intellicache比较简单,有一个前提要求就是local Storage(或者local SR)需要是EXT3文件系统。

1、在安装的时候,直接启用thin Provosioning,如下图:

2、如果安装的时候,没有启用该选项,默认的Local Storage是以LVM来管理的本地存储,我们需要手动转换成EXT,注意,转换会导致LVM上原有的VM VDI丢失,所以请备份或者迁移后操作。

1

2

3

4

5

6

7

8

9

10

11

12

localsr=`xe sr-list type=lvm host= 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 /etc/firstboot.d/state/10-prepare-storage

rm -f /etc/firstboot.d/state/15-set-default-storage

service firstboot start

xe sr-list type=ext

脚本就不详细解释了,以上脚本用于把LVM格式的本地存储转换成EXT格式,注:需要脚本方式执行

1

2

3

4

xe host-disable host=

localsr=`xe sr-list type=ext host= params=uuid --minimal`

xe host-enable-local-storage-caching host= sr-uuid=$localsr

xe host-enable host=

启用本地缓存,设置该本地存储用于保存缓存数据。

以上在主机上启用了Intellicache功能。第二种方法的两步操作其实同安装的时候勾选Thin Provisioning以后,由系统自动配置相同。

说明:

这里只是讲在XenServer中启用Intellicache功能,启用了该功能支持,并不表示,VM或者XenDesktop部署到这些XenServer主机上的Virtual Desktop已经启用了Intellicache的功能(或者说,已经具备了本地缓存功能)。