免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1429 | 回复: 4
打印 上一主题 下一主题

问个IO底层的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-13 14:29 |只看该作者 |倒序浏览
hi, all
    在应用层能不能获取某个文件的所有物理块号?就是获取某个文件保存在磁盘上面的所有物理块号,我想知道它们是怎么分布的,有这样的系统调用么?
or 探讨下?我想我操作的文件能够连续的分布在磁盘上,除了预分配大的空间,还有其他什么办法?
thx!

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
2 [报告]
发表于 2009-11-13 15:24 |只看该作者
要连续存放的话,这个恐怕需要LZ自己来实现了
我了解的会预留一块空间,同时也支持扩展块
要做到文件连续存放,怎么计算呢,你能预先知道文件的大小吗?
如果定义大了,可能会造成浪费;不过
可以设计专门用于某种情形的文件系统,预先知道文件大小,并确保不会高于/低于某个阈值,
这样浪费也少一些;当然上限和下限不易差距过大
感觉这种文件系统应用面有些窄

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [报告]
发表于 2009-11-13 15:26 |只看该作者
获取文件的物理分布
感觉类似于文件系统自己内部的功能
没用过这方面的
但是感觉要把super_block等的一些操作export成API,然后才能调用
LZ可以看看LVM,对LVM不熟,但是感觉应该有类似的方式

论坛徽章:
0
4 [报告]
发表于 2009-11-13 15:37 |只看该作者
应该是没有直接提供这样的系统调用的,估计得自己改,这样的话就没意义了。
可能还是只能用过预分配来实现,就是每次文件空间不够用了,就预分配K Mb这样了,K值根据自己的应用来定吧。

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
5 [报告]
发表于 2009-11-13 15:56 |只看该作者
看自己的需要了
ReiserFS适用于处理下文件,也有适用于大文件的
LZ可以选择一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP