文件系统与inode
• UNIX文件系统有很多种类型,如HFS,NFS,JFS,CDFS。虽然文件系统种类很多,但是也有着一些相同的数据结构:超级块、inode、目录等等。
• inode译成中文就是索引节点,它用来存放文件及目录的基本信息,包含时间、档名、使用者及群组等。 inode数据结构
作为一种数据结构,inode主要包括以下信息:
• inode 编号
• 用来识别文件类型,以及用于 stat C 函数的模式信息
• 文件的链接数目
• 属主的 UID
• 属主的组 ID (GID)
• 文件的大小
• 文件所使用的磁盘块的实际数目
• 最近一次修改的时间
• 最近一次访问的时间
• 最近一次更改的时间 inode数据结构文件
• 从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外)。可以在 Header 文件 /usr/include/jf/ino.h 中或者 Web 页面 中可以找到完整的 inode 结构。 inode块
• 在 UNIX 中创建一个文件系统时,将为 inode 表分配大约百分之一的总磁盘空间。这个百分之一的空间就是inode块。
• inode块中包括所有inode节点。当系统创建了一个文件时,系统就会从这个块中给这个文件分配一个Inode结点。在这个结点中存储了这个文件的大部分属性,如创建、修改时间等等。但是,有两个属性不包含在这个inode结点中,分别为文件名与结点号。——后者原因是因为inode节点按顺序排列,所以系统内核就可以采用简单的算法,就可以得出inode节点号。 inode与磁盘
• inode结点中还存储着一个重要的,就是保存了一个包含13-15位指针元素的数组,这些指针是磁盘块区的地址。
• 这些指针非常的重要。操作系统就是依靠这些指针在硬盘上定位相关的文件,并读取它。 inode优点
• inode不光有别的文件系统数据结构的一些特点,而且由于一些文件的属性都保存在Inode结点中,为此一些命令在获取这些属性的时候,是不需要打开文件的。比如在编写一个文件备份程序,就需要用到inode节点中的修改时间这个属性。此时可以利用相关的命令直接从inode结点中去获取,而不需要打开对应的文件去得知这个。为此在Unix操作系统中文件备份程序的执行效率会比较高,实现起来也相对简单一点。 有关inode的问题
之前说过的inode的两个关键属性:inode编号和inode中的指针数组,假如这两个属性出现问题,很可能会造成很大的灾难。
• 正常情况下,inode编号是不会出现问题的。但是假如由于意外断电或者其他原因的话,有可能会发生一些故障。如可能一个inode结点在系统中已经被创建,但是其没有被正常使用,或者可能块号超出了范围。这些故障会给操作系统留下安全隐患。
• 另外因为一些意外的操作也会使得inode中的指针地址出现错误。有时候这会非常的严重。如一些文件无法读取等等。假如这些文件不幸的是系统的一些配置文件,那么就会导致系统的崩溃。假如这些指针地址出现错误,则文件名仍然会显示在操作系统中。但是假如用户试着去打开这些文件时,系统却会告知无法打开这些文件。 如何解决
• 如果碰到之前说过的问题,可以使用fsck命令来尝试解决。对于inode编号错误, fsck可以修复inode结点中的错误。而对于后者,如果指针指向的文件损坏的不是很严重,那么操作系统内内核会为其再建立一个链接。但是假如原文件损坏的比较厉害了,无法再重新读取。则系统会建立用户删除这个文件。 总结
• 从上面的这些分析中可以看到,inode结点是Unix操作系统中文件的核心,也是操作系统与硬盘中存储的数据的一个中介者。假如这个结点出现错误的话,那么硬盘中存储的数据块就似乎是无主的流浪者,无法被用户所采用。
• 另外我们平时删除文件,其实只是删除了与文件的联系。所以通过一些恢复工具仍然可以恢复被删除了的文件。假如需要真正删除文件的话,就需要格式化硬盘或者复制大文件把其覆盖掉。只有如此硬盘中存储的数据块才会被真正的删除掉。
• 最后需要说明的是,按照正常的关机程序来关闭Unix操作系统,是保护inode结点的最好措施。忽然断电或者其他意外事故,是inode结点的最大杀手。

aix i节点的更多相关文章

  1. 11.2.0.4 aix下运行第二个节点root.sh报错处理

    第二个节点运行root.sh报错如下 Entries will be added to the /etc/oratab file as needed by Database Configuration ...

  2. AIX 5L 系统管理技术 —— 存储管理——卷组

    卷组 在安装系统时,就会创建一个rootvg卷组.包含自带硬盘(内置硬盘)和系统逻辑卷,一个系统只能有一个rootvg卷组.一般情况下rootvg卷组最好只包含自带硬盘. 一.创建卷组 在创建卷组之前 ...

  3. AIX之ASM存储扩容

    ASM存储扩容操作其实很简单,无非就是向DiskGroup(简称DG)里添加物理磁盘,增加DG的存储空间.说来简单,其实操作过程中有很多小细节要注意,否则,带来的后果是灾难性的. ASM扩容操作步骤( ...

  4. 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求

    http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf2.html 最大化 AIX 上的 Java 性能,第 ...

  5. Aix命令大全

    AIX服务器系统命令简介 在AIX操作系统上有很多的命令.这里介绍一些系统级的命令,它将有助于回答一些常见问题.大家以此做参考,并补充修改. 以下命令在AIX 5.1上测试通过. 正文 以下命令在AI ...

  6. aix 文件大小相关查询

    一.aix中查看文件夹占用空间大小 du命令默认是显示当前目录下每个文件以及每个子目录以及下属文件的大小的 用du -sg 可看出当前文件夹的大小,包括文件夹下文件和文件夹(以G为单位):用du -s ...

  7. AIX topas命令详解

    本文转载于:AIX topas命令详解 topas命令默认2秒更新一次 一.topas命令以区域形式表现系统各项指标性能,如下图: 1. CPU:反应CPU性能区域,如果有多个 CPU,按 c 键两次 ...

  8. puppet aix之自动化用户管理

    一.    用户组的管理 (一)   Puppet组管理特性 1.   manages_aix_lam 用来管理AIX的LAM(Loadable Authentication Module)系统. 2 ...

  9. AIX下RAC搭建 Oracle10G(一)检測系统环境

    AIX下RAC搭建系列 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 S ...

随机推荐

  1. mysql create database 指定utf-8编码

    CREATE DATABASE IF NOT EXISTS thinkphp  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  2. 《Junit实战》读书笔记

    核心原则:任何没有经过自动测试的程序功能都可以当做不存在 单元测试框架的大三规则: 1.每个单元测试都必须独立于其他所有单元测试而运行 2.框架应该以单个测试为单元来检测和报告错误 3.应该易于定义要 ...

  3. Project not selected to build for this solution configuration.

    Project not selected to build for this solution configuration.   When you upgrade your older solutio ...

  4. Linux_Struct file()结构体

    struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file {        /*         * f ...

  5. 2016032701 - ubuntu安装jdk

    参考地址:http://jingyan.baidu.com/article/d621e8da0e92052865913f32.html 1.首先需要去oracle官网去下载jdk1.8,我本人下载的是 ...

  6. vim emmet配置

    http://nerd-is.in/2013-12/learning-vim-again-1-install-vundle/ http://nerd-is.in/2013-12/learn-vim-a ...

  7. stm32类型cl、vl、xl、ld、md、hd的含义

    - startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices - startup_stm32f10x_ld.s: for ...

  8. 微软Hololens学院教程-Hologram 211-Gestures(手势)【微软教程已经更新,本文是老版本】

    这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...

  9. 获取PDF页数

    下载pdfbox这个包,这俩个方法都可以: PDDocument doc = PDDocument.load("e://aa.pdf"); System.out.println(d ...

  10. Wp8开发环境搭建总结

    原地址:http://blog.csdn.net/lixing732100721/article/details/8564985 注意:技术发展太快  此文章年代已久  请大家酌情参照 系统要求(来自 ...