在最近的Next Generation Storage Symposium and Storage Field Day(下一代存储峰会与存储现场日)上,让我感到惊讶的是有这么多的厂商认为存储的下一个热点是通过某种形式的服务质量的管理存储性能。虽然这个行业正在热衷于将闪存整合进存储架构,不过有一些厂商已经在考虑不仅为应用程序提供更高的性能,还要让每个应用程序得到更加具有可预测性的性能。
存储管理员通常是通过给各个工作负荷分配物理资源来管理性能。管理员可以给一个需要1.5万次IOPS(每秒输入输出)的Oracle服务器分配100个1.5万转旋转式磁盘来提供所需要的IOPS。
这种方法的问题在于它的效率低。由于希捷最小的最新一代的1.5万转磁盘都有146GB容量,提供1.5万次IOPS意味着至少要7.5TB的磁盘空间。如果这个数据库只有500或600GB,那大部分空间都被浪费了。给这个数据库分配SSD(固态驱动器)虽然可以不浪费容量,但是浪费了性能。
处理效率问题的解决方案——自动精简配置、将多个虚拟服务器放在一个数据仓库内、将闪存用作共享高速缓存、存储分层等——都要在多个工作负荷中共享资源,使得多个工作负荷的性能出现互相依赖。如果一个用户在你的Oracle数据库上创建了一个非常复杂的请求,给存储系统带来了负担,那么和数据库一起共享磁盘的Exchange和Web服务器也会在I/O上受到影响。
如果我们将QoS(服务质量)机制引入存储系统,我们可以给每个工作负荷分配最低的IOP率和优先级。当存储性能的总需求超过系统可以提供IOPS的能力的时候,我们不是在IO请求上采用“先来先服务”的方式,而是先让系统确保每个服务器都获得自己最低水平的IOPS,然后使用任何剩余的资源来给高优先级的工作负荷提供额外的IOPS。
一个像NexGen或Tintri这样的负荷存储系统上,满足QoS目标不仅需要对系统IO请求的仔细管理,而且还需要闪存和旋转式磁盘的相对分配。(NexGen和Tintri是“下一代存储峰会”的赞助商)
我得说,在我当网络管理员的那段时间,我对QoS还是蛮怀疑的。voice-over-IP(IP电话)的家伙告诉我们说要想让IP电话顺利工作我们需要购买昂贵的新交换机来确保语音传输在以太网上有一个清晰的路径。高级管理层决定抛弃旧的Rolm PBX并转到VoIP,我们声道Gb级以太网。我们的带宽有很多,以至于无论我们部不部署QoS我们在VoIP上都有空闲容量。
一些人建议说虽然QoS在复合系统中行得通,不过纯固态存储系统有足够的性能,因此QoS在这样的系统中应该是不需要的。可惜的是,即使纯SSD系统也是容易受到相邻问题的干扰的,只是压力程度不同而已。
存储QoS对云提供商来说有一定吸引力,因为和企业数据中心管理员比起来,云服务提供商在他们所托管的虚拟机所做的事情上有更少的控制权。一个提供商如果因为客户B大量使用存储而不能给客户A提供足够性能的话,那它会很容易失去客户A。SolidFire的纯SSD系统专门为云服务提供商而设计。它的QoS机制不仅能控制性能的下限,还能控制性能的上限,因此云服务提供商可以在不同价位上提供不同的性能水平。(SolidFire是此次峰会的赞助商)
由于磁盘和SSD的容量在不断增长,给工作负荷分别分配资源的低效性已经变得越来越明显。存储系统上的QoS控制性,尤其是在VM(虚拟机)层面上实施的QoS,可以让我们用最少的资源分配给尽可能多的工作负荷,同时保持每个工作负荷合适的性能水平。
来源:Howard Marks科技博客