• (转)文件系统 节点 inode


    原文:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=47541&highlight=&page=2

    文件系统大小限制

    我觉得首先弄明白:为什么要引入”inode“,它的作用是什么?
    引用下面一片短文《索引节点inode》

       Linux为每个文件分配一个称为索引节点的号码inode,可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点(而不是文件名)来定位每一个文件。例如:假设我们在硬盘当前目录下建立了一个名为mytext文本文件,其内容只有一行:This is my file.当然这行文字一定是存储在磁盘数据区某个具体位置里(物理上要通过磁头号、柱面号和扇区号来描述,在本例中假设分别是1、20、30)。假设其inode是262457,那么系统通过一段标准程序,就能将这个inode转换成存放此文件的具体物理地址(1磁头、20柱面、30扇区),最终读出文件的内容:“This is my file.”
    所以inode是指向一个文件数据区的指针号码,一个inode对应着系统中唯一的一片物理数据区,而位于两个不同物理数据区的文件必定分别对应着两个不同的inode号码。
       文件拷贝命令: # cp /home/zyd/mytext newfile 在当前工作目录建立了一个新文件newfile,其实际操作主要包括如下三步:
       1、在当前目录中增加一个目录项,其文件名域填入newfile,并分配了一个新的inode,假设是262456。
       2、将原文件(在1磁头、20柱面、30扇区)的内容复制了一份到新的空闲物理块(假设是1磁头、20柱面、31扇区)。
       3、填写一些其他关键信息,使系统通过这些信息及inode号码可以完成物理地址的转换。
       所以文件复制要分配新的inode和新的数据区,虽然两个文件的内容是一样的。

        一个文件系统允许的inode节点数是有限的,如果文件数量太多,即使每个文件都是0字节的空文件,系统最终也会因为节点空间耗尽而不能再创建文件。所以当发现不能建立文件时首先要考虑硬盘数据区是否还有空间(可通过du命令),其次还得检查节点空间。
        Linux之所以能支持多种文件系统,其实是由于Linux提供了一个虚拟文件系统VFS,VFS作为实际文件系统的上层软件,掩盖了实际文件系统底层的具体结构差异,为系统访问位于不同文件系统的文件提供了一个统一的接口。实际上许多文件系统并不具备inode结构,其目录结构也和以上的讨论不同,但通过VFS,系统均为其提供了虚拟一致的inode和目录项结构。所以,'ls -il'命令实际显示的inode应该是VFS inode,也就是说,inode是存在于内存中的数据结构,而不一定是实际的硬盘结构。但为Linux量身定做的ext2文件系统具备实际的inode和连接型目录项结构

    但也由几个问题拿捏不准,希望得到确切答复:
    1、jfs逻辑上是不是也可以理解为这种结构?
       引导块+超级块+索引节点表+数据块
    2、nbpi是不是文件分配中最小的逻辑单元?
    3、假设某个文件对应的节点号为n,大小为2.5个nbpi,那么下个可供顺序分配的节点号是不是n+3,是不是第n+2个节点对应的nbpi中约有一半的空间闲置?

    续:

    原文:http://hi.baidu.com/meizhe/item/237499720d2de9295d178956

    文件系统限制
    NTFS(Windows):支持最大分区2TB,最大文件2TB
    FAT16(Windows):支持最大分区2GB,最大文件2GB
    FAT32(Windows):支持最大分区128GB,最大文件4GB

    Ext2
    最大文件大小: 1TB
    最大文件极限: 仅受文件系统大小限制
    最大分区/文件系统大小: 4TB
    最大文件名长度: 255 字符
    缺省最小/最大块大小: 1024/4096 字节
    缺省inode分配: 每4096字节为1
    在强制FS检查前的最大装载: 20(可配置)

    Ext3
    最大文件大小: 1TB
    最大文件极限: 仅受文件系统大小限制
    最大分区/文件系统大小: 4TB
    最大文件名长度: 255 字符
    缺省最小/最大块大小: 1024/4096 字节
    缺省inode分配: 每4096字节为1
    在强制FS检查前的最大装载: 20(可配置)

    ReiserFS
    最大文件大小: 1TB
    最大文件极限: 32k目录,42亿文件
    最大分区/文件系统大小: 4TB
    最大文件名长度: 255 字符

    JFS
    最小文件系统大小 16 MB
    最大文件大小: 受体系结构限制
    最大文件极限: 受文件系统大小限制
    缺省最小/最大块大小: 1024/4096 字节
    缺省inode分配: 动态

  • 相关阅读:
    测试爬虫
    流式大数据处理的三种框架:Storm,Spark和Samza
    redo日志
    HTTP协议之chunk编码(分块传输编码
    QWidget 实现 打破布局 或者 当前窗体内的 弹窗 (借助伪造实现)
    How to use kingshard building a MySQL cluster
    转载: Qt 学习之路 2归档
    Python与机器人技术
    Nginx配置正向代理
    使用Chrony配置 NTP
  • 原文地址:https://www.cnblogs.com/yinsua/p/3477885.html
Copyright © 2020-2023  润新知