flashcache 介绍】的更多相关文章

rpm: flashcache-utils-0.0-4.1.el6.x86_64 kmod-flashcache-0.0-3.el6.x86_64 基本介绍: Flashcache是Facebook技术团队开发的一个内核模块,通过在文件系统(VFS)和设备驱动之间新增一次缓存层,可以用SSD作为介质的缓存,通过将传统硬盘上的热门数据缓存到SSD上,加速服务器磁盘读写性能.最初是为加速MySQL设计 Flashcache是基于dm框架实现的,很自然的,是把一个SSD盘和一个机械硬盘聚合成一个虚拟设…
其实到目前为止,如果对读流程已经能轻松地看懂了,那么写流程不需要太多脑细胞.我觉得再写下去没有太大的必要了,后面想想为了保持flashcache完整性,还是写出来吧.接着到写流程: 1530static void 1531flashcache_write(struct cache_c *dmc, struct bio *bio) 1532{ 1533 int index; 1534 int res; 1535 struct cacheblock *cacheblk; 1536 int queue…
正常流程到flashcache_map的1623行或1625行,按顺序先看读流程: 1221static void 1222flashcache_read(struct cache_c *dmc, struct bio *bio) 1223{ 1224 int index; 1225 int res; 1226 struct cacheblock *cacheblk; 1227 int queued; 1228 1229 DPRINTK("Got a %s for %llu %u bytes)&…
这一小节介绍一下flashcache读写入口和读写的基础实现. 首先,不管是模块还是程序,必须先找到入口,用户态代码会经常去先看main函数,内核看module_init,同样看IO流时候也要找到入口.flashcache作为一个dm_target,入口就是struct target_type 的map函数,对应的是flashcache_map函数: 1581/* 1582 * Decide the mapping and perform necessary cache operations f…
从来没有写过源码阅读,这种感觉越来越强烈,虽然劣于文笔,但还是下定决心认真写一回. 源代码下载请参见上一篇flashcache之我见 http://blog.csdn.net/liumangxiong/article/details/11643473 下面代码对应的是tag下面的1.0版本的. 看内核模块源码,闭着眼睛打开flashcache_init函数,区区百来行代码何足惧也. 1963int __init 1964flashcache_init(void) 1965{ 1966 int r…
上一节讲到在刷缓存的时候会调用new_kcahed_job创建kcached_job,由此我们也可以看到cache数据块与磁盘数据的对应关系.上一篇:http://blog.csdn.net/liumangxiong/article/details/11726651 现在继续从new_kcached_job函数中挖掘有用的信息.那就是cache块跟磁盘上扇区是怎么对应起来的?即329行的为什么要写的disk.sector是后面这个值呢?           job->disk.sector =…
Flashcache基本使用及注意事项 发表回复 环境:Centos6.5 x64 minal 安装方法 Contents [hide] 1 安装方法 2 自动加载模块 3 创建Flashcache 4 加载缓存设备 5 使用Flashcache 6 销毁Flashcache 7 Flashcache参数优化 8 Flashcache开机启动 9 Flashcache状态监控 10 参考文档 1.rpm安装   1 2 3 rpm --import http://elrepo.org/RPM-G…
Flashcache是Facebook技术团队的又一力作,最初是为加速MySQL设计的.Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用之. 1. Why Flashcache 随着时间的流逝,网站上的数据一直在不停的积累.如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短).如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB. 如果将这些数据全部放在大容量的SATA…
flashcache中跟磁盘相关的读写分为以下两类: 1)磁盘跟内存的交互 2)磁盘跟磁盘之前的交互 比如说读不命中时就是直接从磁盘读,属于第1种情况,那读命中呢?也是属于第1种情况,不过这时候是从SSD读.磁盘跟磁盘之间交互是用于写脏数据,将SSD中脏cache块拷贝到磁盘上去.现在介绍下两种情况使用的接口函数,这样后面在看读写流程时看到这两个函数就十分亲切了,并且清楚地知道数据是从哪里流向哪里.   对于情况1,主要是两个函数dm_io_async_bvec和flashcache_dm_io…
HBase介绍 1.关系型数据库与非关系型数据库 (1)关系型数据库 ​ 关系型数据库最典型的数据机构是表,由二维表及其之间的联系所组成的一个数据组织 ​ 优点: ​ 1.易于维护:都是使用表结构,格式一致 ​ 2.使用方便:SQL语言通用,可用于复杂查询 ​ 3.复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询 ​ 缺点: ​ 1.读写性能比较差,尤其是海量数据的高效率读写 ​ 2.固定的表结构,灵活度稍欠 ​ 3.高并发读写需求,传统关系型数据库,硬盘IO是一个很大的瓶颈 (2…