由于实验室条件限制,手中只有一台物理服务器可以供使用,于是只好搭建了如下虚拟机环境以供实验,资源丰富的朋友们自然就不用这么委屈了。后面的演示时将一台虚拟机从一台虚拟化vmware esx server迁移到另外一台虚拟化vmware esx server(v2v),有条件的朋友们可以尝试着另外三种迁移方案:
p2v : 从一台物理vmware esx server迁移到另外一台虚拟化vmware esx server;
v2p : 从一台虚拟化vmware esx server迁移到另外一台物理vmware esx server;
p2p : 从一台物理vmware esx server迁移到另外一台物理vmware esx server;
|________________x86 物理主机_________________|
|
|_________windows 2003 server sp2 32-bit_______|
|
|___________vmware workstation 6.5.3__________|(注:同时安装VIC和VirtualCenter)
|
|___vmware esx 3.5 U4___| |__vmware esx 3.5 U4__|
| |
|____RHEL 5.4 32-bit_____| |________none________|
安装第一个vmware esx server时,取名为esxserver-node1,计算机名也为esxserver-node1,磁盘文件名为esxserver-node1.vmdk;
安装第二个vmware esx server时,取名为esxserver-node2,计算机名也为esxserver-node2,磁盘文件名为esxserver-node2.vmdk;
我知道很多人觉得安装完第一个vmware esx server后,直接clone给第二个vmware esx server更省事,但是这样做会使已安装系统的计算机名保持不变,都是esxserver-node1,默认安装的vmfs分区esxserver-node1:storage1也一样,会使vmfs认为两个esxserver-node1:storage1是同一个的,从而在迁移过程中发生不可预知的错误。不过,两个vmware esx server的配置信息最好一样。
下面逐个介绍我在配置过程中遇到的问题和解决办法,相信其他人也可能遇到,当然,遇不到就更好了,^_^
1)vmware esx server 3.5 Update 4和vmware virtualcenter 2.5 Update 4的破解问题(仅仅作为学习使用)
如果是评估版,就只有60天的使用时间,如何解决这个问题,下面的网址包含了完整的破解文件和详细的破解方法:
http://www.linux-ren.org/modules/wordpress/?p=579
2)vmware esx server在安装完成之后启动非常缓慢
这有可能是vmware workstation版本太低。我开始使用6.0.0版本,遇到这个问题,花了一个多小时都没有启动完成,后来改用6.5.3,就顺利启动了。
3)用VIC在vmware esx server上启动虚拟机时发生"you may not power on a virtual machine within a virtual machine"
这是因为vmware esx server配置不当,只需在vmware esx server的配置文件.vmx里面添加如下两行即可,不要多加,也不要少加:
monitor.virtual_exec = "hardware"
monitor_control.restrict_backdoor = "true"
4)迁移虚拟机时,发生源vmware esx server和目标vmware esx server的vmotion网络配置不当的问题
要做vmotion,源和目标vmware esx server都必须配置专门的网卡,并做专门的设置,以启动vmotion功能,下面的网址介绍了具体如何配置:
http://leesun.blog.51cto.com/58664/131772
5)迁移虚拟机时,发生错误
“无法将 xxxx 从 xx.xx.xx.xx 迁移到 xx.xx.xx.xx: 主机 CPU 与虚拟机在 CPUID 级别 0x80000001 寄存器“edx”处的要求不兼容。
主机位:0000:1000:0001:0000:0000:0000:0000:0000
要求:xx1x:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
检测到以下特征不匹配:
* Longmode;为 64 位客户操作系统配置虚拟机时需要。”
我的win2003,vmware esx server和guest os都是32位的,出现这种错误确实让人费解,网上搜寻未果,遂自己解决。vmware esx server和vm的CPUID级别不一致,而vmware esx server的配置文件.vmx里面看不到cpuid的配置信息,于是只好改虚拟机的配置文件.vmx,添加一行,使虚拟机的CPUID与主机位的CPUID兼容:
cpuid.80000001.edx = "--0-----------------------------"
6)发生了一般系统错误: Invalid fault或者找不到引用的对象或项目。
这种错误是最普通的,就像C语言里面的空指针和Java语言里面的找不到引用对象,没有任何信息含量,很难追踪。我这里出现的原因是,第二个vmware esx server由第一个vmware esx server经过clone而来,两个esxserver-node1:storage1被认为是同一个所致。
7)迁移虚拟机时,发生“无法访问文件”的错误
产生错误的原因是被迁移的虚拟机不在源vmware esx server和目标vmware esx server的共享磁盘上。本博客上一篇文章
讲述的是如何在虚拟机之间共享磁盘,而这里的情况有所不同,要求的是在vmware esx server之间共享磁盘,下面介绍操作:
7.1)为esxserver-node1在通道scsi2:0上新建一块12G的磁盘,并修改配置文件:
scsi2:0.shared = "TRUE"
disk.locking = "FALSE"
scsi2:0.SharedBus = "Virtual"
7.2)在esxserver-node1上用parted工具为其建立一个msdos主分区,注意将分区Id改成fb,用于vmfs文件系统。然后挂在这个分区:
vmkfstools -C vmfs3 -S shared_vmfs vmhba2:0:0:1
这时候shared_vmfs就和esxserver-node1:storage1一样作为存储区域建立虚拟机了。
7.3)在esxserver-node2上添加进这个磁盘,在其/vmfs/volume/下面会自动加入shared_vmfs存储区域了。