主权项 |
一种面向云平台的软件故障容忍方法,包括以下步骤:对需要保护的软件进行压力测试,以获取所述软件的营救点,并根据所述营救点构建漏洞营救表、营救点数据库、营救点节点级缓存和营救点虚拟机级缓存;周期性地在虚拟机中对所述软件构建检查点;判断所述虚拟机是否需要迁移,若所述虚拟机需要迁移,则将所述营救点节点级缓存和所述营救点虚拟机级缓存中的软件故障容忍信息随同所述虚拟机进行迁移,否则检测所述软件是否出现故障;若所述软件没有出现故障,则返回所述周期性地在虚拟机中对所述软件构建检查点的步骤;若所述软件出现故障,则获取软件故障相关信息;根据所述软件故障相关信息判断所述故障是否是栈溢出故障;若所述故障不是栈溢出故障,则分析所述软件故障相关信息,以获取函数调用栈信息;将所述软件回滚到距离所述故障最近的检查点,根据所述函数调用栈信息获取候选营救点,并按所述候选营救点的权值大小对所述候选营救点进行测试,以得到能够容忍所述故障的最佳营救点;增加所述最佳营救点的权值;更新所述最佳营救点在所述营救点虚拟机级缓存、所述营救点节点级缓存和所述营救点数据库中的权值信息,所述虚拟机将更新后的最佳营救点和所述软件故障相关信息发送给所述虚拟机所在节点的管理域;所述节点的管理域将更新后的最佳营救点和所述软件故障相关信息发送给云平台的管理节点;若所述故障是栈溢出故障,则判断所述漏洞营救表中是否存在与所述 故障匹配的函数调用栈信息;若所述漏洞营救表中不存在与所述故障匹配的函数调用栈信息,则进入所述分析所述软件故障相关信息,以获取所述函数调用栈信息的步骤;若所述漏洞营救表中存在与所述故障匹配的函数调用栈信息,则提取所述函数调用栈信息,然后进入所述将所述软件回滚到距离所述故障最近的检查点,根据所述函数调用栈信息获取候选营救点,并按所述候选营救点的权值大小对所述候选营救点进行测试,以得到能够容忍所述故障的最佳营救点的步骤。 |