RedHat 5.0配置XEN虚拟机(下)

日期: 2008-04-02 作者:华江 来源:TechTarget中国

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


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


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


虚拟机


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


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


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


硬件


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


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


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


虚拟机


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


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


    显示虚拟机运行状态
    xm list
    使用文本方式连接虚拟系统
    xm console
   开启虚拟系统
    xm create
    关闭虚拟系统
    xm shutdown
    xm destroy
    重新启动虚拟系统
    xm reboot
    将虚拟系统当前状态保存到文件中
    xm save
    恢复已保存的虚拟系统
    xm restore
    暂停虚拟系统
    xm pause
    恢复被暂停的虚拟系统
    xm resume
Xen虚拟机的故障解除


    1 了解Xen 配置文件


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


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



    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 文件包含了于你运行 xm log 命令相同的基本信息。它位于 /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
xm dmesg
xm log
vmstat
iostat
lsof
你可以使用这些标准的系统管理员工具和日志来协助故障解除:
XenOprofile
systemTap
crash
sysrq
sysrq t
sysrq w
你可以使用这些网络工具来协助故障解除:
ifconfig
tcpdump
brtctl ( 是一个在虚拟化 Linux 内核里检查和配置以太网桥配置的网络工具。在执行这些示例命令时,你必须拥有根用户权限)


    4 SELinux


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


    5 了解翻译错误信息


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


[2007-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20
[2007-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202
Domain construction failed
通过 xm list Domain0 命令,你可以检查 domain0 所使用的内存数量。如果 domain0 已经没有可用内存,你可以用 “xm mem-set Domain-0 NewMemSize” 来设置新的内存容量。


  你接收到下面的错误:


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


  键入这个命令:


[root@smith]# xm create -c va base


Using config file “va-base”
Error: (22, ‘invalid argument’)
[2007-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs
(XendDomainInfo:202) Domain construction failed


Traceback (most recent call last)
File “/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py”, line 195 in create vm.initDomain()
File ” /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py”, line 1363 in initDomain raise VmError(str(exn))
VmError: (22, ‘Invalid argument’)
[2007-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449]
XendDlomainInfo.destroy: domin=1
[2007-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457]
XendDlomainInfo.destroy:Domain(1)
    如果你需要运行 32 位/非 PAE 内核,你将需要把客户机作为完全虚拟化的虚拟机运行。对于半虚拟化的客户机,如果你需要运行 32 位的 PAE 客户机,你必须具有 32 位的 PAE 监控程序。对于半虚拟化的客户机,如果你要运行 64 位的 PAE 客户机,你必须具有 64 位的 PAE 监控程序。对于完全虚拟化的客户机,你必须用 64 位的监控程序运行 64 位客户机。RHEL 5 i686 里的 32 位 PAE 监控程序只支持运行 32 位的并行虚拟化和 32 位的完全虚拟化的客户机操作系统。64 位监控程序只支持 64 位的并行虚拟化客户机。


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


    你接收到下面的错误:


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


# Do not remove the following line, or various programs
# that require network functionality will fail.
localhost.localdomain localhost
下面是一个正确的 localhost 条目示例:


# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
localhost.localdomain. localhost
你会接收到下面的错误(在 xen-xend.log file 文件里):


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


[root@trumble virt]# xm create r5b2-mySQL01


Using config file ” r5b2-mySQL01″
Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen)
kernel: /vmlinuz-2.6.18-12747.el5xen
initrd: /initrd-2.6.18-1.2747.el5xen.img
Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
另外,xend.log 里会有下面的错误:


[2007-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif
[2007-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0
[2007-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback


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


[2007-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2
[2007-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2)
[2007-11-14 15:07:08 xend 3875] 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@python xen]# xm shutdown win2k3xen12
[root@python xen]# xm create win2k3xen12


Using config file “win2k3xen12”.


/usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning:
Non ASCII character ‘xc0’ in file win2k3xen12 on line 1, but no encoding
declared; see http://www.python.org/peps/pep-0263.html for details


execfile (defconfig, globs, locs,)
Error: invalid syntax 9win2k3xen12, line1)


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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

华江
华江

相关推荐