文件系统与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. POJ1384完全背包问题

    题目大意:给你一个储蓄罐空的,和满的重量,然后给出各种硬币的价值和对应的重量,要你估计出储蓄罐里面硬币价值和最小为多少,注意要保证重量和恰好为给出满的重量解题思路:完全背包问题,只是求最小值,注意初始 ...

  2. MVC-各种传值方式

    [转自]:QLeelulu示例一:ViewData传值.HomeController.cs Co de: public ActionResult Index(){     ViewData[" ...

  3. cocos2d-js Mac下的JSB绑定步骤

    cocos2d-js由于采用js语言,使得做一些native的功能比较受限,例如文件和目录操作.socket操作等.逼不得已,这时我们就不得不做jsbinding了.. 官方提供的jsbinding方 ...

  4. Automotive Security的一些资料和心得(2):Cryptography

    1. Security Goal - Confidentiality - Integrity - Availability - Authenticity - Non-repudiation - Aut ...

  5. 开发错误日志之FTP协议传输文件问题

    从开发端用FTP协议向服务器(Linux系统)传输文件时,cat -A查询文件内容中行尾会有^M出现. 解决方案:改用SFTP协议上传文件.

  6. css 多行显示省略号....

    CSS属性如下: white-space: nowrap; overflow: hidden; text-overflow: ellipsis;

  7. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  8. zoj 3716

    题目给我们四个点,要求我们以这四个点为圆心,形成四个相切的圆: 求他们的半径和: 首先我们从他们中间选出三个点,以这三个点为圆心的三个圆最大可以两两互相相切: 证明:假设这三个圆的半径分别为a,b,c ...

  9. unity Android 打包后读取 xml 文件

    原地址:http://www.cnblogs.com/wuzhang/p/wuzhang20140731.html 问题:    前天在做东西的过程中发现了一个让人很纠结的问题,为什么Unity 程序 ...

  10. DataTable转换List<T>集合的方法

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data; ...