公眾號文章匯總
1164
2025-04-01
在常見的Iaas架構中,虛擬機是基礎的業務資產。在實際應用中,存儲往往獨立于集群架構,或是以超融合架構的分布式存儲,這時候的虛擬機存儲文件會存放在獨立的存儲系統上。當我們需要將虛擬機從一個集群節點遷移到另外一個節點時,會有熱遷移/動態遷移,或者是手動遷移/靜態遷移兩種方式。不同的云計算管理平臺有不同的遷移方式。但是多數的云計算平臺底層采用KVM虛擬化,我們這里對kvm虛擬機做一個遷移的測試
靜態遷移:
也叫做常規遷移、離線遷移(Offline Migration)。就是在虛擬機關機或暫停的情況下從一臺物理機遷移到另一臺物理機。因為虛擬機的文件系統建立在虛擬機鏡像上面,所以在虛擬機關機的情況下,只需要簡單的遷移虛擬機鏡像和相應的配置文件到另外一臺物理主機上;如果需要保存虛擬機遷移之前的狀態,在遷移之前將虛擬機暫停,然后拷貝狀態至目的主機,最后在目的主機重建虛擬機狀態,恢復執行。這種方式的遷移過程需要顯式的停止虛擬機的運行。
動態遷移(Live Migration):
也叫在線遷移(Online Migration)。就是在保證虛擬機上服務正常運行的同時,將一個虛擬機系統從一個物理主機移動到另一個物理主機的過程。該過程不會對最終用戶造成明顯的影響,從而使得管理員能夠在不影響用戶正常使用的情況下,對物理服務器進行離線維修或者升級。與靜態遷移不同的是,為了保證遷移過程中虛擬機服務的可用,遷移過程僅有非常短暫的停機時間。
一、KVM虛擬機靜態遷移:
遷移流程:關閉虛擬機--->導出遷移XML配置-->遷移虛擬磁盤文件-->導入注冊虛擬機-->啟動虛擬機
利用virsh命令進行相關操作
查看測試虛擬機的相關信息,手動遷移確保虛擬機處于關機狀態
將測試虛擬機的配置信息進行導出dumpxml
將測試虛擬機的配置文件、存儲文件,手動拷貝到另一臺服務器中
在另一臺遷移至的服務器中define定義導入虛擬機的配置
此時我們的虛擬機已經成功遷移到第二臺服務器上
啟動測試的虛擬機
虛擬機成功遷移
二、KVM虛擬機動態遷移:
此時我們模擬虛擬機存儲獨立,設置NFS為獨立存儲服務器,將虛擬機存儲放至NFS服務器上
NFS Server:CentOS7-192.168.1.20
KVM 01 ? ? :CentOS7-192.168.1.80
KVM 02 ? ? :CentOS7-192.168.1.82
1.配置NFS服務器
配置NFS共享
[root@nfs share]# cat /etc/exports
/opt/share *(rw,sync,no_root_squash)
[root@nfs share]# exportfs -r
[root@nfs share]# systemctl restart rpcbind
[root@nfs share]# systemctl restart nfs
[root@nfs share]# showmount -e 192.168.1.20
Export list for 192.168.1.20:
/opt/share *
手動掛載NFS目錄到兩臺KVM
[root@kvm01 kvm]# mount -t nfs 192.168.1.20:/opt/share nfs/
[root@kvm01 kvm]# df -h
文件系統 ? ? ? ? ? ? ? ? 容量 ?已用 ?可用 已用% 掛載點
192.168.1.20:/opt/share ? 36G ? 15G ? 21G ? 42% /kvm/nfs
[root@kvm02 kvm]# mount -t nfs 192.168.1.20:/opt/share nfs/
[root@kvm02 kvm]# df -h
文件系統 ? ? ? ? ? ? ? ? 容量 ?已用 ?可用 已用% 掛載點
192.168.1.20:/opt/share ? 36G ? 15G ? 21G ? 42% /kvm/nfs
2.virsh migrate熱遷移虛擬機
KVM01上的測試虛擬機,虛擬磁盤位置在NFS掛載目錄上
測試虛擬機為運行狀態
使用migrate命令,--live在線熱遷移,--unsafe關閉安全警告,--verbose顯示遷移過程
輸入KVM02的root密碼,完成后KVM01上的虛擬機狀態關閉
virsh # migrate test-centos --live qemu+ssh://192.168.1.82/system --unsafe --verbose
root@192.168.1.82's password:
遷移: [100 %]
到KVM02上,測試虛擬機已經處于運行狀態
成功登錄到虛擬機,熱遷移完成
三、KVM virt-manager遷移虛擬機
KVM01在manager上選擇add connection,連接至KVM01
添加連接,輸入KVM01遷移目標的IP 用戶名
在彈出的OPENSSH框中輸入root的密碼
連接成功后KVM01會出現在manager界面中
進入測試遷移的虛擬機,選擇Migrate
選擇遷移目標,點擊Migrate開始遷移
熱遷移中,會將當前運行的虛擬機調整為暫停狀態,之后遷移到目標機后開始恢復運行虛擬機,在原主機上關閉虛擬機
遷移完成,在目標機KVM01上測試機已經處于運行狀態
運行狀態為運行,熱遷移完成
四、Openstack云計算平臺手動遷移
遷移流程:關閉虛擬機--->拷貝虛擬機文件-->手動更新數據庫信息-->完成遷移-->啟動虛擬機
我們將運行在控制Controller節點中的實例,手動遷移到計算Compute節點
1.虛擬機實例目錄進行拷貝遷移
將虛擬機目錄整個移動到controller節點的/var/lib/nova/instances/目錄下
[root@controller instances]# scp -r 2b8e5098-949d-48c2-8612-fdf39298d4ff/ root@
10.0.0.17:/var/lib/nova/instances/
[root@controller instances]# rm -rf 2b8e5098-949d-48c2-8612-fdf39298d4ff/
修正文件夾權限為nova
[root@compute instances]# chown nova:nova 2b8e5098-949d-48c2-8612-fdf39298d4ff/
2.修改數據庫信息
[root@controller instances]# mysql -uroot -p000000
MariaDB [(none)]> use nova;
update更新測試虛擬機的運行節點,由‘controller’改為‘compute’,此時這個參數為主機名
MariaDB [nova]> update instances set host='compute' ,node='compute' where uuid=
'2b8e5098-949d-48c2-8612-fdf39298d4ff';
3.完成Openstack實例的手動遷移
[root@controller instances]# nova list
[root@controller instances]# nova show vm1
KVM 云計算 數據遷移 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。