/ 中存储网

专家博客 SSD应该用于缓存还是分层技术?

2010-07-28 13:13:06 来源:中国存储网

本文作者Howard Marks是Networks Are Our Lives公司的首席科学家。这家公司总部位于新泽西州霍博肯,从事顾问工作。1987年以来,他一直专注于系统的分析和写作。

除了闪存SSD(固态驱动器)以外,还有许多存储系统可以提高性能。RAMdisk(内存盘)、head-per-track disk、short-stroked drive等存储系统都可以在它们所提供的有限的空间内为适量的数据集提供性能提升。许多厂商承诺,通过将"最热"的数据迁移到SSD并将剩下的数据留在以容量为导向的驱动器中,我们可以将SSD的性能用在更加主流的应用上面。现在,我们得为这种方式取一个公认的名字。高速缓存、分层还是别的什么?

目前为止,大部分分层产品还是运作在阵列内部。Compellent和3Par现在提供次LUN(逻辑单元号)层次的分层。虽然EMC当前版本的FAST(全自动存储分层)只能迁移整个LUN,但是EMC承诺将在今年底的时候推出可以进行次LUN层次分层的产品。毫不奇怪的是,那些数据块广泛条带化在所有磁盘上的厂商将是第一批尝试自动分层的厂商。他们拥有起步优势,因为他们的架构在构建LUN时利用的是几乎随机分配的块。他们想让系统根据不同的性能特征将数据块分布在存储系统上。如果LUN一开始是由RAID(独立磁盘冗余阵列)集上各个邻块所组成的,那么工程师有更多的工作要做。

进行次LUN层次分层的第一步就是搜集磁盘块上有关访问频率的元数据。这样,政策引擎就可以定期辨认访问频率最高的数据块,然后将这些数据块迁移到更快的存储层,同时将访问频率较低的数据块从SSD层迁移到旋转式磁盘层。这个简单的策略可以每天晚上将最高访问频率的数据块迁移到最快的存储层。

不过,就像某个基金广告所说的"过去的业绩不能保证将来的业绩",上述简单的策略也有自己的问题。一个数据块昨天访问频率很高并不意味着今天的访问频率也很高。为了实现最佳的投资收益,厂商将必须随时保留有关访问的元数据,这样我们就可以设计一个策略,在今天晚上将最近一次访问频率很高的数据块迁移到SSD,从而为明天的操作建立新的基础。

随着阵列厂商加快分层技术的发展,另一个厂商群体--Gear6、DataRAM、Avere、StorSpeed以及最近的FalconStor--认为通过实施由SSD组成的大型高速缓存,可以加快数据块迁移到SSD和以容量为导向的驱动器的过程,即现在所称的闪存和垃圾(Flash and Trash)。现代CPU有多个高速缓存层(有64KB、256KB和Xeon 5500的8MB)。这些厂商可以将RAM(随机存取记忆体)、SSD以及Avere 1.5万转磁盘驱动器整合到一个单独的设备,为数据提供高速缓存服务。

Avere表示他们的FXT是一个"分层的NAS(网络附加存储)设备",并告诉我说我不能把它称为高速缓存。NetApp首席执行官Tom Georgens表示分层技术将被高速缓存技术所代替。

在我看来,高速缓存方式,无论是设备,还是NetApp PAM(性能提高模块)或ZFS Readzilla/Logzilla那样的阵列内部设置,都有两个优点。首先,高速缓存可以更快地对I/O需求变化作出回应,不需要等待政策引擎的运行。当数据块等级提高的时候,分层架构将释放低速磁盘空间,等到这个数据块的访问频率降低,再将这个数据块从高速层复制回低速层。如果数据块等级提高是因为频繁读取,比如一些索引,那么它们必须在访问频率降低的时候复制回来。在高速缓存系统中,这些I/O操作可以避免。

我非常期待Flash and Trash技术,但是这个技术还很年轻。我敢肯定的是最终的技术将融合固态记忆体的低成本/IOP(每秒输入输出操作)和容量导向磁盘的低成本/GB,我们将看到这些高速缓存特征和分层技术特征的应用。