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 的实践与探索 张瑞  @ Alibaba
SSD 技术介绍 <ul><li>SSD 技术介绍: </li></ul><ul><ul><li>存储技术: </li></ul></ul><ul><ul><ul><li>NAND , NOR </li></ul></ul></ul><ul><...
SSD 的性能特点 <ul><li>SSD vs  硬盘: </li></ul><ul><li>SSD : </li></ul><ul><ul><li>IOPS :随机读 35000 ,随机写 5000 </li></ul></ul><ul><...
SSD 的磨损问题 <ul><li>擦除对性能的影响: </li></ul><ul><ul><li>写入单位 page(4K) ,擦除单位 block(512K) </li></ul></ul><ul><ul><li>改写  =  读取 + 擦...
SSD 磨损数据分析 <ul><li>读取 SSD 的 S.M.A.R.T. 信息 </li></ul><ul><ul><li>通过 RAID 控制器读取 SSD 的信息 </li></ul></ul><ul><ul><li>LSI RAID ...
数据库 IO 特点分析 <ul><li>数据库基于磁盘设计 </li></ul><ul><ul><li>Sequential logging </li></ul></ul><ul><ul><li>In-place update </li></u...
数据库和 SSD 应用场景分析 <ul><li>SSD 作为数据主存储 </li></ul><ul><ul><li>简单,依赖硬件优劣 </li></ul></ul><ul><ul><li>性能好,代价高 </li></ul></ul><ul>...
Flashcache 方案简介 <ul><li>Flashcache 简介 </li></ul><ul><ul><li>开源混合存储方案 </li></ul></ul><ul><ul><li>Device mapper 层插件 </li></u...
Flashcache 特性分析 <ul><li>简单使用: </li></ul><ul><ul><li>创建: flashcache_create </li></ul></ul><ul><ul><li>加载: flashcache_load <...
SSD 数据库最佳实践 <ul><li>数据库使用 SSD 的意义 </li></ul><ul><ul><li>CPU 与 IO 性能不均衡 </li></ul></ul><ul><ul><li>提升单机性能 </li></ul></ul><u...
SSD 数据库优化实践 <ul><li>日志文件放在磁盘上 </li></ul><ul><li>控制数据库刷盘的频率 </li></ul><ul><li>增加 spare area :改善写性能 </li></ul><ul><li>IO 调度算...
<ul><li>共享存储方案 </li></ul><ul><ul><li>使用内置 SSD 的存储 </li></ul></ul><ul><ul><li>SSD 存放热点数据   </li></ul></ul><ul><li>Oracle fl...
<ul><li>应用场景: </li></ul><ul><ul><li>DELL R510 , 24G memory , 12 * SAS 磁盘 (RAID10) </li></ul></ul><ul><ul><li>12 节点,单机 1T 数...
<ul><li>SSD 替代磁盘 ? </li></ul><ul><li>MLC 替代 SLC  ? </li></ul><ul><li>Fusion-io or SSD  ? </li></ul><ul><li>Flashcache 只是过渡...
联系方式: Email : [email_address] Twitter : hellodba 新浪微博: hellodba 技术博客: www.HelloDB.net Q & A
Upcoming SlideShare
Loading in …5
×

数据库与ssd的实践与探索-2011数据库技术大会

14,817 views

Published on

Published in: Technology

数据库与ssd的实践与探索-2011数据库技术大会

  1. 1. 数据库与 SSD 的实践与探索 张瑞 @ Alibaba
  2. 2. SSD 技术介绍 <ul><li>SSD 技术介绍: </li></ul><ul><ul><li>存储技术: </li></ul></ul><ul><ul><ul><li>NAND , NOR </li></ul></ul></ul><ul><ul><ul><li>SLC , MLC </li></ul></ul></ul><ul><ul><li>接口类型: </li></ul></ul><ul><ul><ul><li>SATA , SAS , FC , PCIe </li></ul></ul></ul><ul><ul><li>生产厂家: </li></ul></ul><ul><ul><li>Intel , Fusion-io , STEC , SandForce , HUAWEI </li></ul></ul>
  3. 3. SSD 的性能特点 <ul><li>SSD vs 硬盘: </li></ul><ul><li>SSD : </li></ul><ul><ul><li>IOPS :随机读 35000 ,随机写 5000 </li></ul></ul><ul><ul><li>Throughput : 连续读 250M ,连续写 170M </li></ul></ul><ul><ul><li>Latency : 75us </li></ul></ul><ul><li>磁盘: </li></ul><ul><ul><li>IOPS :随机读 160 ,随机写 160 </li></ul></ul><ul><ul><li>Throughput : 连续读 170M ,连续写 130M </li></ul></ul><ul><ul><li>Latency : 6ms </li></ul></ul><ul><li>SSD 性能分析: </li></ul><ul><ul><li>巨大的 IOPS 优势 </li></ul></ul><ul><ul><li>IO 延时非常低 </li></ul></ul><ul><ul><li>吞吐量相比磁盘无明显优势 </li></ul></ul><ul><ul><li>SSD 需要擦除操作 </li></ul></ul>
  4. 4. SSD 的磨损问题 <ul><li>擦除对性能的影响: </li></ul><ul><ul><li>写入单位 page(4K) ,擦除单位 block(512K) </li></ul></ul><ul><ul><li>改写 = 读取 + 擦除 + 写入 </li></ul></ul><ul><ul><li>擦除的代价高,延时 2ms </li></ul></ul><ul><ul><li>擦除的次数是有限的 </li></ul></ul><ul><ul><li>擦除导致写性能下降 </li></ul></ul><ul><li>SSD 硬件层的作用: </li></ul><ul><ul><li>FTL :物理逻辑地址映射 </li></ul></ul><ul><ul><li>Reclamation :回收策略,异步擦除 </li></ul></ul><ul><ul><li>Wear leveling :均衡写磨损,提升寿命 </li></ul></ul><ul><ul><li>Spare area :减小写入放大,提升写性能 </li></ul></ul><ul><li>厂商数据: </li></ul><ul><ul><li>擦除次数: SLC : 10 万次, MLC : 1 万次 </li></ul></ul><ul><ul><li>写入数据量:随机写 2PB , Intel X25-E(64G) </li></ul></ul>
  5. 5. SSD 磨损数据分析 <ul><li>读取 SSD 的 S.M.A.R.T. 信息 </li></ul><ul><ul><li>通过 RAID 控制器读取 SSD 的信息 </li></ul></ul><ul><ul><li>LSI RAID 控制器 + Intel X25-E 64G </li></ul></ul><ul><ul><li>Megacli + Smartmontools </li></ul></ul><ul><li>SSD 的 S.M.A.R.T. 数据 </li></ul><ul><ul><li>Media Wearout Indicator </li></ul></ul><ul><ul><li>Re-allocated Sector Count </li></ul></ul><ul><ul><li>Host Writes Count </li></ul></ul><ul><li>数据分析与结论 </li></ul><ul><ul><li>写入 40T 数据,磨损率 1% </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>
  6. 6. 数据库 IO 特点分析 <ul><li>数据库基于磁盘设计 </li></ul><ul><ul><li>Sequential logging </li></ul></ul><ul><ul><li>In-place update </li></ul></ul><ul><li>日志文件顺序写 </li></ul><ul><ul><li>同步写入,响应延迟低 </li></ul></ul><ul><ul><li>连续位置的随机写 IO </li></ul></ul><ul><li>数据文件随机写 </li></ul><ul><ul><li>异步写入 </li></ul></ul><ul><ul><li>大量的随机写 IO </li></ul></ul><ul><li>瓶颈分析 </li></ul><ul><ul><li>IOPS : </li></ul></ul><ul><ul><li>小 IO ,数据文件随机读,随机写,日志文件写 </li></ul></ul><ul><ul><li>吞吐量: </li></ul></ul><ul><ul><ul><li>大 IO ,数据文件连续读 </li></ul></ul></ul>
  7. 7. 数据库和 SSD 应用场景分析 <ul><li>SSD 作为数据主存储 </li></ul><ul><ul><li>简单,依赖硬件优劣 </li></ul></ul><ul><ul><li>性能好,代价高 </li></ul></ul><ul><li>SSD 存放日志文件 </li></ul><ul><ul><li>提升日志响应延迟 </li></ul></ul><ul><ul><li>适合放在传统磁盘 </li></ul></ul><ul><li>SSD 存放热点数据 </li></ul><ul><ul><li>适用于热点数据明显 </li></ul></ul><ul><ul><li>性价比高,不灵活 </li></ul></ul><ul><li>Flashcache 方案 </li></ul><ul><ul><li>应用透明 </li></ul></ul><ul><ul><li>性价比高 </li></ul></ul>
  8. 8. Flashcache 方案简介 <ul><li>Flashcache 简介 </li></ul><ul><ul><li>开源混合存储方案 </li></ul></ul><ul><ul><li>Device mapper 层插件 </li></ul></ul><ul><ul><li>支持 WT 和 WB 模式 </li></ul></ul><ul><ul><li>应用透明 </li></ul></ul>/dev/sda /dev/sdb /dev/mapper/cachedev 这就是 Flashcache : 将两个块设备,虚拟成一个带缓存的块设备 File System VFS http://orczhou.com
  9. 9. Flashcache 特性分析 <ul><li>简单使用: </li></ul><ul><ul><li>创建: flashcache_create </li></ul></ul><ul><ul><li>加载: flashcache_load </li></ul></ul><ul><ul><li>移除: dmsetup remove </li></ul></ul><ul><li>Flashcache 特性: </li></ul><ul><ul><li>脏块阀值: dirty_thresh_pct=90 </li></ul></ul><ul><ul><li>缓存策略: cache_all=0 </li></ul></ul><ul><ul><li>快速删除: fast_remove=1 </li></ul></ul><ul><ul><li>写入合并: write_merge=1 </li></ul></ul><ul><ul><li>回收策略: reclaim_policy=1 </li></ul></ul><ul><ul><li>支持预加载 </li></ul></ul><ul><li>性能分析: </li></ul><ul><ul><li>WB 优于 WT </li></ul></ul><ul><ul><li>性能与命中率成正比 </li></ul></ul>
  10. 10. SSD 数据库最佳实践 <ul><li>数据库使用 SSD 的意义 </li></ul><ul><ul><li>CPU 与 IO 性能不均衡 </li></ul></ul><ul><ul><li>提升单机性能 </li></ul></ul><ul><ul><li>改善用户体验 </li></ul></ul><ul><li>SSD 方案 </li></ul><ul><ul><li>SSD + 硬件 RAID 卡 + RAID 5 </li></ul></ul><ul><ul><li>写 cache 很重要 ( 电池保护 ) </li></ul></ul><ul><ul><li>可靠性高,性能高 </li></ul></ul><ul><li>Flashcache 方案 </li></ul><ul><ul><li>Fusion-io + SAS 磁盘 </li></ul></ul><ul><ul><li>容量与性能平衡 </li></ul></ul><ul><ul><li>性价比高 </li></ul></ul>
  11. 11. SSD 数据库优化实践 <ul><li>日志文件放在磁盘上 </li></ul><ul><li>控制数据库刷盘的频率 </li></ul><ul><li>增加 spare area :改善写性能 </li></ul><ul><li>IO 调度算法: Deadline , NOOP </li></ul><ul><li>MySQL : Percona , Innodb plugin </li></ul><ul><li>减小 page size : 16K -> 8K </li></ul><ul><li>关闭 MySQL 预读 </li></ul><ul><li>文件系统: ext3 , xfs </li></ul>
  12. 12. <ul><li>共享存储方案 </li></ul><ul><ul><li>使用内置 SSD 的存储 </li></ul></ul><ul><ul><li>SSD 存放热点数据 </li></ul></ul><ul><li>Oracle flashcache 方案 </li></ul><ul><ul><li>11gR2 + Oracle Linux </li></ul></ul><ul><ul><li>数据库内置功能 </li></ul></ul><ul><ul><li>仅支持 WT 模式 </li></ul></ul><ul><li>无共享存储方案 </li></ul><ul><ul><li>单机配置 SSD + Dataguard </li></ul></ul><ul><ul><li>高可用如何解决? </li></ul></ul><ul><li>Oracle Exadata </li></ul><ul><ul><li>存储节点内置 flash 存储 </li></ul></ul><ul><ul><li>利用 flashcache 特性提升性能 </li></ul></ul>Oracle 使用 SSD 的方案
  13. 13. <ul><li>应用场景: </li></ul><ul><ul><li>DELL R510 , 24G memory , 12 * SAS 磁盘 (RAID10) </li></ul></ul><ul><ul><li>12 节点,单机 1T 数据,热点数据 200G </li></ul></ul><ul><ul><li>单次访问 IO 量大,用户响应缓慢 </li></ul></ul><ul><ul><li>数据库压力低, QPS 无法提高 </li></ul></ul><ul><ul><li>系统切换后,预热 = 故障 </li></ul></ul><ul><ul><li>MySQL 的缺陷:数据分布离散, Cache 命中率低 </li></ul></ul><ul><li>优化法则: </li></ul><ul><ul><li>减少物理 IO 数量 </li></ul></ul><ul><ul><li>减小 IO 响应延迟 </li></ul></ul><ul><li>优化方案: </li></ul><ul><ul><li>fusion-io 320G + Flashcache </li></ul></ul><ul><ul><li>降低系统预热的时间 </li></ul></ul><ul><ul><li>减小数据库集群规模 </li></ul></ul><ul><ul><li>提升用户体验 </li></ul></ul>Flashcache 应用场景分析
  14. 14. <ul><li>SSD 替代磁盘 ? </li></ul><ul><li>MLC 替代 SLC ? </li></ul><ul><li>Fusion-io or SSD ? </li></ul><ul><li>Flashcache 只是过渡方案 ? </li></ul><ul><li>SSD + Infiniband+iSER+ = 廉价的高性能存储 ? </li></ul><ul><li>存储厂商如何应对 ? </li></ul><ul><li>SSD-based Database </li></ul><ul><li>数据库如何优化 ? </li></ul>未来的发展方向
  15. 15. 联系方式: Email : [email_address] Twitter : hellodba 新浪微博: hellodba 技术博客: www.HelloDB.net Q & A

×