当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > RedHat5.0配置XEN虚拟机

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 RedHat5.0配置XEN虚拟机


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 176 ::
收藏到网摘: n/a

Xen虚拟机有两种运行方式:完全虚拟化(fullvirtualization)和半虚拟化(paravirtualization)。完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。

表-1是x86处理器支持Xen完全虚拟化列表



查看您的中央处理器类型

最好使用支持IntelVT或AMDPT虚拟化技术。要检查中央处理器是否支持,用命令:

#grepvmx/proc/cpuinfo
flags:fputscmsrpaemcecx8apicmtrrmcacmovpatpse36clflushdtsacpimmxfxsrssesse2sshttmsyscallnxlmconstant_tscpnimonitords_cplvmxesttm2cx16xtprlahf_lm

假如一个vmx标志出现的话,就表示您拥有Intel处理器的虚拟化支援。

如果是AMD的中央处理器用命令:
#grepsvm/proc/cpuinfo
flags:fputscmsrpaemcecx8apicmtrrmcacmovpatpse36clflushdtacpimmxfxsrssesse2sshttmsyscallnxmmtextfxsr_optrdtscplm3dnowextpnicx16lahf_lmcmp_legacysvmcr8_legacy

假如一个svm标志出现的话,就表示您拥有AMD处理器的虚拟化支援。除了检查中央处理器旗标以外,您也应该要使您系统BIOS中的完整虚拟化生效。图-1是笔者AMD计算机的截图。


图-1是笔者AMD计算机的截图。

说明:Xen是一款虚拟化软件,支持半虚拟化和完全虚拟化。它在不支持IntelVT或AMDPT技术的cpu上也能使用,但是只能以半虚拟化模式运行。半虚拟化的意思是需要修改被虚拟系统的内核,以实现系统能被完美的虚拟在Xen上面。完全虚拟化则是不需要修改系统内核则可以直接运行在Xen上面。

安装Xen服务

使用下面的命令检查系统是否已经安装了Xen或查看已经安装了何种版本,以及Linux内核是否有针对Xen的补丁。

rpm-qa|grepxen

如果系统还没有安装Xen虚拟机,可以使用下面的命令安装Linux补丁、Xen虚拟机和virt-manager虚拟机管理工具。但用户必须联入Internet,同时拥有virtualization服务的订阅号码。
yuminstallkernel-xenxenvirt-manager

启动和停止Xen服务

1.启动Xen服务
/etc/init.d/xendstart
2.停止Xen服务
/etc/init.d/xendstop
3.重新启动Xen服务
/etc/init.d/xendrestart

4自动启动Xen服务
如果需要让Xen服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“xend”服务,在其前面加上星号(*),然后选择“确定”即可。

5使用图形工具virt-manager创建Xen虚拟系统

在X-Window中打开“应用程序”→“系统工具”→“VirtualMachineManager”,选择“本地Xen宿主”后单击“连接”,启动虚拟化管理应用程序virt-manager。下面使用virt-manager安装一个LinuxXen完全虚拟化客户机。步骤如下:
在virt-manager中打开“文件”→“新系统”,启动创建新的虚拟系统向导,单击“前进”按钮。如图-2。


图2启动创建新的虚拟系统向导

在“为虚拟系统命名”界面中,输入虚拟系统的名称“cjh”,单击“前进”按钮,如图-3。



图-3为虚拟系统命名

在“选择虚拟化方式”界面中选中“完全虚拟化”单选按钮,然后单击“前进”按钮,如图-4。



图-4选择完全虚拟化

这里选择的是完全虚拟化,?指定CD-ROM或DVD,然后输入安装介质的路径。如果你将从ISO映像进行安装,指定ISO映像的位置。单击“前进”按钮如图-5。



图-5定位安装介质

选择简单文件,键入/cjh.img作为文件的位置。指定2000MB,并点击“前进”按钮如图-6。



图-6选择简单文件

在“分配内存及CPU”界面中,根据实际情况为虚拟系统分配相应的内存和CPU数量。并点击“前进”按钮如图-7。


图-7分配内存及CPU

点击完成按钮,如图-8。



图-8完成配置

虚拟机控制台窗口将出现。象往常一样进行并结束安装Linux。如图-9。



创建虚拟机界面

系统依照所设置的参数创建虚拟系统的配置文件/etc/xen/VM5,并自动开启虚拟系统终端。如图-10。


图-10Xen虚拟机安装linux界面



图-11Xen虚拟机中的Linux界面

依照提示安装虚拟系统,在安装完成后重新引导系统时虚拟系统会自动关闭,因此需要使用命令“xmcreat/etc/xen/cjh”重新开启虚拟系统。

到此为止笔者介绍了红帽企业5.0安装XEN虚拟机,下一页将要介绍管理Xen虚拟机的方法,敬请期待。

使用图形工具virt-manager管理Xen虚拟机

1.查看虚拟系统的名称、CPU占用情况和内存占用情况

在virt-manager中选择要管理的虚拟系统,然后单击“细节”按钮,打开“虚拟系统状态”窗口,在这里可以查看虚拟系统的名称、CPU占用情况和内存占用情况。如图-1。



图-1查看虚拟系统的名称、CPU占用情况和内存占用情况

2.查看和修改虚拟系统内存等硬件的状态和参数

选择“硬件”选项卡,在这里可以查看和修改虚拟系统内存等硬件的状态和参数。如图-2。



图-2查看和修改虚拟系统内存等硬件的状态和参数


3.虚拟机保存、停止和暂停

在virt-manager中选择要管理的虚拟系统,然后单击“打开”按钮,启动虚拟系统终端。在这里可以使用暂停、运行、关闭和保存等功能,如图-3。



图-3虚拟机保存、停止和暂停

使用字符工具xm管理Xen虚拟机的命令

显示虚拟机运行状态
xmlist
使用文本方式连接虚拟系统
xmconsole
开启虚拟系统
xmcreate
关闭虚拟系统
xmshutdown
xmdestroy
重新启动虚拟系统
xmreboot
将虚拟系统当前状态保存到文件中
xmsave
恢复已保存的虚拟系统
xmrestore
暂停虚拟系统
xmpause
恢复被暂停的虚拟系统
xmresume

Xen虚拟机的故障解除

1了解Xen配置文件

Xen的配置文件包含下面的标准变量。这些文件里的配置项必须用引号(")括起来。这些配置文件位于/etc/xen目录里。如表1。



表1Xen虚拟化系统配置文件

2了解Xen日志文件

所有红帽虚拟化系统的日志文件都是标准的ASCII文件,可以很容易地用基于ASCII的编辑器存取。红帽虚拟化系统的主要配置目录是/etc/xen/。这个目录包含了xend守护进程和其他的虚拟机配置文件。网络脚本文件也存放在此处(在/scripts目录)。所有你用于故障解除目的的日志文件都存放在/var/log/xen目录。你也应该知道所有虚拟机的基于文件的磁盘映像都缺省存放在/var/lib/xen目录里。红帽虚拟化系统的/proc文件系统信息位于/proc/xen/目录。

虚拟化系统以xend守护进程和qemu-dm进程为特征,这两个工具都把多个日志文件写入到/var/log/xen/目录:

xend.log是包含xend守护进程收集的所有数据的日志文件,不管这数据是普通的系统事件,还是操作者执行的动作。所有虚拟机的操作(如创建、关闭、销毁等等)都在此出现。xend.log通常是你跟踪事件或性能问题的第一个着手点。它包含错误信息的详细条目和条件。xend.log文件包含了于你运行xmlog命令相同的基本信息。它位于/var/log/目录里。

xend-debug.log是包含xend和虚拟化子系统(如framebuffer、Python脚本等等)的事件错误记录的日志文件。xend-debug.log,对于系统管理员也是非常有用的,因为它包含了比xend.log更为详细的信息。

xen-hotplug-log是包含热插拔事件的数据的日志文件。如果设备或网络脚本没有被启动,事件将记录在这里。

qemu-dm.[PID].log是qemu-dm进程为每个完全虚拟化客户机创建的日志文件。当使用日志文件时,你必须用ps命令并挑选出qemu-dm的信息来获取qemu-dm的进程号。注意你必须用实际的qemu-dm进程的PID来代替[PID]。

如果在使用虚拟机管理者时你遇到任何错误,你可以在/.virt-manager目录下的virt-manager.log文件里寻找生成的数据。注意每次你启动虚拟机管理者,它都会覆盖现有的日志文件内容。当出现系统错误后,在重启虚拟机管理者前,请确保备份好virt-manager.log文件。

3故障解除工具

系统管理员程序、网络工具和高级调试工具(关于如何使用这些工具来配置红帽虚拟化服务的更多信息,请参考相关的配置文档)。你可以使用这些标准的系统管理员工具和日志来协助故障解除:
xentop
xmdmesg
xmlog
vmstat
iostat
lsof
你可以使用这些标准的系统管理员工具和日志来协助故障解除:
XenOprofile
systemTap
crash
sysrq
sysrqt
sysrqw
你可以使用这些网络工具来协助故障解除:
ifconfig
tcpdump
brtctl(是一个在虚拟化Linux内核里检查和配置以太网桥配置的网络工具。在执行这些示例命令时,你必须拥有根用户权限)

4SELinux

在xen实施SELinux必须考虑的事情。当你部署系统修订和增加设备时,你必须相应地更新SELinux策略。要为客户机配置LVM卷,你必须为不同的底层块设备和卷组修改SELinux上下文。
#semanagefcontext-a-txen_image_t-f-b/dev/sda2
#restorecon/dev/sda2
布尔值参数xend_disable_trans使xend在重启后进入unconfined模式。禁止对单个进程的保护比在整个系统里应用要更好。我们建议你不要把目录重新标记为将在其他地方使用的xen_image_t。

5了解翻译错误信息

如果你接收到下面的错误:
faileddomaincreationduetomemoryshortage,unabletoballoondomain0
如果没有足够的可用内存,域将不能运行。Domain0没有足够的空间来容纳新创建的客户机。你可以检查xend.log里关于这个错误的内容:

[2007-12-21]20:33:31xend3198]DEBUG(balloon:133)Balloon:558432Kibfree;0toscrub;need1048576;retries:20
[2007-12-21]20:33:31xend.XendDomainInfo3198]ERROR(XendDomainInfo:202
Domainconstructionfailed
通过xmlistDomain0命令,你可以检查domain0所使用的内存数量。如果domain0已经没有可用内存,你可以用"xmmem-setDomain-0NewMemSize"来设置新的内存容量。
你接收到下面的错误:

wrongkernelimage:non-PAEkernelonaPAE
这个信息表示你试图在监控程序里运行不被支持的客户机内核映像。当你试图在RHEL5.0监控程序里引导non-PAE半虚拟化客户机内核时,将产生这个问题。红帽虚拟化系统只支持带有PAE的客户机内核和64位的体系结构。

键入这个命令:

[root@smith]#xmcreate-cvabase

Usingconfigfile"va-base"
Error:(22,'invalidargument')
[2007-12-1414:55:46xend.XendDomainInfo3874]ERRORs
(XendDomainInfo:202)Domainconstructionfailed

Traceback(mostrecentcalllast)
File"/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py",line195increatevm.initDomain()
File"/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py",line1363ininitDomainraiseVmError(str(exn))
VmError:(22,'Invalidargument')
[2007-12-1414:55:46xend.XendDomainInfo3874]DEBUG(XenDomainInfo:1449]
XendDlomainInfo.destroy:domin=1
[2007-12-1414:55:46xend.XendDomainInfo3874]DEBUG(XenDomainInfo:1457]
XendDlomainInfo.destroy:Domain(1)
如果你需要运行32位/非PAE内核,你将需要把客户机作为完全虚拟化的虚拟机运行。对于半虚拟化的客户机,如果你需要运行32位的PAE客户机,你必须具有32位的PAE监控程序。对于半虚拟化的客户机,如果你要运行64位的PAE客户机,你必须具有64位的PAE监控程序。对于完全虚拟化的客户机,你必须用64位的监控程序运行64位客户机。RHEL5i686里的32位PAE监控程序只支持运行32位的并行虚拟化和32位的完全虚拟化的客户机操作系统。64位监控程序只支持64位的并行虚拟化客户机。

当你把完全虚拟化的HVM客户机移动到RHEL5.0系统里时,就会出现这个问题。你的客户机不能够引导且在控制台可以看到一个错误信息。检查配置文件里的PAE条目,确保pae=1。你应该使用32位的版本。

你接收到下面的错误:

UnabletoopenaconnectiontotheXenhypervisorordaemon
当virt-manager程序不能启动时,会出现这个问题。当/etc/hosts配置文件里没有localhost条目时会产生这个错误。请确认配置文件里是否启用了localhost条目。下面是一个错误的localhost条目示例:

#Donotremovethefollowingline,orvariousprograms
#thatrequirenetworkfunctionalitywillfail.
localhost.localdomainlocalhost
下面是一个正确的localhost条目示例:

#Donotremovethefollowingline,orvariousprograms
#thatrequirenetworkfunctionalitywillfail.
127.0.0.1localhost.localdomainlocalhost
localhost.localdomain.localhost
你会接收到下面的错误(在xen-xend.logfile文件里):

Bridgexenbr1doesnotexist!
当客户的网桥没有正确配置时会产生这个问题,它会迫使Xenhotplug脚本超时。如果你在主机之间移动配置文件,你必须确保你更新了这些配置文件,如进行网络拓扑结构和配置的修改。当你试图启动含有不正确或不存在的Xen网桥配置的客户机时,你将接收到如下的错误:

[root@trumblevirt]#xmcreater5b2-mySQL01

Usingconfigfile"r5b2-mySQL01"
GoingtobootRedHatEnterpriseLinuxServer(2.6.18.-1.2747.el5xen)
kernel:/vmlinuz-2.6.18-12747.el5xen
initrd:/initrd-2.6.18-1.2747.el5xen.img
Error:Device0(vif)couldnotbeconnected.Hotplugscriptsnotworking.
另外,xend.log里会有下面的错误:

[2007-11-1415:07:08xend3875]DEBUG(DevController:143)Waitingfordevicesvif
[2007-11-1415:07:08xend3875]DEBUG(DevController:149)Waitingfor0
[2007-11-1415:07:08xend3875]DEBUG(DevController:464)hotplugStatusCallback

/local/domain/0/backend/vif/2/0/hotplug-status

[2007-11-1415:08:09xend.XendDomainInfo3875]DEBUG(XendDomainInfo:1449)XendDomainInfo.destroy:domid=2
[2007-11-1415:08:09xend.XendDomainInfo3875]DEBUG(XendDomainInfo:1457)XendDomainInfo.destroyDomain(2)
[2007-11-1415:07:08xend3875]DEBUG(DevController:464)hotplugStatusCallback

/local/domain/0/backend/vif/2/0/hotplug-status
要解决这个问题,你必须编辑你的客户机配置文件,并修改vif条目。找到配置文件里的vif条目,假定你把xenbr0作为缺省网桥,正确的设置应该如下所示:

#vif=['mac=00:16:3e:49:1d:11,bridge=xenbr0',]
你接收到这些python错误:

[root@pythonxen]#xmshutdownwin2k3xen12
[root@pythonxen]#xmcreatewin2k3xen12

Usingconfigfile"win2k3xen12".

/usr/lib64/python2.4/site-packages/xenxm/opts.py:520:DeprecationWarning:
NonASCIIcharacter'\xc0'infilewin2k3xen12online1,butnoencoding
declared;seehttp://www.python.org/peps/pep-0263.htmlfordetails

execfile(defconfig,globs,locs,)
Error:invalidsyntax9win2k3xen12,line1)
当遇到无效的(或不正确的)配置文件时,Python生成这些错误。要解决这个问题,你必须更正不正确的配置文件,或者生成一个新的文件。

上一页[1][2][3][4]