高可用性的几个级别

转载自  高可用性的几个级别

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

 

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

 

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

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

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

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

级别二:虚拟机HA

 

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

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

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

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

 

级别三:同城双活

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

 

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

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

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

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

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

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

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

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

 

级别四:异地容灾

 

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

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

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

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

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

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

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

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

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

 

级别五:异地备份

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)

/** * Title: BaseImpl.java * Package org.dao.impl * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-6-6 下午4:12:02 * version V1.0 */ package org.dao.impl;import java.io.Serializable; import java.lang.refl…

后端讲师管理模块

后端讲师管理模块 后端项目的结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hTdcdNmT-1611036676306)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20210118223028941.png)] [外链图片转存失败,源站可能有防盗链机制,…

mysql - Docker Wordpress连接到本地主机上的数据库服务器

视频上面的 docker service create --name mysql -p 3306:3306 --env MYSQL_ROOT_PASSWORDroot \ --env MYSQL_DATABASEwordpress \ --network demo \ --mount typevolume,sourcemysql-data,destination/var/lib/mysql \ mysql:5.7 docker service create -…

CoreCRM 开发实录——开始之新项目的技术选择

2016年11月,接受了一个工作,是对“悟空CRM”进行一些修补。这是一个不错的 CRM,开源,并提供一个 SaaS 的服务。正好微软的 .NET Core 和 ASP.NET Core 也发布了。于是就有了这个想法:使用 ASP.NET Core 来开发一个 CRM…

80%的程序员都不了解的调试技巧

转载自 80%的程序员都不了解的调试技巧 程序员的工作内容,除了大部分时间写代码之外,因为有不少的时间是用在调试代码上。甚至说不是在调试代码,就是即将调试代码。 :) 今天我们来谈谈调试代码的一些技巧,在使用IDE提供的debu…

使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)

/** * Title: EmpDaoImpl.java * Package org.dao.impl * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-6-3 下午2:42:51 * version V1.0 */ package org.dao.impl;import java.io.Serializable; import java.util.Li…

复制vmware overLay网络无法ping通 ping www.baidu.com可以

因为忘记关闭防火墙了!!!!! 要永久关闭!! 修改hostname https://blog.csdn.net/qq_27327261/article/details/109100219 关闭防火墙 https://blog.csdn.net/qq_27327261/article/details/1…

2016.NET Core相关内容回顾

每一年的脚步的确是快,转眼间马上就2017。.NET Core 2014年宣布开源以来,在2016年发布了第一个版本,2017年将发布第二个版本,在这新年之际,我们回顾2016年,新的一年,带着理想和抱负继续出发。 1…

使用JDBCTemplate实现与Spring结合,方法公用 ——Spring配置(applicationContext.xml)

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xs…

微服务化的数据库设计与读写分离

转载自 微服务化的数据库设计与读写分离 数据库永远是应用最关键的一环&#xff0c;同时越到高并发阶段&#xff0c;数据库往往成为瓶颈&#xff0c;如果数据库表和索引不在一开始就进行良好的设计&#xff0c;则后期数据库横向扩展&#xff0c;分库分表都会遇到困难。 对于…

centos7 切换中文输入法 无需安装

*************** 当你发现自己的才华撑不起野心时&#xff0c;就请安静下来学习吧&#xff01;***************

Consul 服务注册与服务发现

1. 服务注册 对 Consul 进行服务注册之前&#xff0c;需要先部署一个服务站点&#xff0c;我们可以使用 ASP.NET Core 创建 Web 应用程序&#xff0c;并且部署到 Ubuntu 服务器上。 ASP.NET Core Hell World 应用程序示例代码&#xff0c;只需要三个文件&#xff0c;Startup.cs…

Java Base64 编码解码方案总结

转载自 Java Base64 编码解码方案总结 Base64是一种能将任意Binary资料用64种字元组合成字串的方法&#xff0c;而这个Binary资料和字串资料彼此之间是可以互相转换的&#xff0c;十分方便。在实际应用上&#xff0c;Base64除了能将Binary资料可视化之外&#xff0c;也常用来…

babel基本使用

babel 转码器es6->es5 第一步 安装babel工具&#xff0c;使用命令,查看版本号 npm install --global babel-clibabel --version第二步 配置文件 .babelrc&#xff08;后缀名固定&#xff09; {"presets": ["es2015"],"plugins": [] }第…

tar (child): .tgz\r:无法 open: 没有那个文件或目录

Linux下运行bash脚本显示“: /usr/bin/env: "bash\r": 没有那个文件或目录 程序员小熊 2017-12-18 14:45:45 18395 收藏 7 分类专栏&#xff1a; Linux 版权 用 ./ 运行bash脚本文件出现 报错信息 /usr/bin/env: "bash\r": 没有那个文件或目录 错误原…

Entity Framework Core 1.1 升级通告

Entity Framework Core&#xff08;EF Core&#xff09;是一个轻量级的&#xff0c;可扩展和实体框架的跨平台版本。今天&#xff0c;我们宣布 Entity Framewor Core 1.1 正式可用了。 EF Core 和 .NET Core 遵循相同的发行周期。每2个月不断的改进和每6个月的新功能发布。这是…

聊聊微服务架构及分布式事务解决方案

转载自 聊聊微服务架构及分布式事务解决方案 分布式事务场景如何设计系统架构及解决数据一致性问题&#xff0c;个人理解最终方案把握以下原则就可以了&#xff0c;那就是&#xff1a;大事务小事务&#xff08;原子事务&#xff09;异步&#xff08;消息通知&#xff09;&am…

2014年JAVA省赛B组---第四题---大衍数列

【答案】&#xff1a; i % 2 0 public class TEST { // 奇偶数判断&#xff1a;x % 2 0public static void main(String[] args) {for (int i 1; i < 100; i) {if (i % 2 0) // 填空System.out.println(i * i / 2);elseSystem.out.println((i * i - 1) / 2);}}}

使用熔断器设计模式保护软件

作为软件开发人员&#xff0c;我们的生活是快节奏的&#xff0c;我们采用的是敏捷软件开发方法&#xff0c;迭代式的开发我们软件功能&#xff0c;开发完成提交测试&#xff0c;通过了QA的测试后被部署到生产环境&#xff0c;然后可怕的事情在生产环境里发生了&#xff0c;生产…

好的句子

"大概每个人都会遇到一个不能在一起的人&#xff0c;放手舍不得&#xff0c;坚持又太累&#xff0c;这样的爱而不得最是煎熬。" 你要去做一个懂事的大人&#xff0c;不要回头&#xff0c;不要难过。