XenServer开启了Intellicache功能支持以后,我们可以针对每个VM的VDI开启缓存支持。
根据以前的文章介绍,我们知道VM的VDI有两种模式,也就是Shared Desktop Mode和Private Desktop Mode,分别规定了对VDI的修改是否会持久化的行为。而VM的cache,在两种不同VDI模式的情况下,有些类似的区别,对一些XenServer的高级功能有影响,所以这里就提到以下。
默认情况下,启用了Thin Provisioning(也就是local SR为EXT3文件系统),那么VDI的allow-caching参数(标志,Flag)设置为true,则标示启用了本地智能缓存;设置为false,则标示禁用缓存功能。
而VM的工作模式(on-boot设置)以及缓存行为设置(allow-caching)会影响到VM的迁移(XenMotion,VM Migration)。
- 如果on-boot=reset,allow-caching=true,那么缓存数据只会写入到本地的缓存SR,不会写入到共享存储,这会大大降低共享存储的压力,然后这种情形下,VM不能在主机之间迁移。很容易理解,因为缓存管理的原因,导致虚机无法迁移。
- 如果on-boot=persist,allow-caching=true,那么由于最终对VDI的修改会持久化到硬盘或者VBD,PBD上,那么,对VDI的写入,不仅会写入到缓存,同时也会写入到共享存储,只有读得情况下,如果缓存命中,那么会直接从缓存读取。此种情形下,VM由于变动的数据已经回写到共享存储,迁移以后,缓存可以在其他主机重建,所以此时,VM可以迁移。