Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
大话 SSD 淘宝核心系统数据库组 褚霸 http://yufeng.info 2011/06/25
Agenda <ul><li>初见  </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱  </li></ul><ul><li>  </li></ul>
存储设备 IOPS 演变史 设备 IOPS 接口 7200 RPM SATA drives ~90 IOPS SATA II 15k RPM SCSI drives ~180 IOPS SAS Intel X25-M G2 (MLC) ~8,6...
存储设备价格对照 设备 价格 / 每 GB SATA 7200 转 0.1 USD SAS 10000 转 0.4 USD Intel X25-M 160G  * USD FusionIO  iodrive MLC 320G * USD Vir...
淘宝使用案例 <ul><ul><li>CDN  </li></ul></ul><ul><ul><li>IC 库   </li></ul></ul><ul><ul><li>TC 主库 </li></ul></ul><ul><ul><li>TC 读...
Agenda <ul><li>初见 </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul>
PCI-E/SATA 接口
Intel X25-M/SATA
FusionIO iodrive/PCI-E
Virident tachion/PCI-E
SSD 写入如何发生的呢?
背景知识 1 : Nand 芯片擦写次数 Generation SLC MLC eMLC 2x 100,000 2,500 3x 100,000 5,000 35,000 5x 100,000 10,000
背景知识 2 :写放大倍数 <ul><li>写放大倍数的定义: SSD 物理写字节数 / 应用逻辑写字节数 </li></ul><ul><li>  </li></ul><ul><li>放大倍数越大,说明: </li></ul><ul><ul><...
Intel X25/M Nand 内部布局
数据如何写入 SSD(1)
数据如何写入 SSD(2)
数据如何写入 SSD(3)
数据如何写入 SSD(4)
垃圾收集导致 IO 性能下降
Agenda <ul><li>初见  </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul>
适用环境 <ul><ul><li>对 IOPS 要求高,离散读多。 </li></ul></ul><ul><ul><li>离散写多。 </li></ul></ul><ul><ul><li>需要低延迟。  </li></ul></ul><ul><...
对程序员的影响 <ul><ul><li>SSD=/= 磁盘,传统软件基于机械硬盘设计。 </li></ul></ul><ul><ul><li>IOPS 不再是问题,如果利用好是问题。 </li></ul></ul><ul><ul><li>离散读...
对程序员的影响(续) <ul><ul><li>SSD IO 吞吐量 1.XG/s , 内存是 4-6G/s,  可看作是更大的内存? </li></ul></ul><ul><ul><li>MMAP 做后备内存,和 jemalloc 这样的内存分...
使用 SSD 通常要考虑的问题
Agenda <ul><li>初见  </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>播种 </li></ul>
选择 <ul><ul><li>多线程和 IOPS </li></ul></ul><ul><ul><li>文件系统的选择  </li></ul></ul><ul><ul><li>IO 块大小 </li></ul></ul><ul><ul><li>...
离散读性能 / 线程数目
离散写性能 / 线程数目
文件系统的影响
IO 块大小的影响
Nand: MLC 还是 SLC
写放大倍数和寿命 <ul><li>  </li></ul><ul><li>数据库典型的应用 : </li></ul><ul><li>Intel X25-M:   5-8 倍 </li></ul><ul><li>FusionIO iodrive:...
数据安全性 <ul><li>数据校验 :  </li></ul><ul><ul><li>ECC 校验 </li></ul></ul><ul><ul><li>Raid 冗余 </li></ul></ul><ul><ul><li>Intel X25...
驱动对应用的影响 <ul><li>Sata 接口:标准 Linux 驱动,驱动开销很小 </li></ul><ul><li>PCI-E 接口:每个厂家驱动不同,对 CPU 和内存的消耗可能会非常大。  FusionIO 在峰值的时候可能会占用 ...
抖动和延迟 <ul><li>由于数据整理的不可避免性,抖动也是不可避免的。 </li></ul><ul><li>  </li></ul><ul><li>Intel :  </li></ul><ul><li>     脏块回收做的不是很好,在使用...
SSD 作为 L2Cache 方案 <ul><li>好处: </li></ul><ul><ul><li>低成本,高性能 </li></ul></ul><ul><ul><li>对应用透明 </li></ul></ul><ul><li>  </li...
Agenda <ul><li>初见  </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul>
交流时间 <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>谢谢大家! </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>SSD 未...
Upcoming SlideShare
Loading in …5
×

SSD在淘宝的应用实践

110,412 views

Published on

SSD在淘宝的应用实践

Published in: Technology

SSD在淘宝的应用实践

  1. 1. 大话 SSD 淘宝核心系统数据库组 褚霸 http://yufeng.info 2011/06/25
  2. 2. Agenda <ul><li>初见 </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul><ul><li>  </li></ul>
  3. 3. 存储设备 IOPS 演变史 设备 IOPS 接口 7200 RPM SATA drives ~90 IOPS SATA II 15k RPM SCSI drives ~180 IOPS SAS Intel X25-M G2 (MLC) ~8,600 IOPS SATA II ioDrive, a PCI-Express card with Flash with Flash 140,000 Read IOPS, 135,000 Write IOPS  PCIe Fusion-io ioDrive Octal 1,180,000+ Random Read/Write IOPS PCIe
  4. 4. 存储设备价格对照 设备 价格 / 每 GB SATA 7200 转 0.1 USD SAS 10000 转 0.4 USD Intel X25-M 160G * USD FusionIO  iodrive MLC 320G * USD Virident  tachion SLC 400G * USD
  5. 5. 淘宝使用案例 <ul><ul><li>CDN  </li></ul></ul><ul><ul><li>IC 库   </li></ul></ul><ul><ul><li>TC 主库 </li></ul></ul><ul><ul><li>TC 读库  </li></ul></ul><ul><ul><li>Oceanbase </li></ul></ul><ul><ul><li>Vstore </li></ul></ul><ul><ul><li>图像搜索 </li></ul></ul><ul><ul><li>Tair </li></ul></ul><ul><ul><li>... </li></ul></ul>
  6. 6. Agenda <ul><li>初见 </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul>
  7. 7. PCI-E/SATA 接口
  8. 8. Intel X25-M/SATA
  9. 9. FusionIO iodrive/PCI-E
  10. 10. Virident tachion/PCI-E
  11. 11. SSD 写入如何发生的呢?
  12. 12. 背景知识 1 : Nand 芯片擦写次数 Generation SLC MLC eMLC 2x 100,000 2,500 3x 100,000 5,000 35,000 5x 100,000 10,000
  13. 13. 背景知识 2 :写放大倍数 <ul><li>写放大倍数的定义: SSD 物理写字节数 / 应用逻辑写字节数 </li></ul><ul><li>  </li></ul><ul><li>放大倍数越大,说明: </li></ul><ul><ul><li>设备不够好 </li></ul></ul><ul><ul><li>我们没用好 </li></ul></ul><ul><ul><li>寿命杀手 </li></ul></ul>
  14. 14. Intel X25/M Nand 内部布局
  15. 15. 数据如何写入 SSD(1)
  16. 16. 数据如何写入 SSD(2)
  17. 17. 数据如何写入 SSD(3)
  18. 18. 数据如何写入 SSD(4)
  19. 19. 垃圾收集导致 IO 性能下降
  20. 20. Agenda <ul><li>初见 </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul>
  21. 21. 适用环境 <ul><ul><li>对 IOPS 要求高,离散读多。 </li></ul></ul><ul><ul><li>离散写多。 </li></ul></ul><ul><ul><li>需要低延迟。  </li></ul></ul><ul><ul><li>作为后备内存。 </li></ul></ul><ul><ul><li>作为 L2 Cache 。 </li></ul></ul>
  22. 22. 对程序员的影响 <ul><ul><li>SSD=/= 磁盘,传统软件基于机械硬盘设计。 </li></ul></ul><ul><ul><li>IOPS 不再是问题,如果利用好是问题。 </li></ul></ul><ul><ul><li>离散读写非常快( 3 个数量级),顺序读写没优势。 </li></ul></ul><ul><ul><li>读写延迟时间小。 </li></ul></ul><ul><ul><li>读不消耗寿命,写消耗,越小的数据写越不合算。  </li></ul></ul><ul><ul><li>同一个位置写,由于均衡算法的存在,不会磨损芯片的同一位置。 </li></ul></ul><ul><ul><li>尽量合并写。  </li></ul></ul>
  23. 23. 对程序员的影响(续) <ul><ul><li>SSD IO 吞吐量 1.XG/s , 内存是 4-6G/s, 可看作是更大的内存? </li></ul></ul><ul><ul><li>MMAP 做后备内存,和 jemalloc 这样的内存分配器配合。 </li></ul></ul><ul><ul><li>异步 IO, 保证 IO 请求队列深度。 </li></ul></ul><ul><ul><li>对 SSD 的特性进行算法优化。 </li></ul></ul><ul><ul><li>fsync 能力是数据类应用天花板。 </li></ul></ul><ul><li>  </li></ul>
  24. 24. 使用 SSD 通常要考虑的问题
  25. 25. Agenda <ul><li>初见 </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>播种 </li></ul>
  26. 26. 选择 <ul><ul><li>多线程和 IOPS </li></ul></ul><ul><ul><li>文件系统的选择  </li></ul></ul><ul><ul><li>IO 块大小 </li></ul></ul><ul><ul><li>SLC 还是 MLC </li></ul></ul><ul><ul><li>写放大倍数 </li></ul></ul><ul><ul><li>数据安全性 </li></ul></ul><ul><ul><li>驱动对应用的影响 </li></ul></ul><ul><ul><li>抖动 / 延迟 </li></ul></ul><ul><ul><li>L2 Cache 方案 </li></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul>
  27. 27. 离散读性能 / 线程数目
  28. 28. 离散写性能 / 线程数目
  29. 29. 文件系统的影响
  30. 30. IO 块大小的影响
  31. 31. Nand: MLC 还是 SLC
  32. 32. 写放大倍数和寿命 <ul><li>  </li></ul><ul><li>数据库典型的应用 : </li></ul><ul><li>Intel X25-M:   5-8 倍 </li></ul><ul><li>FusionIO iodrive: 2-3 倍 </li></ul><ul><li>  </li></ul><ul><li>可以透过 ssd 设备提供的监控程序(如 smartctl )来获取这些参数 . </li></ul><ul><li>寿命: </li></ul><ul><li>Intel X25-M: 200T </li></ul><ul><li>FusionIo iodrive 320G: 4P </li></ul>
  33. 33. 数据安全性 <ul><li>数据校验 :  </li></ul><ul><ul><li>ECC 校验 </li></ul></ul><ul><ul><li>Raid 冗余 </li></ul></ul><ul><ul><li>Intel X25-M 支持硬件 raid 卡, FusionIO 只能做软 raid </li></ul></ul><ul><li>  </li></ul><ul><li>掉电保护:  </li></ul><ul><ul><li>大电容保护 </li></ul></ul><ul><ul><li>日志系统 </li></ul></ul><ul><li>  </li></ul><ul><li>数据恢复时间: </li></ul><ul><ul><li>FusionIO 最多 10 分钟左右(内部日志系统) </li></ul></ul>
  34. 34. 驱动对应用的影响 <ul><li>Sata 接口:标准 Linux 驱动,驱动开销很小 </li></ul><ul><li>PCI-E 接口:每个厂家驱动不同,对 CPU 和内存的消耗可能会非常大。 FusionIO 在峰值的时候可能会占用 1-2G 内存, 最多 1x0%CPU , Virident 由于板载处理器 CPU 消耗比较小。 </li></ul><ul><li>中断开销: </li></ul><ul><ul><li>中断多的时候是否可以考虑均衡 </li></ul></ul>
  35. 35. 抖动和延迟 <ul><li>由于数据整理的不可避免性,抖动也是不可避免的。 </li></ul><ul><li>  </li></ul><ul><li>Intel : </li></ul><ul><li>    脏块回收做的不是很好,在使用过程中,数据写入多的情况下抖动会很厉害。 </li></ul><ul><li>  </li></ul><ul><li>FusionIO : </li></ul><ul><li>     相对好些,但是也会有轻微抖动。 </li></ul><ul><li>可以通过加大 reserve 容量 ( 通常默认 20%) 来大大缓解这个问题。 </li></ul><ul><li>延迟时间可能会达到 1ms. </li></ul>
  36. 36. SSD 作为 L2Cache 方案 <ul><li>好处: </li></ul><ul><ul><li>低成本,高性能 </li></ul></ul><ul><ul><li>对应用透明 </li></ul></ul><ul><li>  </li></ul><ul><li>可选方案: </li></ul><ul><ul><li>Facebook FlashCache </li></ul></ul><ul><ul><li>FusionIO DirectCache </li></ul></ul><ul><ul><li>文件系统  </li></ul></ul><ul><li>  </li></ul><ul><li>存在问题: </li></ul><ul><ul><li>性能损失 </li></ul></ul><ul><ul><li>单点故障 </li></ul></ul><ul><ul><li>数据热点问题 </li></ul></ul>
  37. 37. Agenda <ul><li>初见 </li></ul><ul><li>相识 </li></ul><ul><li>相知 </li></ul><ul><li>相爱 </li></ul>
  38. 38. 交流时间 <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>谢谢大家! </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>SSD 未来会很快普及, </li></ul><ul><li>我们做好相爱的准备了吗? </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul>

×