电脑技术学习

深度解析Unix中inode块与超级块

dn001

  可见超级块如果发生损坏的话,对于文件系统的破坏性非常的大。轻者的话导致某个文件系统无法挂载,重则的话导致整个操作系统崩溃。在Unix操作系统中,除了可以利用sync命令来保证硬盘上的内容决不会比内存里的内容更新之外,还提供了一个很有利的措施来保证其的安全性。其实,这个技术很早就有,只是一开始并没有用在超级块的管理中。这个技术就是跟磁盘阵列类似。操作系统会将多个超级块内容保存到硬盘中的不同区域。当其中一个超级块出现问题时,操作系统会自动采用另外一个超级块。等到系统运行正常后,系统内容就会把可用的超级块去替换那个故障的超级块。为此除非所有的超级块都损坏了,否则的话,只要有一个超级块是可用的,那么文件系统与操作系统就可以正常挂载与启动。这种安全机制在很大程度上提高了超级块的安全性,系统了Unix操作系统的稳定性。现在大部分的Unix操作系统(包括Linux操作系统)已经实现了类似的安全机制。

  另外系统工程师需要了解在超级块中到底保存了哪些信息。这对于以后遇到问题时查找问题原因有一定的故障。根据笔者的了解,在超级块中保存了如下有用的信息。一是保存了文件系统的大小以及所用酷块的大小;二是保存了可用数据库的数量和部分可以及时分配的空闲数据块列表;三是最近一次的更新时间与文件系统的状态;四是空闲Inode结点的个数和部分可以及时使用的inode结点列表。有时候在Unix操作系统上进行应用程序开发也需要用到这些信息。

  最后笔者需要强调一点,超级块损坏的最大杀手仍然是意外断电或者其他原因的意外当机。因为此时内存中的超级块信息无法及时更新到硬盘中。为此就出现了内存与超级块中内容不一致的地方,从而会导致系统启动时的一系列故障。为此在Unix服务器上部署一个UPS是非常重要的。这虽然是一个老生常谈的方法,但是却非常有效。

标签: