2008-8-14 11:08
钱三
实验:有利于提高对于jfs的认识
起因:有用户反映df 查看文件系统有剩余空间,但是在创建文件的时候提示“no enough space”
模拟了一个极端情况下的步骤,用于实验:
1、新建了一个jfs2的文件系统/testfs,最好只用一个pp,因为这样能够大量节约实验的时间[color=red]。"block=512"[/color]
[color=black]2、在该目录下生成2个文件test.txt(512字节),test1.txt(513字节)
[/color]2、[color=#000000]利于shell生成15万个512个字节大小的文件,目的是把该文件系统给塞满东西。(具体生成的文件数量视所建文件系统的大小而定)[/color]
[color=#000000] shell例:[/color]
[color=#000000] i=1
while [ $i -ne 150000]
do #执行
dd if=/testfs/test.txt of="/testfs/f$i.txt"
i=`expr $i + 1`
done [/color]
[color=#000000]3、删除部分文件[/color]
[color=#000000]cd /testfs[/color]
[color=#000000]find ./ -name "f*9.txt" |xargs -i rm -f {}[/color]
[color=#000000](确认好在测试目录下做)[/color]
[color=#000000]4、然后cp test1.txt test2.txt[/color]
[color=#000000]然后看提示“no enough space”,模拟效果达成。[/color]
[color=#000000][/color]
[color=#000000]不想做实验的,只需要清楚,其实建立文件系统的时候,默认的block=4096其实也挺好。[/color]
[color=#000000]想做实验的,可以多看看IBM网站上的信息中心,4k就是答案。搞清楚这个问题了,自然就知道以后文件系统如何更好的去规划了。[/color]
[color=#000000]明白的,指点一条明路。面对几百G以上的文件系统,有没有好的解决方案。[/color]
2008-8-14 11:13
darkbug
说实话,没太看懂
LZ是想模拟inode耗尽的情况么?
2008-8-14 11:32
ChaosLegion
LZ是咩目的?没看明白
2008-8-14 13:14
老农
用JFS2,不要再用JFS
2008-8-14 13:39
larryh
LZ的实验结果很奇怪,FS有问题?
删除f*9.txt怎么也不止两个文件被删掉吧,513字节的无论如何应当是放得下的
我做的实验:
[font=宋体][code]
[localhost:root:/ttt]df -k /ttt
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/fslv00 65536 0 100% 61376 100% /ttt
[localhost:root:/ttt]find . -name "f*9.txt" -exec rm -f {} \;
[localhost:root:/ttt]df -k /ttt
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/fslv00 65536 3068 96% 55239 90% /ttt
[localhost:root:/ttt]cp t513.txt tt.txt
[localhost:root:/ttt]df -k /ttt
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/fslv00 65536 3068 96% 55240 90% /ttt
[/code][/font]
[[i] 本帖最后由 larryh 于 2008-8-14 19:14 编辑 [/i]]
2008-8-14 14:06
钱三
[quote]原帖由 [i]老农[/i] 于 2008-8-14 13:14 发表 [url=http://www.loveunix.net/redirect.php?goto=findpost&pid=820273&ptid=88366][img]http://www.loveunix.net/images/common/back.gif[/img][/url]
用JFS2,不要再用JFS [/quote]
jfs2和jfs是一样的。详见下贴。
2008-8-14 14:24
钱三
[quote]原帖由 [i]larryh[/i] 于 2008-8-14 13:39 发表 [url=http://www.loveunix.net/redirect.php?goto=findpost&pid=820288&ptid=88366][img]http://www.loveunix.net/images/common/back.gif[/img][/url]
LZ的实验结果很奇怪,FS有问题?
删除f*9.txt怎么也不止两个文件被删掉吧,513字节的无论如何应当是放得下的
问题的关键不是删除了多少文件,而是,是否有[color=Red]!!!4k连续的磁盘空间!!![/color]
我建立的模拟实验如下:
[root@test:/]ls -l lslpp.txt
-rw-r--r-- 1 root system 153072 May 18 2007 lslpp.txt
[root@test:/]df -k /testfs
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/fslv10 131072 12736 91% 96082 79% /testfs
[root@test:/]cp lslpp.txt /testfs
cp: /testfs/lslpp.txt: There is not enough space in the file system.
[root@test:/]lsfs -q /testfs
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/fslv10 -- /testfs jfs2 262144 rw yes no
(lv size: 262144, fs size: 262144, block size: 512, sparse files: yes, inline log: no, inline log size: 0, reserved: 0, reserved: 0, DMAPI: no, VIX: no)
我建的是128M的一个jfs2文件系统,block size=512。
模拟实验的目的是使文件系统没有连续的空间,来验证即使文件系统有空间,依然无法可用。这是我给客户的答案,觉得挺有意义,以前自己没在意过,所以分享一下。
larryh建的文件系统block size是512的?
2008-8-14 14:25
beginner-bj
5楼的结果和1楼的描述不一样啊
2008-8-14 14:27
老农
FS空间的占用是以BLOCK(JFS是segment)为单位的。
2008-8-14 14:48
钱三
[quote]原帖由 [i]beginner-bj[/i] 于 2008-8-14 14:25 发表 [url=http://www.loveunix.net/redirect.php?goto=findpost&pid=820344&ptid=88366][img]http://www.loveunix.net/images/common/back.gif[/img][/url]
5楼的结果和1楼的描述不一样啊 [/quote]
因为折腾了好几次,删除建立了很多文件,要是用小文件实现最初的目的,我也不知道要折腾多久才行。所以拿大文件copy来说明一下。
至于defragfs,与这个也无关。
2008-8-14 15:07
beginner-bj
文件不必须是连续的,但不连续的最大次数是有限制的。这个次数是多少,懒得查了。
block size: 512的情况,513字节的文件,最多也就是不连续两次,无论如何都能放得下的。
你7楼给了个153072字节的文件,512的299倍,299肯定超过限制了,所以道理应该是这个。
2008-8-14 17:34
larryh
[quote]原帖由 [i]钱三[/i] 于 2008-8-14 14:24 发表 [url=http://www.loveunix.net/redirect.php?goto=findpost&pid=820342&ptid=88366][img]http://www.loveunix.net/images/common/back.gif[/img][/url]
larryh建的文件系统block size是512的?
[/quote]
是的,虽然你没明说,但从上下文知道你是说block=512的意思,我建的是一个64MB的512块大小的JFS2
如果块是512,那么4K这个数字就没意义了,文件size÷512的整数商,加上文件size÷512的余数(IF>0, 1,IF =0, 0),就这么多个块,所以512字节占一个块,513字节占2个块。
当然,JFS2的inode表是动态的,如果这之前inode表正好占满整数个块,增加一个就会刚好造成必须另外分配一块,则空间需求是512字节文件2个块,513字节文件3个块。
[[i] 本帖最后由 larryh 于 2008-8-14 19:13 编辑 [/i]]
2008-8-14 17:42
chalylau
关注ing。。。
2008-8-15 00:23
钱三
[quote]原帖由 [i]larryh[/i] 于 2008-8-14 13:39 发表 [url=http://www.loveunix.net/redirect.php?goto=findpost&pid=820288&ptid=88366][img]http://www.loveunix.net/images/common/back.gif[/img][/url]
LZ的实验结果很奇怪,FS有问题?
删除f*9.txt怎么也不止两个文件被删掉吧,513字节的无论如何应当是放得下的
我做的实验:
[localhost:root:/ttt]df -k /ttt
Filesystem 1024-blocks Free ... [/quote]
考虑了一下,是否能够多做几次copy 如copy成tt2、tt3等,因为删除文件后,可能会形成有部分的小段连续空间。
因为白天上网不便,贴一下刚重新做的结果。
/testfs>cp f513.txt tt2.txt
/testfs>cp f513.txt tt3.txt
/testfs>cp f513.txt tt4.txt
cp: tt4.txt: There is not enough space in the file system.
/testfs>df -k /testfs
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/fslv01 65536 3064 96% 55217 90% /testfs
2008-8-15 00:30
钱三
贴个图,会比较有说服力点:
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.