博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSD盘阵,技术成熟了吗?
阅读量:6758 次
发布时间:2019-06-26

本文共 1545 字,大约阅读时间需要 5 分钟。

关注SSD盘阵已经有一段时间了,前几年SSD的容量比较小,更重要的是它有限寿命和昂贵的价格使得SSD只能作为存储领域的加速介质存在,如果谁想用SSD作为盘阵来使用,那这个系统有点太疯狂了。因此,前几年无论是学术界还是工业界,一直将SSD作为加速介质使用,例如作为Cache,我曾经研发过一个系统将SSD作为磁盘阵列的CACHE。当年的创业公司Fusion-IO研制的PCI-E总线接口的SSD盘深受存储公司的喜爱,直到今天,很多关键业务的加速都可以采用Fusion-IO的高性能SSD盘。目前该公司已经上市。

技术发展到今天,SSD无论在性能上还是在容量上都有了巨大的进步,应用对高性能存储的需求愈发强烈,采用SSD搭建盘阵的想法逐渐靠谱。为此,硅谷出现了一批面向SSD的创业型公司,其中比较典型的是pure-storage,该公司推出的SSD盘阵很具特色。

 

作为一个技术研发人员,我们不禁要问:SSD盘阵和磁盘阵列在技术方面有什么特殊的差别吗?传统的盘阵技术可以直接利用到SSD盘阵上吗?

 

存储技术的实施始终围绕着一点,那就是存储介质的读写行为。无论文件系统还是操作系统的IO调度层,所有的技术考虑都会围绕存储介质的读写行为,因此,目前操作系统中的很多策略都是针对磁盘介质特征的。磁盘有何特征?磁盘最大的特征是存在寻道时间,如果在随机读写的模式下,磁盘的性能非常差。为此,操作系统会采用pre-fetch的方式减少磁盘的读写次数,IO-schedule层采用IO聚合排序的方式减少磁盘抖动。

SSD不是机械盘,其采用半导体存储介质,因此,不具备传统磁盘的特征,因此,我们在应用SSD时,软件层面所采用的技术将会有所变化,这一点我们可以从Linux开源项目中窥见一斑。例如,Linux为SSD增加了TRIM机制,需要修改SCSI,IO-schedule,MD-RAID和文件系统,目的就是为了增强SSD的性能。言归正传,由于SSD的读写特征发生了变化,所以,我们在设计SSD盘阵的时候所采用的技术必然与传统磁盘阵列的有所不同。在此,我非常深信如下几大技术将非常有利用SSD盘阵技术的发展:

1, Deduplication。由于磁盘随机读写性能的问题,重复数据删除基本上和磁盘系统无缘。如果是备份系统,那将另当别论,由于备份系统的数据存在很强的顺序性,所以,可以通过locality很高的Cache弥补磁盘随机读写性能的问题。SSD的随机读写性能很高,Samsung最近的测试数据表明,SSD可以达到80K的随机读写IOPS。因此,完全可以将deduplication技术应用到SSD盘阵上。采用重复数据删除的盘阵可以达到用“计算换IO“的目的,系统性能可以伴随着CPU性能的进步而提升;另一方面,deduplication可以很好的弥补SSD容量偏小的问题。在很多应用中,高性能的deduplication可以做到20:1的数据压缩率,这是非常乐观的数字。

2, Data-log。SSD一个非常的好的表现是随机读写性能,而一个令人头疼的问题是写放大问题,小写对SSD中的firmware来说是一个负面的操作。而log技术可以正好利用SSD的优越的随机读写性能来弥补SSD的小写问题。Log技术在传统磁盘上也有应用,大家熟知的DCD技术就是采用磁盘优秀的顺序些性能来弥补低效的随机写性能。但是,由于磁盘的随机读性能很差,所以,面向磁盘的DCD技术只能在写应用中可以采用,而读性能是很差的,无法应用。面向SSD的log技术不会存在这个问题,优秀的随机性能完全可以胜任应用的需求。

我想深入考虑SSD的读写特征,采用符合SSD读写特征的技术,能够使得SSD盘阵在性能上和使用寿命上都达到最佳。

转载地址:http://magho.baihongyu.com/

你可能感兴趣的文章
C# 校验给定的ip地址是否合法
查看>>
lumen 登陆 注册 demo
查看>>
基于服务的并行系统的通讯方式探讨
查看>>
设计模式——观察者模式
查看>>
Python多线程 简明例子
查看>>
《地球上的星星》
查看>>
mysql数据库的主从同步,实现读写分离
查看>>
89 fcanf和fprintf
查看>>
javascript——自定义右键菜单
查看>>
求二叉树中相差最大的两个节点间的差值绝对值
查看>>
PHP 类名::class含义
查看>>
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test
查看>>
小括号匹配
查看>>
设计模式简介和分类,重点在总结
查看>>
数据库默认端口
查看>>
从输入网址到显示网页的全过程分析【转】
查看>>
【 Art 】小心心~
查看>>
机器学习的常见面试问题
查看>>
创建 JavaScript 类和对象 prototype
查看>>
ibatis映射及参数设置
查看>>