上个月参加了上海这边存储微信群线下交流,来自HP的产品经理辉哥给大家介绍了HP的存储产品,会议主要围绕全闪存阵列。(PS,这里不得不佩服辉哥的表达能力以及知识圈,对各家产品的优劣势是如数家珍)。“闪存阵列”这个词对于我还是有点陌生,我对它的第一印象是“分层存储”。这不回来之后恶补下,不然跟不上时代了。
=================================================================
IBM在2012年收购企业级闪存厂商TMS(Texas Memory Systems)后在2013年推出了自家的闪存阵列FlashSystem。在IBM官方网站上(http://www-03.ibm.com/systems/cn/storage/flash/840/index.shtml)对FlashSystem 840的宣传主要有以下优势:
Flashsystem系列有一下几种型号,命名规则为"XX0",其中"7"代表SLC闪存,"8" 代表eMLC闪存。至于最后的一个V840中的V即,"Integrate with SVC and Easy Tier",其实就是利用IBM SAN Volume Controller存储虚拟化设备充当网关,在FlashSystem和传统磁盘阵列之间进行自动分层存储。”
以Flashsystem 840,以下两图是Front/Rear View,中间亮灯的是Flash module
从Rear view可以很清楚地看到连接主机的四个IO卡,四个Fan module,两个PSU module及两个RAID module。
每个840都有两个canisters, 每个canisters都包含了RAID controller, 两个interface cards,一个 management controller 和 两个支持热插拔的Fan modules。如下图是移掉一个canisters的图
Flash Module支持1TB,2TB or 4TB,不能混插,部署完成之后不能再加daughter board,支持热插拔,然而在replace之前,必须用命令power down这个Flash module。
闪存模块拆开以后,清晰地看到FPGA闪存控制器和NAND闪存芯片。每个闪存控制器管理20个NAND闪存芯片(正反各10个)。闪存模块接口采用PCIe接口,使用IBM的私有协议RSI,能够最大限度地发挥闪存的高性能和低延时特性。
GUI界面和Storwize V7000的GUI界面一样
以上是840的硬件结构,现在我们来看FlashSystem 840的逻辑架构, 一个840有两个RAID module(存储的核心控制器),12个Flash module(类似于盘),每个Flash module里有4个Flash controller,一个Flash controller管理20个Flash chips,这样即一个Flash module管理80个Flash chips。每个Chip有16个planes。至于Planes,Chips是什么意思,可以去读下这篇文章,讲的非常好--http://www.cnblogs.com/heiyue/p/3436349.html。如果还有不理解的可以去搜索下杨总写的一篇文章《漫谈SSD原理与应用实践-v0.1.pdf》。
在FlashSystem中,其主要分为以下几个逻辑结构:闪存模块、闪存控制器(Flash Controller)、闪存芯片(Flash Chip)、Plane、Block以及Page(依次从大到小)。下图为闪存阵列840的逻辑结构:
IBM FlashSystem 840: Logical Components
下图是840的内部连接图,在中心区域是两个高速非阻塞交叉总线,用于传输数据流量。还有低速总线用于传输管理流量。RAID module和Flash module用非阻塞交叉总线连接。Midplane将RAID canisters,flash modules,电池、风扇,PSU这些模块连接起来。两个RAID module包含了Crossbar controllers,管理模块,interface controllers,适配器和风扇。两个RAID canisters组成了一个Cluster,这在设计上没有单点故障。
IBM FlashSystem 840 architecture
再看看一个单独Flash module的逻辑结构:
Flash Modules, Logical View
Field programmable-gate array (FPGA)
Low-power IBM PowerPC processors (PPCs)
再看看Flash controller的逻辑结构
Flash Controller (Logical Design)
Flash chips
The flash chip is the basic storage component of the flash module. 每个Flash module最多有80个企业级eMLC chips,不能混合不同Flash技术的chips。
Gateway interface FPGA
The gateway interface FPGA is responsible for providing I/O to the flash module and direct memory access (DMA) path. It is located on the flash module and has two connections to the
backplane.
Flash controller FPGA
The flash controller FGPA of the flash module is used to provide access to the flash chips and is responsible for the following functions:
-Provides data path and hardware I/O logic
-Uses lookup tables and a write buffer
-Controls 20 flash chips
-Operates independently of other controllers
-Maintains write ordering and layout
-Provides write setup
-Maintains garbage collection
-Provides error handling
每个Flash module最多有4个Flash controllers,Primary board和Expansion board各2个。
FlashSystem 840 Terminology & Capacity Breakdown