背景

在云服务中HA(High Available)有着非常重要的意义。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。当活动节点出现问题,导致正在运行的业务(任务)不能正常运行时,备用节点此时就会侦测到,并立即接续活动节点来执行业务。从而实现业务的不中断或短暂中断。

Openstack组件间的HA

官方提供了2种配置方案主从模式(Active/Passive)和双活(Active/Active)。
实现(Active/Passive)需要借助于pacemaker来实现自身服务的HA机制 ,(即通过注册成为pacemaker的一个resource,然后将自身的行为交由pacemaker来进行管理),用来提高可靠性。而(Active/Active)模式则是使用了HAproxy来进行负载均衡的管理,用来提高性能。而在实际部署过程中,通常需要将两种模式根据实际业务的情况来进行考量配置。例如,对于访问比较密集的api服务配置为(Active/Active)来实现负载均衡,但是需要用第三方工具来保证服务的可靠。而对数据库等数据重要组件则使用(Active/Passive)来保证数据的高可靠性。

Openstack VM的HA

到目前为止并没有一个完整的使用说明。但是从目前实现的功能来看,Openstack自身已经具备了一些HA的功能。
1.在nova中提供了Evacuate命令来实现,将VM从失败的Compute节点在目标节点上rebuild。这一功能的实现需要依赖源节点和目标节点间有共享存储。
2.在VM的HA当中,对于Compute节点是否故障的判断需要非常的精细,目前在Openstack中每个nova-compute服务启动时都会启动一个定时器,定期的将心跳写入到数据库中,这样可以从控制节点方便的知道Compute节点的状态。
但是Openstack仅仅拥有这些弄能还不足以完成对VM HA功能的完美支持。
1.只是通过nova-compute服务来确定Compute节点的状态时不可靠的,例如仅仅是nova-compute服务失效,或者网络闪断时,也会造成心跳的过期,从而对是否进行HA不能进行准确的判断。因此需要通过其他方式来确保准确获得节点的状态。
2.Openstack没有对VM进行加锁,因此在进行Evacuate命令时,会出现脑裂(同一个disk启动多个VM的情况)。
3.对于需要保护的虚拟机需要提供一个列表,用来表明哪些VM是用来保护的。目前的Evacuate命令会奖失败主机上的所有虚拟机无差别进行rebuild这样的实现也是不太合理的。

总结

Openstack的HA机制并不完善,还有很大的空间来提升。虽然并不需要像VMware那样对待虚拟机进行精细化的管理,但是对于使用云服务的用户来说,对于VM好的HA机制还是必不可少的。

Openstack 使用Evacuate来实现HA相关推荐

  1. 理解 OpenStack 高可用(HA) (6): MySQL HA

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  2. 聊聊OpenStack运维架构

    前言 想一想,从事OpenStack杂七杂八的事儿,至今正好三年半了.做过QA测试(手动的.自动的).CI(gerrit.jenkins.gitlab.harbor).云产品封装(从系统pxe到ope ...

  3. 4年!我对OpenStack运维架构的总结

    前言 应"云技术社区"北极熊之邀,写点东西.思来想去云计算范畴实在广泛,自然就聊点最近话题异常火热,让广大云计算从业者爱之深.痛之切,想说一声爱你,不容易的OpenStack吧. ...

  4. ZStack深度试用:部署、架构与网络及其与OpenStack的对比

    摘要:本文是开源IaaS软件ZStack的深度试用报告,分别从部署.架构和网络三个层面分享作者的试用体验,并与OpenStack进行简单的对比,文章最后也对ZStack的改进方向提出了自己的思考.(转 ...

  5. 对OpenStack运维架构的总结(转)

    这里,仅从技术角度出发,谈谈OpenStack云平台在部署.架构和运维实施等方面的感想. 缘起,在2014年大二首次接触到OpenStack,当时国内外资料远没有当前这么丰富,为安装一个OpenSta ...

  6. 转-4年!我对OpenStack运维架构的总结

    4年!我对OpenStack运维架构的总结 原创: 徐超 云技术之家 今天 前言 应"云技术社区"北极熊之邀,写点东西.思来想去云计算范畴实在广泛,自然就聊点最近话题异常火热,让广 ...

  7. Kubernetes — 使用 kubeadm 部署高可用集群

    目录 文章目录 目录 Kubernetes 在生产环境中架构 高可用集群部署拓扑 1.网络代理配置 2.Load Balancer 环境准备 3.Kubernetes Cluster 环境准备 安装 ...

  8. Centos7之pacemaker高可用安装配置

    目录 1.配置防火墙端口及关闭selinux. 3 2.配置hostname:... 3 3.时间同步(可忽略):... 4 4.双机互信(本次实验发现,不配置双机互信似乎也不会出现问题):... 4 ...

  9. OpenStack高可用(HA)和灾备(DR)解决方案

    一.基础知识 1.1 高可用 (High Availability,简称 HA) 高可用性是指提供在本地系统单个组件故障情况下,能继续访问应用的能力,无论这个故障是业务流程.物理设施.IT软/硬件的故 ...

  10. openstack ha 部署

    一.控制节点架构如下图: 二.初始化环境: 1.配置IP地址: 1.节点1:ip addr add dev eth0 192.168.142.110/24 echo 'ip addr add dev ...

最新文章

  1. 阿里P9:架构师最根本的差距是思维!
  2. python能在excel运行吗-使用PyXLL在Excel中执行Python脚本
  3. windows下的C/C++精确计时
  4. 面试可以,但别打扰我睡觉! | 今日最佳
  5. 产品经验谈:推荐系统实战案例-如何寻找有用的用户行为?
  6. OpenCV示例学习(七):离散傅里变换(DFT)算子:getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize()
  7. nfc和红外线的区别_红外,蓝牙,WiFi,NFC区别及优缺点
  8. 论文笔记_S2D.29_2017_CVPR_多尺度连续CRFs作为序列深度网络的单目深度估计
  9. Go基础-Go中的import
  10. 用matplotlib中的scatter方法画散点图
  11. 学习如何看懂SQL Server执行计划(一)——数据查询篇
  12. 如何撰写网络营销策划方案?
  13. rimworld简单机器人mod_rimworld分类技能机器人mod
  14. vue:前端导出PDF 加图片:前端
  15. 二维码怎么知道自己被扫描 ()==> java 篇 带一点点(Android)
  16. 宝塔面板nginx域名配置
  17. Python深度学习(4):猫狗分类
  18. java join的用法
  19. Python语言基础学习报告(心得与体会)
  20. Spring+quartz 动态任务调度

热门文章

  1. Oracle AutoVue 文件查看器Server服务器版安装及要求
  2. Spark开发环境的搭建(一)
  3. 2021年安全生产模拟考试(全国特种作业操作证电工作业-防爆电气模拟考试题库二)安考星
  4. phpwind不支持php7,PHP论坛程序PHPWind 7发布 新增四个功能
  5. WPF3D贴图:用C#搓一个地球
  6. 漫画制作软件Comic Strip Factory Mac
  7. sqlplus执行语句报错:unknown command beginning解决方案
  8. xt.loadOnStartup web应用程序[]中的Servlet[springmvc]引发了load()
  9. Typora保存文章到本地并查看源代码的方法(简)
  10. Arcmap技巧总结(豆丁)