博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux文件系统介绍
阅读量:6759 次
发布时间:2019-06-26

本文共 2899 字,大约阅读时间需要 9 分钟。

RHEL7.2 如何设置block

[root@localhost ~]# mkfs.xfs -b size=1024 /dev/sdb1 -f
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=24064 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=1024 blocks=96256, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=1024 blocks=2564, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
注:
[root@localhost ~]# mkfs.ext4 -b 1024 /dev/sdb1

Linux文件系统由三部分组成 :文件名,inode,block(真正存数据)

inode:文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

inode的内容

inode包含文件的元信息,具体来说有以下内容:
 文件的字节数
 文件拥有者的User ID
 文件的Group ID
 文件的读、写、执行权限
 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
 链接数,即有多少文件名指向这个inode

  • 文件数据block的位置

[root@localhost ~]# stat a.txt

File: ‘a.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 36433003 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-02-24 08:45:42.182854288 -0500
Modify: 2016-02-24 08:45:42.182854288 -0500
Change: 2016-02-24 08:45:42.182854288 -0500

[root@localhost ~]# ll a.txt

-rw-r--r-- 1 root root 0 Feb 24 08:45 a.txt

inode的大小

inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

16G

1 G = 1024 MB =1024 1024 KB
1 G = 1000 MB =1000 
1000 KB

查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。

[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/rhel-root 10485760 138134 10347626 2% /
devtmpfs 500087 404 499683 1% /dev
tmpfs 503976 6 503970 1% /dev/shm
tmpfs 503976 563 503413 1% /run
tmpfs 503976 13 503963 1% /sys/fs/cgroup
/dev/sr0 0 0 0 - /mnt
/dev/sda1 204800 327 204473 1% /boot
tmpfs 503976 17 503959 1% /run/user/42
tmpfs 503976 1 503975 1% /run/user/0

使用ls -i命令,可以看到文件名对应的inode号码:

[root@localhost ~]# ls -i a.txt
36433003 a.txt
查看目录的inode号
[root@localhost ~]# ll -di /etc/
16777345 drwxr-xr-x. 136 root root 8192 Feb 24 08:03 /etc/

扩展:linux中ctime,mtime,atime的区别

ctime:“改变时间(change time)”
mtime :“修改时间(modification time)”
改变和修改之间的区别在于是改文件的属性还是更改它的内容。chmod a-w myfile,那么这是一个改变;
echo foo >> myfile,那么这是一个修改。
改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。
atime :“访问时间(access time)”
访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间。但是它的改变时间和修改时间并没有变。

ls -lc filename         列出文件的 ctime

ls -lu filename         列出文件的 atime
ls -l filename          列出文件的 mtime 

实例:

web服务器中小文件很多,导致硬盘有空间,但无法创建文件。
inode数被用光了。
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/rhel-root 10485760 138138 10347622 2% /
devtmpfs 500087 404 499683 1% /dev
tmpfs 503976 6 503970 1% /dev/shm
tmpfs 503976 563 503413 1% /run
tmpfs 503976 13 503963 1% /sys/fs/cgroup
/dev/sr0 0 0 0 - /mnt
/dev/sda1 204800 327 204473 1% /boot
tmpfs 503976 17 503959 1% /run/user/42
tmpfs 503976 1 503975 1% /run/user/0

本文转自信自己belive51CTO博客,原文链接: http://blog.51cto.com/11638205/2048928,如需转载请自行联系原作者

你可能感兴趣的文章
Hadoop问题记录:Wrong FS: hdfs://hp5-249:9000/, expected: file:///
查看>>
mfc 链接 access 2007 数据库
查看>>
ImageLoader must be init with configuration before using
查看>>
spring boot Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration
查看>>
@Override用在哪儿
查看>>
小议C#错误调试和异常处理
查看>>
Python基础--webbrowser
查看>>
Dynamics CRM Form表单中通过javascript抓取触发change事件字段的属性名
查看>>
多维透视表 - 矩表实现商品销售对比统计
查看>>
ssh命令、ping命令、traceroute 命令所使用的协议
查看>>
云舒网络译:Rancher1.0正式版公布
查看>>
转 MySQL中的共享锁与排他锁
查看>>
入门--JTBC系统学习(1)
查看>>
我的Android进阶之旅------>怎样解决Android 5.0中出现的警告: Service Intent must be explicit:...
查看>>
单点登录实现机制:桌面sso
查看>>
JVM垃圾回收机制
查看>>
Oracle导出导入指定表
查看>>
訪问者模式的分析、结构图及基本代码
查看>>
Android Studio 2.3.3 添加ksoap2的引用(拒绝网上其他的忽悠),也适用于添加其他Jar的引用...
查看>>
sql改写or 改成union不等价数据变多
查看>>