05.文件系统

来源:互联网 发布:分红系统源码 编辑:程序博客网 时间:2024/05/16 10:43
  1. 文件系统概念
    1.1 文件系统
    1) 文件组织:面向系统,它根据存储设备特点,把文件信息按一定的组织结构存储到外存空间;面向用户,它提供用户组织文件信息的结构方式
    2) 文件存取:实现内存和外存的数据交换
    3) 文件使用:对用户提供文件操作统一接口
    4) 文件控制:实现对用户访问权限的控制

1.2 日志文件系统
文件系统写操作首先对日志记录文件进行操作,若整个文件系统因某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件内容,恢复到没有完成的写操作,这个过程一般需要两三分钟。

1.3 VFS
VFS: Virtual Filesystem Switch
功能:屏蔽文件系统差异,为处理各文件系统提供统一接口

1.4 文件存储
1) 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector),每个扇区512字节
2) 操作系统读取硬盘的时候,不会一个个扇区地读取,而是一次性连续读取多个扇区,即一次性读取一个块”block”。这种由多个扇区组成的”block”,是文件存取的最小单位。
3) 文件数据储存在”block”中,还必须找到一个地方储存文件元信息,比如文件创建者、文件创建日期、文件大小等。这种储存文件元信息的区域就叫做inode,”索引节点”。
4) 硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

获取文件系统信息:dumpe2fs -h /dev/sda1

1.4.1 文件系统数据存储:
boot block: 为计算机开机服务
superblock: 超级块,记录filesystem整体信息,包含inode/block总量,剩余量,文件系统格式等
inode: 记录文件的属性,一个文件占用一个inode,同时记录文件数据所在的block号
block: 记录文件的实际内容,若文件太大,会占用多个block

1.4.2 inode table
rwx
owner/group
size
ctime/atime/mtime
suid/guid/sbit
link number
pointer(指向block的位置)

查看文件的inode信息:stat a.txt

inode:
1) 大小:128bytes/256bytes
2)格式化时,每1KB或2KB就设置一个inode
3) 每个文件一个inode

1GB硬盘,每1KB设置一个inode,inode table的大小为128bytes/inode * 1inode * 1000=128M

1.4.3 data block
ext2支持的block大小有1K, 2K, 4K三种
格式化时,block大小就固定了,且每个block都有编号,以方便inode记录
block大小对最大文件的限制:1K(16G), 2K(256G), 4K(2T)

block size 1KB 2KB 4KB
max size of single file 16GB 256GB 2TB
max size of filesystem 2TB 8TB 16TB

block的限制
1) block数量和大小,在格式化后不能再改变
2) 每个block只能存储一个文件的数据。若文件大于block,则占用多个block;若文件小于block,则block中剩余容量将浪费

1.4.4 superblock(1024bytes):
1) block和inode的总量
2) 已使用和未使用的inode/block数量
3) block和inode的大小(block 1,2,4K, inode 128bytes)
4) filesystem的挂载时间,最近一次数据写入时间,最近一次磁检(fsck)时间
5) valid bit (0: 已挂载 1: 未挂载)

1.4.5 文件和目录
目录:一个inode + 至少一个block(存储文件名和inode映射表)
文件: 一个inode + 至少一个block(存储文件信息)

100KB文件,至少需要100KB/4KB=25个block

1.4.6 软连接和硬连接
Hard Link:
1) 同一个inode,对应多个文件名,称为硬链接
2) 不能跨filesystem
3) 不能link目录

Symbolic Link:
1) 是一个独立的文件,读取文件时,自动指向其链接的文件
2) 占用新的inode和block

新建目录,link数量为2,上级目录的link数增加1

软链接和硬链接的区别:
硬连接指向的是节点(inode), 而软连接指向的是路径(path)

  1. 常见文件系统
    2.1 ext2:Linux second extended file system, ext2fs
    1) 文件名长度最大255 bytes,完整文件名(带路径)长度最大4096 bytes
    2) 单文件最大2TB

2.2 ext3: 日志文件系统
在ext2基础上增加记录元数据的日志功能。提供三种日志模式
1) 日志(Journal): 文件系统所有数据和元数据的改变,都记录日志,最安全但也最慢。
2) 预定(Ordered): 只有对文件系统元数据改变才记录日志,ext3默认日志模式
3) 写回(Writeback): 只记录元数据的变化。系统关闭时,文件大小或目录变化,不能及时同步更新元数据,导致存储数据不一致。

2.3 reiserfs
使用特殊的、优化过的平衡树来组织文件系统数据

文件系统:
ext2/ext3: Linux适用的文件系统。ext3比ext2多了日志记录
physical volume(LVM): 用来弹性调整文件系统容量的一种机制,可以动态控制文件系统大小而不改变原有文件数据
software RAID: 磁盘阵列
swap: 虚拟内存,大小是物理内存的1.5~2倍,物理内存达到4G,可以不使用
vfat: 同时被Linux和Windows系统支持的文件系统

  1. 文件类型
    3.1 常规文件(regular file)
    纯文本(ASCII)
    二进制文件(binary)
    数据文件(data),例如/var/log/wtmp 可使用last读出

3.2 目录 [d]

3.3 连接(link) [l]

3.4 设备(device)
块设备(block),可随机读写 ls -l /dev/sda [b]
字符设备(character),串口设备,一次性读取,鼠标键盘 [c]

3.5 数据接口文件(sockets),网络上数据传输使用。 /var/run [s]

3.6 数据传输文件(FIFO,pipe),[p]

  1. FSH, Filesystem Hierarchy Standard
    /bin 系统命令
    /boot 内核及启动文件(vmlinuz, grub)
    /usr unix software resource
    /usr/bin 一般命令
    /dev 设备文件
    /etc 配置文件
    /etc/init.d/ 服务启动文件,系统开机时执行的脚本
    /etc/xinetd.d/ super daemon管理的各项服务的配置文件目录
    /opt 第三方软件
    /sbin 管理员命令

/lost+found 在ext2/ext3文件系统存在,当系统发生错误时,将一些遗失片段存入该目录
/proc 虚拟文件系统,该目录下的数据都在内存中,不占硬盘空间
/sys 虚拟文件系统

特殊目录标示:
. 当前目录
.. 上级目录
- 前一个工作目录
~ 家目录
~account 用户account的家目录

0 0
原创粉丝点击