精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenStack Nova如何支持Live Upgrade

云計算 OpenStack
OpenStack半年一個版本,升級是一個怎么也躲不開的問題,總是在想如何在復雜的OpenStack部署環境中做到業務平滑升級,同時又不影響到用戶,當前的OpenStack中又有那些特性支持live-upgrade,今天以Nova作為一個開端,看看Nova中是怎么做的。

寫在最前面:

OpenStack半年一個版本,升級是一個怎么也躲不開的問題,總是在想如何在復雜的OpenStack部署環境中做到業務平滑升級,同時又不影響到用戶,當前的OpenStack中又有那些特性支持live-upgrade,今天以Nova作為一個開端,看看Nova中是怎么做的。

代碼基線:Kilo

官方文檔

如今的OpenStack官方文檔已經相對比較全面了,Operations Guide中就有一個章節專門描述了升級相關的指導,并舉了幾個版本升級的例子,雖然比較簡單,但是大體的框架和步驟都已經有了。基本的思路就是:小規模驗證 -> 備份配置文件和數據庫 -> 更新配置文件 -> 利用包管理器升級安裝包 -> 停止進程 -> 更新數據庫 -> 啟動進程 -> 再次驗證。推薦大家都仔細閱讀一下。

upgrade levels

官方文檔中專門提到了一個概念 upgrade levels,這里涉及到Nova的***個live-upgrade特性。

先稍微繞開一點,當前由于對象化的引入,nova中的api, scheduler, conductor, compute四個進程都存在循環依賴,所以不可能簡單的劃分出一個依賴樹,從樹的葉子節點開始升級,從而保證API兼容性,這種升級的方式在nova中不可行。有循環依賴也就是說,從任何一端開始升級,都有可能發生高版本client向低版本server發送消息的可能。這里就需要用到upgrade levels。

 

OpenStack Nova如何支持Live Upgrade

簡單來說就是一個rpcapi端的版本控制機制,在升級之前,rpc client端設置一個版本閥值,當rpcapi需要發送消息時,通過can_send_version方法判斷,如果超過閥值就做自動降級處理,沒有做降級處理的消息,會被禁止發送,具體實現可以參考oslo_messaging的代碼。例子如下:

  1. def shelve_offload_instance(self, ctxt, instance, 
  2.  
  3. clean_shutdown=True): 
  4.  
  5. msg_args = {‘instance’: instance} 
  6.  
  7. if self.client.can_send_version(’3.37′): 
  8.  
  9. version = ’3.37′ 
  10.  
  11. msg_args['clean_shutdown'] = clean_shutdown 
  12.  
  13. else
  14.  
  15. version = ’3.0′ 
  16.  
  17. cctxt = self.client.prepare(server=_compute_host(None, instance), 
  18.  
  19. version=version) 
  20.  
  21. cctxt.cast(ctxt, ‘shelve_offload_instance’, **msg_args) 

如果我們計劃從juno升級到kilo,首先需要設置所有rpcapi的upgrade levels為juno,這樣當我們升級的過程中,如果一個已經升到kilo版本的conductor向juno版本的compute發送rpc消息,還是會使用和juno版本rpcapi接口兼容的消息。

#p#

API序列化

每一個rpcapi的都有版本號,每次的api修改都需要調整版本號,nova通過版本號來判斷client側和server側是否兼容。

整個rpc調用分為兩個步驟,rpcapi側將整個rpc調用序列化,然后在rpc server也就是manager側收到消息,再反序列化執行。整個rpc message除了context之外,message字典結構體中還包括四個部分:

  1. method
  2. args
  3. version
  4. namespace

version標識了rpcapi的版本,在rpc server側直接通過method名稱查找manager中的函數,將args參數反序列化之后,調用method函數執行。調用之前也會在 server側,檢查rpcapi的version是否和manager的實現版本兼容,如果不兼容拋出異常。namespace用于區分 conductor中的ConductorAPI和ConductorTaskAPI。

可以看到如果我們修改代碼,調整了rpcapi的接口參數,就一定要同時更新client/server側的版本號,并在rpc server的接口實現側提供參數默認值。

在rpcapi的層面,低版本client調用高版本server,兼容支持;高版本client調用低版本server,通過upgrade levels自動降級,未做自動降級處理的禁止發送,拋出異常。

API參數序列化

除了rpcapi在升級過程中需要考慮升級兼容性,args參數中的NovaObject對象,也需要考慮升級兼容性。所有的NovaObject都有版本號跟蹤每一次的修改。

在rpcapi發送消息之前,首先對接口參數進行序列化,如果參數是NovaObject類型,都通過NovaObject的 obj_to_primitive方法轉化成dict類型之后,保存在args,如果是原始類型,直接保存在args中。rpc server接收到消息之后,將args中的接口參數反序列化,如果是NovaObject對象,通過obj_from_primitive接口反序列化。

NovaObject類中存在一個_obj_classes類屬性,其中會保存一個NovaObject的多個版本的實現,通過版本號從大到小排序,***版本就是當前代碼實現版本,較小版本由升級過程中低版本進程發送而來。

NovaObjectSerializer.deserialize_entity用于反序列化對象,如果server端當前實現版本大于發送過來的版本,直接兼容,反序列化對象。如果發送的版本大于server端實現版本,忽略最末端版本號,再次嘗試反序列化,如果仍然不能成功,就需要調用 conductor.object_backport方法,嘗試降級處理,將args參數轉化為server端可以處理的object。

#p#

升級順序

升級順序可能不同人分析有不同的結果,我這里提供一個建議順序和分析過程。

社區的operation guide中推薦的升級方式為先controller節點,然后compute節點。在我看來,這樣升級有一個好處就是可以盡早的發現問題,降低風險和回退成本。controller節點進程最多也最復雜,首先升級可以盡早的發現問題,這時回退也只需要回退controller,如果有100個 compute都升級完成了,再升級controller,如果升級失敗,就需要回退100個compute節點。

先升級controller有個問題,就是client端的版本要大于server端,也就是4.0的conductor可能調用3.0的 compute,需要用upgrade_levels控制。如果compute進行數據庫操作,就會執行NovaObject的方法,***調用到 conductor的object_class_action方法,這個方法有特殊處理,會將返回值版本轉化為調用端的版本。

綜合這幾點,推薦的一個升級順序為:

  1. conductor
  2. scheduler
  3. compute
  4. api

***升級api進程的原因是,希望所有新增接口和新增參數能在整個環境都支持的情況下,再提供給用戶使用。

升級順序并無一個定論,每種順序各有利弊,歡迎討論。升級在OpenStack中一直都是一個大問題,沒有***理論,只有***實踐,需要不斷的嘗試總結交流,希望能為OpenStack的升級成熟,盡自己的一份力。

原文鏈接:http://www.openstack.cn/?p=3404

責任編輯:Ophira 來源: OpensStack中國社區
相關推薦

2014-12-11 11:30:11

openstacknovadocker

2011-09-07 10:42:38

cloudopenstack n

2011-11-29 10:24:17

OpenStackNova

2012-02-03 09:22:57

2011-08-17 10:19:30

CentOSOpenStack N

2015-03-16 10:16:33

協同并發NovaOpenstack

2011-05-24 09:33:40

UbuntuOpenStackNova

2011-07-18 13:35:38

PuppetOpenStack

2015-05-12 10:31:25

openstack開源新特性分析

2013-04-16 09:56:33

GlusterFSOpenStack

2016-03-08 10:40:05

谷歌ios蘋果

2016-01-21 09:37:19

OpenStack容器編排引擎Docker

2014-12-03 10:19:49

OpenStack開源云計算云服務

2015-01-23 10:47:14

openstackvspheremutil-hyper

2017-06-09 14:30:31

Openstack N對象模型數據庫

2012-11-07 09:36:47

RackspaceOpenStackRightScale

2014-04-24 10:06:01

OpenStackDocker

2017-03-16 11:39:33

Openstack源碼姿勢

2009-12-17 16:16:25

2018-01-22 08:50:49

LinuxUbuntuCubic
點贊
收藏

51CTO技術棧公眾號

狠狠干综合网| 国产精品亲子伦av一区二区三区| 国产一区不卡视频| 久久91精品国产91久久跳| 婷婷中文字幕在线观看| 亚洲wwwww| 99精品视频在线免费观看| 日韩免费观看网站| 黄色精品视频在线观看| 66精品视频在线观看| 亚洲精品国产一区二区三区四区在线| 国产精品日韩一区二区| 日韩精品久久久久久免费| 日韩精品水蜜桃| 欧美电影免费提供在线观看| 青青青在线视频播放| 户外极限露出调教在线视频| 久久99国产精品麻豆| 91精品国产91久久久久久最新 | 美女视频黄免费的久久| 久久久精品久久| 日本少妇xxxx| 黑人一区二区三区| 午夜久久久久久久久| 亚洲福利av| 免费看黄色一级视频| 久久精品国语| 欧美成人免费一级人片100| 国产福利在线观看视频| 日本另类视频| 亚洲综合激情小说| 亚洲国产高清国产精品| 人妻视频一区二区三区| 精品在线观看免费| 国产精品69久久| 国产成年人免费视频| 欧美伦理在线视频| 亚洲激情自拍图| 亚洲一区二区偷拍| 成人国产精品| 精品国产电影一区| 人人妻人人澡人人爽欧美一区| 日韩av视屏| 国产成人精品网址| 成人天堂噜噜噜| 区一区二在线观看| 99综合在线| 欧美激情网友自拍| 久久久99999| 欧洲杯什么时候开赛| 精品视频偷偷看在线观看| 亚洲成人激情小说| 伊人久久大香线蕉综合影院首页| 色婷婷精品大在线视频 | 最爽无遮挡行房视频在线| 国产精品日日摸夜夜摸av| 美女视频久久| 亚洲国产精品suv| 狠狠色丁香久久婷婷综合_中| 国产精品久久激情| 永久免费无码av网站在线观看| 最新亚洲视频| 久久久欧美一区二区| 欧美xxxx黑人xyx性爽| 天天色综合色| 亚洲日本中文字幕| 国产一二三四五区| 亚洲小说图片| 国产亚洲精品一区二555| 午夜理伦三级做爰电影| 久久久久影视| 亚洲高清不卡av| 亚洲国产精品自拍视频| 女仆av观看一区| 亚洲黄色av网站| 亚洲色图14p| 国产一区调教| 日韩不卡视频在线| 成人激情视频| 久久亚洲国产成人| 久久久久噜噜噜亚洲熟女综合| 午夜精品久久久久99热蜜桃导演| 欧美精品电影免费在线观看| 你懂的国产视频| 可以看av的网站久久看| 成人春色激情网| 高清乱码毛片入口| 国产亚洲精品久| 一区二区三区一级片| 69av成人| 欧美三级三级三级爽爽爽| 色男人天堂av| 亚洲精品动态| 久久影院资源网| 国产在线视频第一页| 日韩二区在线观看| 超碰97网站| 久久久久久久久亚洲精品| ...av二区三区久久精品| 国内精品在线观看视频| 成人看片网站| 精品美女在线播放| 日韩一区二区三区四区视频| 激情综合自拍| 91精品久久久久久久久久另类| 日本精品999| 中文字幕一区二区不卡| 各处沟厕大尺度偷拍女厕嘘嘘| 日本成人一区二区| 亚洲乱码一区二区| 强乱中文字幕av一区乱码| 日本大胆欧美人术艺术动态| 国产色综合一区二区三区| 免费网站黄在线观看| 欧美日韩国产中文字幕| 欧美一级片在线免费观看| 成人高清电影网站| 97超级碰碰人国产在线观看| 国产毛片毛片毛片毛片毛片| 欧美国产综合一区二区| 亚洲不卡中文字幕无码| 精品一区二区三区亚洲| 中文字幕视频一区二区在线有码| 韩国av中文字幕| 成年人午夜久久久| 波多野结衣与黑人| 性欧美video另类hd尤物| 亚洲欧洲午夜一线一品| 日本视频免费在线| 成人国产精品免费网站| 黄色成人在线免费观看| 精品一区二区三区免费看| 久久精品国产一区| 在线观看中文字幕av| 国产女人18水真多18精品一级做| 99热在线这里只有精品| 欧美中文一区| 国自在线精品视频| 亚洲伦理在线观看| 亚洲激情在线激情| 成人在线短视频| 91精品福利| 91午夜理伦私人影院| 日本福利在线| 欧美精品vⅰdeose4hd| 亚洲女同二女同志奶水| 蜜臂av日日欢夜夜爽一区| 日韩精品伦理第一区| 美女100%一区| 国产香蕉精品视频一区二区三区| 日韩欧美在线观看免费| 国产亚洲精品7777| 天天操天天爽天天射| 日韩中文欧美| 91在线播放国产| 羞羞的视频在线看| 精品国产91乱码一区二区三区| 青娱乐国产在线视频| 成人性视频免费网站| 欧美久久在线观看| 天天躁日日躁成人字幕aⅴ| 欧美孕妇与黑人孕交| 国产午夜在线观看| 在线播放日韩导航| 久久免费黄色网址| www国产精品av| 天堂中文视频在线| 天天精品视频| 国产欧美日韩亚洲| 欧美大片免费| 日韩网站免费观看高清| 成人免费观看在线视频| 狠狠躁天天躁日日躁欧美| 欧美 日韩 国产 成人 在线观看 | 久久久中文字幕| 在线观看xxx| 欧美日韩一级二级三级| 强行糟蹋人妻hd中文| 91亚洲永久精品| 亚洲天堂2018av| 欧美日韩一区二区三区四区在线观看 | 一区二区三区动漫| 国产一区二区三区在线观看| 亚洲一区二区在线免费看| 国产激情在线免费观看| 国产伦精一区二区三区| 久久久一本二本三本| 久久中文字幕二区| 国产在线视频欧美一区二区三区| 日韩成人亚洲| 97国产成人精品视频| 在线观看国产原创自拍视频| 亚洲白拍色综合图区| 97人妻精品视频一区| 亚洲一二三区不卡| 欧美激情视频二区| 成人免费不卡视频| www.亚洲高清| 日韩视频不卡| 中文字幕欧美日韩一区二区| 欧美一级一片| 91免费在线观看网站| 另类中文字幕国产精品| 国产69精品久久久久9| 999国产在线视频| 亚洲精品v欧美精品v日韩精品| 一级特黄aaa大片| 欧美视频第一页| 久久黄色免费视频| 亚洲欧洲国产日本综合| 亚欧洲乱码视频| 菠萝蜜视频在线观看一区| 成人性生交视频免费观看| 久久精品91| www.99热这里只有精品| 亚洲综合自拍| 一区二区三区欧美成人| 免费黄色成人| 久久66热这里只有精品| 在线日韩成人| 99国产视频在线| 91精品福利观看| 国产精品免费看久久久香蕉 | 色噜噜偷拍精品综合在线| 久久久久久久久精| 亚洲人吸女人奶水| 亚洲精品卡一卡二| 中文字幕精品一区| 国产视频三区四区| 久久一区二区三区四区| 白丝校花扒腿让我c| 国产一区二区伦理| 中文字幕线观看| 毛片av中文字幕一区二区| 在线观看高清免费视频| 日韩国产一区二| 99免费视频观看| 久久精品一区二区三区中文字幕| 干日本少妇首页| 国产视频一区免费看| 少妇av一区二区三区无码| 亚洲美女黄网| www.99热这里只有精品| 在线亚洲免费| 欧美一区二区三区爽大粗免费| 亚洲毛片播放| 欧美a在线视频| 日韩激情av在线| 在线观看免费污视频| 精品一区二区三区在线观看国产 | 日韩中文字幕欧美| 欧美日韩在线看片| 欧美成人性色生活仑片| 亚洲资源一区| 久久久噜噜噜久久久| 在线毛片观看| 国产精品第七影院| 欧美综合影院| 2019国产精品视频| 亚洲高清乱码| 亚洲a成人v| 91欧美精品成人综合在线观看| 日韩亚洲国产免费| 92看片淫黄大片看国产片| 日韩三级精品| 国内成+人亚洲| 久久成人av| 中文字幕日韩一区二区三区| 午夜久久一区| 日韩国产欧美亚洲| 国产伦理一区| 国模私拍视频在线观看| 国产成人在线网站| 在线精品一区二区三区| 久久久久久免费| 色偷偷www8888| 亚洲成a人v欧美综合天堂| 天堂网中文字幕| 欧美精品亚洲一区二区在线播放| 精品久久久久成人码免费动漫| 国产视频丨精品|在线观看| 日本在线观看www| 国内精品国产三级国产在线专| 性欧美18一19sex性欧美| 亚洲一区亚洲二区亚洲三区| 外国成人在线视频| 久久久一二三四| 国产亚洲在线| 久久综合在线观看| 26uuu欧美日本| 青青青在线免费观看| 欧美午夜精品伦理| 国产三级精品在线观看| 精品亚洲国产视频| fc2ppv国产精品久久| 欧美中文字幕在线| 亚洲一二av| 亚洲一区二区免费视频软件合集| 一区在线免费观看| 97超碰成人在线| 久久久久国产精品免费免费搜索 | 日韩理论片在线| 影音先锋亚洲天堂| 日韩欧美一二三| 秋霞成人影院| 国产成人精品久久亚洲高清不卡| 国产精品传媒| 超碰免费在线公开| 日欧美一区二区| 日本一卡二卡在线| 亚洲精品中文字幕乱码三区 | 日韩免费福利电影在线观看| jyzzz在线观看视频| 欧美在线观看网址综合| 国产精品xxx在线观看| 一本色道久久88亚洲精品综合| 日本麻豆一区二区三区视频| 美国黄色一级毛片| 天天免费综合色| 免费看av毛片| 国内免费久久久久久久久久久 | 男女羞羞免费视频| 在线播放中文一区| 日本a在线播放| 国产日韩欧美在线播放| jiujiure精品视频播放| 日本xxxxxxx免费视频| 91免费视频网| 亚洲国产成人精品激情在线| 精品成人免费观看| 精精国产xxxx视频在线中文版| 91成人在线看| 国产真实久久| 亚洲图片欧美另类| 亚洲一区二区三区国产| www.四虎在线观看| 欧美国产视频日韩| caoporn成人| 日本在线xxx| 91在线观看下载| 亚洲欧美精品一区二区三区| 亚洲精品一二区| 欧美xx视频| 亚洲欧洲一区二区在线观看| 久久99精品国产麻豆婷婷| 国产在线免费看| 欧美一区二区久久| segui88久久综合| 精品不卡一区二区三区| 亚洲免费网址| 国产又粗又猛又爽又黄av| 欧美亚洲国产bt| 在线观看精品一区二区三区| 亚洲va久久久噜噜噜| 欧美天堂亚洲电影院在线观看 | mm1313亚洲国产精品无码试看| 欧美极品另类videosde| 国产乱码精品一区二三区蜜臂| 久久99国产精品自在自在app | 一区二区三区高清国产| 国产成人免费| 熟女视频一区二区三区| 丁香激情综合国产| 日韩男人的天堂| 亚洲天堂第一页| 香蕉久久久久久| 免费av手机在线观看| 国产午夜精品理论片a级大结局| 中文字幕在线一| 欧美成人午夜免费视在线看片| 久久夜色精品国产噜噜av小说| 欧美黄色一级片视频| 综合久久一区二区三区| 亚洲精品国产精品乱码不卡| 茄子视频成人在线| 久久裸体网站| 国产不卡一二三| 欧美在线播放高清精品| 欧美卡一卡二| 午夜精品区一区二区三 | 伊人网在线视频观看| 欧美日韩久久一区| 波多野结衣在线高清| 欧美日韩免费观看一区| 国产精品一二一区| 69视频免费看| 免费91在线视频| 精品日韩一区| 亚洲天堂av网站| 欧美日韩国产小视频| 国产免费拔擦拔擦8x高清在线人| 亚洲区一区二区三区| 成人福利在线看| 伊人网综合在线| 午夜精品久久久久久99热软件| 日韩欧美视频专区| 美国黄色a级片| 日韩一卡二卡三卡国产欧美| 桃子视频成人app| 九九爱精品视频|