日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openstack 热迁移(Live Migration)和冷迁移(Cold Migration)

發(fā)布時間:2024/2/28 编程问答 79 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openstack 热迁移(Live Migration)和冷迁移(Cold Migration) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.遷移分類

1.冷遷移(cold migration),也叫靜態(tài)遷移。

? ? ?在遷移到另外的計算節(jié)點時,這段時間虛擬機實例是處于宕機狀態(tài)的,即關閉電源的虛擬機進行遷移。
? ? ?通過冷遷移,可以選擇將關聯(lián)的磁盤從一個數(shù)據(jù)存儲移動到另一個數(shù)據(jù)存儲,實例需要重啟才能工作。
? ? ?適用于對象系統(tǒng)可用性要求不是很高的時候,遷移過程中會關機, 拷貝 instance 的鏡像文件和重建 libvirt.xml (這個配置文件中會涉及網(wǎng)絡環(huán)境, 存儲設備等配置), 并重新在目標主機上啟動。

優(yōu)點:虛擬機不需要位于共享存儲器上,數(shù)據(jù)丟失率小。
缺點:需要關閉電源,業(yè)務中斷。

2.熱遷移(Live Migration),又叫動態(tài)遷移、實時遷移。

? ? 即虛擬機保存/恢復(Save/Restore):將整個虛擬機的運行狀態(tài)完整保存下來,同時可以快速的恢復到原有硬件平臺甚至是不同硬件平臺上。
恢復以后,虛擬機仍舊平滑運行,用戶不會察覺到任何差異。

? ? 在線遷移 (或 '真正的在線遷移')。實例幾乎沒有宕機時間。用于當實例需要在遷移時保持運行。在線遷移有下面幾種類型:

  • ?基于共享存儲的在線遷移(Live migration): 需要實例保存在NFS共享存儲中,所有的Hypervisor都可以訪問共享存儲,主要是實例的內(nèi)存狀態(tài)的遷移,速度會很快。
  • ?塊在線遷移(Block migration):不要求實例存儲在共享文件系統(tǒng)中,即無須共享存儲。當各主機上vm使用的是本地存儲, 而不是共享存儲時, 要實現(xiàn)遷移, 需要實現(xiàn)鏡像文件和內(nèi)存狀態(tài)同時遷移,還得遷移磁盤文件,速度會慢些。
  • ?基于卷的在線遷移:實例都是基于卷的而不是臨時的磁盤,無須共享存儲,也支持遷移(目前僅支持基于libvirt的hypervisor)。
  • 優(yōu)點:軟件和硬件系統(tǒng)的維護升級,不會影響用戶的關鍵服務,提高了服務的高可用性和?用戶的滿意度。
    缺點:過程不可中斷,操作復雜。

    二. 虛機遷移場景

    場景?1:
    物理機器硬件系統(tǒng)的維護,故障修復和升級(upgrade),但運行在這臺物理機器上的虛擬機不能關機,因為用戶重要的服務跑在上面。

    場景?2:
    物理機器軟件系統(tǒng)升級,打補丁(patch),為了不影響上面跑的虛擬機,在升級和打補丁之前,需要把虛擬機遷移到別的物理機器上。

    場景?3:
    一個物理機器上的負載太重,需要減少一些虛擬機來釋放資源。

    場景?4:
    跨域環(huán)境下,有的域里有的物理機上的虛擬機太多,有的域里物理機上虛擬機太少,做一下資源平衡。

    三.虛擬機遷移中數(shù)據(jù)處理

    虛擬機的遷移,就是數(shù)據(jù)的轉移,如果計算節(jié)點之間沒有共享存儲,所以要轉移的數(shù)據(jù)包括兩部分:

  • 靜態(tài)數(shù)據(jù):
    存儲在本地的虛擬機的鏡像文件,包括后端鏡像(libvirt Base)和虛擬機單獨的增量鏡像文件(libvirt instance disks)。
  • 動態(tài)數(shù)據(jù):
    內(nèi)存里虛擬機的運行時數(shù)據(jù),內(nèi)存里的數(shù)據(jù)是動態(tài)變化的數(shù)據(jù),虛擬機里運行的負載的大小直接影響遷移的時間長短。
  • Qemu一般通過數(shù)據(jù)遷移準備、數(shù)據(jù)遷移、數(shù)據(jù)遷移收尾三個步驟來完成
    循環(huán)調(diào)用磁盤和內(nèi)存遷移函數(shù)也是按階段來分別調(diào)用的。
    1.數(shù)據(jù)遷移準備:
    循環(huán)調(diào)用磁盤和內(nèi)存遷移函數(shù)的遷移數(shù)據(jù)準備功能,即前期準備工作,

    把磁盤按block為單位組織成一個數(shù)組,并設置記錄臟塊機制; 把內(nèi)存所有頁全部設置為臟頁,并發(fā)送開始遷移的標志到VM’的進程。

    2.數(shù)據(jù)遷移:
    Qemu在這個階段調(diào)用磁盤和內(nèi)存遷移函數(shù)的第二步驟功能,并且要求必須等磁盤數(shù)據(jù)遷移完成后才會執(zhí)行內(nèi)存數(shù)據(jù)遷移。
    如圖所示,Qemu首先會進行磁盤(內(nèi)存)的全量數(shù)據(jù)遷移,依次將每個block(頁)遷移到目標端DestHost。


    然后再通過多次迭代,將遷移過程中虛擬機產(chǎn)生的新數(shù)據(jù)遷移到目標端DestHost(如圖所示)。

    這一迭代過程是收斂的,收斂依據(jù)與之前設置的帶寬、最大停機時間有關
    同時,在迭代過程中,Qemu將邊遷移邊記錄剩下的臟數(shù)據(jù)大小,并與停機時間進行比較。
    如果這個值比停機時間大,那么繼續(xù)遷移,如果比停機時間小,那么源端Qemu進程就會暫停,從而避免產(chǎn)生新的臟數(shù)據(jù),以便進行遷移收尾工作。
    3.數(shù)據(jù)遷移收尾:
    在虛擬機暫停之后,進入第三步遷移收尾工作,源端Qemu進程會把磁盤、內(nèi)存臟數(shù)據(jù)和設備狀態(tài)一次性同步到目標端,完成時VM和VM’的數(shù)據(jù)將會一致。
    這時,上層管理軟件會把VM關閉,并把VM’的vcpu恢復運行狀態(tài),整個虛擬機的數(shù)據(jù)遷移就完成了。

    四.虛擬機遷移中存儲

  • 共享存儲

    虛擬機的數(shù)據(jù)存在共享磁盤上(Shared storage-based live migration),遷移只需要完成內(nèi)存數(shù)據(jù)的遷移。

  • 非共享存儲
    虛擬機的數(shù)據(jù)存在本地磁盤(block migration),需要對鏡像文件和內(nèi)存數(shù)據(jù)同時遷移。
  • 五.遷移步驟

    5.1 冷遷移步驟

  • 關閉虛擬機
  • 找到虛擬機位于 /var/lib/nova/instances 下文件
  • 將虛擬機的文件全部 copy 到目標主機的相同位置下
  • 修改用戶組
  • 更新數(shù)據(jù)庫中 host,node 字段為目標主機的名字
  • 重啟目標主機的 nova-compute服務
  • 操作記錄

    1. 顯示運行的虛機

    2.關閉虛機

    3.將文件copy到目標主機的對應位置下

    4.修改權限

    ?5.修改數(shù)據(jù)庫中的字段

    update instances set host='compute15', node='compute15' where uuid='3483d9f1-4015-48d9-9837-b67ca82dd54d';

    6.查詢虛機所在的主機

    7.啟動虛機

    5.1 熱遷移步驟:

  • 遷移前的條件檢查
  • 遷移前的預處理
  • 遷移過程
  • 遷移后的處理
  • 1. 遷移前的條件檢查

    動態(tài)遷移要成功執(zhí)行,一些條件必須滿足,所以在執(zhí)行遷移前必須做一些條件檢查。

    1、權限檢查,執(zhí)行遷移的用戶是否有足夠的權限執(zhí)行動態(tài)遷移。

    2、參數(shù)檢查,傳遞給?API?的參數(shù)是否足夠和正確,如是否指定了?block-migrate?參數(shù)。

    3、檢查目標物理主機是否存在。

    4、檢查被遷移的虛擬機是否是?running?狀態(tài)。

    5、檢查源和目的物理主機上的?nova-compute service?是否正常運行。

    6、檢查目的物理主機和源物理主機是否是同一臺機器。

    7、檢查目的物理主機是否有足夠的內(nèi)存(memory)。

    8、檢查目的和源物理主機器?hypervisor?和?hypervisor?的版本是否相同。

    2.遷移前的預處理

    在真正執(zhí)行遷移前,做一些準備工作

    1、在目的物理主機上獲得和準備虛擬機掛載的塊設備(volume)。

    2、在目的物理主機上設置虛擬機的網(wǎng)絡(networks)。

    3、目的物理主機上設置虛擬機的防火墻(fireware)。

    3.遷移過程

    條件滿足并且做完了預處理工作后,就可以執(zhí)行動態(tài)遷移了。主要步驟如下:

    1、調(diào)用?libvirt python?接口?migrateToURI,來把源主機遷移到目的主機。

    2、以一定的時間間隔(0.5)循環(huán)調(diào)用?wait_for_live_migration?方法,來檢測虛擬機遷移 的狀態(tài),一直到虛擬機成功遷移為止。

    4.遷移后的處理

    當虛擬機遷移完成后,要做一些善后工作。

    1、在源物理主機上?detach volume。

    2、在源物理主機上釋放?security group ingress rule。

    3、在目的物理主機上更新數(shù)據(jù)庫里虛擬機的狀態(tài)。

    4、在源物理主機上刪除虛擬機。

    上面四步正常完成后,虛擬機就成功的從源物理主機成功地遷移到了目的物理主機了。

    操作記錄

    1.熱遷移需要libvirt遠程登錄和傳輸,所以開啟libvirt的TCP連接方式

    virsh -c qemu+tcp://172.171.8.14/system

    例如:qemu+tcp://172.16.0.15/system,服務端只需要配置。

    修改/etc/libvirt/libvirtd.conf:listen_tls = 0         listen_tcp = 1          tcp_port = "16509"      listen_addr = "0.0.0.0"auth_tcp = "none"

    ?2.修改libvirtd的配置文件/etc/default/libvirtd:

    # Start libvirtd to handle qemu/kvm:start_libvirtd="yes"# options passed to libvirtd, add "-l" to listen on tcplibvirtd_opts="-d -l --config /etc/libvirt/libvirtd.conf"

    3.以上修改后,執(zhí)行

    service libvirt-bin restartnetstat -anpt | grep libvirt

    可以看到libvirtd監(jiān)聽在TCP 16509端口。

    4.配置nova.conf

    計算節(jié)點的/etc/nova/nova.conf文件中添加如下的內(nèi)容,使得compute服務支持熱遷移。

    live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE

    5.重啟nova-compute

    service nova-compute restart

    6.修改用戶組

    查看目標主機的用戶組信息

    id nova

    7.?修改所有計算節(jié)點為相同的用戶組id。

    usermod -u *** novausermod -u *** libvirt-qemugroupmod -g *** novagroupmod -g *** kvm

    ? 8.openstack遷移命令

    查看所有實例

    nova list

    9.查看需要遷移虛擬機實例

    nova show [實例id]

    10.查看可用的計算節(jié)點

    nova-manage service list

    ?11.查看目標節(jié)點資源

    nova-manage service describe_resource computer1

    12.開始遷移,正常無任何回顯

    nova live-migration [實例id] [計算節(jié)點]?

    操作記錄

    1.查看虛擬機

    2.查看虛擬機所在計算節(jié)點

    3.遷移

    4.查看遷移后的虛擬機所在節(jié)點

    5.在遷移過程中,dashboard中會出現(xiàn)正在遷移的任務

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的openstack 热迁移(Live Migration)和冷迁移(Cold Migration)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。