云環(huán)境下虛擬機(jī)異構(gòu)環(huán)境遷移
現(xiàn)在是老環(huán)境的虛擬機(jī)需要往新環(huán)境遷移。
面臨的問(wèn)題:
- 新老環(huán)境存儲(chǔ)不同
- 部分代碼不同
- 網(wǎng)絡(luò)環(huán)境不同
- win2003的虛擬機(jī)老環(huán)境沒(méi)有裝virtio驅(qū)動(dòng),新環(huán)境用的virtio
解決方案:
現(xiàn)在遷移的總體方案
1、在新環(huán)境各個(gè)用戶的賬號(hào)下創(chuàng)建相同規(guī)格(或者不同規(guī)格)虛擬機(jī),這樣可以保證數(shù)據(jù)庫(kù)數(shù)據(jù)是沒(méi)有問(wèn)題的,也不會(huì)多出垃圾數(shù)據(jù);創(chuàng)建相同的卷;需要記錄虛擬機(jī)uuid和卷uuid,以下稱為:{new_instance_uuid}和{new_volume_uuid}
如果規(guī)格完全相同,則遷移后界面顯示的規(guī)格和實(shí)際規(guī)格就沒(méi)有問(wèn)題
如果規(guī)格不同,則遷移后存在底層實(shí)際是老環(huán)境的規(guī)格,而界面顯示是新的規(guī)格
2、將老環(huán)境虛擬機(jī)的實(shí)際資源拷貝到新環(huán)境下:
具體操作:
a、獲取需要遷移的虛擬機(jī)的uuid,以下稱為:{old_instance_uuid},通過(guò)cinder list | grep {instance_uuid}查詢到存儲(chǔ)卷的id,以下稱為{old_volume_uuid}。
b、拷貝文 件/var/lib/nova/instances/{old_instance_uuid}/disk 到/var/lib/nova/instances/{new_instance_uuid}/disk ,拷貝之前記得備份,如果虛機(jī)是2003的系統(tǒng),記得先安裝virtio驅(qū)動(dòng),安裝方法在后面。
c、拷貝文件/var/lib/nova/instances/volume-{old_volume_uuid}到新環(huán)境的計(jì)算節(jié)點(diǎn)下(新建目錄之下,待傳到rbd上后可刪除)
d、拷貝文件/var/lib/nova/instances/_base/{base_uuid}到新環(huán)境對(duì)應(yīng)的目錄
獲取{base_uuid}的方法:
qemu-img info disk 查看backup file路徑對(duì)應(yīng)的文件
3、待資源都拷貝到新環(huán)境之后,作如下替換操作:
a、由于存 儲(chǔ)不同(新環(huán)境使用ceph rbd,老環(huán)境是glusterfs),首先修改拷貝過(guò)來(lái)得文件名稱為volume-{new_volume_uuid};然后刪除rbd中已存在的 volume-{new_volume_uuid},***重新往rbd中上傳改過(guò)名稱的用戶存儲(chǔ)文件volume-{new_volume_uuid}。
具體操作如下:
aa:修改名稱:
- mv volume-{old_volume_uuid} volume-{new_volume_uuid}
bb:刪除rbd存儲(chǔ)數(shù)據(jù):
- rbd rm volumes/volume-{new_volume_uuid}
(此處需在計(jì)算節(jié)點(diǎn)操作,因?yàn)橛?jì)算節(jié)點(diǎn)安裝了ceph客戶端)
cc:上傳老環(huán)境的改過(guò)名的存儲(chǔ)文件到rbd中:
- qemu-img convert -f raw -O raw volume-{new_volume_uuid} rbd:volumes/volume-{new_volume_uuid}
(同樣計(jì)算節(jié)點(diǎn)操作)
4、目前新環(huán)境使用的virtio的網(wǎng)卡(支持千兆),老環(huán)境沒(méi)有使用,因此win2003需要安裝virtio驅(qū)動(dòng)才能正常使用網(wǎng)絡(luò),經(jīng)過(guò)測(cè)試必須在disk文件中安裝才能生效,因此對(duì)于需要遷移的win2003,需要一個(gè)一個(gè)去安裝驅(qū)動(dòng)。
安裝步驟:
a、將老環(huán)境的虛擬機(jī)的disk拷貝到備份目錄,并同時(shí)將virtio驅(qū)動(dòng)拷貝,2003的virtio驅(qū)動(dòng)virtio-win-1.5.2-2003.vfd
命令如下:
- /usr/libexec/qemu-kvm -m 1024 -drive file=disk,index=0,boot=on -fda virtio-win-1.5.2.vfd -boot d -net nic,model=virtio -net user -nographic -vnc :90
使用vnc登陸機(jī)器,安裝virtio驅(qū)動(dòng)(設(shè)備管理器里更新驅(qū)動(dòng),選擇軟盤(pán))
裝好后拷貝到新環(huán)境對(duì)應(yīng)的目錄下
原文出自:http://blog.csdn.net/ivy_feifei/article/details/41543461