在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

OpenStack heat HA的示例分析

130次阅读
没有评论

共计 2603 个字符,预计需要花费 7 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 OpenStack heat HA 的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

记得还在去年的时候,大家讨论 OpenStack 总离不了这样的一个问题:“OpenStack 为什么不支持虚拟机的 HA?”

当时也很奇怪,对于 HA 这样一个很基本的可靠性特性有缺失,又怎么在实际场景中使用 OpenStack 呢?

当时社区讨论的结果是:“由 OpenStack 上层组件实现 HA,OpenStack 核心模块仅提供基本的操作。”

那么这个所谓的上层组件指的是谁呢?就是 Heat。如今 Heat 已经是 OpenStack 的核心模块,也就是说 OpenStack 已经具备的 HA 的能力。

超出期望

以前我们总是说虚拟机 HA,似乎所有的功能都是围绕着虚拟机设计,已虚拟机为核心。但是从 Heat 的文档里来看,Heat 认为虚拟机之上的服务(Service)才是最终要的,对于 Heat HA 的设计,也扩展到了服务的层面,可以实现三个层次的 HA:

service

instance

stack

例如:当虚拟机上的数据库进程 down 了,首先通过重启数据库进程尝试解决,如果解决不了,重启或者重建虚拟机,如果还是解决不了,重建整个 stack。从这一点上来看 Heat HA 的功能要比单纯的虚拟机 HA 的功能强大很多。

实现

Heat 的 HA 特性是 OpenStack 多模块配合实现的,其中涉及到 Nova,Ceilometer,Heat-cfn-api,Heat-cloudwatch,Heat-cfntools 等。

?Heat-cfntools

Heat-cfntools 包括了一些和 Heat 配合使用的小工具,它们运行在虚拟机内部,在制作虚拟机镜像的时候,需要将 cfntools 打包到镜像当中,Heat 的开发者文档中,介绍了将 cfntools 打包进镜像中的方法。这里

Heat 的 HA 功能就是用到了 cfn-push-stats 对虚拟机或者服务的状态进行上报。

cfn-init – 配置虚拟机,简化 user_data 脚本

cfn-hub – 定期检测 instance metadata 是否有变化,根据变化触发用户定义的 hooks

cfn-signal – 发送执行命令成功或失败的信号

cfn-push-stats – 上报服务或虚拟机状态

cfn-get-metadata – 获取 instance metadata

有兴趣的同学可以直接 git clone 一份 cfn-tools 的代码看看。

https://github.com/openstack/heat-cfntools.git

?Heat-template

我们从 Heat 的 HA 模板入手,来分析一下怎么通过配置模板实现 Heat 的 HA。

以 github 上的 Heat 模板 WordPress_Single_Instance_With_IHA.template 为例。

... WebServerRestartPolicy  : {
  Type  :  OS::Heat::HARestarter ,
  Properties  : {InstanceId  : {  Ref  :  WikiDatabase  }
 }}, HeartbeatFailureAlarm : {
  Type :  AWS::CloudWatch::Alarm ,
  DependsOn  :  WaitCondition ,
  Properties : {AlarmDescription :  Restart the WikiDatabase if we miss a heartbeat , MetricName :  Heartbeat , Namespace :  system/linux , Statistic :  SampleCount , Period :  60 , EvaluationPeriods :  1 , Threshold :  1 , AlarmActions : [ {  Ref :  WebServerRestartPolicy  } ], ComparisonOperator :  LessThanThreshold 
 }}, WikiDatabase : {
  Type :  AWS::EC2::Instance ,
  Metadata  : {... /tmp/cfn-hup-crontab.txt  : { content  : {  Fn::Join  : [ , [ MAIL=\ \ \n , \n , * * * * * /opt/aws/bin/cfn-hup -f\n , * * * * * /opt/aws/bin/cfn-push-stats  ,  --watch  , {  Ref  :  HeartbeatFailureAlarm  },  --heartbeat\n ]]}, mode  :  000600 , owner  :  root , group  :  root },

我们先来看 /tmp/cfn-hup-crontab.txt,其实就是一个 crontab 的配置文件,在 boot instance WikiDatabase  的时候,因为配置了 UserData,所以 UserData 脚本执行的时候会调用 cfn-init 命令,cfn-init 的作用就是根据 AWS::CloudFormation::Init 段的配置,生成文件,安装软件,执行脚本等等,在 UserData 脚本的最后 cfn-hup 的 crontab 被启用。

cfn-push-stats 会每分钟向 heat-api-cloudwatch 发送一个 watch 为 HeartbeatFailureAlarm 类型的心跳请求。HeartbeatFailureAlarm 其实是一个 Ceilometer 的 Alarm。

根据 HeartbeatFailureAlarm 的配置,如果 60 秒没有收到 instance WikiDatabase 的心跳请求,就会触发 AlarmActionsOS::Heat::HARestarter,根据 Heat 对于资源 OS::Heat::HARestarter 的定义,Heat 会删除原先的虚拟机 WikiDatabase,然后重新创建一个虚拟机。

对于服务的监控大家可以参考另一个 Heat 模板 WordPress_Single_Instance_With_HA.template

看完了这篇文章,相信你对“OpenStack heat HA 的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2603字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 免费看男阳茎进女阳道动态图 | 人妻中文字幕乱人伦在线 | 成人欧美s视频在线观看 | 国产成人午夜视频 | 无码高潮喷吹在线观看 | 国产精品亚洲综合一区在线观看 | 视频一区在线播放 | 精品一区二区三区四区在线 | 夜夜躁狠狠躁日日躁视频 | 国产私拍福利精品视频推出 | 精品人妻无码区在线视频 | 亚洲午夜久久久精品影院视色 | 亚洲欧美精品一中文字幕 | 99在线观看视频免费 | 国产高清网站 | 亚洲精品专区一区二区三区 | 男男羞羞视频网站国产 | 中文字幕精品无码一区二区三区 | 小荡货奶真大水真多紧视频 | 欧美老妇疯狂xxxxbbbb | 国产一区二区三区在线视頻 | 欧美日韩a∨毛片一区 | 欧美性猛交ⅹxxx乱大交妖精 | 国产三级韩国三级日产三级 | 欧美日韩国产精品va | 日韩成人国产精品视频 | 日本爽快片毛片 | 毛片a久久99亚洲欧美毛片 | 久久天天躁狠狠躁夜夜avapp | 久草在线青青草 | 亚州视频一区 | 91网站入口最新 | 妺妺窝人体色www在线下载 | 亚洲精品精品一区 | 毛片在线全部免费观看 | 一级黄色片a | 97影院理论午夜论不卡 | 亚洲av无码专区亚洲av不卡 | 亚洲国产综合精品一区 | 国产精品久久久久久久久软件 | 久99久视频 |