首页 > 编程知识 正文

linux文件系统实现原理,文件管理系统设计

时间:2023-05-04 13:11:41 阅读:129719 作者:3069

文件系统

文件系统概念

文件系统是操作系统用于澄清存储设备或分区上的文件的方法和数据结构。 这意味着如何在存储设备上组织文件。 负责管理和存储操作系统中文件信息的软件结构称为文件管理系统,简称文件系统

从系统的角度看,文件系统是负责组织和分配文件存储设备空间、保存文件以及保护和检索保存文件的系统。 具体负责为用户创建文件、文件存储、读取、修改、转储、文件访问控制、安全控制、日志、压缩、加密等

支持的文件系统:

/lib/modules/uname -r/kernel/fs

帮助: man 5 fs

文件系统类型

Linux常规文件系统

()扩展文件系统适用于分区容量不大(如/boot分区)且更新不频繁的情况

(ext3 )是ext2的改良版,支持日志功能,通过异常关闭帮助系统从异常中恢复

ext4:ext文件系统的最新版本。 提供了许多新功能,包括纳秒级时间戳、创建和使用16TB大文件、最多1EB文件系统和加速

xfs:SGI,最多支持8EB文件系统

软件应用程序

iso9660磁盘

btrfs(Oracle )

自由意志主义

Windows常规文件系统

FAT32

NTFS

exFAT

Unix :

是快速(fs )

是ufs(UNIX )

JFS2

网络文件系统:

美国全国广播公司

国际足联

群集文件系统:

GFS2

OCFS2(oracle )

分布式文件系统:

快速DFs

ceph

moosefs

mogilefs

glusterfs

迷失

原始:

未处理或未格式化的文件系统

常见文件系统特性:

FAT32

最多只能支持16TB的文件系统和4GB的文件

NTFS

最多只能支持16EB文件系统和16EB文件

EXT3

最多只能支持32TB文件系统和2TB文件,实际上只能容纳2TB文件系统和16GB文件

Ext3目前只支持32000个子目录

Ext3文件系统使用32位空间记录块数和inode数

当数据写入Ext3文件系统时,Ext3的块分配器一次只能分配4KB的块

EXT4:

EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后续版本

Ext4文件系统容量将达到1EB,支持单个文件的将达到16TB

理论上支持无限数量的子目录

Ext4文件系统在64位空间中记录块数和inode数

Ext4中的多块分配器支持在一次调用中分配多个数据块

修复速度快

XFS

根据记录的日志,快速恢复磁盘文件的内容

在优化算法中,日志记录对整个文件操作的影响非常小

在所有64位文件系统中,最多支持8EB文件系统,支持一个文件的达到8EB

可以以接近原始设备I/O的性能存储数据

以前支持的文件系统:

cat/proc /文件系统

文件系统的构成要素

内核中的模块: ext4、xfs、vfat

Linux虚拟文件系统: VFS

用户空间管理工具: mkfs.ext4、mkfs.xfs、mkfs.vfat

文件系统选择管理

创建文件系统

创建文件管理工具

MFS命令:

)1) mkfs.FS_TYPE /dev/DEVICE

ext4

xfs

BT射频识别系统

vfat

)2) mkfs -t FS_TYPE /dev/DEVICE

- l设置“标签”卷标

mke2fs:ext系列文件系统专用管理工具

常用选项

- t { ext2}指定文件系统类型

-b {1024|2048|4096}指定块的块大小

- l设置“标签”卷标

-j相当于-t ext3,mkfs.ext3=mkfs-text3=mke2fs-j=mke2fs-text 3

-i #在数据空间的每几个字节创建一个inode; 不小于块大小

-N #指定要在分区中创建的inod数

e

-I 一个inode记录占用的磁盘空间大小,128—4096

-m # 默认5%,为管理人员预留空间占总空间的百分比

-O FEATURE[,…] 启用指定特性

-O ^FEATURE 关闭指定特性

查看和管理分区信息

blkid 可以查看块设备属性信息

格式:

blkid [OPTION]... [DEVICE]

常用选项:

-U UUID 根据指定的UUID来查找对应的设备

-L LABEL 根据指定的LABEL来查找对应的设备

e2label:管理ext系列文件系统的LABEL

e2label DEVICE [LABEL]

findfs :查找分区

findfs [options] LABEL=

findfs [options] UUID=

tune2fs:重新设定ext系列文件系统可调整参数的值

-l 查看指定文件系统超级块信息;super block

-L ‘LABEL’ 修改卷标

-m # 修预留给管理员的空间百分比

-j 将ext2升级为ext3

-O 文件系统属性启用或禁用, –O ^has_journal

-o 调整文件系统的默认挂载选项,–o ^acl

-U UUID 修改UUID号

dumpe2fs:显示ext文件系统信息,将磁盘块分组管理

-h:查看超级块信息,不显示分组信息

xfs_info:显示示挂载或已挂载的 xfs 文件系统信息

xfs_info mountpoint|devname

范例:

[root@centos8 ~]#xfs_info /dev/sda7

meta-data=/dev/sda7 isize=512 agcount=4, agsize=131072 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=1, sparse=1, rmapbt=0

= reflink=1

data = bsize=4096 blocks=524288, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0, ftype=1

log =internal log bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

超级块和INODE TABLE

块组描述符表(GDT)

ext文件系统每一个块组信息使用32字节描述,这32个字节称为块组描述符,所有块组的块组描述符组成块组描述符表GDT(group descriptor table)。虽然每个块组都需要块组描述符来记录块组的信息和属性元数据,但是不是每个块组中都存放了块组描述符。将所有块组的块组信息组成一个GDT保存,并将该GDT存放于某些块组中,类似存放superblock和备份superblock的块

文件系统检测和修复

文件系统夹故障常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”

注意:一定不要在挂载状态下执行下面命令修复

fsck: File System Check

fsck.FS_TYPE

fsck -t FS_TYPE

注意:FS_TYPE 一定要与分区上已经文件类型相同

常用选项:

-a 自动修复

-r 交互式修复错误

e2fsck:ext系列文件专用的检测修复工具

-y 自动回答为yes

-f 强制修复

-p 自动进行安全的修复文件系统问题

xfs_repair:xfs文件系统专用检测修复工具

常用选项:

-f 修复文件,而设备

-n 只检查

-d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot

本文链接:http://www.yunweipai.com/33914.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。