天天看點

​關于虛拟機遷移文檔(p2v v2v

  • 全文目錄
  • 1:相關概念

  • 2:手工遷移

  • 2.1 P2V之再生龍

  • 2.2 其它工具(有本中文讀物)

  • 3:自動遷移(适用于v2v)

  • 3.1 shell遷移(試用)

  • 3.2 ansible遷移(試用)

  • 3.3 windows圖形化工具?(想的美)

  • 4:額外引用

  • 5:在不停機的情況下如何p2v
  • 5.1 借助vmware的力量
  • 5.2 借助賽門鐵克(smantec)之力

1:關于遷移涉及到的諸多概念

Icon

有幸接觸到一篇關于遷移方案調研的文檔,此文檔詳細羅列了當下遷移所涉及到的相關概念及相關工具,雖然沒有提及遷移步驟,但閱讀此文深感自己底蘊不足;

為了避免整體抄襲之嫌,這裡摘錄部分個人認為重要的概念

 A 整體遷移時間:從源主機開始遷移到遷移結束的時間

 B 停機時間:遷移過程中,源主機、目的主機同時不可用的時間

 C 對應用程式的性能影響:遷移對于被遷移主機上運作服務性能的的影響程度

 D 離線遷移:

線遷移(offline

migration):也叫做正常遷移、靜态遷移。在遷移之前将虛拟機暫停,如果共享存儲,則隻拷貝系統狀态至目的主機,最後在目的主機重建虛拟機狀态,

恢複執行。如果使用本地存儲,則需要同時拷貝虛拟機鏡像和狀态到目的主機。到這種方式的遷移過程需要顯示的停止虛拟機的運作。從使用者角度看,有明确的一段

服務不可用的時間。這種遷移方式簡單易行,适用于對服務可用性要求不嚴格的場合。

 E 線上遷移:

線遷移(online migration):又稱為實時遷移 (live

migration)。是指在保證虛拟機上服務正常運作的同時,虛拟機在不同的實體主機之間進行遷移,其邏輯步驟與離線遷移幾乎完全一緻。不同的是,為了

保證遷移過程中虛拟機服務的可用,遷移過程僅有非常短暫的停機時間。

下面這些内容我覺得講得太好了,是以整體就貼過來了,完全尊重作者的著作權

F linux遷移相關難點

磁盤分區名被寫死。磁盤虛拟化時,可能會使用不同類型的虛拟磁盤裝置,這将會導緻磁盤名字的變化。比如

Xen 虛拟機中的半虛拟化裝置使用 /dev/xvda 而标準的 Linux 半虛拟化裝置使用 /dev/vda。準備遷移的 Linux

系統中存在對 /dev/hd* 和 /dev/sd* 磁盤分區名分散的關聯,比如在 /etc/fstab 檔案,啟動初始化檔案系統 ramfs

和一些解析磁盤裝置的開機啟動腳本檔案中。V2V 遷移工具需要在整個磁盤上查找并修改這些關聯。有一個簡單的方法來避免這種情況: Linux

系統上主流的檔案系統和交換分區類型可以使用 Lables 或 UUID

作為分區名。遷移時這些資訊是被重點保護的,系統應該小心使用這些資訊,一定不要使用裝置作為分區名。另外,LVM

分區名和裝置無關,在遷移中也不受影響。

作者批注:上面彙總的特别好,也就是說如果你是linux虛拟機,fstab挂載裝置最好是uuid,或者你的虛拟機當時建立的時候是lvm;如果是windows的話,你需要改虛拟機xml檔案磁盤對應的内容

網絡硬體裝置的改變。當系統遷移時,網絡裝置很可能産生變化。比如虛拟網絡裝置和實體網絡裝置的轉化或者不同類型的網絡裝置之間的轉變。但是是他們的 Mac 位址沒有變化。MAC 位址是 IEEE 配置設定給實體裝置制造商的,兩個實體裝置不會有相同的 MAC 位址;然而虛拟網絡裝置可能出現這種情況。是以在做虛拟機遷移時,你必須記錄每一個網絡裝置的 MAC 位址,保證 MAC 位址和網絡裝置的對應關系。

作者批注:這塊在遷移的時候我沒有過多關注,因為我的場合下允許虛拟機在遷移後MAC被更改,除非說某些業務指定MAC位址。當然了更改虛拟機MAC位址也不是什麼難事,隻是我對這個點以後還真沒有過多關注過

核心不支援某些虛拟裝置。某些 Linux 發行版沒有 virtio 虛拟裝置的驅動,

可能是因為 Linux

發行版早于虛拟裝置釋出了;或者虛拟裝置的驅動是閉源的;或者是在系統編譯時去掉了。是以,有時我們另外需要一個完全不同的核心(比如 Xen

早期的版本就是這樣的)。無論如何,在客戶機上安裝一個新的核心并且使之可以啟動是一個很大的冒險,最好避免這樣做。

作者批注:這幾天我們有個環境的linux虛拟機改成virtio無法開機,換成ide之後進系統執行yum update更新下就好了,具體原因待查

Xwindow 需要重新配置。與磁盤、網絡裝置一樣,系統遷移後顯示裝置也會變化。理想的情況是 Xwindow 會自動處理這個的變化,探測所有的顯示裝置并且使用它發現的第一個裝置。但是這不意味着所有的 Linux 發行版都會以這種方式工作。

作者批注:低版本windows确實會存虛拟機遷移過去之後在裝置管理器有一堆打着問号的裝置,通常隻要保證重要元件正常就行,像聲霸卡這類通常可以忽略;如果是完美主義者,可以安裝驅動

網絡環境的變化。靜态 IP 位址和靜态 DNS 解析在虛拟機遷移中 是一個麻煩的事情。盡管不是必須的,但是最好配置系統從 DHCP 伺服器自動獲得所有的網絡配置資訊。

作者批注:在遷移武漢大學的時候,因為要求虛拟機原内網IP不變,而我們平台的交換機DHCP功能需要占用一個IP,而恰好有的遷移虛拟機與DHCP使用的IP沖突,是以當時是将交換機DHCP關掉,然後登陸虛拟機配置的靜态IP,而且這樣做還有一個好處:虛拟機在網絡這塊更加穩定,因為DHCP服務可能會DOWN...,而且我個人比較推崇靜态IP

CPU 的擴充指令集發生變化。遷移後的系統中,新的虛拟 CPU 或主機闆和舊的會有一些不同。CPU 的擴充指令集如 SSE,Vectors, NX 可能被加入或去掉。CPU 的型号和制造商資訊可能被改變。是以,如果你想要優化虛拟系統上的軟體,這可能是浪費時間并且導緻系統崩潰。最好是使用通用的軟體,讓程式在每次啟動的時候檢查運作環境和是否需要優化。實際上,實時遷移的狀況比這個還要複雜,因為處理器可能在程式的運作的過程中被改變。目前為止還沒有一個方案能很好的解決這個問題。

作者批注:鄙人對這塊沒看懂,好像是針對CPU驅動。截止目前沒有遇到這塊導緻問題

如你所見,P2V 和 V2V 最大的問題在于硬體的改變。Linux 發行版本身應該可以處理所有的硬體變化:在系統啟動的時候去檢查所有的硬體,作業系統核心識别新的裝置并尋找新的驅動處理它們 ,所有應用軟體都不要和硬體綁定,設計一個很好的模式來應對突然的環境變化

常見遷移工具

軟體 支援類型 特點 是否開源
virt-v2v V2V 隻支援離線遷移
virt-p2v P2V
clonezilla P2V/V2V 隻支援離線遷移,通過将P或V備份出來,然後再手工導入V
VMware Converter V2V/P2V 支援離線和線上遷移,遷移到vmware較好
XenConvert
Hyper-V
NetIQ PlateSpin Migrate 類似傳統備份容災工具
Doubletake Move 支援線上遷移,類似傳統備份容災工具
Quest vConverter
RACEMI 支援線上遷移,遷移到aws

 2.1 P2V之再生龍

課外題:最早接觸的P2V工具是在甯夏運維VMware叢集期間,有幸接觸到人家自己的P2V配套工具,論界面友好、操作步驟以及人性化設計,比再生龍比起來好用十萬倍

上圖

​關于虛拟機遷移文檔(p2v v2v

首先介紹一下用再生龍的P2V大緻過程(具體的操作步驟可以參考李哥自己總結的文檔)

1:你要有一個再生龍ISO,下載下傳連結:http://clonezilla.nchc.org.tw/clonezilla-live/download/download.php?branch=stable

2:你需要将源實體機或虛拟機關掉

3:你需要用光驅或者其它方式在實體機上利用ISO做引導

4:按照文檔操作步驟将源裝置硬碟或分區資訊通過支援的協定放到KVM所在的虛拟機裡

5:到KVM檢查一下檔案是否存在

6:用KVM起一個虛拟機,硬碟數量及大小與實體機一緻,好吧,事實上是硬碟最好能大一點。

這裡面要注意的是硬碟格式,如果是linux,推薦virtio  raw,如果是windows,推薦IDE raw

7:用ISO去導引這個虛拟機進行恢複。開機

8:如果恢複成功,那麼恭喜你,向成功的方向已經邁出了堅定的一步。

9:如果是WINDOWS,趕緊看看缺不缺驅動。

--------------------------------這又是一條小分割線-----------------------------

上面隻是轉換成了一台虛拟機,如果我們要将它放至雲平台上使用,需要這麼做

如果是windows,你需要安裝virtio驅動;如果是linux,請跳過10--15步

10:安裝的驅動是:RHEV-toolsSetup_3.3_14,    關機;

 rhev下載下傳連接配接:連結:http://pan.baidu.com/s/1c1WAhhe 密碼:9ccn

virtio-win-0.1.102 下載下傳連接配接:http://pan.baidu.com/s/1pKV7KJx 密碼:237i

備注:這裡提一下安裝驅動的問題,如果你的主控端不是redhat,你執行“RHEV-toolsSetup.exe”會提示你無法安裝,不用擔心,你直接進入

到tools目錄下把對應的檔案安裝就可以了,windows嗎,你懂得,輕按兩下下一步即可,遇到無法安裝的忽略即可。

virtio-win這個包是假設你不想用rhev-toossetup安裝的前提下,也可以用這個包的檔案,在裝置管理器裡手動更新驅動

11:填寫一加virtio硬碟,并将網卡模闆改成virtio,    開機

13:檢視裝置管理器,確定磁盤驅動,網卡是virtio.    關機

14:删除剛才添加的硬碟,并将系統盤改成virtio.    開機

15:確定虛拟機可以正常開機,并且網絡沒有問題。關機

16:找到你的虛拟機硬碟所在位置。把格式轉換成qcow2

17:之後以模闆的形式上傳到平台起虛拟機。或者在平台建立一台相等的虛拟機,通過替換硬碟檔案。詳見例1

再生龍遷移工具使用文檔20151117.docx

注:這裡寫一點關于安裝驅動的事;(不知道該放在什麼地方好)

預設情況下,你在虛拟機裡直接安裝RHEV-setuptool,它會包含所有驅動,這個在windows2008試過;但是經過測試發現在windows2003中,出現了硬碟及網卡驅不起來的現象,你需要單獨裝這幾個驅動,相應的驅動檔案長這樣“virtio-win-0.1.102.iso”,你需要檢視一下你的裝置管理器,然後根據作業系統類型來更新驅動;

例1:

如果你的塊存儲使用的是ceph,你這麼做:

(如果你是高手,你一定會起直接裝CEPH塊挂載到本地,沒錯,确實應該是這樣。不過,自動部署工具的計算節點的核心是2.6.32,然後你會痛苦的發現你居然得更新核心)

1:先把你在平台裡的虛拟機關機。從你這台虛拟機的XML檔案找到硬碟在CEPH中的位置,一般是volumes/volume-xxxxxx,就是用virsh dumpxml   instace-xxxxx |more

2:複制該ID号,找個小本記錄下來;在CEPH先将它删除掉,用rbd rm -p volumes ID

3:COPY你的鏡像到相應的計算節點,其實隻要是任何一個CEPH節點都可以

4:上傳該鏡像,rbd  --p_w_picpath-format 2  import  -p volumes filename   ID

5:啟動虛拟機,看看啥子情況

6:爆發吧小宇宙

這個例子非常适合于v2v,武漢大學就是這麼搞的

例2:

有一種适合大量虛拟機轉換且效率相對上面方法高的方法,我也是聽聞某人間高手,大概思路如下,僅供參考

1:首先你得用再生龍得到實體機或者虛拟機檔案,也就是那些目錄

2:直接在平台起相應的虛拟機,記住硬碟的大小要相比對

3:接下來應該是虛拟機挂光驅,但是平台不支援此項功能;是以你需要有一個virt-manage,并且能夠連接配接到這台虛拟機的相應計算節點;

4:然後你還需要将你的平台虛拟機與存儲你目錄的網絡打通,實作方法沒有規定,隻要能通;我能想到的是,我的筆記本直接接入平台的管理網,然後起一個redhat6.5虛拟機,安裝桌面與虛拟化,然後從管理網段中找一些沒有被用到IP,以友善P2V用

5:上面方法沒有親自實驗過,不過可以預料的是,windows一定要安裝驅動,否則能不能開機将是一個大問題。關于驅動的描述下面有叙述

續:

書接上回

這裡重點強調一下關于windows的p2v,通常你在起虛拟機用再生龍還原系統的時候,你的虛拟機硬碟類型建議是IDE,這樣你還原後是可以直接開機的,如果你強制改成virtio,你會還到windows那熟悉的藍屏笑臉沖你笑;解決這一辦法就是先保證你的第一塊盤,也就是系統盤是IDE,然後開機,安裝RHEV-toolsetup;然後關機;這時候你要将你的網卡改成virtio,然後最重要的是你要額外填加一塊virtio的硬碟,然後開機,這時候系統會發現新硬體并安裝相應的驅動;之後關機,删除第二塊硬碟,并将系統盤改成virtio,然後開機。如果可以正常引導。恭喜你,P2V就算成功了。

    以上根據實際情況整理而出,都是血淋淋的教訓,那是個不眠之夜,花費數小時,犧牲了好多腦細胞才搞定的。

希望可能幫到有緣人

                   2015年12月14日

                     劉福于深圳

最後寫一點關于遷移過程磁盤擴容的問題;

針對系統盤:首先,raw格式的檔案是支援擴容的,是以當你有這方面需要可以直接搞:qemu-img

resize [-q] filename [+ | -]size   

;對于linux類的話,如果你的系統盤分區是lvm可以輕松的擴充;對于windows類的話,想實作系統盤擴容,前提是你的作業系統要大于或等于2008,在磁盤管理裡有擴充選擇,windows2003肯定沒戲;當然了不排除能借住第三方磁盤管理工具實作,這方面沒研究。

---------------------------------------------------------------------------------------------------------------------------------

針對2003磁盤擴容,偶然看到一篇文章說可以,目測是可以的。

本着發楊雷峰的精神,我把附件下載下傳起來了,花了一個豆,心疼,

51CTO下載下傳-ExtPart.zip

文章參考:http://leihenzhimu.blog.51cto.com/3217508/773483

針對資料盤:如上所述,擴大分區方法總是有的。但是,據我遷移的經驗來看,資料盤面臨的問題不是擴大,而是縮小;原因是前邊在建立資料盤的時候沒有估量好實際使用量,導緻過大。比如2T的資料盤可能隻能了幾百個G,這樣在導資料盤的時候導2T是很痛苦的;關于如何縮小我沒有大膽嘗試

上面步驟是基于你利用一個ISO或者CD光牒去引導實體的的步驟,你也可以制作一個類似于PXE引導:

http://www.clonezilla.org/livepxe.php

http://www.syslinux.org/wiki/index.php?title=PXELINUX

我沒試,有需要再搞吧

2.2 其它工具

暫略,我這人有個習慣,喜歡了一個工具,就會對其它工具排斥,是以這塊就沒有了。如果有大牛突然心情舒暢,歡迎在這裡補充。

我決定基于這個文檔做幾個實驗,然後将步驟羅列出來,待親自補充

這裡有一個紅帽的轉換工具說法手冊,中文版本

Red_Hat_Enterprise_Linux-6-V2V_Guide-zh-CN.pdf

-----------------------------------------------------------------------------------------分割線又來了--------------------------------------------------------------------------------------

3.1 shell腳本遷移(試用版)

A:寫這篇内容的背景因素

1:手工遷移太low

2:武漢大學手工遷移了太多,感覺以後如果再遷移的時候應該有個東西能夠幫助遷移

3:額,心情舒暢,也算一條

B:運作這個腳本的前提

1:我們假設你有台實體機,然後上面有幾台虛拟機;

2:然後你要把這幾個虛拟機導到我們的雲平台上;

3:其實就是v2v,其實過程很簡單,基本也沒啥也的,寫shell腳本其實是大材小用了;

4:其實是想用ansible寫來着,然後發現不會,隻能先用shell練練

5:節點做下互信,這是能成功運作下面腳本的前提

6:欲導之,先建之。

7:假設你的虛拟機在EBS

8:虛拟機建好後直接關機

vim vm_to_openstack.sh

 #!/bin/bash

echo

"                  <<永遠相信美好的事情即将發生>>"

echo

''

'

首先,這是一個微不足道的小腳本;這僅僅能實作kvm虛拟機導入到openstack

1

:如果是windows,可以在導入前安裝rhev驅動,或者導入後安裝;

2

:你需要提前在雲平台建立出一台與你将導入的虛拟機規格一緻的虛拟機:主要指系統盤或資料盤大小,當然還有作業系統類型等

''

'

#指定源虛拟機磁盤所在目錄:必改項

vm_base_storage_work=

"/root/liufu"

#指定源虛拟機磁盤名稱:必改項

vm_base_storage_name=

"liufu.raw"

#來來來,做一個人燈合一

vm_base_storage_url=$vm_base_storage_work/$vm_base_storage_name

#明确一下源虛拟機磁盤類型:必改項

vm_base_storage_type=

"raw"

#明确一下目标虛拟機在rbd的名稱:必改項

openstack_vm_rbd_id=

"volumes/volume-f3cadbd7-2fbf-4aa2-a097-8a50b1d01113"

#明确一下雲平台管理節點IP:必改項

openstack_manage_ip=

"183.169.128.151"

#明确一下管理節點的工作目錄,就是放在哪:必改項

openstack_manage_work=

"/root"

#vm_base_storage_convert_name=$openstack_manage_work/$vm_base_storage_name

#彈彈彈,把磁盤彈到管理節點

echo

"1:準備開始scp檔案"

scp $vm_base_storage_url $openstack_manage_ip:$openstack_manage_work

#判斷,問美國大選誰能赢?

if

[

"$vm_base_storage_type"

!=

"raw"

];then

echo

"2:這不是一個raw格式檔案,下面開始轉換格式并導入到ceph裡;完成後可以開啟虛拟機。"

#    vm_base_storage_convert_name=$openstack_manage_work/$vm_base_storage_name

"."

$vm_type

ssh $openstack_manage_ip

"rbd  rm $openstack_vm_rbd_id"

ssh $openstack_manage_ip "qemu-img convert -p

$openstack_manage_work/$vm_base_storage_name  -O rbd 

rbd:$openstack_vm_rbd_id"

ssh $openstack_manage_ip

"mv  $openstack_manage_work/$vm_base_storage_name /tmp "

else

echo

"2:這是一個raw格式檔案,将直接導入到ceph裡;完成後可以開啟虛拟機。"

ssh $openstack_manage_ip

"rbd -p volumes rm $openstack_vm_rbd_id"

ssh $openstack_manage_ip

"rbd  --p_w_picpath-format 2  import $openstack_manage_work/$vm_base_storage_name $openstack_vm_rbd_id"

ssh $openstack_manage_ip

"mv  $openstack_manage_work/$vm_base_storage_name /tmp "

fi

echo

"看,彩虹"

echo -e

"\e[1;31m ========== \e[0m"

echo -e

"\e[2;33m ========== \e[0m"

echo -e

"\e[1;33m ========== \e[0m"

echo -e

"\e[1;32m ========== \e[0m"

echo -e

"\e[1;36m ========== \e[0m"

echo -e

"\e[1;34m ========== \e[0m"

echo -e

"\e[1;35m ========== \e[0m"

注意事項:

上面腳本實作的基準上,如果原是qcow2格式,會在convert的時候直接通過rbd導進去,這個指令是參考openstack網站上的一篇部落格,但

是經實驗發現這樣做有一個問題是:導入的鏡像的p_w_picpath-format為1,也就是說,在我們的産品裡,ceph在導入的時候如果不指定這個參數,預設

就是1(據說最新的ceph版本預設為2),而在1的情況下,這個盤不支援快照,不支援快照。請注意。另外聲明,這個腳本不打算處理這個問題,由此帶來的

項目問題,本人不負責喲。

http://superuser.openstack.org/articles/how-to-migrate-from-vmware-and-hyper-v-to-openstack/

3.2 Ansible遷移

首先,将附件下載下傳下來或者按照下文結構和内容整合一下,内容都在裡面了。

運作腳本背景

這個代碼是要運作在你的虛拟機所在節點,,假設它是linux,并且安裝了ansible

然後隻需要在group_vars這個檔案裡把相關的參數設定好,然後在vm_to_openstack.yml這個檔案裡根據你原虛拟機磁盤格式進行選擇,一次隻能開一個;然後就沒有

後期待添加内容:

1:虛拟機擁有一塊或者多塊資料盤的情況

2:自動在雲平台建立虛拟機

結構目錄

[root@host-192-168-12-17 ansible]# tree  /etc/ansible/

/etc/ansible/

├── ansible.cfg

├── group_vars

│   └── all

├── hosts

├── roles

│   ├── qcow2

│   │   └── tasks

│   │       ├── main.yml

│   │       └── qcow2_to_openstack.yml

│   └── raw

│       └── tasks

│           ├── \

│           ├── main.yml

│           └── raw_to_openstack.yml

└── vm_to_openstack.yml

[root@host-192-168-12-17 ansible]# cat group_vars/all

#指定磁盤檔案所在的路徑,注意最後的“/”要加上

src_file_dir: /etc/ansible/

#指定磁盤的檔案名稱

file_name: cirros-0.3.3-x86_64-disk.qcow2

#指定要scp的對方節點所要放置的目錄

to_openstack_dir: /opt/test/

#指定在雲平台建立好待替換虛拟機在ceph的ID

volume_rbd_id: volumes/volume-c0480649-a931-4e75-b3f9-e95a64816baa

[root@host-192-168-12-17 ansible]# cat  hosts

[openstack]

1.1.1.1 ansible_ssh_user=root ansible_ssh_pass=xxxxx

[root@host-192-168-12-17 ansible]# cat roles/raw/tasks/raw_to_openstack.yml

---

- name: copy vm data volumes to openstack node

  copy: src="`src_file_dir``file_name`"  dest=` to_openstack_dir `

- name:  rm volume in ceph

  shell: rbd rm  `volume_rbd_id`

  ignore_errors: yes

- name:  import vm base

  shell: rbd --p_w_picpath-format 2 import  "`to_openstack_dir``file_name`" `volume_rbd_id`

[root@host-192-168-12-17 ansible]# cat roles/raw/tasks/main.yml

- include: raw_to_openstack.yml

[root@host-192-168-12-17 ansible]# cat roles/qcow2/tasks/qcow2_to_openstack.yml

  copy: src="`src_file_dir``file_name`" dest=` to_openstack_dir `

- name: convert this qcow2 file

#  shell: qemu-img convert -p "`to_openstack_dir``file_name`"  -O rbd   rbd:`volume_rbd_id`

  shell: qemu-img convert -p -f qcow2 -O raw  "`to_openstack_dir``file_name`" "`to_openstack_dir``file_name`.liufu"

  shell: rbd --p_w_picpath-format 2 import  "`to_openstack_dir``file_name`.liufu" `volume_rbd_id`

#- name: clean this data volumes

#  shell: mv "`to_openstack_dir``file_name`.liufu" /tmp

#  shell: mv "`to_openstack_dir``file_name`" /tmp

[root@host-192-168-12-17 ansible]# cat roles/qcow2/tasks/main.yml

- include: qcow2_to_openstack.yml

[root@host-192-168-12-17 ansible]# cat vm_to_openstack.yml

- name: install elasticsearch

  hosts: openstack

  user: root

  roles:

#    - { role: raw }

    - { role: qcow2 }

引用幾篇文章

關于如何快速的将上TB的p2v的鏡像上傳到openstack平台的方法

點評:老範這篇文章是基于先将虛拟機鏡像上傳到glance,然後再基于此鏡像建立虛拟機,然後再将模闆删除。他主要描述的是上上傳glance的時候如果避免體積太大導緻上傳逾時。本人不推薦這本方法,但也不排斥,條條大路通羅馬。

基于fuel的openstack新老叢集遷移方案

點評:這篇文章巧妙的在從老叢集的ceph導出的時候直接導入到新叢集的ceph,這樣就能避免因為兩端的管理節點磁盤不足導緻的無法遷移。我沒有用過這種方法,是以不确定資料在這種情況下到底是怎麼流向的,也許真的是導出的時候直接不需要落盤直接通過網絡導入,恩,沒想明白。。。

武漢大學遷移

Windows2008r2破解登陸密碼

點評: 我的文章,恩,沒毛病

5:在不停機的情況下如何做p2v

5.1  巧借vmware之力

有個項目要做p2v,并且要求業務不中斷。。。擦

後來在英明神武的項目經理訓示中,可以借鑒vmware力量

​關于虛拟機遷移文檔(p2v v2v

經過實驗證明此方案可行,是以在這裡大緻歸納一下步驟

1:部署一套vmware環境

一台配置比較好的實體機,裝esxi,裝vcenter server(可選);vcenter我個人覺得沒必要裝,到時候convert的時候直接指向這台esxi主機,嗯,應該是這樣的,一會實驗一下。

注:如果你裝了vcenter server,預設的登入名是[email protected]

相關包下載下傳:http://192.168.254.252/liufu-test/vmware/

1.1:刻錄esxiCD光牒

刻錄這個檔案 VMware-VMvisor-Installer-6.0.0-2494585.x86_64.iso,隻有幾百兆,CDCD光牒就可以

本着發揮雷蜂精神,刻錄工具已經準備好了:http://192.168.254.252/liufu-test/tools/    裡面的ONES.rar是免安裝的,非常簡小強悍的刻錄工具,打開後選擇刻錄常見鏡像就成。另外一個nero得安裝,挺麻煩的,不過 很強大

1.2 :安裝esxi

首先把伺服器的盤建議劃成一個大的raid,它好像沒有系統盤和資料盤的區分。嗯,先這樣做

然後CD光牒引導,安裝

預設,等

​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v

預設是dhcp,如果想改的話,進去就可以修改。我習慣進到troubleshooting options裡把shell 和ssh打開

​關于虛拟機遷移文檔(p2v v2v
1.3 在筆記本上安裝client

安裝包也在上面提到的路徑裡,輕按兩下下一步就完成了

1.4 連接配接至esxi
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v

2:部署一套openstack

3:網絡上的要求

實體機  vmware  筆記本  openstack這四得網絡可達

4:在筆記本上安裝vmware convert工具,然後填寫相關資訊導到vmware裡

 http://192.168.254.252/liufu-test/vmware/vmware%20converter/

一定要裝英文版那個,中文版那個問題,老報錯。把實體機的防火牆什麼的統統關掉

​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v

巴巴一大堆,按提示操作就成

5:上面成功後,你在vmware裡就有了一台虛拟機,之後就簡單了,安裝virtio驅動和其它東西。之後關機

6:将虛拟機導出,目前能想到的方法如下:1:可以導到本地;2:導到ftp、nfs什麼上面,筆記本空間有限;3:或許可以直接登陸esxi主機上,然後直接把檔案scp至管理節點

6.1  導至本地方法

  這個方法測試還行,實際搞的話對筆記本要求太高,我可沒那麼大的空間。隻能擴充一個usb3.0的移動硬碟了

6.2搭建ftp

注:實驗證明,搭建ftp此路不通。原因是在導出的時候無法指定ftp伺服器,雖然可以将ftp映射到本地,但映射的路徑在vsphere client導出的時候認不到

http://www.cnblogs.com/zhi-leaf/p/5983550.html

如果根空間小,可以找個空間大的目錄mount到ftp下

ln -s /var/lib/ceph/osd/ceph-0/liufu/ /var/ftp/pub/

mount --bind /var/lib/ceph/osd/ceph-0/liufu/

6.1 将ftp映射到筆記本

​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v
6.3 搭建nfs

注:這個方法實際證明也不行,導出速度太慢了,原因未查明

[root@node-1 ~]#yum -y install nfs-utils rpcbind

[root@node-1 ~]#vi /etc/exports

/var/ftp/pub/ 0.0.0.0/24 (rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

[root@node-1 ~]#exportfs -r

[root@node-1 ~]#service rpcbind start

[root@node-1 ~]#service nfs start

[root@node-1 ~]#chkconfig rpcbind on

[root@node-1 ~]#chkconfig nfs on

showmount -e ip

windows挂載nfs

先在控制台激活nfs工具,然後執行下面的指令

​關于虛拟機遷移文檔(p2v v2v
​關于虛拟機遷移文檔(p2v v2v

這時候就可以在我的電腦裡看到這個盤,點選進去激活一下。之後就可以通過client導出了

6.4  直接登陸esxi主機将磁盤scp至管理節點

需要驗證一下scp過去的檔案能不能用,而且這個檔案太大了,像這個500G(虛拟機磁盤大小确實是500G,但裡面太多東西),光scp就需要一個半小時,而且直接占用500G,然後還得轉成raw格式,又得占用500G;用用戶端導出來的檔案就沒有這麼大,好糾結

需要将esxi的防火牆打開,方法如下

​關于虛拟機遷移文檔(p2v v2v

登陸esxi主機

​關于虛拟機遷移文檔(p2v v2v

這個方法在low,直接廢掉

7:将導出的内容上傳到openstack 節點,如果将openstack做為nfs伺服器

8:轉格式,以此檔案開機,確定虛拟機磁盤以virtio能開機

qemu-img convert -p -f vmdk -O raw liufu.vmdk liufu.raw

9:之後将此虛拟機搞到openstack裡就結束了

rbd導的時候注意加p_w_picpath-format 2 參數

附1:kvm添加存儲池

在我們kvm隻有一個預設的存儲池,就是/var/lib/libvirt/p_w_picpath ,如果你遠端用virt-manage建立虛拟機隻能在這一個目錄操作,很不友善,下面提供添加指定目錄的存儲池方法

  virsh pool-define-as liufu  --type dir--target /root

  virsh pool-list --all

  virsh pool-build liufu

  virshpool-start liufu

   virshpool-autostart liufu

5.2  借助賽門鐵克(smantec)之力

所謂,需求是推動社會進步的第一生産力,上面提到的那個項目明确要求要利用smantec軟體來搞,目前他們隻用這個軟體做了備份,至于我們如何利用備份内容還原虛拟機是下面讨論的内容

首先,這個工具是收費的。然後呢,是圖形化的

大概原理是:以windows舉例,是否支援linux待查。安裝軟體,然後制定備份任務,可以将某一個分區或者所有分區備份出指定的位置,通常當你的檔案損壞或者丢失後可以用備份内容來找回,但我們發現這個工具有一個吊炸天的功能:能夠将備份内容轉換成vmdk檔案,酷!!!,這一點正是我們苦苦尋覓的核心,有了它,p2v将簡單很多。

下面是詳細步驟

1:在源實體機上安裝

詳見附件work

賽門鐵克安裝及p2v過程.docx

大概總結一下這個軟體的使用流程:在實體機上安裝此軟體,然後在這個實體機上操作這個軟體,先執行一次備份任務,其實這個任務結果可以放到遠端的存儲伺服器上,之後通過其自帶的功能将這個任務直接轉換成vmdk檔案,我們拿到這個檔案之後在kvm上将其展開,安裝rhev驅動等,最後保證虛拟機正常後将它傳到openstack裡去。

上一篇: 結對作業一