虚拟化缓存加速提升VMware、Hyper-V的SSD效率

日期: 2015-01-12 作者:Brien Posey翻译:王丙茹 来源:TechTarget中国 英文

我们已经到达了新的阶段,一半以上的生产工作负载来自于虚拟化。没有采用虚拟化的工作负载,极可能是因为它是IO密集型应用或对延迟非常敏感。这种类型的工作负载,长期以来被认为虚拟化是不可能或不现实的。然而,虚拟化闪存加速使这种类型应用的虚拟化变得更加容易。

VMware和微软都有各自的方法来提供基于闪存的缓存加速功能。在两种情况下闪存(固态硬盘形式)都用来做读缓存加速操作。微软的方法同时提供写加速。

WSS使闪存使用自动化

微软提供的虚拟机闪存加速方法是基于WSS,而非基于Hyper-V。当然,Hyper-V是windows服务器的一个角色,能够完全的使用大多数WSS的特性。

在Windows Server 2012 R2中,微软介绍WSS的本地分层存储功能。该功能允许管理员将可用的物理存储汇集到存储池。一个存储池可以包含固态硬盘(SSD),传统硬盘(HDDs)或者两者的混合。在大多数情况下,windows操作系统可以自动的区分两种存储类型。当系统无法识别SSD的情况下,通过使用PoweShell工具,可以将SSD和HDD进行手工区分。

一个Windows存储池的主要工作是提供裸存储空间给一个或多个虚拟磁盘使用。虚拟磁盘可以通过服务器管理器创建,可以被视为本地存储或者作为Hyper-V虚拟机的存储。真实情况下,许多的部署采用嵌套的方法,一个虚拟磁盘创建在一个存储池中。虚拟磁盘作为宿主操作系统的本地存储,Hyper-V虚拟机使用的磁盘驻留在该虚拟磁盘上。

如果虚拟磁盘创建在存储池之上,虚拟磁盘向导检查SSD的存在。如果固态磁盘存在,新的虚拟磁盘向导会显示一个复选框,用户可以选择使用分层存储。这个复选框是否显示取决于固态磁盘的数据是否足够容纳虚拟磁盘的存储分布。例如,一个使用镜像分布的虚拟磁盘需要两个物理磁盘。如果选择使用分层存储,就需要两个固态磁盘。

当虚拟磁盘使用分层存储创建,会发生两件事。

1.Windows操作系统跟踪读取最频繁的数据块。这些数据块(微软定义为热数据块)将被自动迁移到高速存储层中。这个想法是最经常访问到的数据应该获得最好的性能。手动将文件移到高速层也是可能的,它们会永远驻留在高速存储中。

2.Windows创建一个1GB的写缓存(假设高速层足够大)。写缓存设计用来提高写操作速度。操作系统可以首先在高速层写下数据,然后在I/O需求较低的时刻将数据移动到标准层。

如前所述,直接使用创建在Windows存储池之上的虚拟磁盘来配置Hyper-V的虚拟机是可能的。如果Hyper-V的虚拟磁盘存在于存储池的虚拟磁盘,Hyper-V的虚拟磁盘仍然能够享有基本能力的效益。值得注意的是,如果有多个Hyper-V虚拟磁盘驻留在一个单一的Windows虚拟硬盘,Hyper-V磁盘将共享Windows磁盘的I/O带宽和高速缓存。

VSphere创建专用的读缓存加速

微软并不是使用缓存加速唯一的虚拟化厂商。VMware通过它的vFRC功能来支持高速缓存加速。

VMware采用的方法和微软的方法有很多共同点。vFRC通过使用闪存存储来降低IO延迟。缓存加速的进程也是完全透明的,并且虚拟机感知不到缓存的存在。因此,缓存相关的代理是不需要的。

这是它们的相似之处。微软采用的方法是在由Windows服务器操作系统控制的存储层之上创建虚拟磁盘。相比之下,VMware将缓存作为一个可设置的资源。VSphere允许创建CPU资源池和内存资源池。基于闪存的缓存加速是基于创建的一种叫做虚拟闪存资源的逻辑对象。

虚拟闪存资源是一组闪存存储容量的逻辑集合(基本上,是SSD的存储池)。尽管如此,关于虚拟闪存资源还是有一些重要的事情需要了解:

· 闪存必须致力于缓存加速。固态磁盘不能被SAN或NAS存储和虚拟闪存资源共享—它们只能属于两者中的一个。同样的,你不能把一个VMware的数据存储区放在虚拟闪存读缓存存储中。

· 它是一个主机层的对象。换句话说,缓存所使用的资源在一个特定的主机服务器上。缓存不是一个缓存级别的对象,并且它的内容不会在集群节点之间进行复制。然而,vMotion是缓存加速感知的。管理员可以选择在使用vMotion功能迁移一个虚拟机到另一台主机时,将缓存内容包括在内,或者可以将缓存内容抛弃掉。如果缓存内容被复制,目标主机必须有自己的虚拟读缓存。

· 在vMotion过程中使用虚拟读缓存加速会有惩罚。如果vMotion过程之中包括缓存内容,对比缓存不存在或者缓存内容没有被迁移的情况,它会耗费更长的时间来迁移虚机。不幸的是,估计由于缓存内容添加而造成的vMotion时间增加是很困难的,因为该时间是基于诸如缓存大小和可用的网络带宽、存储带宽来决定的。

· vMotion过程不包括缓存内容也会有惩罚。如果缓存的内容不包括在vMotion的过程中,vMotion进程将耗费和缓存不存在时相同的时间来完成迁移过程。这时vMotion完成后性能惩罚会发生,因为虚拟机不会在有数据块存储在SSD缓存中。虚拟机的性能最终还是会恢复,但是这时缓存不得不先重建。这个过程类似于一个基于闪存的缓存加速是第一次添加到虚拟机中,这时vSphere需要学习哪些数据应该被缓存。

如你所知,大多数Hyper-V的部署是基于共享存储的。如果所有的Hyper-V主机使用相同的物理分层存储,实时迁移不会影响高速缓存的内容。

虽然VMware的vFRC设计的主要目的是提高虚拟机的性能,但是虚拟机是不会直接访问缓存的。相反,vFRC的一个组件“vSphere闪存读缓存加速基础设施(vSphere Flash Read Cache Infrastructure) ”扮演着控制高速缓存使用的代理人角色。vSphere闪存读缓存加速基础设施也能够强制执行管理员制定的缓存策略。

然而vFRC基础设施的主要工作是虚拟机缓存访问的代理程序,它允许虚拟机管理程序通过虚拟闪存主机交换缓存功能来利用缓存,该功能可以通过SSD来取代vSphere5.0的swap分区。

无论你是在微软或者VMware环境下工作,基于闪存的缓存加速都有很大的潜力来提高虚拟机的性能。从缓存加速中获取最大效益的关键是了解你的虚拟机管理程序是如何使用缓存的,然后依照你的虚拟化管理程序认证过的最佳实践来添加闪存存储。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐