linux文件系统特性

简介: 1. 文件系统特性(索引式文件系统)文件系统格式化后block group的组成部分:super block:记录文件系统整体信息,inode和data block的总量,使用量,剩余量,以及文件系统格式与相关信息,一般大小为1024bytes.inode table:记录文件的权限与属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码,每个inode默认固定大小为128bytes。

1. 文件系统特性(索引式文件系统)

文件系统格式化后block group的组成部分:

super block:记录文件系统整体信息,inode和data block的总量,使用量,剩余量,以及文件系统格式与相关信息,一般大小为1024bytes.

inode table:记录文件的权限与属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码,每个inode默认固定大小为128bytes。

data block:记录文件的实际内容,若文件太大,会占用多个block,ext2文件系统所支持的block大小有1k,2k,4k三种

filesystem description:描述了每个block group的开始于结束的block号码

block bitmap:记录了使用的和未使用的block号

inode bitmap:记录了使用的和未使用的inode号

【N】文件系统格式化的过程会中就已经把inode与block规划好了,以便操作系统识别使用,除非重新格式化,或者resize2f更新文件系统

[root@Darren ~]# dumpe2fs /dev/sda3

dumpe2fs 1.41.12 (17-May-2010)

Filesystem volume name:   <none>

Last mounted on:          /

Filesystem UUID:          7b6aa9b8-aa0d-4497-ac09-d423c035d50a

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash

Default mount options:    user_xattr acl

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              479552       --inode总数

Block count:              1914624     --block总数

Reserved block count:     95731    

Free blocks:              968312      --剩余block

Free inodes:              365275      --剩余inode

First block:              0

Block size:               4096    --每个block大小

Fragment size:            4096  

Reserved GDT blocks:      467

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         8128

Inode blocks per group:   508

Flex block group size:    16

Filesystem created:       Wed Aug  3 23:22:08 2016

Last mount time:          Thu Nov 10 15:49:44 2016

Last write time:          Wed Aug  3 23:31:03 2016

Mount count:              32

Maximum mount count:      -1

Last checked:             Wed Aug  3 23:22:08 2016

Check interval:           0 (<none>)

Lifetime writes:          9 GB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               256    --每个inode的大小

Required extra isize:     28

Desired extra isize:      28

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      0d3fdc26-38ed-4b93-8a85-ec305215a827

Journal backup:           inode blocks

Journal features:         journal_incompat_revoke

Journal size:             128M

Journal length:           32768

Journal sequence:         0x00008bac

Journal start:            1

Group 0: (Blocks 0-32767) [ITABLE_ZEROED]

  Checksum 0x5873, unused inodes 0

  Primary superblock at 0, Group descriptors at 1-1

  Reserved GDT blocks at 2-468

  Block bitmap at 469 (+469), Inode bitmap at 485 (+485)

  Inode table at 501-1008 (+501)

  21078 free blocks, 0 free inodes, 1315 directories

  Free blocks: 11080-11099, 11144-11199, 11227, 11764-11829, 11831-11883, 11886-32767

  Free inodes:

2.与目录树的关系

目录:

linux下ext2文件系统新建一个目录会分配一个inode和至少一个block,inode记录该目录相关的属性和权限,还有分配到那block号码,而block则是记录该目录下文件名与该文件名占用的inode号

文件:

linux下ext2文件系统新建一个文件会分配一个inode和相对该文件大小的block数量的文件。

目录树读取:

系统通过挂载的inode号(文件系统最顶层的inode号由2开始),找到inode的内容,根据inode内容读取目录的block内的文件名和数据,再一层层找到文件数据。

[root@Darren ~]# ls -lid / /etc /etc/passwd

     2 dr-xr-xr-x. 22 root root  4096 11月 10 15:49 /

130052 drwxr-xr-x  98 root root 12288 11月 10 17:39 /etc

137728 -rw-r--r--   1 root root  1532 11月 10 16:27 /etc/passwd

3.日志文件系统

日志文件系统就是一种具有故障恢复能力的文件系统,所谓日志就是一种特殊的文件,它会在一个循环的缓冲区内记录文件系统的修改,然后将其定期提交到文件系统。一旦系统发生崩溃,日志文件就会起到一个检查点的作用,用于恢复未保存的信息,防止损坏文件系统元数据。

ext2不支持日志文件系统,从ext3开始支持。

把ext3升级到ext4:

(1)卸载umount

(2)[root@Darren ~]# tune2fs -O extents,uninit_bg,dir_index /dev/sdb1   

(3)[root@Darren ~]# e2fsck /dev/sdb1

4.其他linux支持的文件系统

linux支持哪些文件系统:

[root@Darren ~]# ls -l /lib/modules/$(uname -r)/kernel/fs

系统已经加载到内核中的文件系统:

[root@Darren ~]# cat /proc/filesystems

5.连接文件:ln

硬连接:通过文件系统的inode连接产生新文件名,而不是产生新文件,连接文件和源文件的inode一样,不占用inode和block。

限制:

不能跨分区建立硬连接;

不能连接目录;

软连接:相当于windows的快捷方式,是一个独立的新的文件,指向源文件,连接文件和源文件的inode不同,占用inode和block。

例:

[root@Darren tmp]# touch file1.txt

[root@Darren tmp]# ln file1.txt file2.txt     --创建硬链接

[root@Darren tmp]# ln -s file1.txt file3.txt   --创建软链接

[root@Darren tmp]# ls -il

3508 -rw-r--r-- 2 root root    0 Nov  8 01:08 file1.txt

3508 -rw-r--r-- 2 root root    0 Nov  8 01:08 file2.txt

3514 lrwxrwxrwx 1 root root    9 Nov  8 01:13 file3.txt -> file1.txt

硬连接文件file2.txt与原文件file1.txt 的inode节点相同,然而符号连接文件的inode节点不同。

[root@Darren tmp]# echo 'This is test' >> file1.txt

[root@Darren tmp]# cat file1.txt

This is test

[root@Darren tmp]# cat file2.txt

This is test

[root@Darren tmp]# cat file3.txt 

This is test

[root@Darren tmp]# rm file1.txt    --删除file1.txt

[root@Darren tmp]# ls -li

3508 -rw-r--r-- 1 root root   13 Nov  8 01:20 file2.txt

3514 lrwxrwxrwx 1 root root    9 Nov  8 01:13 file3.txt -> file1.txt

[root@Darren tmp]# cat file2.txt  --硬链接无影响

This is test

[root@Darren tmp]# cat file3.txt  --软链接失效

cat: file3.txt: No such file or directory

总结:

(1)删除符号连接f3,对f1,f2无影响;

(2)删除硬连接f2,对f1,f3也无影响;

(3)删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;

(4)同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

[root@Darren tmp]# mkdir -p dir1 

[root@Darren tmp]# ln dir1/ dir2/

ln: target `dir2/' is not a directory: No such file or directory

[root@Darren tmp]# ln dir1/ dir2       --目录是不能做硬链接的

ln: `dir1/': hard link not allowed for directory  

[root@Darren tmp]# ln -s dir1/ /tmp/dir2   --创建目录的软链接

[root@Darren tmp]# ls -li

total 20

3514 drwxr-xr-x 2 root root 4096 Nov  8 01:41 dir1

3617 lrwxrwxrwx 1 root root    5 Nov  8 01:55 dir2 -> dir1/


相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
4月前
|
数据采集 传感器 人工智能
数字孪生:虚实融合驱动产业变革的核心技术引擎
数字孪生技术正从概念走向产业核心,广泛应用于智能制造、智慧能源、智慧城市等领域,实现全生命周期管理与智能决策。本文系统解析其技术本质、核心体系、应用实践及未来趋势,并结合奥维数字等本土企业案例,展现中国在该领域的创新突破与产业化前景。
1123 0
|
3月前
|
人工智能 定位技术 决策智能
Geo优化方法论的深度比较与E-E-A-T排名:综合方法论的落地实践
在AI重塑搜索的背景下,Geo优化成为企业构建数字权威的核心战略。本文深度解析于磊、君哥、孟庆涛三大专家方法论,聚焦E-E-A-T原则下的实践路径,揭示如何融合“信任构建、技术赋能与内容价值”,打造可持续的AI搜索竞争力。
131 7
|
11月前
|
传感器 数据安全/隐私保护 开发者
《解锁分布式软总线:跨设备业务开发全攻略》
在数字化时代,分布式软总线技术作为实现设备间高效互联的核心,为跨设备业务开发提供了新可能。它通过发现、连接、组网和传输接口,打破设备通信壁垒,支持异构设备协同工作。开发者可利用这些接口设计智能应用,如多设备协同办公,同时需关注网络适应性与兼容性测试,以确保用户体验的流畅性和一致性。掌握该技术不仅能紧跟科技潮流,还能为用户带来便捷高效的数字化生活体验。
332 8
|
消息中间件 负载均衡 Java
如何设计一个分布式配置中心?
这篇文章介绍了分布式配置中心的概念、实现原理及其在实际应用中的重要性。首先通过一个面试场景引出配置中心的设计问题,接着详细解释了为什么需要分布式配置中心,尤其是在分布式系统中统一管理配置文件的必要性。文章重点分析了Apollo这一开源配置管理中心的工作原理,包括其基础模型、架构模块以及配置发布后实时生效的设计。此外,还介绍了客户端与服务端之间的交互机制,如长轮询(Http Long Polling)和定时拉取配置的fallback机制。最后,结合实际工作经验,分享了配置中心在解决多台服务器配置同步问题上的优势,帮助读者更好地理解其应用场景和价值。
669 18
|
XML 存储 安全
doc 和 docx 文件的区别
doc 和 docx 文件的区别
1758 5
|
JSON 中间件 Java
中间件中OpenAPI (Swagger)
【6月更文挑战第3天】
406 4
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
1917 0
|
前端开发 JavaScript Java
基于SSM家政预约管理系统的设计与实现
基于SSM家政预约管理系统的设计与实现
206 2
|
编译器 C语言
Qt的Q_UNUSED()函数的功能
Qt的Q_UNUSED()函数的功能
576 0
|
应用服务中间件 Linux nginx
CentOS 9 安装 Nginx 模块 `subs_filter`
sub_filter 和 subs_filter 区别 sub_filter( 0.7.24):替换响应体(Response Body)中的文本,只能设置一组替换。 subs_filter:替换响应体(Response Body)和响应头(Response Headers)中的文本,可以设置多组替换。
736 0