服务器-存储系统堆栈中的多重闪存打破了常规的输入/输出惯例,也使得整个系统的设计变得更加困难。
由于现有服务器和存储每秒所处理的输入/输出指令有限,因此服务器到存储系统的设计和部署逐渐变得越来越困难。虚拟化,多核和高速缓存增强型服务器比起许多硬盘存储阵列所交付和接收数据的速度要快的多。当这一切渐成趋势时你该如何构建与之相平衡的服务器-存储系统呢?
首先让我们来看基础的服务器到外部存储堆栈。我们从包含四核,六核甚至八核服务器(这些服务器通过内存和PCI总线与输入/输出适配器相连)的服务器主板开始探讨。这个可以将网络和连接硬盘驱动的存储阵列控制器连接在一起。想象一下这些设备都是虚拟化服务器,你就能很容易的看到每秒能处理数千条输入/输出指令的服务器引擎容量可以与每秒智能处理数百条指令的存储阵列实现对接。
要想让存储阵列每秒输入/输出的能力可以达到服务器每秒输入/输出的水平需要存储阵列或者固态硬盘有个很大的提升,控制器输入/输出性能也是如此。我们可以通过使用闪存高速缓存来实现这种结果,但不幸的是,闪存在服务器端的不同领域也可以作为服务器高速缓存来使用,以此来提高服务器每秒的输入/ 输出性能,从而再次打破了这种平衡。
我们看到目前服务器主板和主板上的闪存模块一起充当着服务器引擎和其数据存储之间的高速缓冲存储器。英特尔公司的Braidwood技术就这方面处于领先地位。这项技术看起来能提高服务器吞吐数据的能力。这是一种和服务器PCI总线相连的闪存存储:是另一种类型的高速缓冲存储器。Fusion- io和Violin Memory也有着类似的闪存输入/输出加速卡,甲骨文公司的SUN Exadata服务器就配置了这种加速卡。这种高速缓存也会增加所连接存储系统的输入/输出的负担。
接下来我们来关注用来连接存储系统的输入/输出适配器上的闪存。Adaptec数据调解的理念就是源自于此,英特尔生产的闪存高速缓冲存储器可以供5000到20000个RAID控制器。我们有三个潜在的闪存高速缓冲存储器层都增加了存储阵列的负担。
跳过网络连接到存储阵列可以在阵列控制器上使用闪存输入/输出加速卡。这就是NetApp一直宣传的PAM(性能加速模块),诚然这就是最初的 DRAM形式,但是目前它可以被称作是闪存版本。这种方式可以配置四个区域的闪存,用第五个固态硬盘替代硬盘,提供一个所谓的存储零层。每家存储阵列供应商都在这么做,其中多数使用的是STEC固态硬盘,也有部分厂家采用的是英特尔的配置。
最后第六个闪存的区域就是替换硬盘阵列本身。这就是Texas Memory Systems (RamSan), Sun (FlashFire)和Violin Memory (1010 Memory Appliance with network head)目前努力的方向,Fusion-io的ioSAN可能也在这样做。这些产品可以看做是闪存数据存储,而不是高速缓冲存储器,用其他的形式连接闪存(闪存DAS)或者用联网的形式(闪存存储区域网络)。
看起来在这六个区域都使用闪存简直是异想天开。我们可以说明显增加服务器上闪存高速缓冲存储器的数量,或者增加一个闪存存储或者一个加强闪存存储阵列。闪存加强存储阵列有一个用于热数据的高速缓冲存储器,或者可以与一个闪存存储和相对便宜的数据SATA硬盘存储相结合来提高存储能力。
思科,戴尔,惠普,IBM或者甲骨文/SUN等系统厂商都在设计以最可靠,可升级和经济划算的方式来提高服务器和存储系统每秒输入/输出性能和数据存储能力的系统,甲骨文的Exadata 2就是其中的代表之一。服务器和存储系统集成商和VAR也可以这么做,但是他们没有像一线系统提供商那样的资源,研发起来就相对困难。分别购买服务器和存储的数据中心管理者也需要扮演复杂的权衡者角色,力求服务器和存储之间每秒输入/输出能力的平衡。这时候就需要工具的辅助。
目前尚不清楚这些工具将出自何方,有可能实现技术性的不同权衡对推动供应商服务器和存储系统的统一会有所帮助,让用户不要再把服务器和存储作为各自独立的采购行为来完成。闪存在这方面将扮演颠覆性的角色。