新闻是有分量的

常见本地文件系统磁盘空间布局

2024-01-04 12:56栏目:百科杂文
TAG:

文件体系的中心功用便是完成对磁盘空间的办理,要知道哪些空间能够用,哪些空间不能够用。

依据固定功用区

典型文件体系:LinuxExtX

ExtX将磁盘划分为等份的若干区域,这个区域被称为块组,磁盘空间的办理以块组为单位,以下是磁盘分区的布局图(以4K逻辑块巨细为例),其间块组0最杂乱,其他的类似。

ext2磁盘布局

概念阐明:

超级块:存储文件体系等级的信息,比方逻辑块巨细、挂载点等

块组描绘符表:ext文件体系每一个块组信息运用32字节描绘,这32个字节称为块组描绘符,一切块组的块组描绘符组成块组描绘符表GDT(groupdescriptortable)。假设block巨细为4KB的文件体系划分了143个块组,每个块组描绘符32字节,那么GDT就须要143*32=4576字节即两个block来寄存。

预留GDT块:保存GDT用于今后扩容文件体系运用,避免扩容后块组太多,使得块组描绘符超出当时存储GDT的blocks。

inode:索引节点,即索引数据的节点,一个inode对应一个文件,一般每个块组有若干的inode,称为inode表。

因为inode数量固定,且存储方法固定,能够依据偏移给与编号,即ino_id。

位图,包含数据块位图和inode位图,用来描绘对应资源的运用,0表明未运用,1表明现已运用。

咱们运用如下指令能够创立并格式化一个文件体系:

brddif=/dev/zeroof=30=1Mcount=30

然后运用dump2fs检查

Ext2磁盘布局实例-1

假如块巨细为4K,那么有如下块组:

Ext2磁盘布局实例-2

原因:ExtX运用逻辑块存储数据位图,当block=1K时,对应的数据块位图能够办理1024*8个数据块,即1024[一个block的size]*(1024*8)[block的数量]=8M的空间,30M就须要4个块组;当block=4K时,对应的数据块位图能够办理4*1024*8个数据块,即(4*1024)*(4*1028*8)=128M,因而一个块组就能够。

依据非固定功用区

依据固定功用区的磁盘空间办理布局空间智能明晰,便于手动进行丢掉数据康复,可是也简单呈现资源缺乏的状况,比方海量小文件场景。

非固定功用区的磁盘空间办理也分为数据和元数据,可是元数据和数据的区域非固定,跟着文件体系对资源的需求而动态分配,典型有XFS和NTFS。

XFS文件体系将磁盘划分为等份的区域,称为分配组(AG),XFS对每个分配组进行独立办理,AG的容量能够很大,最大能够到达1TB。

xfs磁盘布局

概念阐明:

XFS文件体系经过两个B+树来追寻闲暇空间,一个是依据块编号索引,另一个是依据闲暇块的巨细索引。

常见本地文件系统磁盘空间布局

AGF(AGFreeSpaceBlock):磁盘空间办理经过两个B+树来完成,一个B+树经过块的编号来办理,一个B+树经过剩下块的巨细来办理,经过两个不同的B+树完成对剩下空间的快速查找。

AGI(AGInodeManagement):经过一个B+树办理inode,将64个inode(默许巨细是256字节)打包为一个块(chunk),改块作为B+树的一个叶子节点。inode的方位不固定,其编号分为相对inode编号和肯定inode编号两种。相对inode编号是指针对AG的编号,肯定inode编号是在整个文件体系中的编号。

AGFL(AGFreeList):包含了在AG空间内一个寄存指向预留空间的块指针的数组。这个空间不能用于任何类型的用户数据。

依据数据追加的磁盘空间办理

前面的磁盘布局方法都是原地修正,在随机IO比较多的状况下,不太合适SS设备,依据数据追加的磁盘布局方法,对数据的改变并非在原地修正,而是追加写的方法写到后边的剩下空间,将随机写转化为次序写。比方NILFS2。

NILFS2将磁盘划分为若干的Segment,Segment默许巨细是8M。

NILFS2磁盘布局

NILFS2将文件分为若干类,分别是惯例文件、目录文件、链接文件和元数据文件。而元数据文件包含:

inode文件(ifile):存储inode

检查点文件(cpfile):存储检查点

段运用文件(sufile):存储段的运用状况

数据地址转化文件(DAT):虚拟块号和惯例块号的映射