大话 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,083 views

Published on

SSD在淘宝的应用实践

Published in: Technology
1 Comment
39 Likes
Statistics
Notes
No Downloads
Views
Total views
110,083
On SlideShare
0
From Embeds
0
Number of Embeds
102,813
Actions
Shares
0
Downloads
466
Comments
1
Likes
39
Embeds 0
No embeds

No notes for slide

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>

×