最新 | 最热门 | 最高评价

+0  flashcache支持资源隔离的改造

Tag: 存储系统 | cgroup | flashcache | quota
RobinDong 发于 2013年12月13日 17:17 | 点击: 1609 | 展开摘要
去年年底的时候对flashcache做了一番研究,并进行了改造,所谓改造,其实就是希望它能支持cgroup,也就是说,当有在不同cgroup里运行的进程对flashcache进行读写时,flashcache能根据cgroup的不同权重分配这些进程以不同的iops(IO per second)。详细的资料在这里:《flashcache原理及改造》

事情还没有结束,现在能给flashcache设备设io-scheduler了,设成cfq就可以按cgroup weight来分配i

查看全文: http://www.udpwork.com/item/11317.html

+0  Oracle ASM与flashcache不兼容问题

Tag: 工作故事 | flashcache | oracle
RobinDong 发于 2013年03月20日 21:26 | 点击: 1144 | 展开摘要
先强调,本文所说的flashcache是指facebook的那款开源软件,不是指“快速设备”。

同事先是反映flashcache创建的设备被fdisk和parted等工具分区后,在/dev/目录下没有出现新设备(通常,对/dev/sdb设备分区后,会出现/dev/sdb1,/dev/sdb2等子设备)

查了一下资料,multi-device系列的设备(包括flashcache和linux下的软raid)都不支持原始的分区方式,只能用lvm创建logic volume来代替

查看全文: http://www.udpwork.com/item/10051.html

+0  Oracle ASM与flashcache兼容问题

Tag: 操作系统 | flashcache | oracleasm
DongHao 发于 2013年03月14日 16:57 | 点击: 1830 | 展开摘要
先强调,本文所说的flashcache是指facebook的那款开源软件,不是指“快速设备”。

同事先是反映flashcache创建的设备被fdisk和parted等工具分区后,在/dev/目录下没有出现新设备(通常,对/dev/sdb设备分区后,会出现/dev/sdb1,/dev/sdb2等子设备)
查了一下资料,multi-device系列的设备(包括flashcache和linux下的软raid)都不支持原始的分区方式,只能用lvm创建logic volume来代替分

查看全文: http://www.udpwork.com/item/9449.html

+0  flashcache原理及改造(PPT)

Tag: 操作系统 | flashcache
DongHao 发于 2012年12月29日 13:23 | 点击: 2354 | 展开摘要
上周四在杭州做了一个flashcache的讲座,主要介绍原理和近几个月我的改造工作,PPT如下,供大家参考:

查看全文: http://www.udpwork.com/item/8941.html

+0  解block层死锁

Tag: 操作系统 | block | 死锁 | flashcache | kernel
DongHao 发于 2012年12月27日 18:14 | 点击: 1974 | 展开摘要
把flashcache改为request-based后,虽然IO数量可以按比例控制了,但是作为”珍稀“资源的cache(通常是昂贵的固态硬盘或更昂贵的fusionio卡),也需要按例分配不同进程以不同的cache空间。近一个月我一直在忙着加这个功能。
新代码写完了,压力测试二十多个小时,出现了一个死锁:

<4>[11957.888102]  [<ffffffff814afa70>] ? nmi+0x20/0x30
<4>[119

查看全文: http://www.udpwork.com/item/8884.html

+0  flashcache改造

Tag: 操作系统 | devicemapper | flashcache
DongHao 发于 2012年10月23日 15:08 | 点击: 2220 | 展开摘要
flashcache是bio based,也就是说,做为虚拟设备它是直接处理上层发下来的bio们。具体点说,内核所有的block io操作都要走submit_bio,而submit_bio会走generic_make_request,进而调用每个设备自己的make_request_fn函数(代码里是q->make_request_fn),而dm框架对虚拟出来的设备是实现了make_request_fn的,名为dm_request,这样,所有的bio都进了函数dm_req

查看全文: http://www.udpwork.com/item/8443.html

+0  flashcache原理

Tag: 操作系统 | devicemapper | flashcache | generic_make_request | submit_bio
DongHao 发于 2012年10月22日 11:50 | 点击: 10220 | 展开摘要
介绍flashcache的文章很多,我就不废话了。使用上,有余峰老哥的文章;原理上,有ningoo同学的flashcache系列。但是ningoo同学漏掉了device mapper和flashcache的动态原理,只讲了静态的数据结构。我就钻个空子补充一下。

一般来说,我们对磁盘的read和write最后都会走到kernel里的submit_bio函数,也就是把io请求变成一个个的bio(bio的介绍看这里),bio是linux内核里文件系统层和block层之间沟通的数据

查看全文: http://www.udpwork.com/item/8437.html

+0  深入浅出Flashcache(五)

Tag: 技术 | blkiomon | debugfs | dmsetup | flashcache | flashstat
NinGoo 发于 2012年01月14日 00:12 | 点击: 1806 | 展开摘要
前几天因为测试新版的Flashcache,为了便于监控性能指标,用Perl写了个秒级的监控程序Flashstat,一开始是通过定期获取dmsetup status的信息做解析,后来在flashcache-dev邮件列表中讨论时,Flashcache的作者Mohan Srinivasan说他已经将dmsetup status的信息暴露在/proc/flashcache_stats中,可以更加方便的解析。

实际上,不同版本的Flashcache,输出的性能指标有一些变化。较老的

查看全文: http://www.udpwork.com/item/6697.html

+0  深入浅出Flashcache(四)

Tag: 技术 | dmsetup | flashcache | loop device | tmpfs
NinGoo 发于 2012年01月10日 13:38 | 点击: 2037 | 展开摘要
年底事情比较多,中断了一段时间,这一篇总算要说到Flashcache本身了。由于是内核模块,安装的时候需要内核源码树。具体的安装过程可以参考这里。

make -j 4 KERNEL_TREE=/usr/src/kernels/2.6.32-131.0.15.el6.x86_64
sudo make install

最初版本的Flashcache只支持writeback,后来单独开了一个支持writethrough的分支在flashcache-wt目录,但目前最新的版本已经

查看全文: http://www.udpwork.com/item/6678.html

+0  Flashcache新添加驱逐空闲脏页参数

Tag: Linux | 工具介绍 | 调优 | fallow_delay | Flashcache
Yu Feng 发于 2011年12月10日 21:30 | 点击: 2112 | 展开摘要
原创文章,转载请注明: 转载自Erlang非业余研究

本文链接地址: Flashcache新添加驱逐空闲脏页参数

我在之前的博文提过Flashcache的cache是以set为单位管理的,每个set默认2M。 当单个set里面的脏页数量超过dirty_thresh_pct的时候,就会启动背景工作队列来把超过设置的脏页回写到后备磁盘去。 这里有别的同学对flashcache设计文档的翻译.

参看dirty_thresh_pct的文档解释:

dev.flashcache.

查看全文: http://www.udpwork.com/item/6504.html

+0  深入浅出Flashcache(三)

Tag: 技术 | flashcache | kernel | linux | Module | 内核
NinGoo 发于 2011年12月10日 01:50 | 点击: 2644 | 展开摘要
前文简单介绍了block device和device mapper。有了这两个基础,再来看flashcache的代码,就容易理解多了。Flashcache是一个内核模块,要更清晰的理解代码,还需要了解一下内核模块编写的一些基础知识。好吧,虽然对于内核编程我完全是个门外汉,这里还是需要现学现卖下。所以这一篇还是不会切入正题,已经熟悉Linux内核模块的同学请忽略并耐心等待。

Linux内核支持动态的加载模块(Loadable Kernel Module,LKM)以完成某些特定

查看全文: http://www.udpwork.com/item/6501.html

+0  深入浅出Flashcache(二)

Tag: 技术 | block device | device mapper | flashcache | linux
NinGoo 发于 2011年12月03日 16:53 | 点击: 3149 | 展开摘要
前文简单的介绍了block device,别急,虽然这个系列的主要目的是介绍Flashcache,这一篇还是不会切入正题,因为我们还需要先了解下什么是device mapper。

假如一台主机插入了多块硬盘,单块硬盘的容量和性能都是有限的,如果能将多块硬盘组合一个逻辑的整体,对于这台主机来讲,就实现了最简单意义上的“云存储”。有很多方法可以实现这个目的,比如Raid卡硬件,比如现在很流行的分布式文件系统的replica机制,等等。Linux内核也看到了这个需求,于是2.6有

查看全文: http://www.udpwork.com/item/6453.html
|<<<12>>>| 一共2页, 17条记录