天天看點

[VMware]深度解析VMware克隆功能

VMware克隆功能可使使用者更友善地複制多份相同的虛拟機與同僚、朋友共享。它分為Full Clone(完全克隆)和Linked Clone(連結克隆)。顧名思義,Full Clone就是把虛拟機完完全全複制一份,而Linked Clone特性就是基于一個母虛拟機的子虛拟機。

Full Clone與Linked Clone的差別

Full Clone是完全獨立的虛拟機,它的執行效率與被克隆虛拟機相同,但與Linked Clone相比,它占用空間多,克隆慢等缺點。

Linked Clone依賴于被克隆的虛拟機(母機)。一旦被克隆的虛拟機出現問題,那麼虛拟子機同樣會出現問題。但是它有占用磁盤空間少,刻錄速度快的優點。

vmware虛拟機i copied it 和 i moved it的差別

2011-12-06 23:26

安 裝了兩台vmware esx  A和B,其中一台做冷備,沒安裝vcenter,發現有一台虛拟的redhat 在從A機切到B機的時候,網卡總是将原來的ifcfg-eth0複制到ifcfg-eth0.bak,生成新的ifcfg-eth0,每次切換都要重新設 置eth0的ip和網關才能正常工作,從網上搜尋了一些資料,基本上都是說是redhat和centos在網卡mac位址改變後才會生成 eth0.bak,知道原因了,可是怎麼解決這個問題呢,又多切換了幾次,突然注意到在切換虛拟機的時候有一個提示是cannel ,i move it,i copy it ,難道問題是在這嗎?我一直是選擇i copy it的,可錯誤就在這。

在虛拟機位置變化後啟動到95%時提示:  msg.uuid.altered: This virtual machine might have been moved or copied.

In order to configure certain management and networking features, VMware ESX needs to know if this virtual machine was moved or copied.

If you don't know, answer "I copied it".

仔細研究了一下,這個主要由于虛拟機的配置發生變化或虛拟機的位置發生變化時會發生這樣的情況.。

下面是i copied it和i moved it 的差別:

選擇I copied it的時候,VMware軟體檢測到實體機改變後會對個虛拟機重新生成新的網卡MAC位址,UUID

選擇I moved it,隻改變UUID,虛拟機其它配置不變。

關于uuid的資料

為什麼會産生這個問題呢,還需要從UUID談起(UUID是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平台會提供生成UUID的API ),虛拟機同樣會有一個UUID,而且這個UUID是唯一的。

  虛拟機的UUID一般和虛拟機配置檔案的位置和實體主機有關。當我們對一個虛拟機系統做移動操作的時候,我們不需要建立一個UUID。讓我們複制一個虛拟機的時候我們應該選擇建立一個新的UUID,來保證此虛拟機的唯一性。

  當我們利用嘗試拷貝或移動一個位于datastore裡面的虛拟機時,系統會提示我們:

  A.I_Moved it;

  B.I_Copied it;

  同時我們能看到如下消息:

  “msg.uid.altered:This virtual machine may have been moved or copied”,那麼,這一切究竟是什麼意思呢??

  首先,我們應該了解一下,上面消息中所說的UUID是個什麼東西?

  UUID的全稱是:universally unique identifier。UUID是一個128位的數值,用它來差別每個虛拟機之間的差異。

  在虛拟機被開啟或移動時,UUID會自動生成,UUDI的值是基于實體主機并且儲存在*.vmx檔案裡面的。UUID值存儲在vmx檔案的2個位置:

  A.uuid.bios;

  B.uuid.location(這是虛拟機的目前路徑);

  比如:uuid.bios="56 4d 5e 58 66 f5 2d 04-03 31 0a bd 6f a7 19 88"

   UUID同時還存儲與虛拟機的BIOS裡面。當虛拟機開啟或被移動時,UUID的uuid.location值會随着虛拟機存儲位置變化而相應的變化。 一旦虛拟機的位置發生變化,那麼uuid.location值也會發生相應的變化,這時,就會提示我們最開始描述的資訊。

  那麼UUID為什麼那麼重要呢?如果UUID相同會發生什麼事兒呢?其實,最關鍵的一個還是UUID的最後幾位是和虛拟機的MAC位址有關的,如果不發生變更,在我們克隆虛拟機時,可能導緻UUID相同,那麼,MAC位址會發生沖突,那麼,網絡就會存在問題。

  那麼,究竟該選者“I Moved it”還是“I Copied it”呢?其實,這個問題,我們通過分别執行一下之後對比vmx檔案裡的内容就知道了:

  I Moved it:

  由于是移動這個虛拟機,那麼隻有uuid.location發生變化,MAC位址是沒有變化的。

  I Copied it:

  由于是拷貝虛拟機,那麼uuid.bios和uuid.location都會發生變化,這是MAC位址就會發生變化。

那麼有辦法取消這個提示,或者改一下這個提示的預設設定嗎?可以的。

1、vSphere Client登入系統關閉虛拟機後右擊虛拟機Edit Settings;

 2、點選Options頁标簽然後找到Advanced選擇General後點選Configuration parameters;

3、點選Add Row添加下面的資訊:answer.msg.uuid.altered将值設定為I copyied it或I moved it;

4、點選OK,完成添加;

如果想要利用編輯vmx檔案來解決則可以分别在vmx檔案裡添加:

 "answer.msg.serial.file.open"="Append"/"Replace"

"answer.msg.uuid.altered"="I copied it"/"I moved it" 然後儲存檔案即可。

本文轉自 lizhi727 51CTO部落格,原文連結:http://blog.51cto.com/lizhi727/874170

繼續閱讀