XenServer

高级故障排除

本文列出了您可以在技术支持团队指导下采取的高级故障排除操作。

更改 Xen® 命令行上的选项

XenServer® 基于开源 Xen 虚拟机管理程序。作为诊断或解决问题的一部分,您可能会被要求向 Xen 命令行添加参数。

我们强烈建议您仅在技术支持的指导下更改 Xen 命令行。设置或更改 XenServer 产品文档中未列出或技术支持未提供的任何选项均不受支持。除了使您的环境不符合支持条件外,对 Xen 命令行参数的这些更改还可能导致您的主机无法启动或可能容易受到安全威胁。

要向主机的 Xen 命令行添加选项,请完成以下步骤:

  1. 通过使用 SSH 或 XenCenter 中的“控制台”选项卡登录到 XenServer 主机控制台。
  2. 使用技术支持建议的参数和值运行以下命令:/opt/xensource/libexec/xen-cmdline --set-xen <parameter>=<value>
  3. 该命令静默返回,但您可以通过检查 grub.cfg 文件来验证参数是否已设置。

    • 如果您的主机使用传统 BIOS 引导模式,请运行以下命令:more /boot/grub/grub.cfg
    • 如果您的主机使用 UEFI 引导模式,请运行以下命令:more /boot/efi/EFI/xenserver/grub.cfg

    您指定的参数将显示在文件的 XenServerXenServer (Serial) 部分中。

  4. 重新启动 XenServer 主机以使更改生效。

要从主机的 Xen 命令行中删除选项,请完成以下步骤:

  1. 通过使用 SSH 或 XenCenter 中的“控制台”选项卡登录到 XenServer 主机控制台。
  2. 运行以下命令,并使用技术支持建议的参数和值:/opt/xensource/libexec/xen-cmdline --remove-xen <parameter>
  3. 该命令静默返回,但您可以通过检查 grub.cfg 文件来验证参数是否已删除。

    • 如果您的主机使用传统 BIOS 启动模式,请运行以下命令:more /boot/grub/grub.cfg
    • 如果您的主机使用 UEFI 启动模式,请运行以下命令:more /boot/efi/EFI/xenserver/grub.cfg
  4. 重新启动 XenServer 主机以使更改生效。

XenServer 无法启动时收集日志

如果您的 XenServer 主机无法成功启动,您仍然可以通过尝试从安装 ISO 启动来收集日志。

  1. https://xenserver.com/downloads 下载安装 ISO。
  2. 从安装 ISO 启动 XenServer 主机。有关从 ISO 启动方法的信息,请参阅 安装 XenServer 主机 中的步骤 2。
  3. 当屏幕上出现第一个对话框时,按 Alt+F2。安装过程会将您切换到 shell 控制台。
  4. 验证安装 ISO 是否可以看到本地或远程磁盘。运行以下命令:

    fdisk –l
    

    如果本地和远程磁盘可见,此命令会列出可见的分区。这些分区通常具有 /dev/sdaX 形式的名称。

  5. 识别本地磁盘上的根分区。根分区通常是 /dev/sda1,但在不同的硬件上可能有所不同。
  6. 将根分区挂载到临时挂载点 /mnt 以访问本地磁盘:

    mkdir /mnt
    mount /dev/sda1 /mnt
    ls /mnt
    
  7. 将临时根文件系统更改为磁盘上的文件系统:

    chroot /mnt
    
  8. 通过运行以下命令创建服务器状态报告:

    mount –t sysfs none /sys
    xenserver-status-report --yestoall
    

    该命令会打印包含服务器状态报告的 tarball 的位置。

  9. 在上一步给出的路径前加上 /mnt,以获取临时根文件系统中文件的路径,例如:/mnt/var/opt/xen/bug-report/bug-report-xxxx.tar.bz2
  10. 设置一个临时 IP 地址,以便通过网络将服务器状态报告复制到您的桌面。

    • 如果网络中运行了 DHCP,请运行以下命令:

       dhclient eth0
      
    • 如果没有 DHCP,请手动配置 IP 地址:

       ifconfig eth0 <x.x.x.x> netmask <x.x.x.x> up
       route add default <x.x.x.x>
      
  11. 使用 SCP 客户端连接到之前配置的 IP 地址,并将状态报告复制到本地桌面。

配置串行控制台访问

对 XenServer 主机的串行控制台访问对于调试目的很有用。您可以使用串行连接与 HyperTerminal(或类似应用程序)来收集 XenServer 日志。

您可以使用物理端口连接到主机。如果使用此方法,您需要以下物品:

  • 9 针串行零调制解调器电缆。
  • 运行连接串行端口软件的系统上的串行 COM 端口,例如 Microsoft HyperTerminal。
  • XenServer 主机上的串行 COM 端口。

如果您的主机没有物理串行端口或没有合适的物理基础设施,请调查是否可以使用您的硬件配置嵌入式管理设备。此方法也称为 LAN 上的串行。如果使用此方法,您需要以下物品:

  • 由主板管理控制器(例如 Dell iDRAC 或 HP iLO)提供的虚拟串行端口。
  • 一台带有适当软件的计算机,用于连接虚拟串行端口,例如,ipmitool

注意:

默认情况下,XenServer 假定串行波特率为 115200。如果需要不同的波特率,请调整 grub.cfg 文件中 <speed> 的值。如有需要,请寻求技术支持团队的指导。

要设置串行连接,请完成以下步骤:

  1. 如果您的服务器未使用 COM1,请编辑您的 grub.cfg 文件。

    • 对于传统 BIOS 启动,grub.cfg 文件位于 /boot/grub 目录中。
    • 对于 UEFI 启动,grub.cfg 文件位于 /boot/efi/EFI/xenserver 目录中。
  2. 找到以下行:serial --unit=0 --speed=<speed>
  3. --unit 的值编辑为 n-1,其中 <n> 代表您的 COM 端口号。

    例如,要使用 COM2,请将 –unit 的值设置为 1:

    serial --unit=1 --speed=<speed>
    
  4. menuentry 'XenServer (Serial)' 部分中找到显示以下文本的行:com1=<speed>,8n1 console=com1,vga

  5. com1 替换为 com<n>,其中 <n> 代表您的 COM 端口号。

  6. 启动或重新启动 XenServer 主机。

  7. 从 grub 菜单中,选择 XenServer (Serial)

  8. XenServer 启动时带有串行控制台支持。

您现在可以使用您选择的方法连接到串行控制台。

从串行控制台生成崩溃转储

如果 XenServer 主机崩溃,正在运行的内核可以迁移到一个基于 kexec 功能的特殊内存区域。它加载一个特殊的内核,而无需重新启动服务器。这个新内核会尝试收集尽可能多的崩溃详细信息(内存转储、进程列表),并将其保存到 /var/crash 目录中。

有时,XenServer 崩溃后会挂起并且不重新启动。当这种情况发生时,服务器无响应但仍在运行,只有重新启动服务器才能解决问题。此外,服务器上可能没有可用的崩溃转储:/var/crash 目录中没有转储,并且 xe host-crashdump-list 不包含有关崩溃的信息。

在这种情况下,您可以强制生成一个崩溃转储,该转储会保存有关崩溃的信息,然后可以对其进行分析。

切换到串行控制台后,完成以下步骤:

  1. 等待 XenServer 变得无响应。
  2. Ctrl+A 三次以切换到 Xen 管理程序菜单。您会在串行控制台上看到此消息:*** Serial input to Xen (type 'CTRL-a' three times to switch input)
  3. h 以显示所有可用操作。
  4. Shift+C 以触发崩溃转储。
  5. 等待 XenServer 主机重新启动并将所有数据保存到本地文件系统。
  6. 检查服务器上 /var/crash 目录中的新崩溃转储。

切换到调试管理程序

在某些情况下,将主机切换到使用调试管理程序并尝试重现问题可能会很有用。调试管理程序会执行更多内置检查,并且其输出更详细。

要在主机上启用调试管理程序,请完成以下步骤:

  1. 登录到 XenServer 主机控制台,可以通过 SSH 或 XenCenter 中的“控制台”选项卡。
  2. 将目录更改为 /boot 目录:cd /boot
  3. 验证您是否拥有调试模块 xen-debug.gz 文件:ls -l xen*

    此命令显示可用的管理程序版本以及启动主机时使用的符号链接。在正常操作中,xen-release.gz 链接到发布管理程序文件 xen-<version>.gzxen-debug.gz 链接到调试管理程序文件 xen-<version>-d.gz。调试管理程序与发布管理程序版本相同,但在文件名中包含额外的 -d

    正常操作期间的管理程序符号链接

  4. xen.gz 链接更改为指向调试管理程序:ln -sf /boot/xen-debug.gz /boot/xen.gz
  5. 重新启动主机。

在使用调试管理程序执行技术支持建议的操作并收集更多诊断信息后,请在恢复正常操作之前将管理程序切换回发布管理程序。

要在主机上恢复使用发布管理程序,请完成以下步骤:

  1. 登录到 XenServer 主机控制台,可以通过 SSH 或 XenCenter 中的“控制台”选项卡。
  2. 将目录更改为 /boot 目录:cd /boot
  3. xen.gz 链接更改为指向发布管理程序:ln -sf /boot/xen-release.gz /boot/xen.gz
  4. 重新启动主机。
高级故障排除