原文:http://myvirtualcloud.net/?p=5444
注明:本文内容基于 VMwareVSAN beta 版本撰写,请访问http://www.vmware.com/products/virtual-san/获得有关正式版本的更新信息。
这篇文章是在我以前写过的两篇关于Horizon View 和 VMware Virtual SAN 的文章基础上写的。这两篇文章是:VMware VSAN如何为 Horizon View 带来益处?和如何为 HorizonView 配置 VMware VSAN?
CBRC(基于内容的读取缓存)是随vSphere 5 推出的,它可以使 Horizon View 管理员通过 Horizon View 管理控制台来利用此功能。CBRC可以帮助管理员解决 VDI 的性能瓶颈问题以及存储成本增加问题。
总的来说,CBRC 是一种 100% 基于主机、基于RAM 的缓存解决方案,它可以减少向存储子系统发出的读取IO 数,从而提高存储子系统的可扩展性,同时对客户机操作系统完全透明。
这一功能主要是为了应对读取密集型I/O 风暴,例如,操作系统引导和重新引导、防病毒扫描等。利用此功能,管理员通常会发现针对这些工作负载向阵列发出的峰值读取I/O 会大幅下降,大约下降60% 左右。如果您有意了解CBRC 的深入知识,建议您阅读我曾经写过的文章了解 CBRC(基于内容的读取缓存)。
虽然 VSAN 可以在 SSD 中为读取操作提供缓存层,而为写入操作提供缓冲,但CBRC 基于内容的缓存方法对于支持峰值读取IO 负载必不可少。CBRC 可以在几微秒而不是几毫秒内为虚拟桌面提供常用的缓存块。另外,最重要的是,在引导风暴和主机初始化期间,如果使用VSAN 时不使用 CBRC,那么,最常访问的数据块可能就不会提升到 SSD 缓存层,从而影响最终用户体验。
由于 VSAN 实施了 RAIN 架构,与虚拟机对应的数据块就可能放在群集中的任意位置,从而使存储IO 流量流经网络堆栈。Duncan Epping 撰写过一篇精彩的文章:如何知道某个对象在 VirtualSAN 中的位置?
在桌面生命周期管理的多个阶段,VSAN和 CBRC 有几个重要的交互点,包括引导风暴和 CBRC 摘要计算。有关更多信息,请查阅了解 CBRC – RecomputeDigest 方法。
关于 VSAN 与 CBRC 的互动,经常会遇到一个问题,那就是,在VSAN 上,数据块可能会从与实际运行虚拟桌面的主机不同的另一台主机进行读取。尽管块的位置发生了变化,但CBRC 只会缓存运行虚拟桌面的主机上的常见数据块。如果虚拟桌面移到其他主机上,新的计算CBRC 进程就会在新的主机上运行,以确保缓存常见数据块。
vSphere 主机可以有效地使VSAN 在 SSD 中缓存类似的块,并使 CBRC 在RAM 中缓存类似的块。然而,这两项功能采用的缓存算法和方法完全不同。VSAN会寻找常用的 LBA(逻辑块寻址)块,而 CBRC 会在一系列不同的LBA 块或虚拟机中寻找常用的IO 数据块内容。一段时间之后,VSANSSD 缓存的利用率就会减少,因为大多数关键数据集都位于RAM 中。
有关更多的 VSAN 和 VMware vSphere 设计注意事项,建议您阅读Duncan Epping 的文章VMware vSphere Virtual SAN 设计注意事项...
本文是由 Andre Leibovici(@andreleibovici) 在 myvirtualcloud.net 上首先发布的。
欢迎在微博上关注我,这样在我发布博客文章后您就会收到通知,并可以让您了解更多有关 VMware 存储的信息:@VMware中国
--------------------------------------------------------------------------------------------------------------------------------------------------
作者:Andre Leibovici
现任 VMware 首席技术官办公室架构师。他在管理大型组织的 IT 基础设施方面拥有 15 年的从业经验。在过去几年里,我一直热衷于虚拟化、VDI 和云计算。此外,他还拥有 VCP 3/4/5、VCAP4-DCA、VCAP4-DCD、VCA4/5-DT、VCP4/5-DT、VTSP4、ITIL V3、EMCISA、EMCCA 和 MCSE 证书,并荣获 2009 年度“VMware虚拟桌面独创奖”,蝉联 2010、2011、2012 和 2013 年度“VMwarevExpert 奖”。