cloudstack内部的VM HA和Host HA

2023-11-07

CloudStack的HA功能分为VM的HA和Host的HA

基于VM 启用VM的HA功能后,如果VM异常宕机(crash)或者进程被异常终止(而并非主机原因),CS会自动检测并尝试在当前主机重新开启该VM
前提 1.VM被从内部(init 0, halt ,shutdown)关闭,或进程被杀掉。2.不能使用cloudstack控制界面关闭。
备注 如果是使用cloudstack控制界面关闭,那该VM不会进行HA尝试。如果是前提1中方法导致VM关闭,CS会自动重新启动该VM。


基于HOST
前提 启用主机的HA功能后,如果物理主机异常宕机或者出现物理损坏,CS会尝试将在该主机上面的虚拟机,在打了HA tag的主机上面重新启动。
备注 1.不能使用reboot,shutdown这些命令关闭物理主机。2.必须是被动、异常关闭,而不是主动关闭主机。3.比如:系统crash、断电,网络故障等。
原理:cloudstack-manager在内存中记录物理主机存活状态,如果manager通过cloudstack-agent接收到物理主机正常关闭时,则把内存信息中的该物理主机T除掉,
那么主动T除的情况下,是不会发生HA切换的。
即使是因为物理主机网络异常触发的HA,所有VM都会被关闭并且在打了HA标签的主机上重新启动。所以就是VM重新在其他服务器上启动的过程。


基于VM+HOST 2者结合,才真正实现高可用性。 生产中,推荐该做法。基于VM和基于HOST的高可用实际是为了尽可能的考虑稳定性和服务的持续性。
面对生产环境,很难讲会发生什么样的事情,单一的VM高可用和HOST的高可用都可能带来所谓的单点故障。所以,在规划CloudStack部署时。
应该考虑到各方面的隐患和潜在故障来源。网络波动,存储性能,硬件问题,系统资源不足等问题可能会造成的抽风。


注意:1.如果你有2台服务器,那不要在2台主机上面同时设置主机ha标签。设置ha标签的服务器只是备用机,不能在群集里面所以的机器都是备用机。2.在一个群集中,启用HOST高可用的服务器挂了之后,
其上的vm会自动在设置ha标签的服务器上面运行。
如果在所有服务器中全部设置ha标签,巧的是SSVM+CPVM正好也在你关闭的那台服务器上面,,,那,你悲催了。因为新的SSVM+CPVM会被创建,同时会失败。看management日志会得到如下信息:


NFO[storage.secondary.SecondaryStorageManagerImpl](secstorage-1:)Unable tostartsecondary storage vmforstandbycapacity,secStorageVm vmId:4,will recycle itandstartanewone


WARN[cloud.consoleproxy.ConsoleProxyManagerImpl](consoleproxy-1:)Exceptionwhiletrying tostartconsoleproxy


com.cloud.exception.InsufficientServerCapacityException:Unable tocreatea deploymentforVM[ConsoleProxy|v-5-VM]Scope=interfacecom.cloud.dc.DataCenter;id=1


at com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:841)


at com.cloud.vm.VirtualMachineManagerImpl.start(VirtualMachineManagerImpl.java:577)


at com.cloud.vm.VirtualMachineManagerImpl.start(VirtualMachineManagerImpl.java:570)


at com.cloud.consoleproxy.ConsoleProxyManagerImpl.startProxy(ConsoleProxyManagerImpl.java:556)


at com.cloud.consoleproxy.ConsoleProxyManagerImpl.allocCapacity(ConsoleProxyManagerImpl.java:928)


at com.cloud.consoleproxy.ConsoleProxyManagerImpl.expandPool(ConsoleProxyManagerImpl.java:1672)


at com.cloud.consoleproxy.ConsoleProxyManagerImpl.expandPool(ConsoleProxyManagerImpl.java:157)


at com.cloud.vm.SystemVmLoadScanner.loadScan(SystemVmLoadScanner.java:111)


at com.cloud.vm.SystemVmLoadScanner.access$100(SystemVmLoadScanner.java:33)


at com.cloud.vm.SystemVmLoadScanner$1.reallyRun(SystemVmLoadScanner.java:81)


at com.cloud.vm.SystemVmLoadScanner$1.run(SystemVmLoadScanner.java:72)


atjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)


atjava.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)


atjava.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)


atjava.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)


atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)


atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)


atjava.lang.Thread.run(Thread.java:744)


这个报错熟悉吧。。。意思是说你服务器资源不够了等等。。。但实际呢,你把其中一台服务器的ha标签给取消就恢复正常了。坑爹。大概是因为如果群集里面的服务器都开启功能且设置ha标签,
没有一个权重设置该vm改在哪台主机上面运行,所以就冲突了。但是报这个资源不足的错误,我表示无法接受。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cloudstack内部的VM HA和Host HA 的相关文章

  • C++:常见错误LNK2019的几种原因

    转自 https www cnblogs com thisway p 5497200 html error LNK2019问题在VC 6 0中是error LNK2001 unresolved external symbol问题 可能错误号
  • NEUQ OJ 1233: 幸运儿

    题目描述 n 个人围成一圈 并依次编号1 n 从编号为1 的人开始 按顺时针方向每隔一人选出一个 剩下的人重新围成一圈 如此循环直到剩下两人 这剩下的两人就是幸运儿 如果你想成为最后两个幸运儿 请问开始时应该站在什么位置 设3 lt n l
  • 阻止默认事件的方法_React 基础:3种事件绑定方式,避免 this 引用丢失

    前言 这系列是 React 基础教程 参考 React 官网 记录了自己入门学习 React 的笔记 不太适合有 React 丰富经验的同学 但希望看到此文的你 多少都有些收获 文章代码均可在我的码云中找到 https gitee com
  • flutter图片预览_Flutter 视频缩略图

    在做即时通讯前整理了一个视频缩略图的工具类 可供码农直接放入项目中使用 涉及到的插件 video player 0 10 11 2 话不多说代码如下 import package flutter material dart import p
  • Linux系统架构概述

    一 Unix Linux架构 严格意义上 操作系统定义为 控制计算机硬件资源的软件 同时提供坏境让程序可以运行 Linux系统一般有4个主要部分 内核 shell 文件系统和应用程序 内核 shell和文件系统一起形成了基本的操作系统结构
  • 【DahO安装及使用】

    1 安装 Step 1 官网注册帐号 注册地址在这里 注册完毕默认登录 Step 2 点击下载链接 下载你需要的版本 这里 我下载的是DashO的Windows版本 下载完毕后官方会向您发送邮件 复制其中的 key Step 3 下载完毕后
  • 程序员常用的快捷键,你都用到了吗

    Windows系列 Windows M 最小化所有窗口 Windows R 运行某个程序 打开运行窗口 开启运行对话框 Windows E 快速打开我的电脑 Windows L 电脑锁屏 Windows D 显示 恢复桌面 Windows
  • 华为OD机试 - 找终点(Java)

    题目描述 给定一个正整数数组 设为nums 最大为100个成员 求从第一个成员开始 正好走到数组最后一个成员 所使用的最少步骤数 要求 第一步必须从第一元素开始 且1 lt 第一步的步长
  • Java面向对象编程

    下列关于线程的说法错误的是 A 耗时的操作使用线程 提高程序响应 B 耗内存的操作使用线程 提高内存利用率 C 多CPU的系统使用线程 提高CPU利用率 D 并行操作使用线程 如c s架构中服务端程序为每个客户端请求创建一个线程来响应 答案
  • Linux下cppcheck静态检测工具

    1 cppcheck工具说明 cppcheck工具是一个C C 代码缺陷静态检查工具 它不仅可以检查代码中的语法错误 还可以检查出编译器检查不出来的缺陷 从而辅助提升代码质量 2 Linux下cppcheck工具安装 Linux终端输入 s
  • NIO之多路复用

    一 NIO简介 1 Java BIO 同步并阻塞 传统阻塞型 服务器实现模式为一个连接一个线程 即客户端有连接请求时服务器端就需要启动一个线程进行处理 如果这个线程不做任何事情就会造成不必要的开销 2 Java NIO 同步非阻塞 服务器实

随机推荐

  • js高阶函数

    高阶函数特点 1 函数的返回值是一个函数 2 函数的参数是一个函数 回调函数 高阶函数作用 1 将函数的参数预置 2 对函数进行功能扩展 高阶函数应用 闭包是基于高阶函数特性产生的 但高阶函数不一定就是闭包 Promise 函数柯里化 函数
  • react native中ScrollView嵌套TextInput安卓端有滑动问题

    react native中ScrollView嵌套TextInput安卓端有滑动问题 1 1 问题描述 react native中ScrollView嵌套TextInput TextInput组件设置了 textAligin right 后
  • Spring的BeanNameAware和BeanFactoryAware接口

    BeanNameAware 作用 让Bean获取自己在BeanFactory配置中的名字 根据情况是id或者name Spring自动调用 并且会在Spring自身完成Bean配置之后 且在调用任何Bean生命周期回调 初始化或者销毁 方法
  • Python装饰器学习(九步入门)

    原文链接 http www cnblogs com rhcad archive 2011 12 21 2295507 html 本文对原文略有改动 增加了自己的理解 装饰器其实也就是一个函数 一个用来包装函数的函数 返回一个修改之后的函数对
  • 【Python_Selenium学习笔记(三)】基于Selenium模块实现无界面模式 & 执行JS脚本(把滚动条拉到底部)

    基于Selenium模块实现无界面模式 执行JS脚本 把滚动条拉到底部 前言 此篇文章主要介绍如何使用 Selenium 模块实现 无界面模式 执行JS脚本 把滚动条拉到底部 并以具体的示例进行展示 正文 1 Selenium 设置无界面模
  • 【云原生之kubernetes实战】在k8s下部署Gitblit服务器

    云原生之kubernetes实战 在k8s下部署Gitblit服务器 一 Gitblit介绍 1 Gitblit简介 2 Gitblit特点 二 检查本地k8s环境 1 检查工作节点状态 2 检查系统pod状态 三 编辑gitblit ya
  • 树莓派4b: 初级使用(Ubuntu21.10,Windows11写入SSD,远程连接,软路由搭建,webmin安装,自建Dockerhub,远程管理, 百度云盘,阿里云盘同步等)

    虽然vps也便宜 但还是想买4b 树莓派4b显示器接线为 hdmini 买时没有附赠 所以以下均为mac系统下通过ssh操作 文章来自 http blog csdn net intbird 转载请说明出处 rasberrypi 4b 0 服
  • Java线程池execute()方法源码解析

    先看作者给出的注释来理解线程池到底有什么作用 Thread pools address two different problems they usually provide improved performance when execut
  • Git&GitHub简明使用

    主体内容来自B站UP主冯雨的视频教程 此为个人笔记分享 同时涉及对原视频的一些补充 原视频链接 语雀笔记链接 介绍 Git和GitHub是什么 Git是一个运行在电脑上的版本控制软件 GitHub是基于Git打造的网站 Git的三个概念 提
  • 史上最全python14张思维导图+零基础学习路线图,高清图可下载

    python语言是一个面向对象的编程语言 学习的难度比较小 python学习比较的简单 发展非常的好 比较的好找工作 而且相对发展也要比其他的编程语言少很多 python自学的过程中 可以去网上找一些基础的教学视频 像是python基础视频
  • 第十一届“泰迪杯”数据挖掘挑战赛赛前指导安排

    第十一届 泰迪杯 挑战赛报名一周了 许多的参赛队伍及带队老师都在咨询我们赛前指导安排及内容 今年的赛前指导安排还是分为了赛前指导录播课程及赛前指导直播两个模块 小编这就为大家介绍一下吧 赛前指导 赛前指导录播课程 2月25日9 00 4月1
  • eclipse安装教程(2023年2月)

    本人大数据专业 目前初学后端 也是初次安装 自己一步一步下载的过程 首先 单击到eclipse官网 在此页面向下滑动 可以看到第二个版本 比较适合我们初学者 结合自己电脑版本 选择右边对应版本进行点击 上述操作后 选择 gt gt Sele
  • Jacob处理Word文档的方法

    7 4 使用Jacob来处理Word文档 Word或Excel程序是以一种COM组件形式存在的 如果能够在Java中调用Word的COM组件 就能使用它的方法来获取Word文档中的文本信息 目前网上有许多提供这样的工具 7 4 1 Jaco
  • FIR滤波器和IIR滤波器的区别和选择

    1 在相同技术指标下 IIR滤波器由于存在着输出对输入的反馈 因而可用比FIR滤波器较少的阶数来满足指标的要求 这样一来所用的存储单元少 运算次数少 较为经济 例如用频率抽样法设计阻带衰减为 20db的FIR滤波器 其阶数要33阶才能达到
  • ubuntu:操作mysql

    ubuntu 操作mysql 1 终端启动MySQL etc init d mysql start 2 登录MySQL mysql u root p 用root账户登录 然后输入密码 3 查看所有的数据库名字 show databases
  • JPEG、GIF、PNG、BMP哪种图片格式的图片清晰一点

    BMP格式的图片是无损保存 质量最好 JPEG 是有损压缩 文件后辍名为 jpg 或 jpeg GIF 是用于压缩具有单调颜色和清晰细节的图像 如线状图 徽标或带文字的插图 的标准格式 PNG PNG使用从LZ77派生的无损数据压缩算法 一
  • 【算法】——冒泡排序与快速排序的分析

    目录 冒泡排序 冒泡排序的总结 快速排序 1 hoare版本 2 挖坑法 3 前后指针法 快排优化 优化一 三数取中 优化二 小区间优化 快速排序的总结 冒泡排序 冒泡排序的基本思想时 冒泡排序的步骤很简单 只需要将较大的值往后挪 直到将最
  • Unity编辑器编译性能调研

    1 测试模型对编译速度的影响 参考 提高Unity编译dll的速度 赵青青 博客园 cnblogs com 参考 1条消息 Unity插件推荐Editor Console Pro 那远远的云端 CSDN博客 2 测试场景模型 3 测试VSC
  • 02 二叉树的DFS(前序、中序或后序遍历实现)【Binary Tree 二叉树】

    二叉树的深度优先遍历主要有三种 前序 根左右 中序 左根右 后序 左右根 下面是完整的实现和讲解 include
  • cloudstack内部的VM HA和Host HA

    CloudStack的HA功能分为VM的HA和Host的HA 基于VM 启用VM的HA功能后 如果VM异常宕机 crash 或者进程被异常终止 而并非主机原因 CS会自动检测并尝试在当前主机重新开启该VM 前提 1 VM被从内部 init