超级块的定义

超级块,文件系统的心脏。
  如果说inode块是Unix操作系统中文件的核心,那么超级块就是文件系统的心脏。启动Unix操作系统后,发现某个文件系统无法使用,很有 可能就是超级块出现了问题。为什么这个超级块有这么大的作用呢?主要是因为在超级块中保存了全局文件信息,如硬盘已用空间、数据块可用空间、inode结 点信息等等。做一个形象的比喻,这个超级块就好像是企业的资产负债表,一个文件系统中有哪些资源都记录在这个表中。
  当操作系统启动后,系统内核会把超级块中的内容复制到内存中,并周期性的利用内存里的最新内容去更新硬盘上的超级块中的内容。由于这个更新存在 一个时间差,为此内存中的超级块信息与硬盘中的超级块信息往往只有在开机与关机的某个特定时刻是同步的;而在其他时间都是不同步的。假设当操作系统意外当 机或者因为断电而造成的意外事故时,内存中的超级块信息没有及时保存到硬盘中,此时文件系统的完整性就会受到破坏。轻者导致刚建立的丢失,重则的话会导致 文件系统瘫痪。遇到这种情况时,系统工程师往往需要利用系统提供的sync命令在系统出现故障的那一刻把内存里的内容复制到磁盘上。这个过程往往操作系统 会自动完成,这也正是因为为什么Unix操作系统要比Windows操作系统稳定的一个重要原因。当操作系统重新启动的过程中,系统内核会对两者进行比 较,根据他们之间的差异,给文件系统打上干净或者脏的标签。这个信息也是存储在文件系统的超级块中。
  可见超级块如果发生损坏的话,对于文件系统的破坏性非常的大。轻者的话导致某个文件系统无法挂载,重则的话导致整个操作系统崩溃。在Unix操 作系统中,除了可以利用sync命令来保证硬盘上的内容决不会比内存里的内容更新之外,还提供了一个很有利的措施来保证其的安全性。其实,这个技术很早就 有,只是一开始并没有用在超级块的管理中。这个技术就是跟磁盘阵列类似。操作系统会将多个超级块内容保存到硬盘中的不同区域。当其中一个超级块出现问题 时,操作系统会自动采用另外一个超级块。等到系统运行正常后,系统内容就会把可用的超级块去替换那个故障的超级块。为此除非所有的超级块都损坏了,否则的 话,只要有一个超级块是可用的,那么文件系统与操作系统就可以正常挂载与启动。这种安全机制在很大程度上提高了超级块的安全性,系统了Unix操作系统的 稳定性。现在大部分的Unix操作系统(包括Linux操作系统)已经实现了类似的安全机制。

posted @ 2019-08-17 17:09  linux——quan  阅读(8786)  评论(2编辑  收藏  举报