高可用性的几个级别

简介: 大家常说高可用,High Availablility,但是一般说到这个词的时候,具体指的什么方案呢?本文就将讲述高可用性的几个级别。

大家常说高可用,High Availablility,但是一般说到这个词的时候,具体指的什么方案呢?

级别一:FT (Fault Tolerance) 双击热备

image

通过创建与主实例保持虚拟同步的虚拟机,使应用在服务器发生故障的情况下也能够持续可用。

这种方法常通过使主虚拟机 和辅助虚拟机执行相同顺序的 x86指令来完成此过程。主虚拟机捕获所有输入和事件,并在辅助虚拟机上进行重放。

辅助虚拟机执行与主虚拟机相同的指令序列,如果运行主虚拟机的主机或运行辅助虚拟机的主机发生故障,则会发生即时且透明的故障切换。

虽然FT功能很强大,但是在虚拟化中很少用到FT功能,一是对资源浪费比较严重,二是性能下降比较快,由于是指令级别的同步,因而两台虚拟机之间的距离非常近,无法完全达到容灾的目的,三是如果主虚拟机因为执行非法指令蓝屏,则辅助虚拟机也马上就会发生,根本无法保证业务延续性。

级别二:虚拟机HA

image

虚拟机HA主要指在有一个共享存储池的情况下,当一台物理机挂了,这台物理机上的虚拟机可以迁移到其他物理机的机制。

因为虚拟机是有状态的,因而需要共享存储池来保证状态可以被另外一台物理机读取到。

在HA状态下,虚拟机的恢复时间一般在秒级别,也即当监控探测到物理机挂了之后,可以迅速在空闲的物理机上将虚拟机启动起来。

启动HA的物理机集群可以比较大,可以跨机架,比FT更能起到容灾的目标。

级别三:同城双活

如果一个机架,或者整个机房,甚至整个数据中心着火了,则如何保证业务的连续性呢?

image

一种常用的机制是同城双活,就是在同一个城市,距离大概30km到100km的两个数据中心之间,通过高速专线互联的方式,让两个数据中心形成一个大二层网络。

同城双活最重要的是数据如何从一个数据中心同步到另一个数据中心,并且在一个数据中心故障的时候,可以实现存储设备的切换,保证状态能够快速切换到另一个数据中心。主流的存储厂商都提供在高速光纤互联情况下,在一定距离之内的两台存储设备的近实时的同步,数据双活是一切双活的基础。

基于双数据中心的数据同步,对上看起来可以形成一个统一的存储池,从而数据库层在共享存储池的情况下可以近实时的切换,例如Oracle RAC。

虚拟机在统一的存储池的情况下,也可以实现跨机房的HA,在一个机房切换到另一个机房。

SLB负载均衡实现同一机房的各个虚拟机之间的负载均衡。

GSLB可以实现跨机房的负载均衡,实现外部访问的切换。

如果在两个数据中心距离很近,并且大二层可通的情况下,也可以使用VRRP协议,通过VIP方式进行外部访问的切换。

同城双活一般宣称是实时切换,但是真正实施起来,一般在几分钟到十几分钟,对于数据量比较大的,还会几十分钟。

级别四:异地容灾

image

当你觉得一个地方两个数据中心还是不保险,例如海啸,地震,原子弹等,则可以在异地修建容灾数据中心。

第一大问题还是数据的问题,也即生产数据中心的数据如何备份到容灾数据中心,由于异地距离比较远,不可能像双活一样采取近同步的方式,只能通过异步的方式进行同步,也可以预见的是,容灾切换的时候,数据会丢失一部分。

由于容灾数据中心平时是不用的,不会讲所有的业务都进行容灾,否则成本太高。

对于数据的问题比较建议从业务层面进行容灾,由于数据同步会比较慢,可以根据业务需求高优先级同步重要的数据,因而容灾的层次越高越好。

例如有的用户完全不想操心,则使用存储层面的异步复制,对于存储设备来讲,是无法区分放在存储上的虚拟机哪台是重要的,哪台是不重要的,完全根据块进行复制,很可能先复制了不重要的虚拟机。

如果用户想对虚拟机做区分,则可以使用虚拟机层面的异步复制,用户知道哪些虚拟机更重要一些,哪些虚拟机不重要,则可以先同步重要的虚拟机。

如果用户可以根据业务层情况,在更细的粒度上区分哪些对业务来讲是重要的数据,例如交易数据,需要优先同步,哪些对于业务来讲是不重要的数据,例如日志数据。

在有异地容灾的情况下,可以平时进行容灾演练,看容灾数据中心是否能够真正起作用,别容灾了半天,真用上的时候掉链子。

由于是异地,容灾切换的时间一般在小时级别,几个小时不等。

级别五:异地备份

备份是比容灾更加不灵活的一种方式,和容灾的不同是,容灾需要使得虚拟机的资源时刻准备着,等需要切换的时候,马上就用,数据和虚拟机还是热数据。而备份更多的是以冷数据的方式,将虚拟机镜像,数据库镜像等变成文件存放在价格比较便宜的存储上面,成本比容灾要低得多。

存储可以是专门用于备份的存储设备,也可以使用对象存储等大容量而且成本低的存储。

备份往往区分全量备份和差量备份,一般在重要的时间点保存全量备份,然后以后的一段时间保存差量备份,然后再全量备份,再差量备份。

备份恢复的过程也是从最近的全量备份开始,逐渐补足差量备份,从而达到最接近最终状态的数据。

一旦用到备份,则说明环境已经全部不在,需要重新准备环境来运行虚拟机和存储,所以恢复的时间在天级别。

原文发布时间为:2018-07-10
本文作者:刘超
本文来自云栖社区合作伙伴“程序员小灰”,了解相关信息可以关注“程序员小灰

相关文章
|
Dubbo Ubuntu Java
没有JDK和Maven,用Docker也能构建Maven工程
紧急的时候,借助Docker,在不安装JDK和Maven的环境也能构建Maven工程
2381 0
没有JDK和Maven,用Docker也能构建Maven工程
|
30天前
|
人工智能 运维 API
OpenClaw是什么?OpenClaw能做什么?OpenClaw定义介绍、能力、阿里云本地部署、模型对接与故障排查全解
OpenClaw(曾用名 Clawdbot、Moltbot)是一款遵循 MIT 协议、开源、本地优先、可执行真实任务的 AI 自动化代理引擎,以自然语言为驱动,在私有环境中完成文件操作、流程编排、浏览器自动化、多平台交互等任务,实现从“对话建议”到“自动执行”的跨越,是面向个人与团队的自托管 AI 数字员工。
4606 3
|
存储 运维 容灾
容灾的架构分析和容灾选择策略
容灾的架构分析和容灾选择策略
容灾的架构分析和容灾选择策略
|
运维 安全 Devops
DevOps实践:自动化部署的脚本编写技巧
【9月更文挑战第24天】在DevOps文化中,自动化部署是提升效率、减少人为错误的关键。本文将引导读者了解自动化部署脚本的编写方法,从基础命令到复杂逻辑,逐步深入。你将学会如何用代码简化日常任务,让重复工作变得轻松愉快。让我们一起探索自动化的世界,释放你的创造力!
470 2
|
3月前
|
存储 弹性计算 人工智能
阿里云服务器ECS计算型c9i实例规格族ecs.c9i.xlarge全解析(4核8G配置)
阿里云ECS c9i.xlarge实例,4核8G,基于CIPU架构与Intel Xeon处理器,主频3.6GHz,适合计算密集型场景。具备4Gbps网络、5万IOPS(ESSD),支持AI推理、数据分析等高负载应用,安全可靠,弹性灵活。
244 0
|
5月前
|
缓存 架构师 容灾
【架构师】什么是单元化架构?
单元化架构将系统划分为多个自包含单元,每个单元独立部署全套业务与部分数据,支持就近访问、低延迟与异地多活。用户请求在单个单元内闭环完成,提升性能与容灾能力,但需全链路改造、面临数据路由与高成本挑战,适用于大型企业核心场景。
481 1
|
关系型数据库 MySQL Go
使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
本文介绍如何使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch。1.go-mysql-elasticsearch简介go-mysql-elasticsearch是一个将MySQL数据自动同步到Elasticsearch的服务。
4698 0
|
运维 Cloud Native Devops
云原生时代的DevOps实践:自动化、持续集成与持续部署
【9月更文挑战第3天】未来,随着人工智能、大数据等技术的不断融入,DevOps实践将更加智能化和自动化。我们将看到更多创新的技术和工具涌现出来,为软件开发和运维带来更多便利和效益。同时,跨团队协作和集成也将得到进一步加强,推动软件开发向更加高效、可靠和灵活的方向发展。

热门文章

最新文章

下一篇
开通oss服务