论文摘要
系统崩溃现场处理(core dump)是指在系统崩溃时将系统状态保存在永久性存储器(persistent storage)中的过程。被保存下来的系统崩溃现场可用于调试和分析,以寻找系统崩溃的原因并加以修复。当今的硬件服务器通常配备了大量的内存。所以,当它运行的操作系统崩溃时,保存其系统崩溃现场的过程十分耗时。只有系统崩溃现场处理完成以后,才能重新启动服务器系统,以继续提供应用软件服务。因此对服务器进行耗时的系统崩溃现场处理显著延后了执行系统重启以恢复应用软件服务的时刻,造成了较长的系统宕机时间。另一方面,如果为了尽快重启系统而选择不进行系统崩溃现场处理将导致系统崩溃现场丢失,失去了分析系统崩溃原因的重要线索,导致未来可能发生类似原因的系统崩溃。在本文中,我们针对虚拟化环境中的虚拟机(virtual machine,简称VM)系统崩溃现场处理,提出了多种优化,来缩短虚拟机崩溃时因为系统崩溃现场处理和重启虚拟机而引发的系统宕机时间(downtime)。首先,我们将系统崩溃现场处理和重启虚拟机这两个过程并行化执行。为了实现并行化,需要在当前虚拟机崩溃后,创建并启动另一个恢复虚拟机(the recovery VM),在恢复虚拟机中继续中断了的应用程序服务;在针对崩溃的虚拟机进行系统崩溃现场处理的过程中,需要一边保存它的系统状态,一边动态地回收已经保存了的崩溃的虚拟机的内存,并将它分配给恢复虚拟机。其次,我们可以选择性地只保存系统崩溃现场中对调试分析系统崩溃原因有意义的部分,而不是简单地保存整个系统崩溃现场,从而减少系统崩溃现场处理的时间。为此,我们通过虚拟机管理层(the VM management layer)访问崩溃的虚拟机的内存数据,从中找到关键的数据结构加以分析,以忽略那些与系统崩溃原因无关的内存状态。最后,在系统崩溃现场处理和新创建的恢复虚拟机之间,我们在虚拟机管理层平衡两者的磁盘I/O速率。根据用户调整得到的最佳磁盘I/O速率控制策略,我们在系统崩溃现场处理的速度和恢复虚拟机的启动速度、提供服务的质量之间进行了权衡。我们实现了系统原型,称为Vicover,来优化Xen虚拟化环境中虚拟机系统崩溃时的系统崩溃现场处理,从而最小化由于系统崩溃现场处理和服务恢复所引起的系统宕机时间。在一台虚拟化的TPC-W服务器上做的实验中,Vicover将系统崩溃现场处理引起的系统宕机时间缩短了5倍。
论文目录
相关论文文献
标签:系统崩溃现场处理论文; 并行化论文; 虚拟机论文;