预测性自我修复是操作系统的一项功能,用于预测、检测其中一个组件的故障并自动修复它。迷你X,Solaris操作系统和POWER 上的 Linux都有这个。但它在 x86 平台上的现代 Linux 发行版中可用吗?或者将会是?
答案1
目前(截至 2015 年末)这取决于您希望拥有哪个级别的自我修复能力。
我发现了类似的讨论这里关于同一个问题,其中一位“Linux 家伙” 1 回复了那:
在内核中执行此操作会违反策略和机制的分离。为用户空间提供执行此操作所需的挂钩并没有什么问题,但通常用户空间有责任决定在检测到可能的问题时应该做什么。 [简而言之..]发行版/供应商问题,而不是内核开发问题。
因此,从内核的角度来看,似乎无意支持这一点 - 与 Minix 等不同。话虽如此,我还没有找到他所说的具体政策,也没有找到 Linus 对此的任何直接声明。
从用户空间的角度来看,似乎至少尝试在文件系统级别上处理这个问题。作为另一个夏天邮政以及相应的评论,据信,虽然其他操作系统可以更好地处理数据损坏,但btrfs
似乎也是为基于 Linux 的操作系统实现此功能的好方法。不过,虽然自称是稳定的,它还远远不如 SUN 的(基于 BSD)那么强大ZFS可以读到这里2 .
1即克里斯·斯努克 - 前球员Red Hat 合作伙伴
2 个关于 btrfs 基准测试的非常详尽的博客,得出了相当负面的结论(截至 2015/09/16)
答案2
不,因为 Linux 内核是整体的。它是一个大型二进制文件,而不是由几个可以单独重新启动的较小程序组成(如 MINIX 和 Hurd 等微内核设计中存在的那样)。
就我个人而言,我觉得这个功能一点也不有趣。如果发生崩溃,您可能会丢失一些状态数据,即使系统在第一次错误后设法部分重新启动并步履蹒跚,它也可能会由于意外的状态更改而继续犯下更多错误。
实现容错的正确方法是分布在多台计算机上,并让它们在比内核/操作系统层更高的语义级别上检查彼此的工作。