目前的 VMware Server 的主要性能瓶颈仍然是磁盘IO,所以,如果你的虚拟机对IO的要求不高,通过适当的配置,仍然可以获得较高的性能。本网站目前就架设在一台 VMware Server 的虚拟机内。
使用 VMware Server 的另一个好处是对环境进行隔离,想像你只有一台服务器,却不得不配置两套不同版本的Web服务器以部署应用,为了减少两个环境之间的冲突,让每个部署都尽量简单,虚拟机会是你的一个好的选择。
不仅如此,使用 VMware Server 安装虚拟机,你还可以非常简单的进行系统的备份、复制和还原,通常仅仅需要复制虚拟机文件即可完成备份还原工作(当然,通过其自身提供的 Snapshot 功能通常也是很好的选择)。
总之,VMware Server 比你想像中的更有用,其安装配置也非常简单,更重要的是,它是Free的,确实值得尝试。
Requirements
Operation System
CentOS 5.3
Version
* VMware-server-2.0.1-156745.i386.rpm
Download
* http://www.vmware.com
Install
安装必须的包:
gcc gcc-c++
kernel kernel-devel kernel-headers
libXtst-devel libXrender-devel xinetd
1. 在 VMware 中注册并下载 VMware Server 的 rpm 安装包
注册的时候要注意一点,即问你准备在windows下和linux下各安装多少个copy,当然要填多点了 :)
2. 使用 root 用户登录要安装的主机
3. 安装 rpm
rpm -ivh VMware-server-2.0.1-156745.i386.rpm
4、进行配置
4.1运行
/usr/bin/vmware-config.pl
开始配置界面,下面,我们尽量详细的讲解一下配置过程
4.2
Do you want networking for your virtual machines? (yes/no/help) [yes]
是否需要配置网络,一般应该使用,所以使用缺省值。
4.3
Configuring a bridged network for vmnet0.
Please specify a name for this network.
[Bridged]
首先配置使用桥接的网络,如果你希望你的虚拟机直接暴露于外网(并不特指internet,通常是指暴露在宿主机所在的子网内),可通过桥接的方法,需要指定该网络的名称,例如 vm-bridged ,该名称将在创建和配置虚拟机时使用,请输入一个方便记忆的名称。
4.4
Your computer has multiple ethernet network interfaces available: eth0, eth1.
Which one do you want to bridge to vmnet0? [eth0]
选择在哪块网卡上配置桥接网络,一般应该选择你能够上网的网卡,当然,如果你比较熟悉网络,也可进行其它的配置。
4.5
Do you wish to configure another bridged network? (yes/no) [no]
是否需要在其它网卡上配置桥接网络,根据你的实际需要,一般是不需要的。
4.6
Do you want to be able to use NAT networking in your virtual machines? (yes/no) [yes]
是否需要通过NAT配置网络,如果你希望你的虚拟机暴露在外网(并不特指internet,通常是指暴露在宿主机所在的子网内),NAT是常用的一种虚拟机网络配置方法(类似你通过一台路由器上网),通过其往往能够得到更高的网速,通过在宿主机的iptables中进行配置,可以很容易让类似 BT,EMule等软件获得更高的下载速度,所以我们选择 yes。
4.7
Configuring a NAT network for vmnet8.
Please specify a name for this network. [NAT]
配置使用NAT的网络名称,例如 vm-nat ,该名称将在创建和配置虚拟机时使用,请输入一个方便记忆的名称。
4.8
Do you want this program to probe for an unused private subnet? (yes/no/help) [yes]
是否自动配置NAT使用的子网,一般选择自动配置了,除非你希望对子网进行规划,通常会自动配置 172.16.*.* 这样的子网。
4.9
Do you wish to configure another NAT network? (yes/no) [no]
是否需要配置另外一个NAT网络,通常不需要。
4.10
Do you want to be able to use host-only networking in your virtual machines? [yes]
是否希望虚拟机支持 host-only 的网络,如果你不希望将虚拟机暴露于外网(并不特指internet,通常是指暴露在宿主机所在的子网内),应该在创建虚拟机时选择这种网络。
4.11
Configuring a host-only network for vmnet1.
Please specify a name for this network. [HostOnly]
配置使用NAT的网络名称,例如 vm-hostonly ,该名称将在创建和配置虚拟机时使用,请输入一个方便记忆的名称。
4.12
Do you want this program to probe for an unused private subnet? (yes/no/help) [yes]
是否自动配置HostOnly使用的子网,一般选择自动配置了,除非你希望对子网进行规划,通常会自动配置 172.16.*.* 这样的子网。
4.13
Do you wish to configure another host-only network? (yes/no) [no]
是否需要配置另外一个HostOnly网络,通常不需要。
4.14
Please specify a port for remote connections to use [902]
指定远程连接端口,VMware Server安装完成后,可通过其一套Web界面进行访问,在这套界面中,有一个 Console(控制台)的功能,该功能通过在浏览器中安装一个插件,可以实现通过浏览器查看和管理被安装的虚拟机(如果你用过rdesktop、 symantec pc-anywhere或KVM,你应该明白我在说什么),这个插件需要通过服务器上的这个端口获得数据(所以,如果你的宿主机前有防火墙,需要开通此端口的TCP协议),一般我们就用缺省的端口就好了,除非你的端口已经被占用,BTW,查看端口被谁打开的方法是:
lsof -i :902
如果出现结果,则可以通过进程号获得什么进程打开了此端口。
4.15
Please specify a port for standard http connections to use [8222]
同上,web访问界面使用的http端口,安装完成后,你可以通过 http://www.xxx.com:8222 来访问 VMware Server的Web管理界面,需要在防火墙内打开此端口的TCP协议。
4.16
Please specify a port for secure http (https) connections to use [8333]
同上,web访问界面使用的https端口,安装完成后,你可以通过 https://www.xxx.com:8333/ui 来访问 VMware Server的Web管理界面,需要在防火墙内打开此端口的TCP协议。
4.17
The current administrative user for VMware Server is ''. Would you like to specify a different administrator? [no]
这里我们一般不能用缺省选项,应该选择 yes ,这个配置的意思是说当前 VMware Server 的管理员尚未指定(''的意思可不就是没指定嘛,当然,也可能有别的含义,不过我们不是测试人员,没有必要都搞明白),是否需要指定--当然要指定了。
4.18
Please specify the user whom you wish to be the VMware Server administrator
选择宿主机上的一个已有的用户作为其管理员,这里的用户是指linux系统的用户,当然应该有密码了,一般为了安全起见,应该创建一个单独的用户,例如 vmware 什么的,并指定其密码,不过可能不需要有 home 目录,也最好不给它 shell。
4.19
In which directory do you want to keep your virtual machine files?
[/var/lib/vmware/Virtual Machines]
指定虚拟机存放的目录,即其 DataStore 的概念,这里可能会占用较多的空间(看你装多少操作系统,系统中有多少内容了),所以最好放置在有足够空间的位置,一般我们的 var 或 home 通常会是空间比较大的地方,所以,看你自己的情况了。
4.20
The path "/home/vmware/Virtual Machines" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]
如果你指定了一个不存在的目录,会提示你是否要自动创建,当然要创建了。
4.21
Please enter your 20-character serial number.
Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel:
毕竟,只是一个free的软件,序列号还是需要的,在 VMware 注册的时候会在激活邮件中获取到,你应该将其妥善保存好。
4.22
In which directory do you want to install the VMware VIX API binary files?
[/usr/bin]
选择 VMware VIX API binary files 的安装位置,VMware VIX API 是很有用的东东,特别是在你的虚拟机比较多,需要自己写脚本进行管理的情况下,你可以在脚本中通过调用VMware VIX API,完成虚拟机的启动、关闭、备份等日常工作,以后我们会对此进行专门的说明,请参看 VMware VIX API 。
4.23
In which directory do you want to install the VMware VIX API library files?
[/usr/lib/vmware-vix/lib]
选择 VMware VIX API library files 的安装位置。
4.24
The path "/usr/lib/vmware-vix/lib" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
是否自动创建 VMware VIX API library files 的安装目录,当然了。
4.25
In which directory do you want to install the VMware VIX API document pages?
[/usr/share/doc/vmware-vix]
指定VMware VIX API 的文档的安装位置。
4.26
The path "/usr/share/doc/vmware-vix" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
是否自动创建 VMware VIX API 文档的安装目录,当然了。
4.27
The installation of VMware VIX API 1.6.2 build-156745 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-vix.pl".
告诉你 VMware VIX API 已安装完成,可以在以后通过 /usr/bin/vmware-uninstall-vix.pl 进行卸载,如果你以后不想再使用 VMware Server(你可能有了更好的选择,例如开源的 KVM ),你可以先使用 /usr/bin/vmware-uninstall-vix.pl 卸载 VIX API,然后使用rpm卸载VMware Server。
4.28
基本的配置过程就是以上这些,在配置完成后,系统会尝试自动启动虚拟机,并会在系统重启时自动启动 VMware Server。
5. 使用 VMware Server
作为安装和配置之后,下面我们来介绍一下如何使用 VMware Server。
5.1 配置防火墙
首先,如果你的宿主机上安装有防火墙,并且希望通过其它机器上的浏览器访问宿主机上的管理界面,需要在宿主机上的防火墙上进行设置,假设你使用 iptables ,你可以
vi /etc/sysconfig/iptables
在其中适当的位置加入
-A RH-Firewall-1-INPUT -m state --state NEW -m multiport -p tcp --dport 902,8222,8333 -j ACCEPT
然后重启服务
service iptables restart
5.2 在浏览器中访问 VMware Server
在浏览器中输入 http://www.xxx.com:8222 ,其中 www.xxx.com 是你的宿主机的地址,如果你在本机访问,可以使用 localhost ,此时,页面会自动跳转至 https://www.xxx.com:8333/ui ,并报出提示
www.xxx.com:8333 使用了无效的安全证书。
这是由于使用了非正式发布的证书,可以让浏览器接收该证书,当然,如果你愿意,也可以加入正式的证书,请参考 在VMware Server 中使用证书 。需要注意的是,有时候会无法打开loading页面,例如在 firefox 的错误控制台内可以看到类似这样的错误
Error: vmtn is not defined
Source File: https://vm.myserver.com:8333/ui/
Line: 130
Error: unterminated string literal
Source File: https://vm.myserver.com:8333/ui/jslib-1.0.128374/.jslib.js
Line: 1, Column: 120
Source Code:
d(),TIMEOUT:vmtn.util.EventObject.nextId()});var $super=$class.parent.prototype;})(); (function(){var $class=new $Class("vmtn.
Error: syntax error
Source File: https://vm.myserver.com:8333/ui/jslib-1.0.128374/.wbc.js
Line: 1, Column: 77
Source Code:
is._config.getFinalData();},setSelection:function(selection){var oldSelection=
Error: vmtn is not defined
Source File: https://vm.myserver.com.ch:8333/ui/
Line: 122
这时,我们清空浏览器的缓存,再重新访问,一般就可以解决问题了。
5.3 创建虚拟机
按照提示一步一步创建就可以了,需要注意的是,最好在创建时选择的CPU多一些,内存也大一些,将来在真正使用时可以从大改小,但不能从小改大。对于虚拟机来说,配置稍微多一些的内存是必要的,这可以尽量避免换页操作,从而减少IO操作,以提升虚拟机性能。
5.4 安装操作系统
将虚拟机关机,然后创建CD/DVD drive,选择你要安装的操作系统镜像文件(iso文件),然后开机,即可进行操作系统的安装工作。
5.5 复制虚拟机
如果我们已经安装好了一个虚拟机,为了方便下次安装,可将其复制出来,对虚拟机关机,然后到虚拟机的数据目录下找到刚才装好的操作系统,将整个目录进行备份即可。下次安装时,将该目录复制到虚拟机的数据目录下,改名成你希望的名字,然后在web管理界面中创建虚拟机(创建时直接选择刚才复制过来的目录)并开机,在开机时,有一个重要的提示,就是问你这个虚拟机是“移动过来的”还是“复制过来的”,一般应该选择是“复制过来的”(这样会对其重新进行配置),然后就可以使用了。
5.6 使用Console
在虚拟机开机后,点击 Console 标签,第一次点击时会提示是否需要“Install plug-in”,这个插件就是在浏览器中操作虚拟机的界面,安装之,重启浏览器,就可以访问虚拟机了。
使用文本编辑工具打开 /etc/selinux/config
把 SELINUX=enforcing 注释掉: ,
然后新加一行为:SELINUX=disabled
保存,关闭。重启系统
由于vmware server发布较早,因此对IE7/8等浏览器的兼容性不够好。会遇到几个问题:
- 其使用了https访问,而SSL的签名证书使用了自签名证书,是不被浏览器认可的。所以,访问该网址时会提示证书问题。你可以通过强行访问来绕过这个证书问题。
- 在IE8下面,由于使用了不同的浏览器模型,所以需要使用兼容性视图来访问这个网址。
- 为了通过WEB访问虚拟机的桌面,需要安装一个ActiveX的控件。安装该控件后,还要将其设置为启用。
- 有些脚本需要更高权限,所以需要将你的服务器地址加入到IE信任列表中。
访问上述网址后,会提示你输入用户名和密码——这个在配置时候就指定了,默认是root。你可以输入root及其密码来访问。
Web管理界面大量的使用了AJAX,速度不是很快,但是也基本可以接受。
到此,我们的虚拟机系统基本就安装完了,接下来我们需要在虚拟机系统里面安装一个Windows 2003。
安装Windows 2003安装客户系统有两种方法:
- 导入已安装好的虚拟机镜像。
- 全新安装,将安装光盘或ISO放到服务器上进行安装。
由于手边并没有一个合适的虚拟机镜像,因此到microsoft的网站上直接下载其提供的“Microsoft Windows Server 2003 R2 Enterprise Edition VHD”:
这是一个microsoft为其Virtual PC提供的评估版镜像,是英文版本,只能使用一段时间,如果希望正式使用,请采用全新安装方式。镜像大小约2G。
下载后,由于Vmware server并不能直接读取Virtual PC的虚拟机,所以需要将其转换为Vmware的虚拟机。Vmware也提供了转换器(约120M),但是Linux这个转换器需要X windows的支持。因此,我使用了Qemu这样的一个处理器模拟软件的一个工具来进行转换。从这里下载Qemu:
http://www.qemu.org/download.html
下载后,进行编译(可以不编译那些不需要的CPU支持,否则编译时间较长)。编译后不需要安装,直接使用其中的qemu-img工具即可。我下载到 的这个版本,需要libcurl.so.4的支持,但是我本机上只有libscurl.so.3,没关系,做个符号链接即可,我们并不真的需要curl的 功能。
通过以下命令来进行转换:
# ./qemu-img convert -f vpc WIN2K3R2EESP2.vhd -O vmdk WIN2K3R2EESP2.vmdk
这样就生成了Vmware支持的vmdk格式的虚拟机存储文件了。
在Vmware的Web管理界面里面,增加一个新的虚拟机,并添加我们刚才转换成功的虚拟机存储文件,记得要用IDE方式(microsoft的这个虚拟机是以10G的IDE硬盘和512M内存配置的)。
新建虚拟机后,启动它(power on),然后你就可以在虚拟机的Console里面看到桌面了(点击后在新的窗口打开)。如果你不能查看Console,那是因为你没有安装 “vmware-vmrc-win32-x86.exe”这个ActiveX。需要安装它并在“加载项管理”里面“启用”它。
查看到桌面时,你会发现没有鼠标,只能用键盘操作。这是一个Virtual PC下的虚拟机转换到Vmware的bug,因为Virtual PC里面也有一个类似Vmware tools的软件:Virtual PC Additions所导致的。你可以登录后修改注册表或在控制面板中删除这个软件来解决这个问题。
首先登录桌面,用户名自然是“administrator”,密码默认是“Evaluation1”(在Readme.html里面有说明),你可以登录后修改。
登录后会提示你发现新的硬件——这是Vmware带来的,所以是驱动不了的。你需要在Web管理界面里面为这个客户操作系统安装Vmware tools。点击安装,会在虚拟机里面自动挂载Vmware tools的光盘,直接运行安装即可。安装后会驱动Vmware带来的硬件。
安装后需要重启虚拟机。不过先不要重启,要修复鼠标不能用的问题。修改注册表的方式如下。定位到注册表的如下分支:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetContro lClass{4D36E96F-E325-11CE-BFC1-08002BE10318}
修改其下的“UpperFilters”的键值,将“msvmmouf”这个值从其中删除(该值中的其它filter保留)。
注:以上方法来自:http://geekswithblogs.net/ZarkBlog/archive/2008/01/14/vpc-to-vmware-mouse-problems.aspx
也可以直接在控制面板中删除“Virtual PC Additions”这个软件。
然后就可以重启了。重启过程中,可能并不能像物理机器那样看到BIOS信息,如果你的Console没有桌面显示,你只需要等候一段时间,重新Reset虚拟机即可。
再次登录后,你会发现鼠标、网卡等已经工作了。现在你就可以进行正常的系统操作了,如配置IP、显示及激活等。
全新安装方式上述的方式比较简单,我开始是采用这种方法安装的。但是发现这种评估版有严重问题:评估版本发布的时间比较早,在你安装时候已经过期了,即便你输入正式的产品序列号激活后,依然被认为是评估版,会不断重启的。
因此在正式使用的场所,建议使用全新安装(注意,也不要去下载Microsoft的评估版ISO,所有microsoft的评估的操作系统,都不能转变成正式版使用——即便你有正式版的序列号,希望重新激活)。
全新安装可以将光盘放到服务器的光驱内;也可以将光盘转成ISO,然后建立虚拟机时,将ISO作为光驱镜像安装。
整个安装过程乏善可陈,在此不再赘述。
安装完之后,记得要马上安装Vmware tools,这样你的网卡就可用了,可以下载更新;显卡的加速功能也能打开到完全了,鼠标操作起来就不会难以指挥了。
远程管理如果你不喜欢使用Web管理界面里面Console来管理服务器,你可以在系统属性中打开远程桌面连接功能(记得如上面所述打开3389端口)。
这样,在Linux服务器下,你的Windows 2003就正常运行起来了。