当前位置 博文首页 > 沉迷单车的追风少年:云计算的高可用性

    沉迷单车的追风少年:云计算的高可用性

    作者:[db:作者] 时间:2021-08-18 09:49

    目录

    云计算的高可用性... 1

    一、可用性相关概念... 2

    1.1 可用性定义... 2

    1.2 高可用性定义... 2

    1.3 高可用性度量标准... 2

    二、云计算相关概念... 3

    2.1 云计算定义... 3

    2.2 云计算的服务模式分类... 3

    2.3 云计算典型架构... 4

    三、云计算高可用性关键技术... 5

    3.1 资源弹性扩展和动态伸缩... 5

    3.2 负载均衡... 6

    3.3 虚拟机节点迁移... 7

    参考文献... 9

    一、可用性相关概念

    1.1 可用性定义

    可用性是指软件系统在一段给定时间内正常工作的时间占总时间的比重,通常用百分比来衡量。在传统的数据中心中影响服务可用性的因素有服务器异常宕机、服务被攻击、操作系统崩溃、软件崩溃、停电、网络中断等。数据中心管理员需要采用冗余和灾难备份等方式来保证服务的可用性。然而,这些冗余或者灾难备份系统的引入会带来新的问题,比如冗余备份带来副本一致性问题,以及更高的采购和管理开销。

    软、硬件设备和系统自身出现问题是不可能完全避免的,云计算高可用性的本质是通过技术创新,保证即使软、硬件出现问题后服务仍然可用。比如虚拟化技术提供的快速部署虚拟机实时迁移能力,都将云计算环境的可用性提到一个新的高度。

    1.2 高可用性定义

    高可用性是指软件系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。高可用性系统与构成该系统的各个组件相比可以更长时间运行。高可用性通常通过提高系统的容错能力来实现。

    1.3 高可用性度量标准

    其度量方式,是根据系统损害、无法使用的时间,以及由无法运作恢复到可运作状况的时间,与系统总运作时间的比较。计算公式为:

    其中,A代表可用性,MTBF代表平均故障间隔,MDT代表平均修复时间。

    二、云计算相关概念

    2.1 云计算定义

    云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。

    2.2 云计算的服务模式分类

    (1)基础架构即服务IaaS。为用户提供处理、存储、网络和其它基本计算

    资源的能力,用户能够部署和运行任意软件,可以包括操作系统和应用程序。用户并不管理或控制底层的云基础设施,但对操作系统、储存、部署的应用程序可以进行控制,也可能对网络组件具有有限的控制权

    (2)平台即服务PaaS。为消费者提供在云计算基础设施上部署消费者自建或购买的应用程序的能力,并且这些应用程序使用提供商支持的编程语言和工具。用户并不管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但对部署的应用程序和应用程序托管环境的配置具有控制权。

    (3)软件即服务SaaS。提供给消费者的能力,是使用服务提供商的运行在基础设施之上的应用程序。通过诸如Web浏览器的瘦客户端接口可以从各类客户端设备访问应用程序(如基于Web的电子邮件)用户并不管理或控制底层网络、服务器、操作系统、存储、甚至的应用程序功能等云基础设施,有可能一些有限的特定于用应用程序配置可以允许用户设置

    2.3 云计算典型架构

    典型云平台中的云基础架构通常划分为硬件层、虚拟化层、云层三个层次。

    (1)虚拟化层:大多数云基础架构都广泛采用虚拟化技术,包括计算虚拟化、存储虚拟化、网络虚拟化等内。通过虚拟化层可实现标准化、可灵活扩展和收缩、弹性的虚拟化资源池

    (2)云层:对资源池进行调配、组合,能根据业务系统的需要

    自动生成、扩展所需的计算资源,将更多的应用系统通过流程化、自动化部署和管理,提高系统负载能力及可靠性。

    (3)应用层:包括业务系统及数据库系统等,该层为用户业务请求提供服务。

    三、云计算高可用性关键技术

    3.1 资源弹性扩展和动态伸缩

    弹性计算云是云计算技术的核心能力之一,主要指可弹性扩展的资源用量能够为客户的业务在高峰期保驾护航。此外它还有灵活多样的计费方式,较为特别的就是用户只需要为所使用的资源付费,运行结束后计费也就停止,也就是按使用付费。弹性云计算的这种计算方式就避免了造成资源的浪费,可为客户最大程度的节省IT运营成本,提高资源的有效利用率。

    当云平台中的计算节点业务负载能力达到设定的阀值时,为保障新业务请求的响应时间及业务可用性,必须对计算资源池中的节点资源实现动态扩展。当业务系统负载减少,业务请求降低时,需要对以前扩展的资源进行收缩,以保证在有限的硬件资源的条件下,能将资源分配给其它更迫切需要计算资源的业务系统,从而保障云平台内全部业务系统的整体可用性。计算资源动态伸缩需要考虑如下问题:

    (1)弹性伸缩策略。虚拟机系统级性能参数的弹性伸缩,包括cpu使用率、内存使用率、虚拟内存贞面交换率等;业务级别的性能参数的弹性伸缩,包括tcp连接数、http连接数、DB连接数等.除了支持系统性能参数、业务性能参数弹性伸缩外,还支持监测应用是否健康来进行弹性伸缩。目前比较常用的是web类应用,通过http/https心跳消息进行检测,发送约定次数的http/https消息均无响应时,则认为是业务系统节点已经宕机,则进行相应处理。首先重启虚拟机,若重启虚拟机后,该业务系统节点还是宕机,则弹性生成一个业务节点,同时添加至虚拟负载均衡集群中,以接收新的业务服务请求。

    (2)延时关机。弹性收缩虚拟机时,为减少对已经建立会话的业务影响,需要支持延时关机。负载均衡调度器收到减少集群成员时,不是马上将该成员移出集群,而是继续处理的已经存在的会话,但是此时不再处理新的会话,等待一段时间后,再执行移出集群,执行关机或销毁虚拟机。

    (3)动态伸缩模式。计算资源的动态伸缩模式可主要分为资源节约优先模式及伸缩时间优先模式两种。

    a)资源节约优先模式。计算资源扩展时,通过虚拟机镜像新创建虚机并加入资源池。由于需要重新创建虚机并安装部署应用,时间上不占优势。计算资源收缩时,不提供服务的虚以机都进行销毁,回收全部资源,资源可以得到最大程度的利用。

    b)伸缩时间优先模式。该方式总是保存弹性伸缩组(集群)最大容量的虚拟机数量,即使该虚机没有提供服务 ,此时只是将该虚拟机关闭。虚拟机关闭时,存储空间小能进行回收 (CPU、内存可以同收重新利用)。由于虚拟机未激活时仅时处于关闭状态,在需要新增活动虚拟机进计算资源池中时,只需要重新启动即可,所以该方式在伸缩时间效率上具有较大的优势。

    3.2 负载均衡

    负载均衡几乎与全球互联网同时出现。传入的数据包、连接和请求从网络层到TCP到HTTP,通常在资源之间分布,以确保应用性能和可用性。

    负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。

    负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。

    均衡负载技术的应用,可以充分利用资源,提升系统整体性能。传统的负载均衡技术通常是基于服务器的响应速度、连接数或轮询方法,使用均衡负载技术,大大提升了系统的负载能力及整体系统性能。但由于均衡的对象粒度太大,实际上很难达到较高的负载均衡效果。而虚拟化技术的应用,使均衡的对象粒度明显减小,原来的一台物理服务器,可以虚拟成多台虚拟服务器,虚拟化后的资源更加变得可以量化。虚拟化技术,将底层的计算资源切分或合并成一个或多个运行环境,以软件的方式模拟硬件,通过软件的方式逻辑切分服务器资源,形成统一的虚拟资源池,创建虚拟机运行的独立环境。这种逻辑结构提供了灵活可变、易配置、可扩展的平台服务,并且可以实现灵活有效的分布存储和计算,从而整体上为实现强大的计算和海量数据存储能力提供基础保障。

    对虚拟化后的计算资源和存储资源进行整合,形成资源池之后,通过有效的算法进行动态分配利用,实现对资源利用率的最大化。在虚拟化技术基础上,通过资源调度算法,把云端的资源纳入统一调度,优先使用本地资源,在本地资源不足的情况下调用云端资源保证性能负载需要,实现以云计算为后台的负载均衡。本文要解决的关键技术难点是如何设计以云计算为后台的负载均衡技术架构,并设计有效的收集与分配资源算法,达到合理的资源调度,实现高效的负载均衡。

    负载均衡算法。由于业务系统的多样性,为了最大程度地支持各类具有不同负载特点的业务系统,负载均衡一般采用轮询调度最小连接调度、加权轮询调度、加权最小连接调度、最快回应分配等方法实现。

    设计健康检查机制确保服务器与应用系统及时响应,并清除无负载均衡响应的节点应用系统,避免用户请求被调度至无效的资源节点中,以保证业务系统的高可用性。

    3.3 虚拟机节点迁移

    因为云计算平台结构复杂,并且需要满足大规模的部署需求、资源需求动态变化等特性,使得虚拟机高效部署、迁移面临巨大的挑战,因此高效的虚拟机部署以及迁移策略具有非常重要的应用。

    迁移是指将虚拟机从一个计算节点迁移到另外一个节点上。主要根据是否在进行迁移时对虚拟机关机,分为冷迁移和热迁移,热迁移也被称为在线迁移,即在不关闭虚拟机的情况下进行迁移,共享内存,效率较高,因而被大多数公司企业所采纳,但因其复杂的管理,也有其性能问题的弊端,如何减少弊端也是衡量迁移效率的重要指标。

    虚拟机节点迁移时,通过心跳机制,定时监测计算资源池集群内主机的CPU、内存利用率等指标,并根据预定的规则来判断是否需要为该主机在集群内寻找有更多可用资源的主机,以将该主机上的虚拟机迁移到另外一台具有更多合适资源的服务器上,通过动态资源调整来保障系统的响应时间,实现业务系统的高可用。

    参考文献

    1. 虚拟化与云计算小组. 云计算宝典技术与实践[M]. 电子工业出版社, 2011.

    ???? 2. 索辛斯基陈健. 云计算宝典 : Cloud computing bible[M]. 电子工业出版社, 2013.

    1. https://zh.wikipedia.org/wiki/%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7
    2. 侯超平. 云计算的高可用性实现技术探讨[J]. 山东工业技术, 2016(2):269-270.
    3. https://blog.csdn.net/weixin_33730836/article/details/93843126
    4. 谭乾. 云计算环境下负载均衡策略的研究[J].? 2014.
    5. 施杨斌. 云计算环境下一种基于虚拟机动态迁移的负载均衡算法[D]. 复旦大学.
    cs