中国移动通信集团黑龙江有限公司,黑龙江省哈尔滨市, 150028
摘要:云计算作为一种新型计算模式,已经受到了学术界和工业界的广泛关注。基于资源虚拟化技术, 云计算能够以按需使用、按使用量付费的方式为用户提供基础设施、平台、软件等服务。因此,越来越多 的企业和组织选择云计算来部署他们的科学或商业应用。然而,随着用户数量的不断增加,数据中心的 规模在迅速扩大、架构变得日益复杂,导致云计算系统的运行故障频繁发生,造成了巨大的损失。因此在规模巨大、架构复杂的云计算系统中,如何保障系统的可靠性已经成为一个极具挑战性的问题。针对云 计算可靠性问题,概述了云计算系统中常见的各种故障,并详细描述了目前云计算中提高可靠性关键的 故障管理技术;由于故障管理技术的应用会不可避免地增加系统的能耗,因此介绍了云计算中可靠性与 能耗权衡问题的研究现状;最后列举了当前云计算可靠性研究中存在的主要挑战。
关键词 云计算;虚拟化;可靠性;故障管理;能耗
一、 前言
云计算是一种基于分布式计算、网格计算、并行计算等技术的新型计算模式。它使用虚拟化技术来虚拟化各种硬件资源(如计算资源、存储资源和网络资源),以便按需使用,按次付费为用户提供高度可扩展的弹性计算服务。由于无需在购买基础设施、构建私有计算平台和管理升级的软硬件资源方面投入高昂的成本和劳动力成本,越来越多的企业选择将其计算需求外包给云计算服务提供商,云计算已经引起了学术界和工业界的极大关注。例如,国外亚马逊、谷歌和阿里巴巴、百度、腾讯等国内企业正在竞相发布各种云计算平台,为用户提供服务。作为一种正在发展的信息技术,云计算被认为是信息产业的一场重大革命。根据Gartner发布的研究报告,2016年全球公共云服务的市场收入为2196亿美元,到2017年已增至2602亿美元,增长率约为18.5%。与此同时,各种形式的软硬件资源仍在被添加到云计算系统中,数据中心的规模和复杂性也在动态增长,这进一步推动了云计算技术的快速发展。
对于用户而言,云计算系统的可靠性反映了系统提供无故障服务的稳定性,而云计算系统中的故障往往以某种形式反映为系统崩溃、服务失败或结果错误。更具体地说,故障是系统不能正常运行的真正原因,错误是系统故障的外在表现,即系统的故障或错误本质上来自系统的故障。多个错误可能来自同一故障,多个故障也可能导致同一错误。在云计算系统中,故障可能来自很多原因,如硬件故障、软件故障等。与传统的并行计算环境相比,云计算平台具有高度的异构性,计算资源的故障概率相对较高。当云系统出现故障时,采取合理措施应对异常情况,确保系统服务的可靠性非常重要。
二、云计算系统可靠性概述
2.1 云计算系统可靠性定义
云计算系统的可靠性衡量系统提供不间断无故障服务的稳定性。一般来说,可靠性可以定义为系统在特定条件下在约定的时间范围内稳定提供无故障服务的能力。云计算是一种面向服务的架构,客户端可以通过网络随时随地访问云计算系统,并提供各种服务,如基础设施即服务(IAAs)、平台即服务(PAAS)和软件即服务(SaaS)。因此,云计算系统的可靠性与特定的服务模式密切相关。为了使云计算系统提供的服务更加可靠,每种服务模式的服务提供商都有责任确保服务的可靠性,并且其各自的责任因不同的服务模式而异。例如,基础设施的服务提供商,即服务层,应确保硬件设施始终处于稳定状态,并且基础设施上运行的服务质量不会受到硬件故障的影响;作为服务层的软件服务提供商需要确保软件系统中没有严重的软件缺陷,以避免软件故障影响用户的服务体验。
2.2 可靠云计算系统的设计原则
为了避免云计算系统在运行过程中出现故障,或者在系统出现故障时使云计算服务可恢复,微软的Adams等人提出了三个设计原则来确保云计算系统的可靠性:1)弹性设计。在没有人为干预的情况下,云计算服务必须能够容忍系统组件的故障。它应该能够检测系统中的故障,并在故障发生时自动采取纠正措施,以便用户不会意识到服务中断。当服务失败时,系统也应该能够提供一些功能,而不是完全崩溃。2) 数据完整性设计在系统发生故障时,服务必须能够以与正常操作一致的方式操作、存储和丢弃数据,以保持用户管理数据的完整性。3) 可恢复性设计。当出现异常情况时,系统应能保证服务能尽快自动恢复;当发生服务中断事件时,系统维护人员应能够尽快、完整地恢复服务。遵循这些设计原则将有助于提高云计算系统的可靠性,减少故障的影响。除这些原则外,如果应用服务实例中发生故障事件,在系统发生故障的情况下,服务提供商或用户应采取适当措施恢复服务,以避免故障导致服务性能下降,在服务恢复过程中尽量减少人工干预。
2.3 影响云计算系统可靠性的因素
根据Javadi等人的总结,系统故障可定义为系统无法以约定方式继续正常运行的事件。当系统偏离正常功能时,可以认为系统出现故障。因此,系统中的故障是影响系统可靠性的主要因素。在云计算系统中,系统资源规模巨大,架构极其复杂,存在大量的服务运行。同时,由于各层服务模型之间的相互依赖性,故障发生的频率比普通系统更高。因此,故障是云计算系统可靠性的主要威胁。在软件测试领域,失败是指软件在运行过程中出现的一种不希望出现的或不可接受的可观察的外部行为。故障是指软件在运行过程中出现不希望出现的或不可接受的内部状态。例如,如果软件在执行过程中输入了错误的条件分支,则软件将失败。如果没有适当的措施来处理故障,此时软件将失败。缺陷是指软件程序、数据或文档中存在的不必要或不可接受的差异,如代码错误。当软件在某些情况下出现故障时,可以认为软件存在缺陷。根据故障的特点,云计算系统中的故障可分为三种类型:资源故障、服务故障和其他故障。资源故障是指物理资源进入错误状态,如硬件故障、软件错误、电源中断、网络中断等。资源故障可能发生在客户端,也可能发生在服务提供商端。目前,大多数容错工作主要集中在资源故障上。云计算系统中的服务故障是指服务提供商无法提供或用户无法获得满足服务水平协议(SLA)规定的服务质量的服务。当不采取容错措施时,资源故障通常会导致服务故障,但是,当物理资源正常运行时,服务故障仍可能发生。云计算系统中的其他故障通常指由自然或人为原因导致的一些不可预测的故障,如高能粒子、网络攻击和人为操作错误。为了确保云计算服务的可靠性和可用性,了解故障原因非常重要。
三、云计算系统可靠性评估
为了保障云计算系统的可靠性,研究人员需要设计适当的方法和策略来消除故障对系统行为的影响。但是在设计具体的方法之前,研究人员首先需要根据实际需求确定系统可靠性的评估标准。因此,很多学者提出了不同的指标与建模方法来评估云计算系统的可靠性。算系统的能耗,因此云计算系统可靠性和能耗的权衡问题成为当下的研究热点之一。目前被用来降低系统能耗的方法主要有能耗感知的资源调度或任务调度、硬件节能技术等。除此之外,如何解决提高系统可靠性带来的成本增长和服务性能下降问题、如何发现和预防提高系统可靠性而带来的潜在的信息安全问题都将会是很大的挑战。同时,如何在硬件资源失效时不降低虚拟机中应用服务的可靠性也是目前存在的一个挑战。在未来,随着云计算与边缘计算、物联网等新兴技术与云计算的深度融合,云计算可靠性将会迎来更多、更大的挑战。
参考文献
[1] 狄文远.基于云计算技术的云安全管理平台设计研究[J].网络安全技术与应用,2021(10):81-82.
[2] 刘沛.云计算环境下大规模图数据处理技术研究[J].电子世界,2021(19):37-38.
[3] [1]沈剑,周天祺,曹珍富.云数据安全保护方法综述[J].计算机研究与发展,2021,58(10):2079-2098.