存储性能和空间利用率哪个重要?

如题所述

最大限度地挖掘存储系统的性能潜力是用户永远的追求,但是,面对众多性能优化技术,我们还必须考虑到底是性能重要还是空间利用率重要。在当前经济形势低迷的大背景下,挖掘现有存储系统的性能潜力成为用户的必然选择,不过追求性能只是一个方面。我们看到的现象是大多数存储系统的空间利用率还不到50%,而且存储控制器的处理能力也只用到一小部分,这些都是让用户不可接受的事实。在数据中心应用领域,通过服务器整合以及虚拟化技术,物理服务器的资源已经被最大化的利用起来,与此相反的是,存储效率低下的问题却成为用户的痛点。若要实现服务器虚拟化的高效率,存储系统就必须跟得上,这是一个必要的前提,因此服务器虚拟化应用推动着存储技术向更高效的方向发展。在虚拟化环境中,当前端服务器数量不断增加,后端存储阵列的不足便暴露出来,尤其表现在缺乏细粒度的分配和调动空间资源的能力方面。因此,如果用户希望对数据中心进行高度整合,那么服务器虚拟化技术和高效的存储技术二者缺一不可。存储效率是一个综合性的指标,实现最佳的存储效率意味着要在有效存储空间以及可用处理资源两方面都有出色表现,通常也是各产品之间相互竞争的重点。StorageIO高级分析师Greg Schulz说,“为了达到应用所需的IOPS能力,有些存储系统被设计得很大,通过大量磁盘的并发来提升IOPS,可是空间利用率却非常低,反之,追求空间利用率的最大化往往需要借助存储精简技术,比如压缩和重复数据删除等等,但是这些功能会对系统性能带来负面的影响“。因此,达成高效的存储就需要在容量和性能之间寻找一个平衡点,根据应用需求的不同,对容量、处理能力、性能以及成本进行控制和优化。保证存储效率有哪些基本条件优化存储系统的性能,本质上就是要尽可能地提高存储处理资源的利用率,同时尽量消除系统的瓶颈或阻塞。随着处理资源利用率的增加,剩余的处理资源以及响应额外处理请求的能力相应的就会降低。而且如果缓冲区太小的话,那么系统达到性能上限(瓶颈)的可能性就非常大。举个例子来说,一个平均处理资源利用率在 50%的磁盘阵列不太可能触及性能上限(瓶颈),而对于一个利用率达到80%的系统来说,这个可能性就要大得多。高效存储技术及其对性能、容量和成本的影响由存储厂商或第三方公司提供的内嵌在存储系统内部或在外部附加的运行报告、监控以及存储分析功能是十分重要的,它们可以帮助用户更好的了解系统的运行情况,避免系统过度(过高)配置,并减少很多后期维护工作。尤其是当用户需要优化性能或者按需增加处理资源时,这些组件的作用就会体现的非常明显。对此,StorageIO高级分析师Greg Schulz评价道:“无论是性能问题还是容量问题,好好利用存储厂商或第三方公司提供的工具都是十分重要的。”这些工具不仅能够帮助用户定位性能的问题,更重要的方面在于它们可以帮助用户选择出最恰当的解决方案。衡量一套存储系统的性能并不能依赖某个单一指标,而要考虑多种组合因素,它们每一项都对应用程序访问数据的速度有所影响。其中,IOPS、吞吐带宽和访问延迟这三项指标是最关键的。 不过,指标数据究竟是好是坏还要考虑应用环境的差异,包括工作负载的类型(随机请求或者顺序请求)、数据块的大小、交易类型(读或是写),以及其他相关的能够影响性能的因素都依赖于应用程序本身的特点。比方说,如果是流媒体视频应用,那么大文件快速顺序读性能和大数据块是最重要的;而如果是虚拟化应用环境,那么随机读性能通常是最主要的考察指标。下面的部分,我们将纵览那些可以优化性能并且提高存储资源利用率的技术,这里没有独门秘籍,因为每一种方法都有其优点和缺点。通过堆砌磁盘数量来提高性能磁盘驱动器是一种机械装置,读写磁头通过在高速旋转盘片的内道和外道之间往复移动来寻找并读写数据。即使是转速最快的15000转磁盘,其磁头机械臂的重定位时间延迟都会有数毫秒之多,因此每个磁盘的IOPS值最多只有几百个,吞吐带宽则局限在100MB/秒以内。通过将数据分布在多个磁盘上,然后对多个磁盘同步进行读写访问是一种常见的扩展性能的方法。通过增加磁盘的个数,系统整体的IOPS和带宽值也会等比例提升。加之,有些存储厂商还提供short stroking这样的可以缩短磁头机械臂移动距离的技术。此类技术可以将数据集中放置在磁盘盘片的外道区域,结果是磁头移动的距离大大缩短,对数据访问的性能具有十分明显的提升作用。可是,当我们通过利用大量的磁盘并发以及short-stroking磁头短距离移动技术达成既定的性能目标之后,我们会发现其代价是非常高昂的,此外,由于仅仅使用了盘片的外道空间,所以存储的空间利用率会非常差。早在SSD固态盘技术出现之前,利用大量的磁盘并发以及 short-stroking磁头短距离移动技术来满足应用的性能要求是最普遍的办法,即使在今天,这种方案依然被大量使用,原因是SSD固态盘的成本太高,所以用户依然青睐磁盘而不是SSD。NatApp技术和战略总监Mike Riley就说:“对于顺序访问大数据块和大文件这样的应用,使用磁盘通常性价比更高。”RAID 及wide-striping技术对效率的影响很多用户容易忽视一点,即RAID和RAID级别其实都会对性能和容量产生影响。通过改变RAID级别来提升存储性能或者空间的利用率是一种很现实的选择。校验盘的数量、条带的大小、RAID组的尺寸以及RAID组内数据块大小都会影响性能和容量。RAID技术对性能和容量的影响我们都熟悉那些常见的RAID级别及其特点,但还有一些不常见的技术趋势值得我们关注,这些都与我们讨论的存储效率有关。首先,RAID组的尺寸会影响性能、可用性以及容量。通常,大的RAID组包含的磁盘数量更多,速度也更快,但是,当出现磁盘故障后,大RAID组也需要更多的时间用来重建。每隔几年,磁盘的容量都会翻一番,其结果是RAID重建的时间也相应变的更长,在数据重建期间出现其他磁盘故障的风险也变得更大。即使是带有双校验机制,允许两块磁盘同时出现故障的RAID 6也存在风险增加的问题,况且,RAID 6对性能的影响还比较大。有一个更好的办法是完全打破传统RAID组和私有校验盘的概念,比如,NetApp的Dynamic Disk Pools (DDP)技术,该技术将数据、校验信息以及闲置空间块分散放置在一个磁盘池中,池中所有的磁盘会并发处理RAID重建工作。另一个有代表性的产品是HP的 3PAR存储系统,3PAR采用了一种叫做wide striping的技术,将数据条块化之后散布在一大堆磁盘上,同时磁盘自身的裸容量又细分成若干小的存储块(chunklet)。3PAR的卷管理器将这些小的chunklet组织起来形成若干个micro-RAID(微型RAID组),每个微型RAID组都有自己的校验块。对于每一个单独的微型 RAID组来说,其成员块(chunklet)都分布在不同的磁盘上,而且chunklet的尺寸也很小,因此数据重建时对性能的冲击和风险都是最小的。固态存储毫无疑问,SSD固态存储的出现是一件划时代的“大事儿“,对于存储厂商来说,在优化性能和容量这两个方面,SSD技术都是一种全新的选择。与传统的磁盘技术相比,SSD固态盘在延迟指标方面有数量级上的优势(微秒 对 毫秒),而在IOPS性能上,SSD的优势甚至达到了多个数量级(10000以上 对 数百)。Flash技术(更多的时候是磁盘与flash的结合)为存储管理员提供了一种更具性价比的解决方案,我们不必像过去那样,为了满足应用对性能的高要求而不得不部署大批量的磁盘,然后再将数据分散在磁盘上并发处理。SSD固态盘最佳的适用场景是大量数据的随机读操作,比如虚拟化 hypervisor,但如果是大数据块和大文件的连续访问请求,SSD的优势就没有那么明显了。EMC统一存储部门负责产品管理与市场的高级副总裁Eric Herzog说:“Flash的价格仍然10倍于最高端的磁盘,因此,用户只能酌情使用,而且要用在刀刃上。”目前,固态存储有三种不同的使用方式:第一种方式,用SSD固态盘完全代替机械磁盘。用SSD替换传统的磁盘是最简单的提升存储系统性能的方法。如果选择这个方案,关键的一点是用户要协同存储厂商来验证SSD固态盘的效果,并且遵循厂商提供的建议。如果存储系统自身的处理能力无法承载固态存储的高性能,那么SSD有可能会将整个系统拖垮。因为,如果SSD的速度超出了存储控制器的承受范围,那么很容易出现性能(I/O阻塞)问题,而且会越来越糟。另一个问题涉及到数据移动的机制,即我们的数据在什么时候、以何种方式迁移到固态存储上,或从固态存储上移走。最简单但也最不可取的方法是人工指定,比如我们通过手动设定将数据库的日志文件固定存放在SSD固态存储空间,对于比较老的存储系统来说,这也许是唯一的方式。在这里我们推荐用户使用那些自动化的数据分层移动技术,比如EMC的 FAST(Fully Automated Storage Tiering)。第二种方式,用Flash(固态存储芯片)作为存储系统的缓存。传统意义上的DRAM 高速缓存容量太小,因此我们可以用Flash作为DRAM的外围扩展,而这种利用Flash的方式较之第一种可能更容易实现一些。Flash缓存本身是系统架构的一个组成部分,即使容量再大,也是由存储控制器直接管理。而用Flash作缓存的设计也很容易解决数据分层的难题,根据一般的定义,最活跃的数据会一直放置在高速缓存里,而过期的数据则驻留在机械磁盘上。与第一种方式比较,存储系统里所有的数据都有可能借助Flash高速缓存来提升访问性能,而第一种方式下,只有存放在SSD固态盘中的数据才能获得高性能。初看起来,用Flash做高速缓存的方案几乎没有缺陷,可问题是只有新型的存储系统才支持这种特性,而且是选件,因此这种模式的发展受到一定的制约。与此相反,我们看到用Flash做大容量磁盘的高速缓存(而不是系统的高速缓存)反而成为更普遍的存储架构设计选择,因为它可以将高容量和高性能更好的融合。IBM存储软件业务经理Ron Riffe说:“在一套磁盘阵列中,只需要增加2-3%的固态存储空间,几乎就可以让吞吐带宽提高一倍。”在服务器中使用Flash存储卡。数据的位置离CPU和内存越近,存储性能也就越好。在服务器中插入PCIe Flash存储卡,比如Fusion-IO,就可以获得最佳的存储性能。不太有利的一面是,内置的Flash存储卡无法在多台服务器之间共享,只有单台服务器上的应用程序才能享受这一好处,而且价格非常昂贵。尽管如此,仍然有两个厂商对此比较热衷,他们都希望将自己的存储系统功能向服务器内部扩展。一个是 NetApp,正在使其核心软件Data Ontap能够在虚拟机hypervisor上运行;另一个是EMC,推出的功能叫做VFCache(原名叫Project Lightning)。显而易见,这两家公司的目标是通过提供服务器端的Flash存储分级获得高性能,而这种方式又能让用户的服务器与他们提供的外部存储系统无缝集成。存储加速装置存储加速装置一般部署在服务器和存储系统之间,既可以提高存储访问性能,又可以提供附加的存储功能服务,比如存储虚拟化等等。多数情况下,存储加速装置后端连接的都是用户已有的异构存储系统,包括各种各样的型号和品牌。异构环境的问题是当面临存储效率低下或者性能不佳的困扰时,分析与评估的过程就比较复杂。然而,存储加速装置能够帮助已有磁盘阵列改善性能,并将各种异构的存储系统纳入一个统一的存储池,这不但可以提升整个存储环境的整体性能、降低存储成本,而且还可以延长已有存储的服役时间。最近由IBM发布的 SmartCloud Virtual Storage Center是此类产品的代表,它将IBM的存储虚拟化软件SVC(SAN Volume Controller)以及存储分析和管理工具集成在一个单独的产品中。SmartCloud Virtual Storage Center可以将各种异构的物理存储阵列纳入到一个虚拟存储池中,在这个池之上创建的卷还支持自动精简配置。该装置不但可以管理连接在其后的存储阵列中的Flash固态存储空间,而且SmartCloud Virtual Storage Center自身内部也可以安装Flash固态存储组件。通过实时存储分析功能,SmartCloud Virtual Storage Center能够识别出I/O访问频繁的数据以及热点区域,并能够自动地将数据从磁盘迁移到Flash固态存储上,反向亦然。用户可以借助 SmartCloud Virtual Storage Center的这些功能大幅度的提高现有的异构混合存储系统环境的性能和空间利用率。与IBM SmartCloud Virtual Storage Center类似的产品还有Alacritech和Avere,它们都是基于块或基于文件的存储加速设备。日益增加的存储空间利用率利用存储精简技术,我们可以最大化的利用起可用的磁盘空间,存储精简技术包括自动精简配置、瘦克隆、压缩以及重复数据删除等等。这些技术都有一个共同的目标,即最大程度的引用已经存在的数据块,消除或避免存储重复的数据。然而存储精简技术对系统的性能稍有影响,所以对于用户来说,只有在明确了性能影响程度并且能够接受这种影响的前提下,才应该启动重复数据删除或数据压缩的功能。性能和容量:密不可分存储系统的性能和空间利用率是紧密相关的一对参数,提升或改进其中的一个,往往会给另一个带来负面的影响。因此,只有好好的利用存储分析和报表工具,我们才能了解存储的真实性能表现,进而发现系统瓶颈并采取适当的补救措施,这是必要的前提。总之,提高存储效率的工作其实就是在性能需求和存储成本之间不断的寻找平衡。
温馨提示:答案为网友推荐,仅供参考
相似回答