好在第四季度不忙了,闲下来写点东西,我想谈谈存储选型方面,针对于虚拟化环境。
现如今无论是服务器虚拟化,还是桌面虚拟化逐渐侵占数据中心,随之市场占有率用户有足够的信心转为虚拟化技术,我自己亲身接触的客户很多都在筹备使用更多虚拟化资源取代已有的X86硬件架构,使资源能够更高效利用,但是问题来了?
使用虚拟化(这里尤其指的是服务器虚拟化,桌面虚拟化)如果没有一台共享存储,那么虚拟化环境很多高级特性就无法使用,例如vSphere:
vMotion,将运行中的虚拟机从一个主机迁移到另一个主机;
Storage vMotion,将运行中的虚拟机的磁盘文件从一个vSphere数据存储迁移到另一个数据存储;
存储分布式资源调度 (SDRS),当vSphere数据存储运行缓慢(高延迟)或存储空间不足时,重新平衡虚拟机磁盘文件;
vSphere高可用性,依靠此特性,当主机失效时,虚拟机可以自动在另一主机上启动;
因此,我会说共享存储在虚拟化环境或者虚拟化集群占有很重要的位置,那么企业如何选择一台适合自己的存储呢?这将是博文内容的核心部分。
如果采购的存储无论是性能,还是容量各方面过剩,意味着降低投资回报率。如果存储各方面,如稳定性,性能,容量在短时间内出现瓶颈,那么会影响整个业务系统,甚至造成安全隐患。稍后我会按照八个方面来阐述自己一些卑微见解(排名不分先后)。
第一个方面
NAS还是SAN?
NAS能够提供更广泛的协议,除了提供给VMware NFS还可以把空间以CIFS,SMB,NFS协议提供给其它的业务系统,达到高效利用。首先确认您的虚拟化产品是否支持NAS,并且在官方的厂商兼容性列表,vSphere,Hyper-V,KVM,Citrix等等。
SAN属于独享的“块”结构设备,通俗来讲,前者是通过地址映射了一块空间,而SAN则是把一颗实体的设备映射给主机,我们甚至能够在设备管理器看到这颗磁盘驱动器,并且安装系统在这上面(SAN boot),相同带宽,磁盘特征的情况下,块结构设备必然更快速。因为不需要再存储底层构建一个NAS文件系统,而是做完RAID之后,直接以逻辑磁盘的方式映射给主机,在响应速度来讲,能够提供更大的IOPS,而这也是虚拟化环境迫切需求的。
在选择的过程中,我比较推荐后者,也就是SAN,无论是IP SAN还是FC SAN。(DAS因为其不能扩充到存储网络,不能适应虚拟化集群,尽可能不作为考虑范围);
首先,“块”结构的设备往往可以在存储阵列做一些更高级的功能,而这些功能对于NAS来说很难实现。例如:在虚拟化环境中的一个卷上面,已经部署了500台虚拟机-VM,如果我们需要再部署500台,那将耗费很长时间,我知道的厂商存储产品,哪怕是低端的存储阵列都支持各种类型的快照技术,也就说我们对这个LUN执行一次快照或者说克隆,就会产生一个新的副本,而这个副本映射给虚拟化主机,就会新产生500个VM,这个速度比在虚拟机克隆快几十倍,甚至上百倍,完全透明,不消化应用主机性能。又或者存储层的精简配置技术,持续数据保护技术等等。
有的朋友可能会说,SAN的成本远远高于NAS。在2014年的今天,我完全不赞同,严谨来讲,我认为没有可比性。SAN可以使用千兆的iSCSI,这个完全可以利用现有的网络环境,无需改造,只不过连接交换机的网线不再是以太网协议,而是SCSI协议。建立一套10Gb的NAS环境与全FC SAN 8Gbps的环境预算可以说是旗鼓相当,而光纤协议能够提供更高的响应速度。
NAS以太网的带宽及没秒多少MB很好换算,而截图是光纤协议的理论速率:
实际:
第二个方面
磁盘类型:
首先,近线SAS比较SATA磁盘,对于虚拟化环境来说都是一样的,千万别有优越感。虚拟化环境很多时候要求的磁盘的IOPS,也就是延迟。近线SAS磁盘响应速度和SATA是一样的,只是带宽高一点。(SATA/SAS 6Gb的接口读或写的速率无非是500-400MB,这个速率应用程序吃不掉,而剩下的则是磁盘响应速度)。
从上图能够看到,SAS磁盘的IOPS高很多,而FC磁盘已经渐渐的淡出市场。一台中端的存储阵列,11颗SATA磁盘,RAID 5的IOPS大概是4000左右,100%RANDOM,70%写。而SAS磁盘的存储阵列,同等基准测试能够到达7000 IOPS。如果一个VM在苛刻模式下需求80个IOPS,那么SAS阵列可以多承载38台VM。
值得一提的是,无论是VDI还是服务器虚拟化,在建设时期,根据各部门应用去收集IOPS,是整个项目中最头疼的部分;但是,这个环节不能遗漏。性能过剩意味用户更多的投入,或者集成商更少的利润,如果性能不足则会导致更多的问题。
因此,存储阵列最好支持更多类型的磁盘混合使用,甚至是SSD,这样在今后扩展会很方便。一个很好的实践经验,如果您已经购买了10颗SATA磁盘,在存储阵列设置了一个RAID 5,如果发现性能不足,或者虚拟程序报磁盘延迟很大,您可以重新创建RAID,例如3个RAID 5?或者2个RAID 10,这样能够在不投入成本的基础上改善延迟(请参考我另一篇博文:关于SAN-存储RAID组及RAID级别设置)。
一些存储产品提供高级特性-存储自动分层,这个内容稍后再聊。
另外,您计划购入SSD,最好选择保修时间更久的厂商,比如5年或者更长,重复写入导致SSD寿命加快,能有一个更久的质保期由为重要。尽量不要选择PCIe类型的SSD,因为通常需要登陆到软件界面才能知道SSD是否损坏,而SAS,或者SATA接口,或者NVMe类型的SSD,能够较为简单的目测的磁盘是否报警闪灯,更换也比较简单,基本可以在不停机情况下操作。
第三个方面
带宽:
很多用户认为更大的带宽,意味着虚拟机更快速的迁移,克隆,和数据复制。其实很多时候不是这样。在SAN的环境中,8Gb的FC如果能够跑到720MB/s,而我们的SAS磁盘接口读或者写仅仅是500-400MB/s,那么即使光纤链路扩展到16Gb又有什么用呢?哪怕是在一个有着几百台服务器虚拟化的环境,720MB/s也是完全够用的,IO延迟则是反应了磁盘响应速度不够快。所以在之前要充分的计算,多少个VM是跑文件数据,类似OLAP,多少VM是运行OLTP类型的业务。
对于10台以下的虚拟机,偏向交易类型的业务,2个千兆的iSCSI做聚合也是没问题的,无非是虚拟机迁移与克隆的时候会慢一些。
在NAS方面,可选的带宽有1Gb/10Gb光纤以太网,40Gb的NAS对外提供服务的我还没见到,估计很快发布。
在SAN方面,主流的4/8Gb FC,16Gb FC会立刻发布,同时还有1Gb/10/40/56Gb的iSCS;
INFINIBAND不易扩展,我不推荐。
第四个方面
存储阵列是否支持高级特性:
在2014年的今天,存储系统已经不仅仅致力于存储数据,它们尽可能的通过一些高级特性改善应用层面的困境,使应用主机更专注于生产。在存储选型的过程中,应该充分考虑业内前沿的存储技术,并将其所用或者为后期做准备。例如:快照/克隆技术,持续数据保护技术,存储层的精简配置技术,持续数据保护,QoS,存储阵列之间的集群和实施复制。这些技术可能会在后期大规模的虚拟化集群扩展减少不必要的投入。
第五个方面
与虚拟化产品特性集成的力度:
随之虚拟化产品越来越智能,但是有些先进的特性必须由存储配合才能发挥效应,您选购的存储符合这些特性吗?
Hyper-V 2012 Server的Offload Data Transfer-ODX,全自动的UNMAP让我非常着迷,另外VMware的VAAI:Full copy,Zeroed,Scalable Lock Management,Thin Provisioning Stun,如果您了解这里面每一个特性就知道这是非常有价值的,尤其是Full copy。在之前您需要去虚拟化厂商兼容性指南进行确认,您的存储是否已经符合这些特性?
vSphere的VASA致力于够通过vCenter平台统一管理和部署,其中还包括了存储系统,您选购的存储是否支持这一特性,如果YES,是否包含许可费用?请验证这一点!!!
第六个方面
具有组件冗余:
存储设备在环境中包含了最多的故障点,尤其是在扩展了更多的柜子和磁盘的时候,在故障后,或者维护期间,能否提供组件的故障转移非常重要。对于单台共享存储,有条件一定考虑双控制器,独立的控制器caching电池保护机制。电源,磁盘,热更换。支持多条冗余的对外服务端口。支持管理员授权登陆。支持更多种类型的RAID级别。
第七个方面
规格对比:
集成商经常会给用户,在同一需求中提供多个厂商产品进行选择。这些产品往往价格相差不多,磁盘特征相同,但仍然有很多内容值得关注。
这里依次是:
控制器的caching配置多大容量(或能够支持多大?),是否对读和写同时提供加速?
对外提供存储服务的端口类型(iSCSI,FC,NAS)包括哪些?配置多少个?支持多少个?
每年的维护费用/Support费用。哪些功能包含在license,哪些需要额外收费?
同时支持哪些接口特征的磁盘?最大支持多少颗磁盘?
第八个方面
这个算是一个由存储引发的扩展话题:
我不推荐高密度集成式存储。例如:vmware VSAN,或者硅谷新晋厂商NUTANIX;
第一,VSAN的宣告发布仅仅是2003年,而2014年第二季度正式发布,没有人希望把自己的数据寄存在一个不成熟的存储环境中,而存储行业目前不是vmware的强项。我个人认为,vmware仅仅是为了弥补宣称的软件定义数据中心中,缺失的那一部分。
第二,VSAN强调的是充分利用本地资源,减少外部存储网络的建设成本。我见过很多的小型环境用户多是2台ESX主机,难道为了充分利用服务器本地的几颗磁盘,用户要多购买一台Server做ESX 主机(VSAN至少需要3台ESX SERVER)?然后购买昂贵的SSD?购买额外的license?购买额外的网络设备?我觉得这十分不现实。先不说SSD因为caching频繁读写很快报废,用户需要投入两部分精力来管理存储,一部分是内部的VSAN,另一部分是外部的SAN或者NFS。
NUTANIX设计基于分布式,硬件绑定性十分刻薄,且成本居高。每当扩展性能,每当扩展容量都必须增加NUTANIX节点来实现,没错,您没有别的路可选。为了高效数据流动,组建一套10Gb或者40/56Gb的INFINIBAND网络十分昂贵。
The end..