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

Linux服务器
搭建安全的LinuxSquid代理服务器
linux下apache+php+mysql升级安装过程
Linux服务器中OpenSSH的源码编译与升级
Linux系统下SambaServer的配置文件解析
Linux下如何同时启动多个Tomcat服务器
LinuxIPv6环境下DNS服务器配置攻略
Linux系统下SoftEther服务器的使用方法
实现Linux与宿主机之间的通信
在UbuntuLinux下配置静态DNS
服务器维护:RHEL5系统下故障处理方法
FedoraLinux系统Samba服务器架设
RHEL5Squid透明代理服务器配置过程解析
SlackwareEyooLinux服务器配置相关指令
DebianLinux系统Socks5服务器安装方法
RedHatAS5整合Apache和Tomcat服务器应用
巧用cfengine管理linux服务器
Linux服务器装机安全快速进阶指南
新手学堂:Linux操作系统配置Vsftp方法
利用UNIX系统的TFTP和RCP配置路由器
解决Linux服务器下误删除文件的问题

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 179 ::
收藏到网摘: 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]