云计算【第一阶段(24)】Linux文件系统与日志分析

一、文件与存储系统的inode与block

1.1、硬盘存储

  • 最小存储单位:扇区(sector)
    • 每个扇区大小:512字节

1.2、文件存取

  • 最小存取单位:块(block)
  • 连续八个扇区组成:块(block)
    • 每个块大小:4K
  • 文件数据:实际数据与元信息
  • 操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。
  • 文件数据包括实际数据元信息(类似文件属性),文件数据存储在"块"中

1.3、inode

  • 定义:存储文件元信息的区域
  • 包含:创建者、创建日期、文件大小、文件权限等的区域
  • 特点:
    • 一个文件必须占用一个inode
    • 格式化文件系统时确定inode的总数
    • 至少占用一个block
    • 不包含文件名,文件名是存放在目录当中的。

元信息包括

  • 文件的字节数
  • 文件拥有者的userid
  • 文件的groupid
  • 文件的读,写,执行权限
  • 文件的时间戳

1.4、文件名与inode

  • 文件名存放位置:目录
  • 译名为"索引节点",也叫i节点
  • inode号码:操作系统识别文件的唯一标识,一个文件必须占用一个inode,并且至少占用一个block。
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。
  • 访问文件流程:
  1. 根据文件名查找inode号码
  2. 通过inode号码获取inode信息
  3. 检查用户权限
  4. 指向数据block并读取数据

1.4.1、硬盘分区后的结构

文件夹的indoe号中包括当前文件夹中文件名字和文件的indoe号

先确定文件夹后再通过indoe找到block,如果一个block放不下数据,则可以占用多个block.

例如,有一个10kb的文件需要存储,

则会占用3个block(默认一个是4k),虽然最后一个block不能占满,

但也不能再放入其他文件的数据。

这3个block 有可能是连续的,也有可能是分散的,所以会有磁盘碎片。

1.4.2、访问文件的简单流程

1.5、Linux系统特点

  • 一切皆文件
  • 目录也是一种文件

1.6、查看文件名对应的inode 号码有两种方式

  • ls -i 文件名
  • stat 文件名

很显然stat看的更详细一些

1.7、linux系统文件三个主要的时间属性

  • ctime(change time)

最后一次改变文件或目录 (属性)的时间

  • atime(access time)

最后一次访问文件或目录的时间

  • mtime(modify time)

最后一次修改文件或目录(内容)的时间

1.8、inode 占用

inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。

一个是数据区,存放文件数据,

另一个是inode区,存放inode所包含的信息。

每个inode的大小,一般是128字节或256字节。通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行"df -i"命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。

inode节点的总数,在格式化时就给定了,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘12.8%。

由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:

1.文件名包含特殊字符,可能无法正常删除。可直接删除inode,能够起到删除文件的作用;

2.移动文件或重命名 文件,只是改变文件名,不影响 inode 号码;

3.打开一个文件以后,系统就以inode 号码来识别这个文件,不再考虑文件名。

4.文件数据被修改保存后,会生成一个新的inode 号码。

1.8.1、实验1

先创建大量空文件

for ((i=1; i<=8680; i++)); do  
    touch /test/file$i  
done

或者

touch {1..8680}.txt

i占用满

但是磁盘空间还有

当再创建其他的的时候

二、硬链接与软链接

三、恢复误删除的文件

四、分析日志文件

相关推荐
西风凋丶碧树3 分钟前
sh脚本笔记2
linux·sh
洗发水很好用25 分钟前
关于服务器上域名访问问题
运维·服务器
#痴心绝对25 分钟前
HUAWEI MPLS 静态配置和动态LDP配置
服务器·网络·华为
杨江25 分钟前
Linux 开机自动启动VPN客户端
java·linux·服务器
托马斯-木44 分钟前
【Linux 命令】文件比较 diff
linux·运维·服务器
demo1235671 小时前
构建工程化:多种不同的工程体系如何编写MakeFile
java·linux·服务器
孤城2862 小时前
05 docker 镜像
运维·docker·容器
环保水环境ShuiZhuanWei2 小时前
会员邀请函 | 欢迎加入中华环保联合会、水环境治理专业委员会
运维·服务器·物联网·机器学习·制造
starleeisamyth2 小时前
Ubuntu查看opencv版本c++
linux·运维·ubuntu
明长歌3 小时前
Linux/Unix命令
服务器·unix