科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道RedHat 5.0配置XEN虚拟机(下)

RedHat 5.0配置XEN虚拟机(下)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

使用图形工具virt-manager管理Xen虚拟机,1. 查看虚拟系统的名称、CPU占用情况和内存占用情况;2. 查看和修改虚拟系统内存等硬件的状态和参数;3. 虚拟机保存、停止和暂停。

作者:华江 来源:IT168 2008年3月31日

关键字: python Ascii 虚拟化 服务器 故障 虚拟机 Xen Red hat

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章