回顾一下PVS的技术特性
Cache in RAM with Disk Overflow的由来
PVS Write Cache类型详解
-
缓存到服务器上,就是说放在PVS的服务器上,缺省和vDisk的摆放位置一样,只不过是不同路径;和其它方式相比这种方式性能最差,也没有高可用配置,所以在VDI方式中坚决杜绝使用,只是在Streaming到物理机或者是无盘瘦客户机时才使用;
-
缓存到Target Device的硬盘上。这种方式会在Target Device的硬盘上创建一个写缓存文件.vdiskcache。所以在Target Device的硬盘是需要NTFS的文件分区别格式来创建这个.vdiskcache文件。到目前为止这种方式是Citrix最佳实践的推荐部署方式,虽然并非是性能最好的方式,但是他在成本和性能之间达到了一个平衡,所以在大部分项目中都是采用这种方式部署。
备注:这种模式下为了让写缓存磁盘达到最高的吞吐量,建议打开Intermediate Buffering(中间缓冲)这个配置选项。默认下该选项是禁用的,如何启用该选项可以参考CTX126042.
-
缓存到RAM(内存)中。这种方式保留Target Device的一部分内存用来存放Write Cache,这部分的RAM操作系统将不能再使用了。这部分保留用于Write Cache的内存在vDisk的属性中配置。这种方式能提供更高的吞吐率,更好的响应时间,以及为Write Cache提供比前几种方式更高的IOPS,比较内存的读写速度要远胜于磁盘的速度。
不过这种方式还是有一些问题的。首先没有overflow(暂且翻译成“溢出”)功能,一旦写缓存占满了被分配的RAM空间,Target Device将不可用了(甚至发生蓝屏),因此Target Device必须有足够多的内存来存放Write Cache,不过这样一来就会带来更高昂的成本;其次,如果企业有需求要求储存永久设置和数据,例如事件日志等,还是需要保存在Target Device的硬盘介质上。在实际项目中,我们通常会在发布XenApp成员服务器的时候会使用这个功能,主要是因为在一台物理服务器上通常我们不会运行太多的XenApp虚拟机,而VDI方案就不同了,通常数量较多,所以一般来说没有那么多可用的内存可供Write Cache使用。
-
缓存到RAM并且溢出到硬盘,这是一种新的Write Cache形式,其实就是第二和第三种方式的组合,默认状态下Write Cache是写入到Target Device的内存中,当内存写满了时在写入到Target Device的硬盘中。他的工作方式如下。
-
在过去版本相同,缓存的大小是在vDisk的属性中配置,缺省状态下,缓存的大写是64MB,并且可以设置为任何大小。
-
该模式并不是像方式“缓存到RAM(内存)中”那样预留一部分Target Device的内存,“缓存到RAM并且溢出到硬盘”方式的Write Cache是被映射到内存中的非页面池中,并且按照需求来使用,如果系统不再需要时,内存是可以被释放到系统的;
-
在Target Device的硬盘上,“缓存到RAM并且溢出到硬盘”方式并不是使用旧方式的.vdiskcache文件,而是使用一个VHDX格式的文件:vdiskdif.vhdx文件。
-
在启动的时候,该VHDX文件的文件头是4M大小;
-
数据是首先写入到内存中的缓存,一旦缓存满了,不活动的数据将溢出到磁盘上;
-
数据写入到VHDX时是以2MB一个块写入,而不是以前的以4K一个块写入。在开始的时候,看起来Write Cache貌似比旧的.vdiskcache这个缓存文件增长的要快,但是随着时间的推移,新格式的文件所消耗的空间却不会显著增大,这是因为数据最终将会被填充到保留的2M数据块中;
-
“缓存到RAM并且溢出到硬盘”方式的注意事项
-
最初开始时,Write Cache的VHDX文件会比.vdiskcahce文件格式增长的更快。这是由于VHDX格式使用2MB的数据块而不是4K的数据块,但是随着时间的推移,新格式的文件所消耗的空间却不会显著增大,这是因为数据最终将会被填充到保留的2M数据块中;
-
“Intermediate buffering”选项不适用于这种Write Cache模式,实际上,“缓存到RAM并且溢出到硬盘”这种Write Cache方式其实就是用来取代“Intermediate buffering”方式的;
-
系统缓存(System Cache)和vDisk的内存缓存(vDisk RAM Cache)是同时在工作。这句话的意思其实就是说如果有一个块数据从Target Device的内存缓存中被移动到了磁盘的溢出文件上,这个数据时期实际上还是存在于Windows的系统缓存(System Cache)中,再读取时它还是从内存中读取而不是从磁盘中读取;
-
“缓存到RAM并且溢出到硬盘”这种Write Cache方式仅适用于Windows 7/Windows 2008 R2以及之后的操作系统版本;
-
“缓存到RAM并且溢出到硬盘”这种Write Cache方式需要安装一个PVS 7.1的补丁,请参考:
http://support.citrix.com/article/CTX140875
-