文档 |
DSSD Product Positioning Guide |
DSSD D5 Data Sheet |
DSSD D5 Spec Sheet |
DSSD D5 Software Whitepaper |
DSSD High Performance Databases/Data Warehouses Solution Brief |
DSSD High Performance Hadoop Solution Brief |
DSSD and Cloudera Evolve Hadoop Solution Brief |
DSSD Custom High Performance Applications Solution Brief |
DSSD D5 Provides Native and Flexible Data Access to Mission-Critical Applications |
DSSD D5 Rack-Scale Flash Appliance - Game-changing Performance for Current and Future Applications |
DSSD D5 Modular Data Architecture Makes Managing Data Volumes a Snap |
DSSD Flood API Concepts |
DSSD D5 Installation Guide |
DSSD Client User Guide |
DSSD Management API Guide |
DSSD Administrator's Guide |
DSSD Release Notes |
DSSD Hadoop Plugin Installation Guide |
Deploying Hadoop on EMC DSSD D5 - Best Known Methods |
Deploying Oracle Database on EMC DSSD D5 - Best Known Methods |
EMC DSSD D5 软件白皮书(中文) |
EMC DSSD D5 Unleashes Parallel File System Solutions |
EMC DSSD D5 规格说明(中文) |
ESG White paper: DSSD Oracle performance |
ESG Video: DSSD Oracle performance |
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年3月1日 17:00
价格有了,请联系当地销售了解
Roger_Wu
2 Intern
2 Intern
•
4K 消息
0
2016年3月1日 17:00
支持!
价格出来了不?
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年3月8日 22:00
DSSD Cubic RAID技术解析
DSSD的发布会中所提到的Cubic Raid技术,其实是一种在RAID-6和多维RAID-6(Multi-Dimensional RAID-6)基础上优化了的RAID技术。 本贴将介绍Cubic RAID的基础知识。在介绍Cubic RAID之前,我们首先简单来看一下RAID-6和多维RAID-6:
RAID-6
RAID-6是企业中最常用的保证数据较高的可用性,它使用两块校验盘,能够通过数据校验恢复在RAID条带中的1-2块盘中的数据。它的实现牺牲一部分空间利用率,虽然随着RAID-6条带中盘数量的增加,这种作为校验位的空间消耗会略有降低,但是RAID-6在单条带磁盘总数上存在限制,几乎不可能有超过20块盘的情况出现,甚至于EMC VMAX这样拥有巨无霸级别的存储阵列也最多支持14+2的RAID-6,因为超过一定数量的磁盘的RAID-6会多阵列的控制器与计算资源带来极大的消耗。
多维RAID-6
多维RAID技术早在2000年之前就已经被开发出来,多维RAID-6是以二维的方式排列RAID条带,在这个由数据盘和校验盘组成的矩阵中,由于行和列都有两款校验盘的存在,可以允许整个矩阵中有更多的磁盘损坏的情况下恢复数据。
但是多维RAID有一个缺陷是,因为每个垂直和水平条带的校验都是分别计算的,所以,当某种特定的状况下,如果坏盘所在的行和列种都有个超过2个其他坏盘的时候,数据是不能被恢复的。如下图所示。读到这里,细心的读者可能会问,多维RAID为什么不能先恢复图中只有一个坏盘的列,这样原先三个坏盘的行就变成两个了,就能恢复了。楼主认为,就是由于传统的多维RAID行与列分别校验计算的限制,这种类型的数据就无法实现,但是Cubic RAID就能做到。
Cubic RAID
DSSD的Cubic RAID作为基于RAID-6和多维RAID-6改进的架构,DSSD 中的Cubic RAID使用18*32 FLASH CELLS的网格构建。与多维RAID相似,在每行与每列中都有两个CELL作为校验CELL。
而Cubic RAID相比多维RAID的改进之处是,它又为校验位行与列定义了校验位的校验位(交叉奇偶校验组),这样整个Cubic的网络就以一种数据、校验,交叉奇偶校验组三角的形式相互依赖。相互能通过计算来恢复数据。
更重要的是,Cubic RAID可以以一种迭代算法来恢复多维RAID不能恢复的数据。大致的步骤如下:
当出现损坏CELL的行和列中都出现超过2个CELL的情况,首先Cubic RAID会将只有一个损坏CELL的行进行修复。
然后,再将有一个损坏的的列恢复,并恢复所有的损坏CELL。
同理,Cubic RAID可以将这种算法扩展到更加复杂的情况,下图中的网格中有大量的CELL损坏,那么Cubic RAID可以通过以下几个步骤对数据进行恢复:
1. 先将所有小于等于2个损坏CELL的列修复
2. 然后将小于等于2个损坏CELL的行修复
3. 再修复剩余小于等于2个损坏CELL的列。
4. 以此类推修复所有损坏的CELL。
楼主总结了下面这张表列出了RAID Cubic和RAID6与多维RAID6的比较,方便大家理解:
RAID-6
多维RAID-6
Cubic RAID
可靠性
恢复1-2块损坏盘上的数据
坏盘所在的行与列的坏盘总数不能都大于2块
理论上只要迭代算法可以继续进行,就能恢复数据。
空间率用率
X-2 /X(X为条带中的盘总数),最低50%(4块盘),最高87%( 16块盘)
(X-2)-(Y-2)/X*Y,利用率取决于矩阵中的盘数量(X、Y)分别为行和列种的磁盘数量
(32-2)-(18-2)/32*18 = 83%
综合来看,DSSD的Cubic RAID可以以17%非常低的空间消耗率,实现了极高的可靠性。这种可靠性远远超过了传统的RAID-6,甚至比3校验的RAID解决方案也高出许多。虽然Cubic RAID从原理上来看校验方面的计算量很大,但这显然没有影响到DSSD数据处理的性能,至于原因,且看连载中关于Flood操作系统的详细介绍。
Roger_Wu
2 Intern
2 Intern
•
4K 消息
0
2016年3月8日 23:00
DSSD上到处都是逆天的黑科技
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年3月18日 02:00
DSSD极致性能的秘密 – NVMe over PCIe
已经有读者从之前的连载中了解到,DSSD D5 Rack-Scale存储阵列能提供在百TB数据级别的极致性能(1000万IOPS、100 GB/s、100 us延迟)。而实现这种极致性能的背后原因是一种全新的软硬件协同设计的成果,以及发布的视频( Video Link : 76546)中对DSSD D5的设计理念有了一个概略的介绍。
在接下来的几篇文章中,楼主会逐个介绍这些实现极致性能的主要设计点。第一个,我们来看一下NVMe over PCIe Gen3
PCIe:
PCIe读者们应该都非常熟悉了,它是目前主流的计算机系统总线接口,使用了双向序列的点对点的串行技术,PCIe规格已经发展到了第三代,PCIe GEN3的x1的带宽双向达到了2GB/s,最大16x的理论性能可以达到32GB/s。PCIe作为数据通道,在几年前的服务器端闪存加速卡中就已经开始使用了。PCIe有着高性能、高带宽、简化设备间的输入输出、分层架构、简单应用等有点。
DSSD在设计的时候将原来只存在于计算机主板上PCIe – 系统总线 – 内存 – CPU的架构扩充到了整个机架。DSSD利用PCIe让CPU和主机内存中运行的程序与数据存储实现了最大的数据传输效率。DSSD系统当前使用的是PCIe Gen3 X4,传输带宽为8GB/s,如果将来升级到8x、16x,DSSD还存在进一步提升性能的可能。同时,通过DSSD硬件架构,将总共96个端口和主机端的PCIe板卡的端口组成了独有的PCIe Mesh Fabric。这种架构能够使阵列内任意一个闪存模块中的闪存芯片直接通过PCI的网络接入到主机的系统主线中,提供了极大的数据传输带宽和极低的访问延迟。可以看到, PCIe的使用为DSSD的数据吞吐量提供了巨大的容量和可扩展性。
NVMe:
NVMe的也叫做NVMHCI全称是Non-Volatile Memory Host Controller Interface Specification。NVMe提供了一种能够让主机软件直接与非易失性内存介质(Non-Volatile Memory),也就是我们通常指的SSD,使用PCIe进行通讯的子系统。作为数据传输协议,NVMe是与SATA/SCSI等协议一样的接口标准,但是它应用在闪存上的效率更高。
NVMe协议具有以下优点:
从NVMe的特点可以看出,它是专门为闪存设计的数据传输协议,而DSSD D5作为业界首个Shared-storage NVMe存储平台,在设计的时候也是充分利用了NVMe的优势:
综合来看,PCIe over NVMe是DSSD实现高性能的主体,然后支持DSSD性能的因素还有很多,后面的文章中我们还会介绍DSSD的高密度闪存颗粒的设计与Flood Client API等等内容。
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年3月25日 00:00
DSSD极致性能的秘密 – 数据访问流程
Flood是DSSD中软件集合的名称。Flood管理着所有客户端系统到DSSD D5存储阵列的链接,当然也包括核心的数据访问流程控制。本文总我们就来看一下DSSD D5的Flood软件是如何通过这几个简化了的步骤处理客户端数据请求,实现极低延迟数据访问的过程。
首先,先了解一下整个客户端与DSSD数据通讯的过程中会包括的几个组件,分别是:
当客户端通过libflood API读取DSSD中数据的时候经历了以下几个步骤:
如果是写入,通过libflood API写入数据到DSSD中的步骤为:
如果客户端系统使用到Block Device driver,那么IO过程是:
根据上述的DSSD I/O数据流的描述可以看出,当应用向DSSD发起数据读写请求的时候,DSSD的客户端与存储阵列间能够以最小的通讯开销,开启客户端内存 – DSSD数据容器之间的DMA传输,这种数据传输最大限度上利用了DSSD 的PCIe over NVMe和Mesh Fabric的高带宽,低延迟的优势,并将原本复杂的IO Stack简化到只有几个步骤,从而极大地提升了数据访问性能。
liulei_it
2 Intern
2 Intern
•
3.2K 消息
0
2016年3月25日 04:00
闪存的发烧友
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年3月31日 23:00
DSSD数据结构 – 数据对象、卷与元数据
从数据存储的角度来看,DSSD是一款以对象(Object)为基础的存储,对象可以是块(Block)、文件(File)、卷(Volume)、目录(Directory)以及键值配对(Key-Value)等各种类型。这些对象在DSSD中存储为对象池(object pool)。每个对象都拥有唯一的不可重用的编号(UDI,从一个2的64次方中获取)。DSSD D5由于目前的容量限制,可以最多存储10亿个对象。
一个对象是由唯一标识符(Unique ID),分段大小(Fragment size)和一个或多个分段数据所组成的。一个数据分段在一次读写的数据传输中,从应用程序内存移动到DSSD的三个目标位置(一个控制模块的DRAM和两个闪存模块的DRAM中)。下图是DSSD D5中以4K-fragment长度的存储。
对象的容器是卷(卷是另外一种对象,但是逻辑上是对象的容器),每个对象只能属于一个卷。而整个系统中的卷的总数不受限制,卷可以被一个或者多个客户端系统访问。不过当一个卷被多个客户端系统的访问的时候,多个客户端系统是以线性的方式访问卷。通过适当的加锁机制保证客户端之间对于对象的访问隔离。下图显示了卷中的对象示例:
在一个卷中,目录(Directory)对象提供了卷中对象的继承管理。对象可以通过ID访问或者通过文件路径进行访问,下图为对象访问的图示:
所有的元数据,比如闪存转换层FTL,都会通过读取对象创建被保存在D5控制模块的主内存中。一个对象有关的所有元数据都会被包含在另外一个对象中,然后在对象需要的时候写入。元数据不会产生无关的I/O,在系统启动的时候,对象会被检测然后创建FTL。而和传统文件系统不一样的是,所有DSSD系统中的I/O都是对象数据管理或者分段数据管理,而不会有任何元数据的管理的I/O。
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年4月5日 20:00
首帖更新一批官方文档!
liulei_it
2 Intern
2 Intern
•
3.2K 消息
0
2016年4月6日 17:00
听说 这个存储可以连接HPC机器使用耶,这么神呀~
Yanhong1
1.6K 消息
0
2016年4月6日 19:00
liu同学,有空查收下你阿里云的邮件
liulei_it
2 Intern
2 Intern
•
3.2K 消息
0
2016年4月6日 22:00
yes, dear
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年4月7日 23:00
DSSD Flood结构化对象与数据对象
在前一篇文章中,我们介绍了DSSD中的数据对象、对象的容器 - 卷以及元数据的概念。本篇中我们将从Flood操作数据对象的角度介绍DSSD中的几种数据对象类型。DSSD的对象包括以下几类:块(Block)、文件(File)、卷(Volume)、目录(Directory)以及键值配对(Key-Value)。如果按照数据类型划分,Flood中将对象定义为以下几种:
Flood结构化对象(卷与目录)
卷(Volume)在DSSD是对象的容器,表示为一组在特定Flood应用情形下对象的集合。Flood会以单个存储池(Pool)展示DSSD系统中所有的卷,而且这种展示是以预先配置在所有可用的物理存储媒体之上的(闪存模块)。Flood中支持创建大量的附加卷(Additional Volume),允许对象在不同卷之间进行隔离,使Flood客户端在不同的情形下可以看到特定卷中的特定对象。用户可以通过管理命令、web应用或者管理API对卷进行管理。
目录(Directories)DSSD中的目录是一种对象的类型,作用是映射其他Flood的对象类型。目录可以看作一种对目录中对象值和入口操作的接口。但是这种操作只限于同一个卷内的所有对象。Flood中每个卷中有一个特殊的目录,也就是Root。所有卷宗的已命名的对象都在这个目录中被访问。
Flood数据对象(文件、块与键值)
文件(File)与块(Block):Flood中以字节存储的数据分为两类:文件和块。Flood存储这两类的数据的时候是以一种分散的、只分配实际包含数据空间的结构存储。即使一个对象长度非常长,但只包含了写入的很小一部分字节。它也只会占用很小的空间。Flood对读取对象长度中不包含数据的部分返回的是null值。Flood对数据对象的操作分为四种:读、写、清除(trim)、扩展(crop)。其中,得益于Flood的分散数据存储的结构,清除的效率会比传统的写零操作来得快很多。扩展是改变对象的大小,只支持变大,不支持变小。这些操作对文件和块在DSSD中的
主要区别是:
键值对象(Key-Value):Flood中的键值对象(kv object)提供了一种高效的对键和相应值配对的机制。DSSD中的单个键大小可以达到64kb。值的存储以8KB为分段,最大存储可以达到1MiB。键值的操作可以通过Flood的标准路径进行。基本操作包括:插入、查找(lookup)、删除、迭代(keys)。
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年4月11日 19:00
信息图:DSSD – The Future of Flash
(点击放大或下载附件)
1个附件
emc-dssd-infographic-v4-700px.png
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2016年4月11日 19:00
信息图:DSSD D5 – A Quantum Leap In Enterprise Flash Storage
(点击放大或下载附件)
1个附件
mh-06-d5-infographic-i-700px.jpg