部署一个虚拟桌面基础架构(VDI)需要涉及到很多关键的考虑因素,这其中,存储系统则是最关键的了。判定一个虚拟桌面基础架构是否成功的最重要的标准就是用户体验,而存储系统则是影响这种用户体验的关键。如果你不去用心的设计、实施以及管理你的虚拟桌面基础架构,那么就等于是自找麻烦了。
VDI对存储系统的影响
虚拟桌面基础架构中的存储系统所面临的一个最大的挑战就是非常容易遭遇到I/O高峰的考验。在一个VDI中,“启动风暴”经常是将存储的I/O需求拉至最高的罪魁祸首之一。所谓启动风暴就是指当大量用户同时启动他们的操作系统以及应用程序的时候。虚拟桌面初始化启动的过程是一个对资源及其敏感的过程,因为这个过程中对应的操作系统以及应用程序会大量读写磁盘。如果有上百个桌面或者应用程序同时启动,那么此时整个系统对底层的存储系统的性能可能将会被耗尽。启动风暴并不是一瞬间的事情,整个周期可能会持续30分钟到2个小时,会产生显著的性能影响。
当用户启动虚拟桌面并且登录然后启动应用程序之后,存储系统的I/O压力一般都会降低到正常水平,但是其他一些事件可以导致高I/O压力,比如补丁安装、杀毒软件的扫描、病毒库更新,以及每天下班的时候用户注销桌面的操作等。让存储系统能够应对所有这些I/O压力高峰期,是至关重要的。
成本也是另一个考虑因素。VDI环境下的ROI并不等同于单纯的服务器虚拟化,所以获得充足的资金是个不小的挑战。一个适合于VDI环境的存储基础架构是造价不菲的,而且为了获得达标的每秒I/O操作数,你可能不得不购买比你初始预估的更多量的存储空间。
此外,还需要花费更多时间来管理。你不得不创建以及维护用于承载成百上千的虚拟磁盘,而这又更是一件困难而且费时费力的工作。
判断存储需求
为了设计最合适的VDI基础架构,你需要充分了解虚拟桌面的资源需求以便满足这些用户。千万别做任何假设,只有从对应虚拟桌面的用户那里才能计算出真实的状态和资源需求。对使用虚拟桌面的用户进行属性概况统计从而做出对应资源的预估是决定存储系统需求的关键。一些有诸如Lakeside Sfotware Inc、Liquidware Labs Inc等所提供的产品,可以从用户桌面环境中收集对应的信息,从而根据这些关键信息,你就可以对你的环境以及需求进行评估了。收集信息花费的时间越长,那么后期整个系统收到突然事件影响的几率就越低。
衡量存储系统IOPS的关键。一系列的因素都会影响存储系统的IOPS性能,比如缓存、块大小等,但是最基本的计算基础,脱离不了硬盘的机制,即转速、延迟以及寻道时间。一块典型的7200转每秒的硬盘驱动器大概可以承载每秒75次操作,而一块一万转每秒的硬盘则可以承载大概每秒125次操作,一万五千转每秒的硬盘则差不多是175次,而一块SSD则可以达到5000次左右。(译者注,这个数据已经非常老了,最新的15Krpm的SAS或FC磁盘已经可以达到完全随机, 产生高于300的IOPS;而完全随机读或者写场景下可以达到400的IOPS。)如果采用RAID技术将多块磁盘组成一个大RAID组的话,那么整个RAID组表现出来的性能约等于每块数据磁盘的性能乘以RAID组的数据盘成员数量(比如6×175IOPS=1050IOPS)。也有其他一些因素,比如缓存,可以很大程度提升IOPS。而同时,RAID的开销以及网络传输所带来的延迟则会降低性能。
你应当衡量实际的用户资源事情情况,但是在一开始,可以参考一些广为接受和验证的平均值。
不要仅仅基于平均的I/O负载来设计用于VDI的存储系统,同时还必须兼顾I/O压力高峰时刻存储的需求,以便提升用户体验。拥有足够的存储空间容量无疑是重要的,但是存储系统的性能则更为重要。因为对于一个存储系统来讲,磁盘驱动器的数量是决定存储整体性能的关键因素,可能最后你可能为了获得更高的I/O性能而拥有了更多的存储容量。
FC通道、iSCSI及NAS
使用何种类型的存储经常随着预算多少以及当前环境中现存的存储基础架构而定。FC通道模式的SAN会提供不错的性能,但是可能对于一个VDI环境来讲还是有点贵。iSCSI以及NAS(NFS)则是非常吸引人的除了FC之外的部署模式了,但是你必须确保它们确实可以满足I/O性能需求。使用10Gb以太网,对于iSCSI或者NAS设备来讲可以显著提升性能,但是如果你尚未部署10Gb万兆以太网环境,那么从头部署全新万兆环境,可能会与部署FC环境一样贵。
在I/O压力高峰时期,业务系统所产生的每秒I/O操作请求可能会让iSCSI或者NAS设备承受不了。但是增加更多的缓存或者在存储设备前面增加某种加速装置,则可以起到非常好的性能提升作用。iSCSI以及NFS协议均会对主机服务器上的CPU造成额外的负担,对于iSCSI,可以考虑使用硬iSCSI Initiator卡莱缓解主机CPU负载。但是对于NFS,则没有专用的加速器,但是确实有一些基于NFS协议的缓存解决方案。
LUN大小以及RAID
当为VDI环境来设置对应的LUN或者卷的存储容量的时候,为了确保对应的LUN能够提供所需要的IOPS性能是要着重考虑,但是也不要一味的只考虑性能而忽略了容量问题。当然,对于LUN到底设置为多大才合适,这方面确实没有什么万金油数字,因为制约的因素确实非常多。通常,对应的LUN所在的RAID组中所包含的物理磁盘驱动器数量越多越好。你也不能把LUN设置的太小。使用完整虚拟磁盘还是虚拟链接克隆方式,也是一个影响容量需求的因素,因为后者会占用更小的磁盘空间。
你需要更好的数据保护,还是更好的性能?这方面也有多种RAID级别可选。影响你对RAID级别选择的一个关键因素就是对应的虚拟桌面的读写比例。当从一个RAID组中读出数据的时候,没有任何I/O惩罚存在,但是当向RAID组中写入的时候,I/O惩罚便会出现了。对应的RAID级别保护数据的能力越高,那么其产生的I/O惩罚就会越高。比如RAID1的I/O惩罚值为2,因为每次写入均会被写入镜像盘,RAID5的惩罚则为4,而RAID6则上升为6了。如果你的整体环境中,写I/O远远多余读I/O,那么你应当去考虑使用那些在数据写入时的惩罚值较小的RAID类型。另外,使用较大的写缓存,或者采用NetApp类似的RAID DP专用算法,也会有些作用。(译者注:NetApp的RAID-DP并不会降低惩罚,NetApp主要是依靠WAFL的数据布局算法来加速写过程)
磁盘驱动器类型
SAS磁盘驱动器可以提供更优的性能,然而SATA驱动器就可以降低存储整体成本。使用一万五千转的磁盘驱动器虽然可以加速数据I/O性能,但是相比一万转的驱动器而言,其成本也是更加高昂的。固态硬盘(SSD)可以提供惊人的性能,但是其价格更是高不可攀。为虚拟桌面环境选择驱动器通常意味着在你预算承受的基础上购买最好的磁盘。慢速低性能的SATA盘通常不适用于大多数的虚拟桌面I/O负载,所以SAS磁盘无疑是比较好的选择。
一万五千转的磁盘驱动器在数据读写方面会更快,而且整体延迟也较低,但是转速对于磁头寻道延迟方面不会有任何影响。所以,虽然可能驱动器转速提高50%,但是整体性能可能只有30%的提升。
你也可以考虑混合使用快速的磁盘驱动器来满足更高的性能需求,而对于那些对性能需求不太高的地方就可以使用低速低成本的磁盘驱动了。你可以将用于存储链接克隆的源LUN放置在快速的SSD固态驱动器上,而将Delta数据部分放置在SAS驱动器上。而且你可以考虑使用一些封装之后的新技术,比如自动分级存储,可以动态的根据数据访问的热度来讲数据自动放入合适的存储层级中。
缓存和SAN加速器
使用某种缓存设备,或者SAN加速器,可以让慢速的存储设备提供更高的性能,可以用于缓解启动风暴或者其他不定期的I/O压力高峰给存储系统所带来的影响。而且也可能会为你省钱,因为你可以使用便宜的存储设备来承载虚拟桌面环境下苛刻的I/O需求了。诸如NetApp的Flash Cache可以对性能有较大的改善,可以显著提升原有存储系统的IOPS性能。你可以根据不同的场景来配置相应的缓存加速方案,比如启动风暴这种场景,就对读性能有较大的敏感性,所以增加只读缓存就可以对性能有较大改观了。
SAN加速器也是一个很棒的选择,它可以在你的存储系统之前形成一个缓存层。飞康的Network Storage Server (NSS)针对VMware View的 SAN加速器就是一个容易部署的装置,可以显著提升存储性能。它甚至可以允许你在虚拟桌面环境中使用低成本的SATA驱动器,而仍然可以获得足够的性能。
其他有用的存储特性
通常存储系统一般会打包入不少的特性,这些特性可以帮助你将一些原本非常复杂的工作移动到存储阵列内部完成。如果将一些最适宜在存储内部解决的问题交给存储系统来完成,那么无疑会显著提升工作效率以及性能。这里就列出了一些对虚拟桌面环境有益的存储系统特性。
数据保护特性。诸如一些类似微软的虚拟卷影拷贝服务 (VSS)的技术,可以保留之前某个时刻的系统版本快照,这种技术可以让用户迅速的恢复他们的数据。但是如果在所有用户桌面环境中都部署这个技术,那么就会增加非常多的开销,而且还会增加存储系统的I/O压力。使用飞康的NSS SAN加速器,你可以在VDI的Gold master桌面模板中装入一个代理程序,这样就可以让虚拟桌面与NSS SAN加速器通信,所以任何在Guest OS中的数据变更均会被SAN加速器设备保存。用户可以使用浏览工具直接浏览之前历史时刻的数据版本快照,从而恢复对应的文件,这样就可以不影响后端的存储系统了。
重复数据删除特性。重复数据删除技术可以极大的降低虚拟桌面环境中的实际数据对存储空间的占用量,尤其是在使用完全影像模式而不是链接克隆模式的虚拟机时。如果你有100个虚拟桌面,每个拥有一个20GB的磁盘,那么你需要大概2TB的桌面存储空间。但是虚拟桌面用户通常情况下都运行相同的操作系统以及几乎相同的应用程序,所以整个系统中就存在大量冗余重复的数据。重复数据删除技术可以在完全影像模式的虚拟机环境下去重大概90%的不必要存储空间占用,所以2TB的存储空间实际上可以通过重复数据删除技术降低到200GB的实际空间占用。如果使用链接克隆技术,那么一份原始的源盘影像会被所有使用者共享,变更的数据会被存储到delta文件中存放,delta文件大概也就是2GB到5GB的大小。但是如果你决定要使用完全影像模式的虚拟机环境,那么重复数据删除几乎是必须的了。
自动精简配置特性。链接克隆整个技术本身已经是非常节省空间的了,所以此时,自动精简配置不会产生太多的益处。但是在使用完全影像模式的虚拟机环境下,自动精简配置就可是一个非常好的空间节省技术了,甚至可以允许你超分配存储空间。如果结合使用自动精简配置与重复数据删除技术,那么就可以在完全影像模式环境下产生非常高的存储空间节省率。自动精简配置可以在存储设备层实现,也可以在虚拟化层实现。在虚拟桌面环境下可以同时在这两个层次实现自动精简配置。但是如果将它下放给存储设备层来实现,会具有更大的意义,因为这样可以缓解虚拟化层的负载,而且同时也可以降低管理上的复杂度,因为只需要在存储层来监控被自动精简之后的磁盘即可。
VMware公司的vStorage APIs for Array Integration(VAAI)允许很多必须由虚拟化层所实现的很多与存储相关的任务被下放到存储系统中来完成,包括数据拷贝操作(克隆、存储的vMotion)、磁盘清零操作以及vmdk文件锁操作。在虚拟桌面环境中利用VAAI,可以提供很多好处,因为相对于在虚拟化层实现来讲,很多牵扯到磁盘的操作会更快被响应而且更加高效。然而,VAAI仍然是一个新东西,它被存储厂商的广泛采纳和整合仍然需要时间,但是,当前如果一台阵列支持了VAI,那么就代表着它能提供更多的好处,而且随着这项技术的成熟,益处还会更多。
了解你的需求
在虚拟桌面环境下设计存储系统,有很多事情要考虑。然而,有限的预算无疑是制约选择的最大因素。有很多创新性的解决方案让你可以获得足够支撑虚拟桌面环境的所需的性能。但是最初始的一部就是要了解你的环境下的需求。一个合适的预估会协助你定义好合适的需求,反过来,也会帮助你合理的规划存储容量。当有了合理规划的存储之后,你就可以享受虚拟桌面所带来的好处了。 |