当前位置: 技术问答>linux和unix
关于Linux的分区操作,物理存储
来源: 互联网 发布时间:2016-06-15
本文导语: 现在在做一个程序,是测试磁盘存储与文件访问速度关系的,期间要得到一个物理磁盘上连续存储的大文件和一个物理磁盘上非连续存储的大文件,由于大文件大小必须是变化的,多次测试,所以涉及了多次的分区格...
现在在做一个程序,是测试磁盘存储与文件访问速度关系的,期间要得到一个物理磁盘上连续存储的大文件和一个物理磁盘上非连续存储的大文件,由于大文件大小必须是变化的,多次测试,所以涉及了多次的分区格式化操作。
我的操作流程是这样的: umount 分区; mkfs; mount分区,然后根据需要用dd命令建立大型文件。
而对物理磁盘上非连续存储的大文件的获得,通过先把这个分区填满小文件,然后随机删除小文件来得到足够的空间创建大文件。所有文件的文件系统都是ext3
整个过程涉及到得系统调用有 umount mkfs, mount, echo 3 > ... drop_caches,dd, rm,
程序运行起来很不稳定,有时候没事,有时候会使系统死机。甚至造成重启后机器磁盘自检,不能正常重启。我操作的分区都是数据分区,不是系统所在分区。不知道为什么会出现这个故障?
有朋友说是因为每次格式化前对分区有操作,不能umount,但是我的umount是在mkfs之前做的啊?
问题一:这样的情况下,最可能的原因是什么?怎么解决?
朋友说,不用每次创建新的大文件时都格式化分区,用删除操作把分区内文件清空,然后再创建是一样的?想问一下,清空分区文件后建议的大文件,与格式化后建立的大文件,都是按照物理磁盘块上连续存储的吗?
我的操作流程是这样的: umount 分区; mkfs; mount分区,然后根据需要用dd命令建立大型文件。
而对物理磁盘上非连续存储的大文件的获得,通过先把这个分区填满小文件,然后随机删除小文件来得到足够的空间创建大文件。所有文件的文件系统都是ext3
整个过程涉及到得系统调用有 umount mkfs, mount, echo 3 > ... drop_caches,dd, rm,
程序运行起来很不稳定,有时候没事,有时候会使系统死机。甚至造成重启后机器磁盘自检,不能正常重启。我操作的分区都是数据分区,不是系统所在分区。不知道为什么会出现这个故障?
有朋友说是因为每次格式化前对分区有操作,不能umount,但是我的umount是在mkfs之前做的啊?
问题一:这样的情况下,最可能的原因是什么?怎么解决?
朋友说,不用每次创建新的大文件时都格式化分区,用删除操作把分区内文件清空,然后再创建是一样的?想问一下,清空分区文件后建议的大文件,与格式化后建立的大文件,都是按照物理磁盘块上连续存储的吗?
|
umount前sync下,为了保险可以umount后再sync下
楼主可以参考下hdparm的源码的部分实现
楼主可以参考下hdparm的源码的部分实现
|
个人觉得清空文件后建的大文件并不一定是连续的。。。
而格式化后建的大文件是连续的
介绍一篇文章给lz看看,我个人觉得很不错,解释的很清楚了
http://hi.baidu.com/heiyeshuwu/blog/item/634063272421f007908f9d2d.html
http://hi.baidu.com/heiyeshuwu/blog/item/787097dd27b5aa305882dd2d.html
而格式化后建的大文件是连续的
介绍一篇文章给lz看看,我个人觉得很不错,解释的很清楚了
http://hi.baidu.com/heiyeshuwu/blog/item/634063272421f007908f9d2d.html
http://hi.baidu.com/heiyeshuwu/blog/item/787097dd27b5aa305882dd2d.html