SSD内部的IO抖动因素

作者 吴忠杰

与磁盘相比,SSD具有很高的IO性能,但是和磁盘相比,SSD的性能稳定性不如磁盘好。在使用过程中,SSD的性能会发生变化,而不能保持很强的一致性。这是SSD的一个特性,性能会随着时间、使用寿命发生变化。对于存储系统设计而言,这种不确定的性能变化以及抖动都会对系统整体性能造成影响。因此,对于闪存存储系统设计者而言,需要了解SSD内部的工作机制以及熟悉导致IO抖动的因素。

 
 

可能大家会说,SSD性能发生变化的一个重要因素是内部GC(垃圾回收)机制的影响。其实不全是,GC会导致SSD性能发生变化,NAND Flash上的数据布局方式会对GC性能造成影响,其本质问题是数据迁移与用户[……]

阅读全文

RAID2.0核心思想:数据保护与物理资源管理域分离

作者 吴忠杰

记得在2013年末的时候,开始将存储虚拟化为主导的数据保护技术归纳为RAID2.0。从市场的角度来看,这个一个非常好的概念,一方面可以延续传统RAID的思想,大家可以很容易明白这是一种数据保护技术;另一方面又表述了这是一种传统RAID的技术延伸,而且具有更新换代的意思。在技术发展的过程中,HP称这种技术为virtual RAID;NetApp称之为DDP(Dynamic Disk Pool)。本质上的思想是相同的,都是通过底层虚拟化的方式使得RAID构建的灵活性大为增加,并且在数据恢复的时候能够做到全员参与,提高数据恢复的性能。

 
 

通过RAID2.0的技术方式的确可以使得数[……]

阅读全文

什么?亚马逊云AWS居然出租FPGA?

今天亚马逊云服务AWS推出了一个服务叫做F1,这个尽管不是极品飞车,但是在数据处理领域,效果却堪比赛车。这个东东就是FPGA,全称叫Field Programmable Gate Array,翻译过来是现场可编程门阵列。挺抽象的,但其实就是可以定制逻辑的芯片。用FPGA的编程语言比如VHDL,Verilog,还有程序员熟悉的C风格的OpenCL写个程序编译,就能烧到芯片里面成为逻辑。有了FPGA,你可以用它做CPU,也可以做DSP,还可以做显卡,反正就是小泥人,捏成什么就是什么。

 

听起来挺爽的,但是一般FPGA的使用比较复杂,需要有一定的硬件功底才能玩转。一般程序员听到硬件就头大了,很多自[……]

阅读全文

软件对存储性能的影响

作者 吴忠杰

 

存储系统的核心是软件,在磁盘存储时代,存储系统软件设计的好坏似乎对性能的影响并不是很大,很多存储软件的设计并不会去考虑计算机的体系架构,也不用去关心操作系统调度、内存拷贝等因素带来的性能影响。对于磁盘存储,事情的确是这样的,原因在于磁盘的性能远远低于CPU处理和访存性能。磁盘存储的性能瓶颈点就在于磁盘本身,因此过多的体系结构级别、竞争资源同步的优化,不会对存储性能带来显著优化。

 
 

在很久以前做过这方面的实践,当时觉得临界区的资源竞争会对IO性能造成影响,因此,对我们做的一套存储虚拟化系统进行锁资源优化。将全局锁细粒度化,将写锁拆分成读写锁。但是,最终的优化效果微乎其微,[……]

阅读全文

CNEXLab的Open Channel SSD

一般来说,传统的SSD架构是下面这个样子滴。

向上通过PCIe/NVMe跟Host沟通,向下通过Toggle/ONFI跟Flash沟通,剩下所有的事情都交给ASIC和FW。

CNEXLab认为可以有更好的安排,那就是Open Channel:

其核心就是把原本由FW处理的一部分工作,交给Host这边的Driver(LightNVM)来做:

  • Data Placement: Host直接对Physical Page进行操作,
  • I/O Scheduling:
  • Background Operation:Host负责Background Operation

把FTL的核心功[……]

阅读全文