如何管理用于虚拟桌面的存储系统
冬瓜头 译 发表于:11年09月09日 09:40 [转载] TT中国
不要仅仅基于平均的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驱动器上。而且你可以考虑使用一些封装之后的新技术,比如自动分级存储,可以动态的根据数据访问的热度来讲数据自动放入合适的存储层级中。