SlideShare uma empresa Scribd logo
1 de 21
开源混合存储方案
 Flashcache

       余锋 褚霸
    淘宝核心系统
 mryufeng@gmail.com
   http://yufeng.info
互联网业务特点

• 人多
• 请求是人发起的,天然读多写少(懒人多)
• 熟人之间的关系,天然有热点
数据存储的需求

业务特点反应在存储上:

• 数据量大
• 读多写少
• 有热点
机械硬盘特点

•   机械结构,寻道时间长,随机访问慢,高延迟时间
•   顺序访问速度快
•   每GB成本低,容量大
•   机械故障,磨损少
固态盘特点

•   电子器件,无活动部件,可靠性高
•   随机访问,无需寻道时间,低延迟时间
•   每GB成本相对高,容量相当小
•   Nand芯片有擦写寿命
如何利用二者的优点

• 硬盘的高容量,高顺序访问,低成本
• 固态盘的高随机访问,低延迟时间
如何不多花钱呢?

欢迎Flashcache闪亮登场!
Flashcache介绍

作者 Mohan Srinivasan
源于Facebook,初始用于加速MySQL InnoDB引擎IO

现在是通用的软件方案块设备加速器

内核模块,支持主流64位Linux

更多访问:http://github.com/facebook/flashcache
Flashcache在内核的层次
Flashcache特性

• 免费,高性能
• Device Mapper层,对外服务体现方式是块设备,无需修改应
  用
• 支持write back和write through二种模式
• 运行期状态可调整和查看
我有兴趣!!!

快告诉我如何用!
硬件设备

• PCI-E 高速Flash卡:/dev/vgca0
• 硬盘: /dev/sda12
安装


• 准备好你的源码树
• make install
加载

if (初次)
flashcache_create cachedev /dev/vgca0 /dev/sda12
else
flashcache_load cachedev /dev/vgca0 /dev/sda12

请稍候...

在/dev/mapper目录下看到我们的虚拟设备 cachedev



我们的混合盘就绪了: /dev/mapper/cachedev
使用

• 裸盘使用
• 安装文件系统: mkfs.ext3 /dev/mapper/cachedev
微调参数

# sysctl dev.flashcache

dev.flashcache.cache_all = 0
dev.flashcache.reclaim_policy = 0
dev.flashcache.dirty_thresh_pct = 90
Cache管理

• 预加载文件:flashcache_cacheit filename
• 删除Cache中的文件:flashcache_trim filename
• 添加进程名单:flashcache_addpids <device_name> w|b
  pid1
• 删除进程名单:flashcache_delpids <device_name> w|b
  pid1
查看状态

• # dmsetup status cachedev
• # dmsetup table cachedev
• # dmsetup info cachedev
移除设备

• # dmsetup remove cachedev
• 耐心等候
效果呢?

固态盘IO能力 * 热点百分比
     还便宜!
谢谢大家!

 Q&A

Mais conteúdo relacionado

Semelhante a 开源混合存储方案(Flashcache)

MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
Feng Yu
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
丁 宇
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
丁 宇
 
吴岷 视频Cdn分发、调度与服务的探讨
吴岷  视频Cdn分发、调度与服务的探讨吴岷  视频Cdn分发、调度与服务的探讨
吴岷 视频Cdn分发、调度与服务的探讨
drewz lin
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
freezr
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
drewz lin
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
Hesey
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化
丁 宇
 
Knowledge sharing
Knowledge sharingKnowledge sharing
Knowledge sharing
Peng Wan
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
Yiwei Ma
 

Semelhante a 开源混合存储方案(Flashcache) (20)

寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
 
Linux I/O Scheduler
Linux I/O SchedulerLinux I/O Scheduler
Linux I/O Scheduler
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
浅谈数据库优化
浅谈数据库优化浅谈数据库优化
浅谈数据库优化
 
吴岷 视频Cdn分发、调度与服务的探讨
吴岷  视频Cdn分发、调度与服务的探讨吴岷  视频Cdn分发、调度与服务的探讨
吴岷 视频Cdn分发、调度与服务的探讨
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
Hantuo openstack
Hantuo openstackHantuo openstack
Hantuo openstack
 
碰撞
碰撞碰撞
碰撞
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
MySQL设计、优化、运维
MySQL设计、优化、运维MySQL设计、优化、运维
MySQL设计、优化、运维
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化
 
谈谈缓存
谈谈缓存谈谈缓存
谈谈缓存
 
Knowledge sharing
Knowledge sharingKnowledge sharing
Knowledge sharing
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 

Mais de Feng Yu

Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
Feng Yu
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术
Feng Yu
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
Feng Yu
 
了解内存
了解内存了解内存
了解内存
Feng Yu
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)
Feng Yu
 
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
Feng Yu
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
Feng Yu
 

Mais de Feng Yu (20)

Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术
 
Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述
 
了解集群
了解集群了解集群
了解集群
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器
 
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
 
了解网络
了解网络了解网络
了解网络
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能
 
了解内存
了解内存了解内存
了解内存
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)
 
了解Cpu
了解Cpu了解Cpu
了解Cpu
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
 
了解IO设备
了解IO设备了解IO设备
了解IO设备
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践
 
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
 
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
 

开源混合存储方案(Flashcache)