inode 、数据块、磁盘容量

在Linux操做系统中,其文件结构跟微软操做系统有比较大的差别。在Linux操做系统中,采用的是一种叫作inode的节点结构。在这个inode节点中,记录了文件的类型、大小、权限、全部者、文件链接的数目、建立时间与更新时间等重要的信息,还有一个比较重要的内容就是指向数据块的指针。通常状况下,若是只是将这个Linux系统看成客户端或者普通的服务器来处理的话,那么只须要采用年其默认的配置便可。可是,若是要将这个Linux操做系统看成新闻组服务器、论坛服务器等等服务器时,则就不可以采用默认设置了。系统管理员须要根据实际状况来调整这个inode节点的数量以及其余相关配置。
  1、inode节点数量与文件存储的关系。
  要了解如何配置inode节点数量,那么必须首先须要了解节点数量与文件数量的关系。在微软操做系统中,只要磁盘分区还有存储空间,则就能够存储文件。可是在Linux操做系统中则不一样。在磁盘空间没有用完以前,用户也有可能没法存储新的文件。这主要是由于可使用的inode节点已经完了。那么他们之间到底有什么关系呢?其实他们之间还有一个中间者,即数据块,即他们之间的关系是节点、数据块、文件数量之间的三角关系。
  系统管理员首先须要明白的是,inode节点的数量跟数据块有关。可是他们不是简单的正比例或者反比例的关系。如如今有一个25KB的文件,而数据块的大小则为4KB。则此时这个文件会占用7个数据块,可是只占用了一个inode节点。另外还有一种比较特殊的状况,如在系统的/proc目录下的文件实际上并不存在。也就是说并不占用数据块。可是仍然须要占用一个节点。因此说,数据块跟inode节点之间没有存在比例关系。
  可是,inode的数量会决定数据块的使用程度。如在inode节点数量小于数据块数量的状况下,并且用户存储的文件都比较小(如不到一个数据块的的大小)。在这种状况下,显然inode节点数量会比数据块要先用光。此时虽然还有空余的磁盘空间,可是因为inode节点数量已经用完。没有多余的节点能够用来保存文件的相关信息。因此在这种状况下用户将没法保存新的文件。因此有些用户会感到疑惑,为何磁盘空间还有,可是却没法存储新的文件。就是这个Inode 节点在做怪。相反,若是inode节点数量比数据块的数量要多,可是若是用户存储的是大文件。在节点数量尚未用完的状况下,硬盘空间就已经用完了。此时也没法保存新的文件。那些实际上不存在的文件除外。
  因此说,在部署Linux操做系统的时候,就应该根据未来系统运行时文件数据可能的存储情况,来决定数据块的大小与Inode节点的数量。从而最大程度的提升硬盘空间的利用率。不过一般状况下,若是LInix操做系统没有特殊的用途,只是做为普通的客户端来处理的话,那么只须要采用系统的默认设置便可。
  2、在文件系统初始化时设置合适的节点数量。
  从上面的分析中能够看出,inode节点数量跟系统中能够存储的文件数量有关。若是inode节点数量设置不合适的话,则可能在硬盘空间没有用完的状况下就没法存储文件了。虽然这种事情在通常情形下不会发生,可是在一些特殊的应用中则常常发生。如系统管理员不过将这台Linux操做系统看成论坛来使用,则有可能会发生这种事情。由于一般状况下,论坛服务器的文件存储有一个特色。论坛服务器上的文件每每都比较小,如大部分文件只须要利用一个数据块来保存便可。同时,其文件的数量又很是的多。因此,若是将Linux操做系统看成论坛等网站服务器来使用的话,若是采用默认设置的话,则颇有多是inode节点数量先用光,而硬盘空间还有剩余。此时新的文件将没法保存。
  因此针对论坛服务器这种比较特殊的应用,笔者的建议是将数据块设置的小一点,以减小磁盘的碎片,提升硬盘的利用率。同时,将节点数量设置的多一点。如能够先根据数据块的大小和硬盘容量来计算出可用的数据块数量。而后将inode节点的数量设置为跟这个数据块的数量相同。如此的话,在最坏的状况下就是节点数量同数据块数量同时用完。而大部分状况下,服务器上总会有一些大文件,如图片等等,会占用多个数据块来进行存储。因此此时每每是硬盘空间先用完。故这么设置的话,能够提升硬盘空间的利用率。不会出现那种硬盘空间有剩余却没法保存新文件的奇怪现象。
  不光光是论坛服务器须要这么设置。若是将Linux操做系统看成FTP服务器、邮箱服务器、新闻组服务器等等也都须要进行设置。通常来讲,只要服务器上的文件符合两个特色,即文件数量多而文件容量比较小,就须要手工调整这个inode节点数量,而不可以采用默认的设置。不然的话,就会出现上面提到的这种异常状况。
  若是须要调整inode的数量,则能够在利用mke2fs等相关的建立文件系统命令的时候进行单独的设置。这里须要强调的是,要在系统部署以前先肯定这个须要的Inode节点数量。而后在建立文件系统中指定。当硬盘上已经存储了文件,此时再来进行调整就为时过晚了,由于从新建立文件系统会清除硬盘上原有的文件。因此就会致使文件的丢失。故笔者建议各位系统管理员,在将Linux操做系统看成服务器来使用以前,须要先了解一下服务器的用途。以及在这个应用下文件存储的特色。若是其符合文件数量多可是文件体积小的特色时,则须要考虑更改这个节点数量,让服务器能够存多更多的小体积文件。
3、查询节点的使用状况。
  除了须要作好节点数量的规划外,系统管理员还须要追踪这个节点的使用状况。如当发现有硬盘空间还有剩余可是没法存储新文件的时候,系统管理员虽然怀疑这多是节点数量不够所形成的。可是须要找出证据来证实本身的观点。此时就须要知道如今系统中的节点数量有多少、可用的有多少、已经用了多少等等。在Linix操做系统中提供了一个命令,能够帮助系统管理员来查询这个节点的应用状况。系统管理员之须要使用df –i(注意这个可选项必需要带上),来查询节点的使用数量与使用状况。在shell环境中执行了这个命令后,系统会像管理员提供以下信息:文件系统的名字、当前文件系统总的inode节点数量、已经使用的节点数量、还没有使用的节点数量以及使用的百分比。若是在显示的结果中,发现节点数量为0的,则表示这个不是Linux操做系统的ext3或者ext2文件系统。此时这个分区就有可能使光驱或者微软的FAT等文件系统。
  当发现节点数量剩余很少、而硬盘剩余空间还比较多时,系统管理员就须要注意了。如能够经过删除旧文件来释放节点。另外还有一种异常的状况,就是文件明明删除了,可是某些节点仍然没有释放。在Linux操做系统中有命令能够查询系统中是否有这种异常的状况。之后如有机会笔者会告诉你们如何维护节点的异常状况。这里篇幅有限,笔者就不过渡展开。若是没有能够删除的文件,并且节点的使用状况也没有异常的外,可是磁盘空间还有比较多的剩余,那么处理起来就比较麻烦了。此时系统管理员每每须要先备份分区上的文件。而后从新格式化这个文件分区,调整这个节点数量。而后再将文件复制进去。不过这是一个下下之策了。最理想的状况是,系统管理员根据本身的工做经验,在系统部署时就肯定合适的节点数量,从而省去后续调整的麻烦。
  另外笔者须要提醒你们的是,虽然在inode中存储了文件的大量信息,可是像文件名等信息却没有保存在这个节点中。就是由于这个特性,因此在文件管理上Linux操做系统要比Windows系统强的多,如能够同时采用符号链接与硬链接等等。硬链接至关于微软操做系统中的快捷方式。而符号链接则是跟快捷方式大相径庭的文件管理模式,其每每帮助管理员来完成一些特殊的任务node

相关文章
相关标签/搜索