您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何理解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 分兩種情況:
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é)。
目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)是同一個(gè)節(jié)點(diǎn)。則不需要 migrate。下面我們重點(diǎn)討論這一種情況。
客戶(可以是 OpenStack 最終用戶,也可以是其他程序)向 API(nova-api)發(fā)送請(qǐng)求:“幫我 Resize 這個(gè) Instance”
選擇新的 flavor
點(diǎn)擊 Resize 按鈕
查看日志 /opt/stack/logs/n-api.log
nova-api 向 Messaging(RabbitMQ)發(fā)送了一條消息:“Resize 這個(gè) Instance” 查看源代碼 /opt/stack/nova/nova/compute/api.py,方法是 resize_instance。
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ā)送消息,通知計(jì)算節(jié)點(diǎn)可以遷移 instance 了 源代碼在 /opt/stack/nova/nova/scheduler/filter_scheduler.py 第 95 行,方法為 select_destinations
在目標(biāo)節(jié)點(diǎn)上啟動(dòng) instance,過程與 launch instance 非常類似。 日志記錄在 /opt/stack/logs/n-cpu.log
會(huì)經(jīng)過如下幾個(gè)步驟:
按新的 flavor 為 instance 準(zhǔn)備 CPU、內(nèi)存和磁盤資源
關(guān)閉 instance
創(chuàng)建 instance 鏡像文件
將 instance 的目錄備份一份,命名為<instance_id>_resize,以便 revert。
創(chuàng)建 instance 的 XML 定義文件
準(zhǔn)備虛擬網(wǎng)絡(luò)
啟動(dòng) instance
這時(shí),instance 的狀態(tài)處于“Confirm or Revert Resize/Migrate”狀態(tài),需要用戶確認(rèn)或者回退當(dāng)前的遷移操作,實(shí)際上給了用戶一個(gè)反悔的機(jī)會(huì)。
當(dāng)我們按下 Confirm 按鈕后,會(huì)發(fā)生如下事情:
nova-api 接收到 confirm 的消息
刪除計(jì)算節(jié)上備份的 instance 目錄 <instance_id>_resize
反過來,如果執(zhí)行 Revert 操作會(huì)發(fā)生什么事情呢?
nova-api 接收到 revert 的消息
在計(jì)算節(jié)點(diǎn)上關(guān)閉 instance
通過備份目錄 <instance_id>_resize 恢復(fù) instance 目錄。
重新啟動(dòng) instance
關(guān)于如何理解Resize Instance操作就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(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)容。