尽管SSD诞生已经很多年了,是当前企业存储系统中最重要的存储介质,但是悲哀的是目前的绝大部分SSD还是把自己伪装成HDD使用,为什么呢?因为现在从上层数据库、文件系统、SCSI协议等到主板基本上都是为HDD设计的,还没有为SSD做好改变。可喜的是,在2015年的闪存峰会上,有一家苦苦修炼了4年的公司终于揭去面纱,展示了他们的交响乐技术,这个技术使得Host主要在文件系统这一层按照SSD来重新设计,省去了很多不必要的功能,性能得到提升。
我们知道SSD根据FTL栖身何处可以分为device based和host based两种,device based FTL和各种算法都在SSD控制器内部完成,优势是扩展性好,不占用系统资源,缺点是性能差,因为嵌入式CPU不如PC CPU强大,内存速度和容量也受限制。同时host软件不知道SSD内部情况,不能最大效率的使用SSD,很多工作重复了,延迟变长。
host based SSD的FTL和各种算法都在PC上驱动程序中完成,优点是性能强大,因为这种方案基本都是在企业级服务器上使用,企业级CPU强大,往往是十几个核心,甚至有NUMA架构(就是多个有独立内存和芯片组的CPU),现在的服务器内存一般都有几十甚至上百GB,京东号称要配1TB内存。有了这些资源,SSD的性能就很强。同时,host软件可以通过驱动直接管理SSD内部资源,FTL都可以个性化定制,延迟变短。缺点是扩展性差,连了很多SSD后系统不一定吃得消,而HDD时代服务器配个几十个硬盘很正常。
而Radian的SSD交响乐技术结合了device based和host based的优点,同时克服了二者的缺点。SSD算法都在device控制器实现,不占用host资源,扩展性好。同时,host也能通过API直接管理SSD内部资源,避免了重复工作,提升性能,减少延迟。
假装成HDD的生活——惟有泪千行
我们知道HDD内部的存储单元和PC的存储地址LBA是一一对应的,写那个地址就真的是在写这个地址。而SSD必须先擦除再写,所以永远是通过垃圾回收释放出新的空间给Host写操作,模拟成LBA提供给用户使用。这样做的代价就是性能和空间的巨大浪费,SSD要维护巨大的映射表,其实文件系统里面已经有一个元数据表了,来映射每个文件对应的LBA,文件系统还要定期做磁盘整理,高级一点的甚至要做镜像、克隆等等荣誉的操作,这些操作都对SSD产生了多余的写操作,消耗空间,提高写放大,缩短SSD的寿命。
如下图,左边是Host文件系统里面数据管理,要做空间分配、维护、释放、清理、垃圾回收等等,而数据到了SSD内部之后,如右边的循环,SSD内部又得做一遍类似的工作。说起糟的这些罪,SSD惟有泪千行:谁叫俺生的比哥哥HDD晚,这么高还得穿人家穿过的辣么小的衣服!
软件定义闪存
Radian Memory System提出了他们心中的软件定义闪存概念:取消FTL,直接在Host端管理Flash内部资源,省得折腾两次。
他们的这套系统叫做协作式闪存管理:CFM,Coorperative Flash Management。Host端文件系统、块设备管理器、对象存储、Key/Value存储直接使用CFM API,管理Flash资源,SSD内部的后台引擎处理Host发的命令。看起来是Host里面有个模拟的SSD的布局,并且自定义SSD存储空间的地址管理,比如文件直接转成SSD内部Flash内Block,Page地址。Host在模拟器做完相关操作,直接转成SSD内部的实际命令。
我们来看看效果,假设旧的系统Host写放大系数1.5倍,SSD内部写放大系数2.0倍,那么采用新系统之后,写放大从1.5*2变成2,旧的系统比新系统写放大多了75%!
这样Host的管理能在SSD内部完成相应,所以RMS把这个技术叫做交响乐技术:Symphonic。
文件复制太easy了!
当文件系统直接管理SSD内部资源的时候,复制一个文件变得很简单,因为不用真的复制,只需要把映射表改一下就行了,这对性能是巨大的提升。如下图,传统SSD包含25%的复制操作时,要把数据读出来再写下去,里面还要做垃圾回收,性能受到影响,交响乐SSD就省了这一大堆麻烦,复制几乎就是不花时间。
如下图的延迟对比,管理层次少了一层,延迟也大大降低了。
3D Xpoint是SSD的冬天
原来的存储架构是DRAM、Flash、HDD三层,自从3D XPoint技术诞生之后很多Flash的市场将被吃掉,因为速度比Flash快,那该怎么办呢?
幸运的是我们有RMS的CFM SSD,性能比传统SSD要好,可以从3D XPoint手里抢回一部分地盘。
引用:
http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2015/20150811_FB11_Jadon.pdf
想要每天看一条SSD文章吗?扫一扫,微信关注我们!或者微信搜索公众号ssdfans关注。