溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解Resize Instance操作

發(fā)布時(shí)間:2021-11-19 16:27:57 來源:億速云 閱讀:123 作者:柒染 欄目:云計(jì)算

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

Resize 的作用是調(diào)整 instance 的 vCPU、內(nèi)存和磁盤資源。

Instance 需要多少資源是定義在 flavor 中的,resize 操作是通過為 instance 選擇新的 flavor 來調(diào)整資源的分配。

有了前面對(duì) Migrate 的分析,再來看 Resize 的實(shí)現(xiàn)就非常簡(jiǎn)單了。 因?yàn)?instance 需要分配的資源發(fā)生了變化,在 resize 之前需要借助 nova-scheduler 重新為 instance 選擇一個(gè)合適的計(jì)算節(jié)點(diǎn),如果選擇的節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)不是同一個(gè),那么就需要做 Migrate。

所以本質(zhì)上講:Resize 是在 Migrate 的同時(shí)應(yīng)用新的 flavor。 Migrate 可以看做是 resize 的一個(gè)特例: flavor 沒發(fā)生變化的 resize,這也是為什么我們?cè)谏弦还?jié)日志中看到 migrate 實(shí)際上是在執(zhí)行 resize 操作。

Resize 分兩種情況:

  1. nova-scheduler 選擇的目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)是不同節(jié)點(diǎn)。操作過程跟上一節(jié) Migrate 幾乎完全一樣,只是在目標(biāo)節(jié)點(diǎn)啟動(dòng) instance 的時(shí)候按新的 flavor 分配資源。 同時(shí),因?yàn)橐绻?jié)點(diǎn)復(fù)制文件,也必須要保證 nova-compute 進(jìn)程的啟動(dòng)用戶(通常是 nova,也可能是 root,可以通過 ps 命令確認(rèn))能夠在計(jì)算節(jié)點(diǎn)之間無密碼訪問。 對(duì)這一種情況我們不再贅述,請(qǐng)參看前面 Migrate 小節(jié)。

  2. 目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)是同一個(gè)節(jié)點(diǎn)。則不需要 migrate。下面我們重點(diǎn)討論這一種情況。

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

客戶(可以是 OpenStack 最終用戶,也可以是其他程序)向 API(nova-api)發(fā)送請(qǐng)求:“幫我 Resize 這個(gè) Instance”

選擇新的 flavor

點(diǎn)擊 Resize 按鈕

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

nova-api 發(fā)送消息

nova-api 向 Messaging(RabbitMQ)發(fā)送了一條消息:“Resize 這個(gè) Instance” 查看源代碼 /opt/stack/nova/nova/compute/api.py,方法是 resize_instance。

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

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

nova-scheduler 選擇了 devstack-compute1 作為的目節(jié)點(diǎn),與源節(jié)點(diǎn)相同。

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í)行操作

在目標(biāo)節(jié)點(diǎn)上啟動(dòng) instance,過程與 launch instance 非常類似。 日志記錄在 /opt/stack/logs/n-cpu.log

會(huì)經(jīng)過如下幾個(gè)步驟:

  1. 按新的 flavor 為 instance 準(zhǔn)備 CPU、內(nèi)存和磁盤資源

  2. 關(guān)閉 instance

  3. 創(chuàng)建 instance 鏡像文件

  4. 將 instance 的目錄備份一份,命名為<instance_id>_resize,以便 revert。

  5. 創(chuàng)建 instance 的 XML 定義文件

  6. 準(zhǔn)備虛擬網(wǎng)絡(luò)

  7. 啟動(dòng) instance

Confirm

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

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

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

  2. 刪除計(jì)算節(jié)上備份的 instance 目錄 <instance_id>_resize

Revert

反過來,如果執(zhí)行 Revert 操作會(huì)發(fā)生什么事情呢?

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

  2. 在計(jì)算節(jié)點(diǎn)上關(guān)閉 instance

  3. 通過備份目錄 <instance_id>_resize 恢復(fù) instance 目錄。

  4. 重新啟動(dòng) instance

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI