VMware克隆功能可使用户更方便地复制多份相同的虚拟机与同事、朋友共享。它分为Full Clone(完全克隆)和Linked Clone(链接克隆)。顾名思义,Full Clone就是把虚拟机完完全全复制一份,而Linked Clone特性就是基于一个母虚拟机的子虚拟机。
Full Clone与Linked Clone的区别
Full Clone是完全独立的虚拟机,它的执行效率与被克隆虚拟机相同,但与Linked Clone相比,它占用空间多,克隆慢等缺点。
Linked Clone依赖于被克隆的虚拟机(母机)。一旦被克隆的虚拟机出现问题,那么虚拟子机同样会出现问题。但是它有占用磁盘空间少,刻录速度快的优点。
安 装了两台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" 然后保存文件即可。