Linux之文件系统&inode、block

一、文件系统
1、EXT3文件系统
ext3,第三代扩展的文件系统,它是日志文件系统,用于Linux操作系统。
2、EXT4文件系统
EXT4是第四代扩展文件系统(英语:Fourth extended filesystem),Linux下的日志文件系统,是ext3升级版,它被引入到Linux2.6内核中,缺点创建文件系统慢,修复文件系统也慢。它是规定好inode个数,当inode被占满时,就不能在创建文件了。
3、XFS文件系统
xfs,高级日志文件系统,它是CentOS默认的文件系统,支持高容量和大存储,拥有高性能,会动态产生inode个数,没创建一个文件,产生一个inode号。
4、NFS 文件系统
NFS 文件系统是指网络文件系统,这种文件系统也是 Linux 的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且 NFS 文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用 NFS 文件系统可以很方便地实现文件本地修改,而免去了一次次读写 flash 的忧虑。
5、VFAT文件系统
Linux 中把 DOS 中采用的 FAT 文件系统(包括 FAT12,FAT16 和 FAT32)都称为 vfat文件系统。
二、理解inode&block
1、简介
inode(index node 索引节点),存储文件元信息的区域叫做inode。每一个文件都有对应的inode,里面包含了与该文件有关的信息,同时记录此文件数据所在的block number。操作系统通过inode来识别不同的文件。inode大小 为 128 bytes。
inode内容
(1)文件的字节数
(2)文件的拥有者userID
(3)文件的GroupID
(4)文件的读、写、执行权限
(5)文件的时间戳,共有3个
ctime:指inode上一次变动的时间;
mtime:指文件内容上一次变动的时间;
atime:指文件上一次打开的时间。
(6)链接数,即有多少文件名指向这个inode
(7)文件数据block的位置
2、名词解释
(1)block:存储文件的实际数据。块是存储文件的最基本的单位。实际存储文件的内容,若文件较大,会占用多个block。block大小 为默认为4K
(2)superblock超块:block 与 inode 的总量; 未使用与已使用的 inode / block 数量;
(3)block group块组:一个分区可以有多个块组。
3、索引文件系统工作流程
创建文件时只占索引节点而不占块,当向文件写入时,inode会去关联block,block默认固定空间为4G,inode可以关联0~多个block,这取决于文件的大小。
系统读取文件时,会先去找索引节点,索引节点包括元数据(matedata),然后根据索引节点去查找关联的block,从而得知文件存储的位置。
4、示例
示例1:inode(index node 索引节点)
创造一个文件,观察inode信息。
ll -i 文件名
[root@localhost ~]# touch 1.txt
[root@localhost ~]# ll -i 1.txt
33574988 -rw-r–r--. 1 root root 0 12月 6 17:43 1.txt
示例2:block(块 文件内容)
(1) 观察某个分区中的inode节点数
df -i
[root@localhost sdk1]# df -i | grep sdk1
/dev/sdk1 128016 11 128005 1% /mnt/sdk1
(2) 创建一个文件
touch 文件名
[root@localhost sdk1]# touch 1.txt
(3) 再次观察inode节点数
df -i
[root@localhost sdk1]# df -i | grep sdk1
/dev/sdk1 128016 12 128004 1% /mnt/sdk1
(4)创造大量文件。观察inode使用情况
[root@localhost sdk1]# touch file{1…130000}
[root@localhost sdk1]# df -i | grep sdk1
/dev/sdk1 128016 128016 0 100% /mnt/sdk1
创建文件总数:
[root@localhost sdk1]# ll | wc -l
128007
尝试再创建文件:
[root@localhost sdk1]# touch a.txt
touch: 无法创建"a.txt": 设备上没有空间
此时分区可用空间为442M
[root@localhost sdk1]# df -hT | grep sdk1
/dev/sdk1 ext4 477M 5.9M 442M 2% /mnt/sdk1
结论1:inode决定了文件系统中文件的数量。
(5)向分区写入大量数据,填满
[root@localhost sdk1]# dd if=/dev/zero of=/mnt/sdk1/file1 bs=1M count=500
dd: 写入"/mnt/sdk1/file1" 出错: 设备上没有空间
记录了467+0 的读入
记录了466+0 的写出
488972288字节(489 MB)已复制,47.4518 秒,10.3 MB/秒
(6)查看目标分区容量,已满
[root@localhost sdk1]# df -hT | grep sdk1
/dev/sdk1 ext4 477M 473M 0 100% /mnt/sdk1
结论2:block决定了文件存储的空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值