桌面虚拟化,或虚拟桌面基础架构(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)的存储上。