博文大綱:
創(chuàng)新互聯(lián)-企業(yè)級云服務(wù)器提供商,為用戶提供云服務(wù)器、CDN、云安全服務(wù)、中國電信成都樞紐中心、服務(wù)器租用、高防服務(wù)器租用等全方位云服務(wù)與各行業(yè)解決方案,幫助企業(yè)及個(gè)人極速備案,輕松上云,安全無憂。
一、KVM虛擬機(jī)遷移的方式
二、實(shí)現(xiàn)KVM虛擬機(jī)靜態(tài)遷移
三、實(shí)現(xiàn)KVM虛擬機(jī)動態(tài)遷移
KVM平臺中的KVM虛擬機(jī)遷移分為以下兩種:
我們存放虛擬機(jī)磁盤的目錄都是掛在的一個(gè)nfs文件系統(tǒng)的磁盤,進(jìn)行冷遷移時(shí),只要在目標(biāo)主機(jī)上掛載這個(gè)nfs文件系統(tǒng),就可以看到要遷移的那個(gè)虛擬機(jī)的磁盤文件,通常以.qcow2或.raw結(jié)尾的,然后,只需將虛擬機(jī)的.xml配置文件發(fā)送到目標(biāo)服務(wù)器上,然后重新定義一下遷移過來的虛擬機(jī)即可!
如果源宿主機(jī)和目的宿主機(jī)共享存儲系統(tǒng),則只需要通過網(wǎng)絡(luò)發(fā)送客戶機(jī)的 vCPU 執(zhí)行狀態(tài)、內(nèi)存中的內(nèi)容、虛機(jī)設(shè)備的狀態(tài)到目的主機(jī)上。否則,還需要將客戶機(jī)的磁盤存儲發(fā)到目的主機(jī)上。共享存儲系統(tǒng)指的是源和目的虛機(jī)的鏡像文件目錄是在一個(gè)共享的存儲上的。
基于共享存儲系統(tǒng),動態(tài)遷移的具體過程:
(1)遷移開始時(shí),客戶端依然在宿主機(jī)上運(yùn)行,與此同時(shí),客戶機(jī)的內(nèi)存頁被傳輸?shù)侥康闹鳈C(jī)上;
(2)QEMU/KVM 會監(jiān)控并記錄下遷移過程中所有已被傳輸?shù)膬?nèi)存頁的任何修改,并在所有內(nèi)存頁都傳輸完成后即開始傳輸在前面過程中內(nèi)存頁的更改內(nèi)容;
(3)QEMU/KVM 會估計(jì)遷移過程中的傳輸速度,當(dāng)剩余的內(nèi)存數(shù)據(jù)量能夠在一個(gè)可以設(shè)定的時(shí)間周期(默認(rèn) 30 毫秒)內(nèi)傳輸完成時(shí),QEMU/KVM 會關(guān)閉源宿主機(jī)上的客戶機(jī),再將剩余的數(shù)據(jù)量傳輸?shù)侥康闹鳈C(jī)上,最后傳輸過來的內(nèi)存內(nèi)容在目的宿主機(jī)上恢復(fù)客戶機(jī)的運(yùn)行狀態(tài);
(4)至此,KVM的動態(tài)遷移操作完成!遷移后的客戶機(jī)盡可能與遷移前一致,除非目的主機(jī)上缺少一些配置,比如網(wǎng)橋等。注意,當(dāng)客戶機(jī)中內(nèi)存使用率非常大而且修改頻繁時(shí),內(nèi)存中數(shù)據(jù)不斷被修改的速度大于KVM能夠傳輸?shù)膬?nèi)存速度時(shí),動態(tài)遷移的過程是完成不了的,這時(shí)候只能靜態(tài)遷移。
(1)遷移的服務(wù)器CPU品牌最好一致;
(2)64位只能在64位宿主機(jī)間遷移,32位可以遷移32位和64位宿主機(jī);
(3)宿主機(jī)中的虛擬機(jī)名字不能沖突;
(4)目的宿主機(jī)和源宿主機(jī)軟件配置盡可能相同;
靜態(tài)遷移:
(1)復(fù)制鏡像文件和虛擬機(jī)配置文件;
(2)重新定義虛擬機(jī)即可!
動態(tài)遷移:
(1)創(chuàng)建共享存儲;
(2)兩臺KVM宿主機(jī)掛載共享存儲;
(3)啟動動態(tài)遷移;
(4)創(chuàng)建遷移后的虛擬配置文件;
(5)重新定義虛擬機(jī);
KVM服務(wù)器A的操作:
由于實(shí)驗(yàn)環(huán)境,簡單起見,這里就略過了,有興趣可以自行創(chuàng)建文件或目錄進(jìn)行測試!
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//實(shí)驗(yàn)環(huán)境,簡單起見關(guān)閉防火墻與SElinux
[root@localhost ~]# lsmod | grep kvm //確認(rèn)虛擬機(jī)支持kvm環(huán)境
kvm_intel 174841 0
kvm 578518 1 kvm_intel
irqbypass 13503 1 kvm
[root@localhost ~]# virsh list --all //確認(rèn)虛擬機(jī)存在,而且是關(guān)機(jī)的狀態(tài)
Id 名稱 狀態(tài)
----------------------------------------------------
- web01 關(guān)閉
KVM服務(wù)器B的操作:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//實(shí)驗(yàn)環(huán)境,簡單起見關(guān)閉防火墻與SElinux
[root@localhost ~]# lsmod | grep kvm //確認(rèn)虛擬機(jī)支持kvm環(huán)境
kvm_intel 174841 0
kvm 578518 1 kvm_intel
irqbypass 13503 1 kvm
[root@localhost ~]# virsh list --all //確認(rèn)沒有kvm虛擬機(jī)
Id 名稱 狀態(tài)
----------------------------------------------------
[root@localhost ~]# scp 192.168.1.7:/etc/libvirt/qemu/web01.xml /etc/libvirt/qemu/web01.xml
//復(fù)制KVM宿主機(jī)A的虛擬機(jī)配置文件
[root@localhost ~]# scp 192.168.1.7:/kvm/disk/web01.raw /kvm/disk/web01.raw
//復(fù)制KVM宿主機(jī)的虛擬機(jī)磁盤文件
[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# virsh define web01.xml
定義域 web01(從 web01.xml)
//根據(jù)配置文件生成虛擬機(jī)
[root@localhost qemu]# virsh start web01 //開啟虛擬機(jī)進(jìn)行測試
域 web01 已開始
[root@localhost qemu]# virsh list --all
Id 名稱 狀態(tài)
----------------------------------------------------
1 web01 running
//可以正常開機(jī)表示沒有問題,自行進(jìn)行測試即可!
靜態(tài)遷移遷移完成!
靜態(tài)遷移其實(shí)沒什么好說的,說白了,跟克隆其實(shí)差不多!
注意:KVM宿主機(jī)不需要KVM虛擬機(jī)!
NFS服務(wù)器的操作:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//實(shí)驗(yàn)環(huán)境,簡單起見關(guān)閉防火墻與SElinux
[root@localhost ~]# yum -y install nfs-utils rpcbind
//安裝NFS所需軟件
[root@localhost ~]# mkdir /kvmshare //創(chuàng)建共享目錄
[root@localhost ~]# echo "/kvmshare *(rw,sync,no_root_squash)" >> /etc/exports
//配置共享目錄的權(quán)限,共享的用戶
//no_root_squash:使其獲取NFS服務(wù)器的root權(quán)限
[root@localhost ~]# systemctl start rpcbind //啟動遠(yuǎn)程傳輸控制服務(wù)
[root@localhost ~]# systemctl start nfs //啟動NFS共享服務(wù)
兩臺KVM進(jìn)行驗(yàn)證:
[root@localhost ~]# showmount -e 192.168.1.6
Export list for 192.168.1.6:
/kvmshare *
KVM服務(wù)器A的操作:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//實(shí)驗(yàn)環(huán)境,簡單起見關(guān)閉防火墻與SElinux
[root@localhost ~]# lsmod | grep kvm //確認(rèn)虛擬機(jī)支持kvm環(huán)境
kvm_intel 174841 0
kvm 578518 1 kvm_intel
irqbypass 13503 1 kvm
[root@localhost ~]# virsh list --all //確認(rèn)沒有kvm虛擬機(jī)
Id 名稱 狀態(tài)
----------------------------------------------------
[root@localhost ~]# virt-manager //打開圖像化界面管理KVM
選創(chuàng)建存儲池,如圖:
接下來基于存儲池創(chuàng)建存儲卷,如圖:
接下來創(chuàng)建虛擬機(jī),如圖:
接下來根據(jù)自己實(shí)際情況創(chuàng)建適合的虛擬機(jī)!
虛擬機(jī)重啟完成之后,將其關(guān)機(jī),配置其為橋接網(wǎng)絡(luò),方法如下:
[root@localhost ~]# virsh destroy centos7.0 //實(shí)驗(yàn)環(huán)境,就采取強(qiáng)制關(guān)機(jī)了,但不建議使用
域 centos7.0 被刪除
[root@localhost ~]# systemctl stop NetworkManager //關(guān)閉網(wǎng)絡(luò)管理工具
[root@localhost ~]# virsh iface-bridge ens33 br0 //通過ens33生成br0
使用附加設(shè)備 br0 生成橋接 ens33 失敗 //提示失敗沒有關(guān)系
已啟動橋接接口 br0
[root@localhost ~]# virsh edit centos7.0 //使用“edit”命令編輯虛擬機(jī)的配置文件
定位到interface,修改一下內(nèi)容:
修改為bridge
修改為 bridge='br0'
[root@localhost ~]# virsh start centos7.0 //啟動centos7虛擬機(jī)
KVM服務(wù)器B的操作:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//實(shí)驗(yàn)環(huán)境,簡單起見關(guān)閉防火墻與SElinux
[root@localhost ~]# lsmod | grep kvm //確認(rèn)虛擬機(jī)支持kvm環(huán)境
kvm_intel 174841 0
kvm 578518 1 kvm_intel
irqbypass 13503 1 kvm
[root@localhost ~]# virsh list --all //確認(rèn)沒有kvm虛擬機(jī)
Id 名稱 狀態(tài)
----------------------------------------------------
[root@localhost ~]# virt-manager //打開圖像化界面管理KVM
創(chuàng)建存儲池,跟KVM服務(wù)器A的操作一模一樣,如圖:
生成橋接網(wǎng)卡br0,便于一會進(jìn)行熱遷移操作,操作如下:
[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# virsh iface-bridge ens33 br0
使用附加設(shè)備 br0 生成橋接 ens33 失敗
已啟動橋接接口 br0
//因?yàn)楸镜噩F(xiàn)在并沒有虛擬機(jī),所以只需生成橋接網(wǎng)卡即可!
[root@localhost ~]# hostname kvmB
[root@localhost ~]# su -
上一次登錄:三 12月 4 20:05:59 CST 2019從 192.168.1.253pts/1 上
[root@kvmB ~]# //修改主機(jī)名,否則一會可能會出現(xiàn)錯(cuò)誤
KVM服務(wù)器A進(jìn)行以下操作:
如果出現(xiàn)以下錯(cuò)誤,如圖:
那是因?yàn)闆]有安裝使用SSH協(xié)議連接所需的詢問密碼的軟件包!
接下來的操作需要在兩臺KVM都進(jìn)行操作:
[root@localhost ~]# yum -y install openssh-askpass
[root@kvmB ~]# yum -y install openssh-askpass
//安裝詢問密碼的依賴包,注意兩臺KVM服務(wù)器都需安裝
安裝完成之后,在KVM服務(wù)器A上再次進(jìn)行連接:
打開KVM虛擬機(jī),使其一直訪問百度,如圖:
接下來進(jìn)行熱遷移操作,如圖:
查看KVM虛擬機(jī)的訪問是否存在終端現(xiàn)象,如圖:
根據(jù)顯示結(jié)果,發(fā)現(xiàn)訪問并沒有中斷,至此,動態(tài)遷移成功!
———————— 本文至此結(jié)束,感謝閱讀 ————————
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。