真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何理解MigrateInstance操作

這篇文章給大家介紹如何理解Migrate Instance 操作,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

10余年的新絳網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整新絳建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“新絳網(wǎng)站設(shè)計(jì)”,“新絳網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

Migrate 操作的作用是將 instance 從當(dāng)前的計(jì)算節(jié)點(diǎn)遷移到其他節(jié)點(diǎn)上。

Migrate 不要求源和目標(biāo)節(jié)點(diǎn)必須共享存儲,當(dāng)然共享存儲也是可以的。 Migrate 前必須滿足一個條件:計(jì)算節(jié)點(diǎn)間需要配置 nova 用戶無密碼訪問。

向 nova-api 發(fā)送請求

客戶(可以是 OpenStack 最終用戶,也可以是其他程序)向 API(nova-api)發(fā)送請求:“幫我遷移這個 Instance” Migrate 操作是特權(quán)操作,只能在 Admin 的 instance 菜單中執(zhí)行

查看日志 /opt/stack/logs/n-api.log

nova-api 發(fā)送消息

nova-api 向 Messaging(RabbitMQ)發(fā)送了一條消息:“遷移這個 Instance” 查看源代碼 /opt/stack/nova/nova/compute/api.py,方法是 resize。 沒錯,是 resize 而非 migrate。
這是由于 migrate 實(shí)際上是通過 resize 操作實(shí)現(xiàn)的,至于為什么要這樣設(shè)計(jì),我們會在下一節(jié) resize 中詳細(xì)分析。

nova-scheduler 執(zhí)行調(diào)度

nova-scheduler 收到消息后,會為 instance 選擇合適的目標(biāo)計(jì)算節(jié)點(diǎn)。 查看日志 /opt/stack/logs/n-sch.log

可以看到,因?yàn)?devstack-compute1 的權(quán)值比 devstack-controller 大,最終選擇 devstack-compute1 作為目標(biāo)節(jié)點(diǎn)。

看到上面的日志,大家發(fā)現(xiàn)什么問題沒有?

在分析這段日志的時(shí)候,我發(fā)現(xiàn) scheduler 選出來的計(jì)算節(jié)點(diǎn)有可能是當(dāng)前節(jié)點(diǎn)源節(jié)點(diǎn)! 因?yàn)?scheduler 并沒在初始的時(shí)候?qū)⒃垂?jié)點(diǎn)剔除掉,而是與其他節(jié)點(diǎn)放在一起做 filter,按照這個邏輯,只要源節(jié)點(diǎn)的權(quán)值足夠大,是有可能成為目標(biāo)節(jié)點(diǎn)的。

那緊接著的問題是:如果源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)是同一個,migrate 操作會怎樣進(jìn)行呢?

實(shí)驗(yàn)得知,nova-compute 在做 migrate 的時(shí)候會檢查目標(biāo)節(jié)點(diǎn),如果發(fā)現(xiàn)目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)相同,會拋出 UnableToMigrateToSelf 異常。Nova-compute 失敗之后,scheduler 會重新調(diào)度,由于有 RetryFilter,會將之前選擇的源節(jié)點(diǎn)過濾掉,這樣就能選到不同的計(jì)算節(jié)點(diǎn)了。 關(guān)于 RetryFilter,大家還有印象嗎?如果生疏了可以看前面章節(jié)。

好,言歸正傳。在上面的操作中 sheduler 選擇的目標(biāo)節(jié)點(diǎn)是 devstack-compute1,意味著 instance 將從 devstack-controller 遷移到 devstack-compute1。

nova-scheduler 發(fā)送消息

nova-scheduler 發(fā)送消息,通知計(jì)算節(jié)點(diǎn)可以遷移 instance 了。 源代碼在 /opt/stack/nova/nova/scheduler/filter_scheduler.py 第 95 行,方法為 select_destinations

nova-compute 執(zhí)行操作

nova-compute 會在源計(jì)算節(jié)點(diǎn)和目標(biāo)計(jì)算節(jié)點(diǎn)上分別執(zhí)行操作。

源計(jì)算節(jié)點(diǎn) devstack-controller

遷移操作在源節(jié)點(diǎn)上首先會關(guān)閉 instance,然后將 instance 的鏡像文件傳到目標(biāo)節(jié)點(diǎn)上。 日志在 /opt/stack/logs/n-cpu.log,具體步驟如下:

開始 migrate

在目標(biāo)節(jié)點(diǎn)上創(chuàng)建 instance 的目錄

nova-compute 首先會嘗試通過 ssh 在目標(biāo)節(jié)點(diǎn)上的 instance 目錄里 touch 一個臨時(shí)文件,日志如下

如果 touch 失敗,說明目標(biāo)節(jié)點(diǎn)上還沒有該 instance 的目錄,也就是說,源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)沒有共享存儲。那么接下來就要在目標(biāo)節(jié)點(diǎn)上創(chuàng)建 instance 的目錄,日志如下

關(guān)閉 instance

將 instance 的鏡像文件通過 scp 傳到目標(biāo)節(jié)點(diǎn)上

目標(biāo)計(jì)算節(jié)點(diǎn) devstack-compute1

在目標(biāo)節(jié)點(diǎn)上啟動 instance,過程與 launch instance 非常類似。 會經(jīng)過如下幾個步驟: 1. 為 instance 準(zhǔn)備 CPU、內(nèi)存和磁盤資源 2. 創(chuàng)建 instance 鏡像文件 3. 創(chuàng)建 instance 的 XML 定義文件 4. 創(chuàng)建虛擬網(wǎng)絡(luò)并啟動 instance

日志記錄在 /opt/stack/logs/n-cpu.log,分析留給大家練習(xí)。

Confirm

這時(shí),instance 會處于 “Confirm or Revert Resize/Migrate”狀態(tài),需要用戶確認(rèn)或者回退當(dāng)前的遷移操作,實(shí)際上給了用戶一個反悔的機(jī)會。

當(dāng)我們按下 Confirm 按鈕后,會發(fā)生如下事情:

  1. nova-api 接收到 confirm 的消息

  2. 源計(jì)算節(jié)點(diǎn)刪除 instance 的目錄,并在 Hypervisor 上刪除 instance。

  3. 目標(biāo)計(jì)算節(jié)點(diǎn)不需要做任何事情

Revert

如果執(zhí)行的是 Revert 操作會發(fā)生什么事情呢?

  1. nova-api 接收到 revert 的消息

  2. 在目標(biāo)計(jì)算節(jié)點(diǎn)上關(guān)閉 instance,刪除 instance 的目錄,并在 Hypervisor 上刪除 instance。

  3. 源計(jì)算節(jié)點(diǎn)上啟動 instance 因?yàn)橹斑w移的時(shí)候只是在源節(jié)點(diǎn)上關(guān)閉了該 instance,revert 操作只需重新啟動 instance。

以上是 Migrate 操作的完整流程,這里有一點(diǎn)需要特別注意: 遷移過程中源和目標(biāo)節(jié)點(diǎn)之前需要使用 ssh 和 scp,為了使操作順利進(jìn)行,必須要保證 nova-compute 進(jìn)程的啟動用戶(通常是 nova,也可能是 root,可以通過 ps 命令確認(rèn))能夠在計(jì)算節(jié)點(diǎn)之間無密碼訪問。否則 nova-compute 會等待密碼輸入,但后臺服務(wù)是無法輸入密碼的,遷移操作會一直卡在那里。

關(guān)于如何理解Migrate Instance 操作就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)站名稱:如何理解MigrateInstance操作
網(wǎng)址分享:http://weahome.cn/article/ppehih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部