中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OpenStack heat HA的示例分析

發布時間:2021-12-29 15:38:42 來源:億速云 閱讀:173 作者:小新 欄目:云計算

小編給大家分享一下 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的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

航空| 志丹县| 巫山县| 厦门市| 平乐县| 册亨县| 铜川市| 田林县| 郯城县| 石柱| 个旧市| 始兴县| 商都县| 望谟县| 嘉祥县| 商南县| 广饶县| 赤城县| 淄博市| 青川县| 临城县| 莱阳市| 隆昌县| 阿勒泰市| 四子王旗| 滁州市| 樟树市| 广州市| 济南市| 石台县| 辉南县| 阜城县| 永年县| 楚雄市| 上栗县| 沁源县| 水富县| 灵宝市| 玉门市| 湘阴县| 西宁市|