如何使用SSD解决桌面虚拟化的启动风暴
桌面虚拟化,或虚拟桌面基础架构(VDI),可以为IT部门带来诸多好处,包括更简单的系统管理,集中的安全性和数据保护。不过支撑VDI的存储环境需要仔细的规划,以避免VDI启动风暴的问题,即当大量的用户同时登录系统时所造成的系统反应非常缓慢。有许多方法可以解决这个问题,但最有效的方法是将数据巧妙的放置在固态硬盘(SSD)上。
VDI启动风暴的问题表现形式非常简单。虚拟桌面工作负载是可预测的;它基于桌面用户的工作时间,通常是每个工作日的上午9点到下午5点。相对于服务器的工作负载而言,普通的一台虚拟桌面所产生的所有存储I/O是相当低的,因此通常在一台物理主机上可以部署的虚拟桌面的密度比虚拟服务器要大得多。相反,虚拟桌面的初始启动则相当消耗资源,此时操作系统和应用需要从磁盘读取大量的数据以加载和执行。
启动风暴发生在大量的虚拟桌面在短时间内同时启动之时(例如,在上午8点到9点之间),由此引起的大量存储I/O可以很轻易的将存储系统淹没。如果存储系统不能很好的设计以处理如此密集的I/O负载,最终存储系统将无法提供服务。
当这种情况发生时,桌面用户将会感觉到虚拟桌面极度缓慢,以至于几乎无法使用。如果这种情况每天发生,那么你可以确定你的用户将会不停的抱怨,你的VDI项目将趋于失败,你的用户也会强烈要求重新使用他们的物理桌面。你必须竭尽全力避免这种情况发生,也即由于缺乏良好的设计而导致一项具有许多优点的技术解决方案,最终的实现效果却非常之差。
在VDI实施之后来改善缺乏良好设计的存储系统是可能的,但相对于在之前做出正确的规划,代价要高昂得多,例如也许你的系统由于无法升级以满足需求,导致系统需要整个被替换掉。
一旦用户启动系统,登录和加载应用之后,存储I/O通常将保持在一个比较低的水平。虚拟桌面在启动时和启动之后所产生的IOPS有着天壤之别,导致VDI环境下的存储架构设计极具挑战性。通常,运行Windows 7的虚拟桌面在启动时会产生50到100个IOPS,一旦运行平稳,平均IOPS下降到5-10。因此,为了满足由启动风暴引起的I/O需求,你的存储系统通常需要设计成能满足这种最坏的情况。
仅仅为满足启动风暴时的IOPS需求而设计的存储架构将相当昂贵。通常,为增加存储系统的IOPS处理能力,你需要增加更多的的物理磁盘,从而使负载可以分布在更多的磁盘之上。这意味着你将拥有大量超出你需求磁盘容量。设想,设计一条具有8车道的高速公路,仅仅只是为了处理每天1到2个小时的高峰期拥堵,而在余下的时间里,仅仅两条车道就足以应付。最终的结果,你将不得不维护一条极其昂贵的高速公路。
使用SSD解决VDI启动风暴问题
为了平安度过启动风暴,相对于装备整个的存储阵列来处理所需的IOPS,存在更好的解决方案。你可以通过增加两条大容量快速车道来处理高峰期的车流,而不是建造一条8车道的高速公路。
SSD相对于传统的机械磁盘要快得多,传统机械磁盘通常受限于磁盘转速。一般而言,每分钟15000转的SAS磁盘最多可以处理的IOPS为180,而SSD可以处理大约5000个IOPS。当然,这种性能的提升也伴随着极高的成本。如果用于虚拟桌面的存储系统全部采用SSD磁盘,固然很好,但对于绝大多数用户而言,高昂的成本将使他们望而却步。
不过使用少量的SSD磁盘来承载启动风暴时所产生的大量I/O是非常经济的。如此设计,你可以使用大量价格相对较低的SAS和 SATA磁盘来满足磁盘容量的需求,同时少量的SSD磁盘来满足处理高峰期I/O负载的性能需求。
选项A: 将某些文件放在SSD上。这种解决方案有多种实现方式。第一种是将虚拟机的母版映像文件和副本放置SSD存储池中。当在VDI中使用Linked Clones(在VMware View中)或Machine Creation Services(在XenDesktop中)时,母版映像文件作为只读磁盘为所有桌面虚拟机所共享。它是所有部署的桌面操作系统的母盘,然后每个虚拟机将单独保留一份可写的快照以存放所有对于母盘的修改。
当桌面虚拟机经历启动过程时,大部分的磁盘活动来自于母版映像,也就是大部分的操作系统文件和应用文件存放的地方。因此,将母版映像和副本存放在SSD存储上可以消除启动风暴。其它所有单独的虚拟机快照磁盘可以存放在较低层级(SAS或SATA)的存储上。
选项B:使用SSD作为缓存层。另外一种解决启动风暴的方法是将快速的SSD磁盘作为缓存层放置在由SAS和SATA组成的较慢存储池的前端。飞康的NSS SAN Accelerator即是针对VMware View的这样一种解决方案,NSS SAN Accelerator包含由SSD磁盘组成的硬件装置,放置在主机和存储设备之间。此硬件装置作为缓存层,所有的存储I/O都将通过它到达后端的存储设备。缓存硬件装置可以识别频繁访问的磁盘数据块,并自动将其缓存,这样这些数据块将可以从快速的SSD磁盘读取,而非从较慢的后端存储。通过缓存一些共同的数据如虚拟机母版映像,它可以按需动态调整以满足任何高I/O需求,从而消除启动风暴。
显然,实现这些解决方案的最佳时机是在你的VDI项目的设计阶段。如今,很多的存储设备都具备存储分层的功能,支持将不同性能特征的磁盘放置在同一存储池里。它们也可以用来解决由启动风暴引起的存储 I/O瓶颈问题。通过加入由少量SSD磁盘组成的存储池,你可以将虚拟机母版映像从较慢的存储层转移到SSD存储层,以处理由启动风暴引起的大量I/O。在现有的主机和存储设备之间加入飞康的硬件装置是一种简便易行的手段,对已有的基础架构的影响和改动也非常之小。
SSD容量规划
当SSD作为存储层实现以应对启动风暴所引起的峰值I/O时,正确的容量规划就显得相当重要。为确定购买多少SSD磁盘,你必须计算出你的虚拟桌面系统所产生的最大I/O值。尽管你可以使用基于典型环境下的估算值,建议您最好使用性能分析工具测算出现有物理桌面系统的实际I/O,如使用Lakeside软件公司的SysTrack VDI评测工具,因为每一个用户的环境都不尽相同。将主机上承载的虚拟桌面数量-例如500,乘以桌面系统在启动时产生的典型IOPS-例如60,就可以确定出所有桌面同时登录时所产生的总体IOPS(500 x 60 = 30,000)。由于所有桌面不可能完全在同一时刻登录,你可以将计算出的值稍微向下调整。不过估算多一些余量总是更好一些。
一旦确定了你的IOPS需求,你需要据此来规划你的SSD存储层。如果单块的SSD可以处理5000个IOPS,6块SSD则可以处理30000个IOPS。(注意这只是大致的估算。为了实现适合你特定环境的最佳方案,你必须对你的需求进行正确的评估,并和存储厂商一起实现满足你需求的SSD解决方案)
预防和解决启动风暴问题并不意味着非常昂贵或复杂,SSD提供了一种很好的解决方案以解决虚拟桌面环境下的几个重大问题之一。VDI项目实现起来可能会非常昂贵,在许多公司,由于VDI项目的投资回报并非像服务器虚拟化那么明显,为VDI项目获得资金资助也相对困难。将SSD和廉价存储混合可以让你在降低项目费用的同时,仍然可以提供足够的性能以消除启动风暴。一旦你拥有合理规划的存储系统,你可以很好的享受VDI所提供的种种好处,而不必担心对于你的用户而言,存储系统会成为瓶颈。