云计算背景下分布式软件系统故障检测技术研究
2021-10-29齐莉
齐莉
(吉林工程职业学院,吉林四平,136000)
0 前言
根据云计算的特点和当前云计算资源故障检测的需求,设计了云计算资源故障检测系统的框架。故障检测模型的设计是基于深层神经网络故障检测模型,利用稀疏自编码器的并行结构提取原始数据的特征,进而提高故障数据的识别率,保证云计算系统的安全性和可靠性。搭建 hadoop 云计算平台,设计部署云计算资源故障检测系统,通过故障模拟,分析测试结果,验证系统的可行性。故障检测系统具有实时监测数据分析、自动检测和故障检测模型自动更新的优点。它不仅能够满足云计算的安全需求,而且能够保证系统的连续性。
1 概述
■1.1 云计算背景分析
近年来,计算机技术在全球范围内发展迅速,平台化计算机技术研究方面也取得了很大的进步。以通信、计算和存储为核心的各种技术已经在社会生活各个方面广泛应用,随着近年来世界计算机技术飞速发展,基于计算机系统平台得到了跨越式的发展,其复杂性不断增加,计算机软硬件系统的运行和维护成本也在迅速上升,给计算机企业的发展带来了许多阻力和不便。然而,云计算平台的出现打破了这一限制,改变企业只能“购买整套硬件资源”的局面,使“租用计算机资源”成为可能。云计算作为一种新的计算方式,已经成为专家和企业研究的热点。一些大公司已经推出了他们自己的云计算解决方案,像谷歌、亚马逊和微软这样的大公司正试图提供更强大、更可靠、更高效的云服务,并重塑他们的盈利模式。
■1.2 分布式软件系统故障检测的可靠性
在对企业调查的时候,从中了解到,一个小时的云计算系统中断可能会让一家公司损失15 万到645 万美元,并可能造成巨大的声誉损失。因此,有需要建立一个有高可用性的云端运算系统,以确保云端服务的连续性和用户服务的可用性,在提高系统可用性的同时不仅要能够保证关键业务数据信息的完整性,而且能够保持应用程序服务的中断或无法迅速恢复。为了保证云计算系统的高可用性,必须有高效的故障诊断技术,因此云计算故障检测技术已成为云计算领域的一个重要研究方向。由于现时并没有技术可确保云端运算系统运作正常,不会出现故障,因此有需要减少故障次数及恢复所需时间,以确保可靠和持续的云端运算服务,只有有效地侦测到系统故障并正确地恢复,系统的可靠性才能得到保证。目前云环境下故障检测方法主要从两个方面进行如下
(1)心跳策略的故障检测方法:通过对云计算系统节点及节点间的链路间通信出现的故障进行检测。
(2)性能数据的故障检测方法:通过分析云计算系统运行时产生故障数据(CPU 内存、硬盘、日志等)对云计算进行故障检测。
综上所述,国内外目前专门针对与平台故障检测与故障恢复能力测评的研究还非常少,虽然在故障检测领域的相关研究中都会采取经典测评指标来验证故障检测方法的准确性、有效性等,但大都不成体系。
2 软件系统故障检测技术的系统结构
在故障检测系统中,为能够对云计算环境下所有节点进行监控,保证对每个节点准确覆盖,必须对每个节点监控模式进行设计,在大规模的监控体系结构中最常用有两种模式:基于层次式的监控模式和基于扁平的监控模式
(1)在层次式的监控模式中会分成不同的节点,不同的组来进行传输系统也会呈现出你个结构图,在每一个结构组的节头点都会对组内其他节点进行检测,也可以通过组内的头结点进行上传消息,实现了对全局的一个掌控,这样清晰的系统节点排序组织,并大大降低对信息传递的难度以及复杂性。层次式构图如图1 所示。
图1 层次式监控模式
(2)扁平结构的模式节点没有存在明显的层次区分,二是呈现扁平化结构,该结构最最常见的就是随即散播检测了,消息并不是任意节点之间的传播,每一轮消息传递过程,每个节点会根据概率选择某些节点进行信息交换,在经过多轮交换后系统中会确保信息到达所有节点,根据概率交换避免信息的重复冗余。基于扁平模式的结构图如图2 所示。
图2 扁平结构的模式
3 分布式软件系统故障检测技术问题分析
(1)云计算系统远比普通计算机系统复杂,即使能够保证非常高的可靠性,也会出现一些故障或者错误。这些故障或者错误一般可以归结为资源竞争、配置错误、软件缺陷、硬件失效等,而且这些情况的出现往往具有不确定性,并且类似失误难以再次重现等,但是这些故障的数量所占比却例高达80%要保障云计算系统正常运行,只靠在系统开发测试阶段往往不够,并且一般问题是在特定环境下发生,同时后台管理员难以人工跟踪定位问题,因此故障检测技术被广泛应用。检测技术通过对系统各个组件的故障检测,自动及时有效检测系统运行状态,当检测系统发现系统中有出现的程序漏洞或者服务失效时,及时报告给中心管理系统或者后台服务者,为故障后提供故障策略,并对故障进行定位操作,及时处理失效服务,提高系统的稳定性和可信度。所以,故障检测系统必须能够保证对云计算系统内的组件等进行实时跟踪,获取实时状态数据,检测组件健康状态。为保障了云计算系统的安全可靠性。
(2)云计算下的故障检测系统主要是服务于云计算资源,故障检测的目的是帮助管理员及时有效的发现云计算服务的各种故障或者潜在隐患错误等,避免人工排查实现高自动化检测方式。从系统功能角度看,检测系统主要是向用户及时检测云计算服务运行时的实时状态,帮助用户及时发现运行时的故障服务,能够及时避免或者降低损失。
4 分布式软件系统故障检测的测评与实现
云计算平台故障检测与恢复能力的测评体系组成,包括负载、指标、测试流程与评估模型四个部分。测评体系的组成部分,直接体现了云测评工具需要具备的功能需求。从负载的解析与选取中分析,云测评工具需要控制云计算平台中虚拟机的运行与终止,以及虚拟机中运行的应用程序的运行与终止;选取的指标决定了云测评工具中必须具备能够获取指定指标信息的能力,同时将指标进行存储,用于最后的评估计算;测试流程的设计,指导了云测评工具如何控制整个测试过程的执行操作;最后,评估模型的建立,说明云测评工具需要具备对指标的计算与分析能力,同时将测评结果提供给云测试用户。此外,为了让云测试用户能够直观观察测试结果,以 Web 界面的方式提供可视化展示的功能。以及,根据不同的用户需求,在云计算平台中,提供不同的故障注入方式。
云计算平台故障检测与恢复能力的测评工具的模块划分与工具功能划分一一对应,主要分为 Web 模块、测试流程控制模块、指标采集与存储模块、测试报表生成模块与故障注入模块。以下对不同模块进行简要介绍:
(1)Web 模块主要提供工具功能的可视化显示,便于云测试用户的远程访问和控制。通过网页提供测试过程、配置信息和测试报告的可视化;
(2)故障注入模块,负责支持多种针对云计算平台的多种故障注入方式,主要分为计算、存储和网络相关的资源故障与云计算平台提供的计算、存储等相关的服务故障。不同的故障,注入的方式也不同;
(3)测试报表产生模块,基于评估模型的指导,对获取的性能指标数据进行分析计算得出评估指标。生成的测试报表信息,包含测试日期、测试人员、云计算平台环境配置、测试结果等多种信息,并存储数据库中;
(4)测试流程控制模块,提供对云计算平台故障检测与恢复测试流程的控制,涉及对虚拟机的控制、虚拟机中负载发生工具执行情况的控制、负载接收集群的配置、测试环境清理等多种环节的控制,保证测试流程的正常运行,并最终为云测试用户提供可视化的报表展示;
(5)指标采集与存储模块,该模块主要分为两个部分,分别为指标的采集与指标的存储。指标的采集依赖于云计算平台中运行的负载工具,而指标的存储采用 Mongo DB 数据库,有利于存储多种格式的指标信息。
5 结语
随着云计算部署模式越来也成熟,“云”的应用领域也来越广泛,人们对云计算可用性要求越来越高。云计算故障发生的时间越长对企业和客户的损失就越大,因此快速高效的故障检测方法成为许多学者和专家的追求。计算机的出现彻底改变了整个互联网商业模式,通过有效的资源共享和提高社会企业的效率,改变了传统 it 基础设施的高硬件成本和低资源利用率。因此,随着政府和研究机构的广泛推荐,越来越多的企业将其原有的业务系统迁移和部署到云计算平台。云端运算服务供应商若要提升客户体验,达到客户需求的目标,必须首先保证云端运算系统运作服务的可靠性,以确保客户业务的正常运作。