设为首页 加入收藏

TOP

PCIeSSD介绍及其应用(一)
2015-07-24 11:16:15 来源: 作者: 【 】 浏览:1
Tags:PCIeSSD 介绍 及其 应用

SATA/SAS接口的SSD已经面世十几年了,目前已普遍应用于个人消费领域,但其性能仍无法充分满足企业用户对高吞吐、低延时的要求,数年前世界上第一块PCIe接口SSD问世,以其惊人的读写吞吐能力、超低延时迅速获得企业用户的青睐。互联网行业是PCIe SSD的最初拥趸,经过多年的实践已经验证PCIe SSD的稳定性完全可以胜任企业的24x7工作模式,目前PCIe SSD应用正迅速从互联网行业延伸至传统行业,甚至进入对安全稳定性要求苛刻的金融行业,可以预期在不久的将来,PCIe SSD很有可能成为服务器存储的标准配置。

一.PCIe SSD 基本原理

vcD48cD7Pws28zqqxprTmv8a8vFBDSWUgU1NE07K8/sLfvK294bm5o7o8L3A+PHA+PGltZyBkYXRhLXNyYz0="http://mmbiz.qpic.cn/mmbiz/NMe7BpUUbEiaZl0iaic3ShWH5hiaGjUhooaLX1zXaaZ2Lb4X4L6M9Pib2sU7oXwAhQGGicb0TTsGXH7eXO1hncK9mJVA/0" data-s="300,640" data-ratio="0.5663366336633663" data-w="" src="http://www.2cto.com/uploadfile/Collfiles/20150110/20150110092203126." alt="\" />

PCIe SSD存储颗粒使用NAND Flash(以下简称Flash),生活中我们无时无刻不在使用Flash,例如手机的存储、SD卡、平板电脑、U盘等都是基于Flash设计的存储,相较于这些低速设备,PCIe SSD将数十甚至数百片Flash组成可并行操作的阵列以提高读写吞吐能力、降低延时。下图为一典型的闪存颗粒逻辑结构:

\


Flash由块(block)组成、块由页(page)组成、页存数据,Flash具有如下特性:

- Flash出厂时就会存在不能使用的坏块,使用过程中会动态增加坏块;

- 读写Flash必须以page为单位;

- 不可覆盖写入数据,必须擦除后才可再次写入,擦除以block为单位;

- block擦除次数有限制,MLC Flash一般在3000至10000次;

- 写入数据存在bit翻转,必须采用ECC加以纠正。


用户自不必关心这些问题,PCIe SSD软件算法屏蔽了这些特点,使用户看到的就是一块通用的存储设备,原来怎么使用硬盘的就怎样使用SSD,换句说可以直接替换掉原来的硬盘,不会存在兼容性问题。这个软件算法有个专有名词叫做Flash Translation Layer(FTL),这也是PCIe SSD的核心价值所在。Flash的这些特性带来一些对开发者和用户都比较有意义的概念:

- Over Provision(OP):开发者必须保留一部分容量以实现FTL算法,保留容量除以物理容量即是OP值,例如一块按照1GB=1024*1024*1024B计算的3.2T的SSD,板载Flash物理容量是4T,那么OP等于(4-3.2)/4即20%,但是根据IDEMA(国际磁盘设备制造商协会)的规范,存储设备的容量是按照大约1GB=1000*1000*1000B来计算的,所以一块标称3.2T的SSD卡OP大概在27%左右,对开发者和用户来说这个值一般越大越好;

- 写放大系数WA(Write Amplification):Flash不能覆盖写的特点决定了用户在写入一笔数据时,FTL可能需要搬运写入数笔数据,FTL实际写入数据量除以用户写入数据量即是WA,例如用户写入16KB数据导致FTL实际写入32KB数据,那么WA就等于2。这个值越小意味着更好的性能,理论极限是无限接近1、不可能小于或等于1,优秀的FTL算法可降低这个值;

- ECC纠错能力:写入数据存在bit翻转决定开发者必须使用ECC纠错算法,ECC算法一般由FPGA逻辑实现,这个值越大越好;

- 磨损均衡与使用寿命:Flash块擦除次数限制决定了FTL必须努力保证使用过程中每个块擦除次数大致相当,这将影响SSD的寿命,宝存科技设计的ECC与RAID双重保护,以及FTL可动态替换坏块的能力和磨损均衡算法,保证SSD的寿命在每天更新数据5遍的条件下(例如一块3.2T的卡每天写入16TB数据)可达到4至6年,在实际使用中可以产生这么大数据量的业务是很少见的。

二. PCIe SSD性能参数


同一般的存储设备类似,PCIe SSD主要有如下几种性能参数:

- 读写带宽(Bandwidth):读写速度;

- 读写IOPS(nput/Outputs Per Seccond):一般是指每秒最大可随机读写多少个4KB;

- 读写延时(Latency):读写4KB数据最短完成时间。


一般而言,高带宽或高IOPS是可以通过增加RAID磁盘组数目来拼接出来,但是传统磁盘存储采用机械装置寻址,Latency很大是它无法逾越的障碍,一般而言由磁盘组成的存储,读写Latency都在毫秒或者数十毫秒级,同PCIeSSD相差3个数量级。更为重要的是,对于大多数企业数据库而言,Latency恰恰是影响性能的最重要参数。下表是宝存科技PCIe SSD各种容量规格的技术参数,供参考。


??膻????n苦氟in苦氟in苦氟i糙?於??in苦氟iJ??仕^?醋^醋?愈in苦氟i?u?t?n苦氟i?[?-?HM?y系统架构和性能并以此降低客户的采购成本和维护费用。宝存自主研发并拥有全部知识产权的Direct-IO? PCle Flash系列产品在性能、容量、可靠性等方面代表了业界的最高水平,在各行业中也得到了规模性的部署和应用。同时,宝存将陆续推出全新一代的基于固态存储的高性能高可用的计算、存储系统融合平台。


宝存诚邀各方合作伙伴与我们一起协力合作,互利共赢,共创辉煌!


联系方式:

公司地址:上海市杨浦区大连路588号宝地广场A座305室

电话:021-55580181

邮箱:contact@shannon-sys.com

网址:www.shannon-sys.com

微博:@宝存科技

微信:Shannon-Systems

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库设计之存储多值的问题 下一篇MongoDB:Map-Reduce

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)
·Java【多线程】单例 (2025-12-25 04:22:29)
·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)