DongHao: 07 2011存档

最近看ext4代码,注意到了 punch hole (打洞)功能,就是可以把文件中间的一部分内容释放掉,但是剩余部分的文件偏移不变。

于是我问马涛同学这个punch hole一般用在什么场合。

马涛:可以用在虚拟机上,比如你从虚拟机里删掉了一个大文件,虚拟机可以用punch hole在虚拟硬盘把这个文件占用的空间释放掉

我:有哪款虚拟机这样做?

马涛:这是文件系统提供给虚拟机的一个feature,虚拟机有了这个feature的支持就可以节省硬盘空间。比如host上装了多台虚拟机,每个虚拟机都通过punch hole的方式来删除自己虚拟的大文件,这样一段时间后,虽然各虚拟硬盘加起来空间很大,但是实际占用的空间就很小。应该有虚拟机是这样做的,这个我没注意。

我:除了虚拟化呢?还有别的应用场景吗?

马涛:嗯....云计算应该也又用的吧

我:虚拟化,云计算,这都是新概念,早期做这个punch hole是干啥用的,就是早期的应用有吗?

马涛:....早期就是因为有了truncate来去掉文件的尾巴,那么出于逻辑完整,就需要一个调用来去掉文件的头或者中间,于是就有了这个punch hole

我:喔

事后我想了想,如果一个大文件,用户决定了文件中间的一段内容以后不需要再用到了可以删除了,在没有punch hole支持的情况下,似乎只能先mmap,然后memove把中间的内容覆盖掉,然后truncate缩短文件内容。而如果有了punch hole的支持,只需一个系统调用没有内存移动的开销,非常高效,虽然文件用 ls 看起来还是那么大,但实际占用空间(用 du -sh 看)已经缩短了。

也许数据库,搜索引擎里的大文件可以用上,我猜。

低碳

| | Comments (1) | TrackBacks (0)
今年初一家人去吃了好几次“欢乐牧人”烤羊肉,物美价廉,爸一直念念不忘,叫我们再注意有没有类似的团购。

前几周,一家人都在看纪录片《家园》,里面正在沉痛的叙述人类工业活动对地球环境的破坏,号召大家少用化石能源,倡导低碳生活,低碳,低碳......

爸看得很认真,看完以后第一句就问:

“那以后还能吃碳烤羊肉不?”
马涛:你又在看kindle的网站,你怎么老看不买啊
我:我还老看你呢,我不也没买嘛
马涛:我贵,你不一定买得起
我:没问题,我最高出价,114美元
(马涛没吱声儿,上厕所去了,一会儿回来)
马涛:为什么是114美元?
我:这就是kindle的价格



早上马涛又提着他的巴掌大的小塑料口袋来上班,里面装着钱包和钥匙。
我:哟,又提你的LV包来了
马涛:我这是LV包?
我:是的,Linux kernel developer's Vessel,简称LV