一.参考

http://www.csdn.net/article/a/2013-12-18/309280

http://gtstorageworld.blog.51cto.com/908359/1269024

http://www.searchstorage.com.cn/microsites/2014sds/index.html

http://www.baike.com/wiki/%E8%BD%AF%E4%BB%B6%E5%AE%9A%E4%B9%89%E9%97%AA%E5%AD%98

二.其他

1.其核心创新点是“Software Defined”(软件定义):硬件Flash通道向软件暴露,通过系统的角度解决硬件复杂性和不确定性,使软件能充分利用硬件的潜能,让硬件变得更加简单。

众所周知,传统SSD具有一些缺点,如实际性能只有理论性能的50%左右、20%~50%的冗余空间无法使用等,这造成了巨大的硬件成本浪费,无形中也提高了运维成本。随着SSD被广泛应用,这些成本浪费问题越来越凸显。

面对这样的现状,林仕鼎于两年多前提出了Software-Defined Flash的创新概念,并启动相关项目。如今,百度已自主研发了SSD并在内部成功上线。相比市场上主流PCIe Flash卡,百度自研SSD性能提高2倍(在同样的成本下),每GB的成本下降40%~50%,相对于传统SATA SSD,性能提高5倍,每GB成本持平。被ASPLOS收录的论文就源于这一项目。

三.论文本身

摘要

1.目前的问题

(1)Currently only 40% or less of the raw bandwidth of the flash memory in the SSDs is delivered by the storage system to the applications.

目前,固态硬盘的原始带宽的利用率不到40%(由存储系统传送到应用程序。)

(2)Moreover, because of space over-provisioning in the SSD to accommodate nonsequential or random writes, and additionally, parity coding across flash channels, typically only 50-70% of the raw capacity of a commodity SSD can be used for user data

为了适应随机写入,以及 flash channels中的奇偶校验码,所以只有50-70%的固态硬盘的原始容量用来存储用户数据

2.目的:

we seek to maximize both bandwidth and usable capacity

扩大带宽和可用的容量

3.为了达到此目标,提出:SDF-software-defined flash

a hardware/software co-designed storage system to maximally exploit the performance characteristics of flash memory in the context of our workloads.

硬件/软件协同设计的存储系统,硬件/软件协同设计的存储系统 最大限度地利用闪存的性能特点 存储在我们的工作负荷的情况下。

SDF exposes individual flash channels to the host software and eliminates space over-provisioning. The host software, given direct access to the raw flash channels of the SSD, can effectively organize its data and schedule its data access to better realize the SSD’s raw performance potential.

SDF向主机软件公开独立的闪存通道,并消除过度配置的空间。主机软件,给予直接访问到SSD的原始闪存通道,可以有效地组织其数据并排定其数据访问,以更好地实现对SSD的原始性能潜力。

介绍

1.SSD的带宽构成

The raw bandwidth of an SSD is obtained by multiplying its channel count, number of flash planes in each channel, and each plane’s bandwidth.

SSD的带宽由channel的数量和每个channel中的plane的数量决定。

The raw bandwidth of each plane is mainly determined by the flash feature size and was disclosed to us by the respective vendors

每个plane的带宽主要由flash的feature size决定, 这个是由供应商提供数据

*************

?1. We keep the small read unit but greatly increase the write unit size to be a multiple of the flash erase block size and require write addresses to be block-aligned. Thus write amplification is eliminated because no flash block can contain both valid and invalided data pages at the time of garbage collection

减小了读单元,增大了写单元,使得擦除快和写的地址对齐,这样就使得写放大消失,因为闪存快中没有同时包含有效的和无效的数据页。

*********补充********

1.http://ju.outofmemory.cn/entry/90907

百度研究 SDF 的动机有两点:1. 固态盘的空间利用率低;2. 固态盘的带宽利用率低。解决这两个问题,可以降低成本(用更少的固态盘满足需求,更低的冷却、占地、硬件成本)。

固态盘的空间利用率低的原因是:1. over-provisioning (OP)和 2. parity-coding across channels。固态盘一般会额外提供一些存储空间,称为OP,来加速随机写;parity coding 则将每个写请求编码分布到不同 channel去,通过数据冗余保证数据的可靠性,这和 RAID 的思想类似。SDF为了解决存储成本,1. 取消了 OP,所有存储空间都是可见的;2. 取消了 parity coding,也不做条带,每个写请求都只分发到一个 channel,通过上层的 replication 保证数据的可靠性。

固态盘的带宽利用率低的原因和解决方案是:1. 传统操作系统的 I/O 路径过长,穿过整个 I/O Stack 需要大概12微秒,这对磁盘来说不是问题,但对高性能固态盘却无法忽略,SDF 使用IOCTRL直接访问PCIe驱动(见原文图6);2. 过多的中断,每个I/O 请求都会触发中断,SDF 通过合并中断,将中断数减少到1/4 – 1/5(见原文第4页末);3. 将 channel 直接暴露给上层应用,上层应用可以利用 channel 级并行(EuroSys 的论文实际在讨论这个问题,见下文),每个 channel 对于应用来说都像一个独立的 SSD,有自己的 FTL;4. 增大写单元到若干个 block,舍弃对小写的支持(见第5页末);5. 耗时的 erase 命令会使得 SSD 的性能不稳定,由上层应用直接调用 erase 命令控制垃圾回收(见第6页右栏)。

SDF:Software-Defined Flash for Web-Scale Internet Storage System的更多相关文章

  1. Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

    A method of transferring data between a software defined network (SDN) and an information-centric ne ...

  2. RFIDler - An open source Software Defined RFID Reader/Writer/Emulator

    https://www.kickstarter.com/projects/1708444109/rfidler-a-software-defined-rfid-reader-writer-emul h ...

  3. NFV-based QoS provision for Software Defined Optical Access and residential networks

    文章名称:NFV-based QoS provision for Software Defined Optical Access and residential networks 发表时间:2017 ...

  4. Improving Network Management with Software Defined Networking

    Name of article:Improving Network Management with  Software Defined Networking Origin of the article ...

  5. Web Scale IT 与 6 种 DevOps 工具

    新年伊始,在总结过去一年 IT 行业变化和发展的同时,不少企业更关注未来一年甚至几年的行业趋势.Gartner 于 2014 年发表了文章 Gartner Says By 2017 Web-Scale ...

  6. NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks

    文章名称:NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks 发表时 ...

  7. 错误<BEA-101165> <Could not load user defined filter in web.xml

    <2017-7-4 上午10时13分33秒 CST> <Error> <HTTP> <BEA-101165> <Could not load us ...

  8. Software Defined Networking(Week 1)

    前言 课程名称:软件定义网络 课程地址 Coursera上新的一期还没开课,所以是YouTube. Instructor:Nick Feamster Get Started 对于本次课程,主要的新内容 ...

  9. 阅读Deep Packet Inspection based Application-Aware Traffic Control for Software Defined Networks

    Deep Packet Inspection based Application-Aware Traffic Control for Software Defined Networks Globlec ...

随机推荐

  1. WebApiHelper

    /// <summary> /// 根据token过滤 /// </summary> /// <param name="list"></p ...

  2. nginx常用命令和配置

    1.常用命令 查看版本号: ./nginx -v   启动nginx:在/usr/local/nginx/sbin 目录下执行  ./nginx   关闭nginx:在/usr/local/nginx ...

  3. 如何打开Mac OSX 终端的颜色

    如何打开Mac OSX 终端的颜色 听语音 | 浏览:8453 | 更新:2015-12-15 16:48 1 2 3 4 5 6 7 分步阅读 Mac 终端默认颜色很单一,文件夹和文件无法区分,可以 ...

  4. java实现上传文件夹

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...

  5. Linux操作大全

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  6. JavaScript闭包应用场合——控制前端接口轮训

    很多人都知道JavaScript的闭包,也知道大致是一个什么意思,但是对于闭包的应用场合不是很清楚 最近在改造项目的过程之中修改前端接口轮训方式的时候用到了闭包驱动setTimeout来实现一个类似定 ...

  7. python合并两个字典

    1.借助dict(d1.items() + d2.items())的方法 2.借助字典的update()方法,没有返回值 3.借助字典的dict(d1, **d2)方法 4.d3={**d1,**d2 ...

  8. Java学习回顾总结

    java-01初识Java见上一篇 Java-02 1.命名规范与规范: 标识符命名规则:首字母为字母|下划线|$ 其余部分数字|字母|下划线|$ 命名规范: 变量属性方法命名规范:第一个单词首字母小 ...

  9. JS基础_数组简介

    内建对象 宿主对象 自定义对象 数组(Array) - 数组也是一个对象 - 它和我们普通的对象功能类似,也是用来存储一些值的 - 不同的是普通对象是使用字符串作为属性名的 数组是使用数字来作为索引来 ...

  10. 常用css模板

    段落超出显示省略号(可单行多行) .p-content{ overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-b ...