linux文件系统介绍

简介:

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,如需转载请自行联系原作者

相关文章
|
7月前
|
自然语言处理 监控 Linux
Linux 内核源码分析---proc 文件系统
`proc`文件系统是Linux内核中一个灵活而强大的工具,提供了一个与内核数据结构交互的接口。通过本文的分析,我们深入探讨了 `proc`文件系统的实现原理,包括其初始化、文件的创建与操作、动态内容生成等方面。通过对这些内容的理解,开发者可以更好地利用 `proc`文件系统来监控和调试内核,同时也为系统管理提供了便利的工具。
287 16
|
9月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
482 15
|
10月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
2060 7
|
10月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
245 7
|
10月前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
11月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
263 8
|
11月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
165 7
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
163 12
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
176 6