关于-如何为虚拟化环境选择合适的存储设备?

好在第四季度不忙了,闲下来写点东西,我想谈谈存储选型方面,针对于虚拟化环境。

现如今无论是服务器虚拟化,还是桌面虚拟化逐渐侵占数据中心,随之市场占有率用户有足够的信心转为虚拟化技术,我自己亲身接触的客户很多都在筹备使用更多虚拟化资源取代已有的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..

时间: 2024-10-09 21:59:27

关于-如何为虚拟化环境选择合适的存储设备?的相关文章

mysql 选择合适的存储引擎

1 MyISAM:默认的MySQL 插件式存储引擎.如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性.并发性要求不是很高,那么选择这个存储引擎是非常适合的.MyISAM 是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.2 InnoDB:用于事务处理应用程序,支持外键.如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询以外,还包括很多的更新.删除操作,那么InnoDB 存储引擎应该是比较合适的选择.InnoDB 存储

Mysql选择合适的存储引擎

Myisam:默认的mysql插件式存储引擎.如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性.并发性要求不是很高,那么选择这个存储引擎是非常合适的.Myisam是在web.数据仓储和其他应用环境下最常使用的存储引擎之一. ? Innodb:用于事务处理应用程序,支持外键.如果应用对事务的完整性有比较高的要求,在并条件下要求数据的一致性,数据操作除了插入和查询以外,还包括很多的更新.删除操作,那么Innodb存储引擎应该是比较合适的选择.Innodb存储引擎除了有效

如何在程序开发项目中选择合适的 JavaScript 框架,节省时间和成本的9款极佳的JavaScript框架介绍

从技术上来看,iOS,Android 和 Windows Phone 上的移动应用是使用不同的程序语言开发的,iOS 应用使用 Objective-C,Android 应用使用 Java,而 Windows Phone 应用使用 .NET. .随着 JavaScript,CSS 和 HTML 知识技能的提升,相信你也可以构建一个超赞的移动应用.在这篇博客里,我们将会介绍一些极好的 JavaScript 移动应用程序开发框架. 说到网络开发,就不得不说 JavaScript,这是一款很有前途的程序

Hadoop集群选择合适的硬件配置

为Hadoop集群选择合适的硬件配置 随着Apache Hadoop的起步,云客户的增多面临的首要问题就是如何为他们新的的Hadoop集群选择合适的硬件. 尽管Hadoop被设计为运行在行业标准的硬件上,提出一个理想的集群配置不想提供硬件规格列表那么简单. 选择硬件,为给定的负载在性能和经济性提供最佳平衡是需要测试和验证其有效性.(比如,IO密集型工作负载的用户将会为每个核心主轴投资更多). 在这个博客帖子中,你将会学到一些工作负载评估的原则和它在硬件选择中起着至关重要的作用.在这个过程中,你也

记一次虚拟化环境下Windows IO性能的解析

前言随着云计算技术与服务的发展和进步,越来越多的客户选择将业务部署到云端.但由于引入了虚拟化层,在业务部署过程中经常会遇到IO问题,通常也不易调试.本文主要介绍利用perf.systemtap等工具,帮助一位托管云客户调试IO性能问题,来分析虚拟环境下Windows IO的性能. 问题出现有一次,托管云客户自己搭建了虚拟化环境,在同一台宿主机上创建windows 2008 R2 和 Centos6.5虚拟机,用fio分别测试其随机读性能,windows 2008 R2的IOPS大约在18K,而L

关于Oracle 产品(database,中间件等等)在vmware虚拟化环境中的支持情况

参考自: Support Position for Oracle Products Running on VMWare Virtualized Environments (文档 ID 249212.1) 适用于: Oracle WebLogic Server - Version 10.3.6 and later Oracle Database - Enterprise Edition - Version 11.2.0.2 and later Oracle Database Gateway for

【VMware虚拟化解决方案】浅议VMware虚拟化环境下的安全策略

浅议VMware虚拟化环境下的安全策略 刘志勇 通过多年的发展,VMware在虚拟化市场处于领军地位,很多企业部署了VMware虚拟化方案,笔者所在的企业同样也不例外. 经过多年来的信息化建设,出于对安全防护的高度重视,为了物理边界和终端安全,企业部署了安全系统,包含了安全网关.应用防护.防病毒软件等等. 但是,企业在信息化建设大量应用了VMware虚拟化的方案,虽然早先做到了物理边界和终端安全,但虚拟化系统的主机漏洞防护却面临着挑战,本文作者就尝试阐述在VMware虚拟化环境下如何制定安全策略

Linux -- 构建KVM虚拟化环境

硬件系统的配置 硬件和BIOS中虚拟化技术的支持是KVM运行的先决条件. 在x86-64架构的处理器中,KVM必需的硬件虚拟化扩展分别为:Intel的虚拟化技术(Intel VT)和AMD的AMD-V技术. 一般在BIOS中,VT的选项通过"Advanced →Processor Configuration"来查看和设置,它的标识通常为"Intel(R) Virtualization Technology"或"Intel VT"等类似的文字说明.

exsi5.5上KVM二次虚拟化环境搭建

exsi5.5上KVM二次虚拟化环境搭建 1)  在exsi5.5上创建虚拟机centos(具体步骤省略) 2)  开启exsi5.5的ssh功能 ①  用exsi5.5的客户端连接exsi5.5服务器端.点击exsi5.5物理机->配置选项卡->安全配置文件->服务的"属性". ②  选中ssh服务,点击"选项"->选择"手动启动或停止"->启动->确定->确定. 3)  ssh登录exsi5.5 4)