1、面向云平台的软件故障 容忍机制研究,2009-12-25,大纲,大纲,研究背景,计算需求的快速发展,用户对软件日益增长的需求:可靠,准确,可扩展。 据调查,财富500强公司里面59%的公司每周至少有1.6小时的宕机时间 据调查,由于系统宕机而导致的商业损失是每小时84,000$108,000$。2008年8月,Google的云计算服务出现严重问题,Blogger和Spreadsheet等服务均长时间宕机,Gmail服务两周内3次停摆。,虚拟化技术(Virtualization Technology)能够充分利用底层硬件的处理能力,支持多个操作系统(OS)同时运行。 软件容错技术是在软件出错的情
2、况下保证软件在性能和安全方面可接受的情况下继续提供服务。,研究背景,研究内容,除了在传统架构下的研究软件容错机制,还应该在虚拟化环境下调整软件容错机制来适应虚拟化架构。 我们旨在应用虚拟化技术来重新研究软件容错机制 单机虚拟化架构下软件容错机制研究 虚拟集群下软件容错机制研究 项目支持 973项目:计算系统虚拟化基础理论与方法研究,总体框架,故障检测,研究工作,大纲,研究现状,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availability and Security Thr
3、ough Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Practical Byzant
4、ine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availability and Security Through Failur
5、e-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Practical Byzantine Fault T
6、olerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,研究现状,Application,Error,Reboot,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availability and Secu
7、rity Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Practica
8、l Byzantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,研究现状,Read,杜撰值,Write,丢弃,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availabil
9、ity and Security Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容
10、错机制 Practical Byzantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,研究现状,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availability an
11、d Security Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Pr
12、actical Byzantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,研究现状,研究现状,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availability and
13、 Security Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Pra
14、ctical Byzantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008, copy_len buff_size ,Server,Community machines,观察正常行为获取其不变量,copy_len buff_size,copy_len buff_size,copy_len =
15、 buff_size,检测工具攻击收集信息,Server, copy_len buff_size ,违反: copy_len buff_size,比较攻击下的行为,Candidate patches: Set copy_len = buff_size Set copy_len = 0 Set buff_size = copy_len Return from procedure,Server,产生候选补丁来修复错误,Predictive: copy_len buff_size,Server,Patch 1,Patch 3,Patch 2,分发补丁到社区机器上,Ranking: Patch 1:
16、0 Patch 2: 0 Patch 3: 0 ,Ranking: Patch 3: +5 Patch 2: 0 Patch 1: -5 ,Server,Patch 1 失败,Patch 3 成功,评估补丁 成功 = 检测工具没有检测到错误,Server,Patch 3,分发最优的补丁,Ranking: Patch 3: +5 Patch 2: 0 Patch 1: -5 ,研究现状,传统的软件容错机制 Microreboot A Technique for Cheap Recovery, OSDI 2004 Enhancing Server Availability and Security
17、 Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Practical By
18、zantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,PBFT,time,Primary,Client1,s1,s2,s3,s4,Quorum: 匹配从不同的副本发来的信息,result,3f+1个副本,研究现状,传统的软件容错机制 Microreboot A Technique for
19、 Cheap Recovery, OSDI 2004 Enhancing Server Availability and Security Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Automatically
20、 Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Practical Byzantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,Zyzzyva,3f+1个副本,研究现状,传统的软件容错机制 Microreboot A Tec
21、hnique for Cheap Recovery, OSDI 2004 Enhancing Server Availability and Security Through Failure-Oblivious Computing, OSDI 2004 Rx: Treating Bugs As Allergies A Safe Method to Survive Software Failures, SOSP 2005, Best Paper ASSURE: Automatic Software Self-healing Using REscue points, ASPLOS 2009 Aut
22、omatically Patching Errors in Deployed Software, SOSP 2009 拜占庭容错机制 Practical Byzantine Fault Tolerance, OSDI 1999 Zyzzyva: Speculative Byzantine Fault Tolerance, SOSP 2007, Best Paper Diverse Replication for Single-Machine Byzantine-Fault Tolerance, USENIX 2008,LBFT,借助虚拟机来提供多样化,现在只需一台物理机器就可以使用拜占庭协议
23、VMM的可信给拜占庭协议带来的机遇,大纲,问题1.基于虚拟机架构的软件容错机制研究,问题一 如果选择的合适营救点处于主流程中,如每个用户请求会导致ASSURE系统在该营救点处做检查点(为了以后的快速恢复)。在高负载情况下,其会因过度的对软件做检查点而导致软件无法正常运行。 问题二 在虚拟化环境下,不同的虚拟机中存在许多相同的软件实例在运行的情况。 为了保证服务的高可用性,如何有效地将一个软件实例上错误处理操作共享给其它相同的软件实例是一项具有挑战性的工作。,问题1.基于虚拟机架构的软件容错机制研究,针对问题一 不再采用在合适的营救点处对软件进行检查点,而是对整个营救点数据库的营救点分配加权值,
24、并通过提高合适营救点的加权值来保障下次容错措施进行时优先选择该营救点,从而避免了过度进行检查点的情况出现。 针对问题二 在管理域(Dom0)中构造完整的软件容忍数据库,根据虚拟机所要保证高可用性的软件来分发该版本软件所对应的软件容忍数据库。(减少冗余) 加权值变化时,更新Dom0和DomU的软件容忍数据库的数据加权值(容错信息共享),问题1.基于虚拟机架构的软件容错机制研究,系统架构 系统流程,问题1.基于虚拟机架构的软件容错机制研究,测试信息,问题1.基于虚拟机架构的软件容错机制研究,测试信息 恢复时间 采用Bug-resuce表后优化的恢复时间,问题2.虚拟集群中软件容错机制研究,问题 A
25、SSURE和SHelp的权衡 ASSURE能够从类似错误中快速恢复,但适合于营救点调用不频繁的情况 SHelp能够解决营救点调用频繁时ASSURE因过度进行检查点导致软件无法正常工作的问题 First-Aid的错误的精确定位分析开销较大 在内存相关错误(栈溢出除外)处理方面,Rx和First-Aid系统相比前面两个系统来说较为安全,两种容错方式如何去抉择 应用场景 虚拟集群中,如何进行软件容错方式的快速共享,以此来达到共同防御,研究内容 SHelp和ASSURE的抉择 在测试营救点返回值时加入函数调用频度统计,根据统计值来选择针对某种错误的快速恢复策略是该采用加权值还是检查点 针对内存相关错误
26、(栈溢出除外),应结合虚拟集群的优势,平摊错误分析开销。 先用Rx系统方法来进行处理,并将成功处理方式和错误信息提交给中央节点,再由中央节点分割成多个patch发布并评估。 寻找栈溢出较好的解决方法 采用中央节点,Dom0和DomU三级容忍措施存储结构来实现容错方式信息的共享,问题2.虚拟集群中软件容错机制研究,问题1及问题2的参考文献,问题3.虚拟集群中基于软件补丁的容错机制研究,软件补丁 修复漏洞 增加新功能 Zero-day攻击 (零日攻击) 软件补丁发布到安装软件补丁之间,攻击者根据发布的补丁来进行攻击 相关工作 零日攻击 根据软件发布的补丁来寻找漏洞,并自动生成攻击包进行攻击(零日攻
27、击) 目前仅限于对修复输入检查漏洞的攻击 动态软件升级 动态升级需要在合适的时间,在软件高负载的情况下,动态升级可能无法进行 需要软件在运行前经过特定的编译器编译,问题 针对零日攻击,需要对软件进行升级。虽然动态软件更新可以在保证软件不需要重启的情况进行升级,但是其需要软件预先经过编译器编译过,而且在软件高负载情况下,更新过程将相当缓慢。 现在的软件容错机制旨在根据错误分析的结果产生一个临时的补丁,而忽视了该错误是否是被发布的补丁所修复 STEM, SEAD, ASSURE, ClearView, Rx, First-Aid 如何快速根据已发布的补丁来去修复软件漏洞 应用场景 在虚拟集群中虚拟
28、软件社区的软件容错方式的信息如何进行共享,以此来共同抵制攻击,问题3.虚拟集群中基于软件补丁的容错机制研究,研究内容 根据补丁内容进行语义分析,分析出补丁中涉及到修复漏洞的内容(舍弃增加软件功能),并以此产生一些可以动态注入的备选补丁 研究一种理论模型来描述该语义分析的过程 将这些备选补丁发布到虚拟软件社区中,并根据反馈结果来对备选补丁进行评估 选择一个最优的补丁来发布到虚拟软件社区中,问题3.虚拟集群中基于软件补丁的容错机制研究,问题3的参考文献,问题4.虚拟集群中拜占庭机制研究,分布式软件中存在恶意节点时,采用拜占庭容错机制来保障正确节点软件的一致性。其中恶意节点是指不响应或者发布错误的信
29、息干扰其他节点的运行,其也称为拜占庭节点。 相关工作 假设拜占庭节点最多有f个,则副本节点最少需要3f+1个 在拜占庭机制中,如果恶意节点发动广播攻击,会导致拜占庭机制处于停滞状态而无法运作 针对这种攻击,提出采用多网卡的硬件方式来解决,问题4.虚拟集群中拜占庭机制研究,问题一 在虚拟集群中,存在多个由拜占庭协议保障的软件组,如果某个软件组中拜占庭节点发动恶意的广播攻击,会导致其他的软件组无法运行。 问题二 目前拜占庭协议都是公平的看待每个节点,即投票的时候每个节点的权值是相同的。 事实上,节点机器的安全级别可能是不相同的。如配置了安全芯片的,装了一定的安全软件的机器应比“裸机”安全级别高。根
30、据提供服务的节点机器的安全级别,我们应调整节点投票的权值。 对应于生活上的例子,如对参加比赛的选手投票时,专家的投票所对应的分值应比观众的高。 同样安全级别较高的机器也存在拜占庭节点,如何容忍 不同安全级别的机器的权值如何选择,问题4.虚拟集群中拜占庭机制研究,研究内容 针对问题一 采用vLan来隔离网络,相当于一个拜占庭保障的软件组就是一个可信虚拟域,以此来消除外部软件组的恶意节点的网络攻击 通过VMM来给每个虚拟机分配虚拟的NIC,避免了需求多网卡的硬件需求 针对问题二 研究不同安全等级机器的投票权值的快速评估算法 考虑在安全分级的集群中,根据不同机器的不同的投票权值,研究新的拜占庭容忍算
31、法,问题4的参考文献,大纲,课题规划,问题1,SHelp: Automatic Self-healing for Multiple Application Instances in Virtual Machine Environment; Cluster 2010 (2010-3-15),专利 问题2,Automatic Software Self-healing in Virtual Cluster; SRDS 2011(2011-4),软件著作版权 问题3,Rethink the Software Patch; S&P 2011 (2011-11),专利 问题4,Hierarchical
32、Byzantine Fault Tolerance for Different Security-Level Machines, DSN 2011 (2010-12),工作小结,从2008年9月至今,主要的工作: 分析Xen的访问控制机制,完成了Xen虚拟化技术的第9章-Xen访问控制模块 编写TSS编程实例,完成了可信计算教材中的第11章-TSS编程实例(和李敏共同完成),并负责整理教材中的一节资料-可信存储 完成了一篇文章的初稿(SHelp: Automatic Self-healing for Multiple Application Instances in Virtual Machine Environment),敬请各位老师指导!,敬请各位老师指导!,