频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

RedHat 5.0配置XEN虚拟机

来源: 作者:佚名 出处:巧巧读书 2008-03-31 进入讨论组
上一页 1 2 3 4 

   Xen虚拟机的故障解除

    1 了解Xen 配置文件

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

RedHat 5.0配置XEN虚拟机(图十六)


    
    表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 生成这些错误。要解决这个问题,你必须更正不正确的配置文件,或者生成一个新的文件。

更多文章 更多内容请看虚拟机软件入门电脑配置手册服务器配置专栏专题,或进入讨论组讨论。
上一页 1 2 3 4 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章