免费注册 查看新帖 |

Chinaunix

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

请LINUX的高手看一下,关于文件系统中块的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-25 15:09 |只看该作者 |倒序浏览
请LINUX的高手看一下,关于文件系统中块的问题
  



小弟的问题是文件的大小跟块有关。
首先先复习一下以前的知识.
在SHELL版的精华贴“类UNIX系统基础:文件安全与权限“中谈到了文件块的计算方法:
[root@Linux_chenwy temp]# ls -l
总用量 36
-rw-r--r--    1 root     root        34890 10月 19 20:17 httpd.conf
-rw-r--r--    1 root     root            0 10月 19 20:16 temp

譬如说前面说的36是如何计算出来:
首先我们要先了解你所用的文件系统的IO BLOCK(中文叫作簇)为多少,在你所使用的这个文件系统的IO BLOCK大小是4096 Bytes。
他意义是文件系统最小的读写及分配单位,每次读写操作你都不能小于这个尺寸。即使你的文件是只有一个字节。而且文件在硬盘上的存储也是以这个为单位,就是说如果文件尺寸小于这个值,那么它在磁盘上占用的空间就是4096字节。

占用空间的具体算法是:(进一(文件尺寸/4096))×4096。根据这个你就可以计算出你所列举的例子中的文件的空间使用状况:34890除以4096,大约等于8.5,进一法取得为9,就是说文件在磁盘上占用了9个BLOCk,每个BLOCK为4K,所以这两个文件占用的空间就是36K。


用ls -ls 查看我root下的文件,结果如下:
total 88
8 -rw-------   1 root root  2556 Oct 21 09:48 anaconda-ks.cfg
4 drwxr-xr-x 3 root root  4096 Nov  4 15:54 Desktop
48 -rw-r--r-- 1 root root 44136 Oct 21 09:48 install.log
12 -rw-r--r-- 1 root root  4923 Oct 21 09:47 install.log.syslog
8 -rw-r--r--   1 root root   209 Oct 21 09:54 scsrun.log
4 drwxr-xr-x 5 root root  4096 Nov  4 13:25 software
4 -rw-r--r--   1 root root  1770 Nov  4 13:43 sqlnet.log

但是对于我机器root目录下看到文件块的却跟这种算法有一点出入.
第一个文件是 anaconda-ks.cfg 大小为2556字节,小于1个块4096,应该是4K, 但是它却用了8K
最后一个文件是 sqlnet.log 大小为1770,也小于1个块4096,它就符合上面的那个算法,只占用4K。

请高手解释一下,为什么anaconda-ks.cfg占用了2个块?小弟感激涕零!!!

[ 本帖最后由 namexing 于 2008-11-26 17:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-11-25 17:30 |只看该作者
我也想知道

论坛徽章:
0
3 [报告]
发表于 2008-11-25 19:00 |只看该作者
文件空洞??

论坛徽章:
0
4 [报告]
发表于 2008-11-25 19:28 |只看该作者
绝大多数文件系统,对文件都不是连续储存的。也就是说这2556个字节可能分存在不同的两个块上

论坛徽章:
0
5 [报告]
发表于 2008-11-25 19:29 |只看该作者
不知楼主使用的是什么类型的文件系统?
ext3
xfs
reiserfs

论坛徽章:
0
6 [报告]
发表于 2008-11-25 19:32 |只看该作者
原帖由 mcemil 于 2008-11-25 19:28 发表
绝大多数文件系统,对文件都不是连续储存的。也就是说这2556个字节可能分存在不同的两个块上


如果最小的分区块是4096的话,那么2556个字节,应该不可能分别存在不同的两个块上。

论坛徽章:
0
7 [报告]
发表于 2008-11-25 19:32 |只看该作者
Mark!

论坛徽章:
0
8 [报告]
发表于 2008-11-25 19:41 |只看该作者
如果文件系统是ext3的话,
# tune2fs -l /dev/xxxx
把内容贴出来看一下。

论坛徽章:
0
9 [报告]
发表于 2008-11-25 19:53 |只看该作者
楼主可以看看那个边界是多少,反正我的文件系统上是4096。
PS:簇的大小不一定是4K,还可以有很多:512、1K、2K、8K、16K、32K、64K

[ 本帖最后由 walkerxk 于 2008-11-25 19:55 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-11-26 14:22 |只看该作者
本人用的是双系统

C盘装WINDOWS XP, 剩下的空间装REDHAT LINUX AS 5.1
------------------------------------------------------------------------------------------------------------
vim /etc/fstab

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap  

------------------------------------------------------------------------------------------------------------
[root@localhost ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda5 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

----------------------------------------------------------------------------------------------------------------
[root@localhost ~]# tune2fs -l /dev/VolGroup00/LogVol00
tune2fs 1.39 (29-May-2006)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          a6792aee-f33d-448a-90f4-7ec205d57bb5
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              13893632
Block count:              13885440
Reserved block count:     694272
Free blocks:              3778047
Free inodes:              13670567
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1020
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         32768
Inode blocks per group:   1024
Filesystem created:       Tue Oct 21 17:29:24 2008
Last mount time:          Wed Nov 26 08:43:17 2008
Last write time:          Wed Nov 26 08:43:17 2008
Mount count:              53
Maximum mount count:      -1
Last checked:             Tue Oct 21 17:29:24 2008
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
First orphan inode:       11010050
Default directory hash:   tea
Directory Hash Seed:      da04ddb9-7c96-4563-9dde-f4070b5d572c
Journal backup:           inode blocks

高手能给解释这些概念吗
例如:block size/fragment size

----------------------------------------------------------------------------------------------------------------
[root@localhost ~]# ls -ls
total 88
8 -rw-------    1 root root  2556 Oct 21 09:48 anaconda-ks.cfg
4 drwxr-xr-x  3 root root  4096 Nov  4 15:54 Desktop
48 -rw-r--r--   1 root root 44136 Oct 21 09:48 install.log
12 -rw-r--r--   1 root root  4923 Oct 21 09:47 install.log.syslog
8 -rw-r--r--    1 root root   209 Oct 21 09:54 scsrun.log
4 drwxr-xr-x  5 root root  4096 Nov  4 13:25 software
4 -rw-r--r--    1 root root  1770 Nov  4 13:43 sqlnet.log
[root@localhost ~]# ls -kls
total 88
8 -rw-------    1 root root  3 Oct 21 09:48 anaconda-ks.cfg
4 drwxr-xr-x  3 root root  4 Nov  4 15:54 Desktop
48 -rw-r--r--   1 root root 44 Oct 21 09:48 install.log
12 -rw-r--r--   1 root root  5 Oct 21 09:47 install.log.syslog
8 -rw-r--r--    1 root root  1 Oct 21 09:54 scsrun.log
4 drwxr-xr-x  5 root root  4 Nov  4 13:25 software
4 -rw-r--r--    1 root root  2 Nov  4 13:43 sqlnet.log
----------------------------------------------------------------------------------------------------------------

这下把东西补全了,

[ 本帖最后由 namexing 于 2008-11-26 17:42 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP