Skip to main content
QUICK REVIEW

[论文解读] Microreboot -- A Technique for Cheap Recovery

George Candea, Shinichi Kawamoto|ArXiv.org|Jun 2, 2004
Orthopedic Surgery and Rehabilitation参考文献 28被引用 366
一句话总结

本文提出 microreboot 技术,通过专用状态存储将进程恢复与数据恢复解耦,实现对单个应用组件的细粒度、低成本恢复。在互联网拍卖系统中的评估表明,microreboot 成功修复了绝大多数原本需要完整重启才能恢复的故障,恢复速度提升一个数量级,且丢失的工作量减少 90%,从而在高可用系统中实现主动、透明且无中断的再生。

ABSTRACT

A significant fraction of software failures in large-scale Internet systems are cured by rebooting, even when the exact failure causes are unknown. However, rebooting can be expensive, causing nontrivial service disruption or downtime even when clusters and failover are employed. In this work we separate process recovery from data recovery to enable microrebooting -- a fine-grain technique for surgically recovering faulty application components, without disturbing the rest of the application. We evaluate microrebooting in an Internet auction system running on an application server. Microreboots recover most of the same failures as full reboots, but do so an order of magnitude faster and result in an order of magnitude savings in lost work. This cheap form of recovery engenders a new approach to high availability: microreboots can be employed at the slightest hint of failure, prior to node failover in multi-node clusters, even when mistakes in failure detection are likely; failure and recovery can be masked from end users through transparent call-level retries; and systems can be rejuvenated by parts, without ever being shut down.

研究动机与目标

  • 解决大规模互联网服务中全系统重启带来的高成本与高干扰问题。
  • 通过支持细粒度组件恢复,降低故障频发的企业软件中的恢复时间和丢失工作量。
  • 将进程恢复与数据恢复分离,以实现对单个组件的安全、快速重启。
  • 即使在误报率较高的故障检测环境下,也能实现主动、透明的恢复。
  • 通过允许部分再生而不进行全量关机,提升系统可用性。

提出的方法

  • 将应用组件设计为无状态、高度隔离的单元,依赖专用状态存储持久化数据。
  • 使用专用状态存储将数据恢复与进程恢复解耦,确保重启过程中的数据持久性。
  • 采用框架实现透明的调用级重试,隐藏 microreboot 带来的中断对终端用户的影响。
  • 通过近常数时间的同步资源回收机制,实现快速、安全的 microreboot。
  • 在类生产环境的拍卖系统中部署原型,评估恢复效果。
  • 注入故障,测量在真实工作负载下的恢复时间、丢失工作量和系统可用性。

实验结果

研究问题

  • RQ1细粒度组件重启(microrebooting)是否能以显著更低的成本和干扰,恢复与全进程重启相同的故障?
  • RQ2与传统的全节点故障转移和重启相比,microrebooting 在恢复速度和系统可用性方面表现如何?
  • RQ3通过透明的重试机制,microrebooting 在多大程度上能够隐藏故障对终端用户的影响?
  • RQ4哪些架构模式能够支持大规模、有状态的互联网服务中安全高效的 microrebooting?
  • RQ5microrebooting 在恢复内存泄漏和 Heisenbugs 等常见故障类型方面效果如何?

主要发现

  • Microrebooting 恢复了在评估的拍卖系统中原本需要全进程重启才能恢复的大多数故障。
  • Microrebooting 的恢复速度比全进程重启快一个数量级。
  • 与全重启相比,恢复期间丢失的工作量减少了 90%。
  • Microrebooting 实现了无需全量关机的系统再生,即使在内存泄漏存在的情况下,系统可用性也提升了 90%。
  • 即使在 98% 的误报率下,该技术依然有效,优于基于传统故障转移的恢复机制。
  • 透明的调用级重试机制成功隐藏了 microreboot 事件对终端用户的影响,实现了无中断恢复。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。