高级故障排除
本文列出了您可以在技术支持团队的指导下采取的高级故障排除操作。
更改 Xen® 命令行上的选项
XenServer® 基于开源 Xen 虚拟机管理程序。作为诊断或解决问题的一部分,您可能会被要求向 Xen 命令行添加参数。
我们强烈建议您仅在技术支持的指导下更改 Xen 命令行。设置或更改 XenServer 产品文档中未列出或技术支持未提供的任何选项均不受支持。除了使您的环境不符合支持条件外,对 Xen 命令行参数的这些更改还可能导致您的主机无法启动或可能容易受到安全威胁。
要向主机的 Xen 命令行添加选项,请完成以下步骤:
- 通过使用 SSH 或 XenCenter 中的“控制台”选项卡登录到 XenServer 主机控制台。
- 使用技术支持建议的参数和值运行以下命令:
/opt/xensource/libexec/xen-cmdline --set-xen <parameter>=<value> -
该命令静默返回,但您可以通过运行以下命令来验证参数是否已设置:
more /boot/efi/EFI/xenserver/grub.cfg您指定的参数将出现在文件的
XenServer和XenServer (Serial)部分。 - 重新启动 XenServer 主机以使更改生效。
要从主机的 Xen 命令行中删除选项,请完成以下步骤:
- 通过使用 SSH 或 XenCenter 中的“控制台”选项卡登录到 XenServer 主机控制台。
- 使用技术支持建议的参数和值运行以下命令:
/opt/xensource/libexec/xen-cmdline --remove-xen <parameter> -
该命令静默返回,但您可以通过运行以下命令来验证参数是否已删除:
more /boot/efi/EFI/xenserver/grub.cfg - 重启您的 XenServer 主机以使更改生效。
XenServer 无法启动时收集日志
如果您的 XenServer 主机无法成功启动,您仍然可以通过尝试从安装 ISO 启动来收集其日志。
- 从 https://xenserver.com/downloads 下载安装 ISO。
- 从安装 ISO 启动您的 XenServer 主机。有关从 ISO 启动的方法,请参阅 安装 XenServer 主机 中的步骤 2。
- 当第一个对话框出现在屏幕上时,按 Alt+F2。安装过程会将您切换到 shell 控制台。
-
验证安装 ISO 是否能看到本地或远程磁盘。运行以下命令:
fdisk –l如果本地和远程磁盘可见,此命令会列出可见的分区。这些分区通常具有
/dev/sdaX形式的名称。 - 识别本地磁盘上的根分区。根分区通常是
/dev/sda1,但在不同的硬件上可能会有所不同。 -
将根分区挂载到临时挂载点
/mnt以访问本地磁盘:mkdir /mnt mount /dev/sda1 /mnt ls /mnt -
将临时根文件系统更改为磁盘上的文件系统:
chroot /mnt -
通过运行以下命令创建服务器状态报告:
mount –t sysfs none /sys xenserver-status-report --yestoall该命令会打印包含服务器状态报告的 tarball 的位置。
- 在上一步给出的路径前加上
/mnt,以获取临时根文件系统中文件的路径,例如:/mnt/var/opt/xen/bug-report/bug-report-xxxx.tar.bz2 -
设置一个临时 IP 地址,以便通过网络将服务器状态报告复制到您的桌面。
-
如果网络中运行了 DHCP,请运行以下命令:
dhclient <network-interface> -
如果没有 DHCP,请手动配置 IP 地址:
ifconfig <network-interface> <x.x.x.x> netmask <x.x.x.x> up route add default <x.x.x.x>
-
- 使用 SCP 客户端连接到之前配置的 IP 地址,并将状态报告复制到本地桌面。
配置串行控制台访问
对 XenServer 主机进行串行控制台访问对于调试目的很有用。您可以使用串行连接与 HyperTerminal(或类似应用程序)来收集 XenServer 日志。
您可以使用物理端口连接到主机。如果使用此方法,您需要以下物品:
- 9 针串行零调制解调器电缆。
- 运行连接串行端口软件的系统上的串行 COM 端口,例如 Microsoft HyperTerminal。
- XenServer 主机上的串行 COM 端口。
如果您的主机没有物理串行端口或没有可用的合适物理基础设施,请调查是否可以使用您的硬件配置嵌入式管理设备。此方法也称为局域网串行 (Serial over LAN)。如果使用此方法,您需要以下物品:
- 由主板管理控制器(例如 Dell iDRAC 或 HP iLO)提供的虚拟串行端口。
- 一台装有适当软件以连接到虚拟串行端口的计算机,例如
ipmitool。
注意:
默认情况下,XenServer 假定串行波特率为 115200。如果需要不同的波特率,请调整
grub.cfg文件中<speed>的值。如有需要,请寻求技术支持团队的指导。
要设置串行连接,请完成以下步骤:
-
如果您未在服务器上使用 COM1,请编辑您的
grub.cfg文件。grub.cfg文件位于/boot/efi/EFI/xenserver目录中。 - 找到以下行:
serial --unit=0 --speed=<speed> -
将
--unit的值编辑为n-1,其中<n>代表您的 COM 端口号。例如,要使用 COM2,请将 –unit 的值设置为 1:
serial --unit=1 --speed=<speed> -
在
menuentry 'XenServer (Serial)'部分中找到显示以下文本的行:com1=<speed>,8n1 console=com1,vga -
将
com1替换为com<n>,其中<n>代表您的 COM 端口号。 -
启动或重新启动 XenServer 主机。
-
从 grub 菜单中,选择 XenServer (Serial)。
- XenServer 启动时支持串行控制台。
您现在可以使用您选择的方法连接到串行控制台。
从串行控制台生成崩溃转储
如果 XenServer 主机崩溃,正在运行的内核可以迁移到基于 kexec 功能的特殊内存区域。它加载一个特殊内核,而无需重新启动服务器。这个新内核会尝试尽可能多地收集有关崩溃的详细信息(内存转储、进程列表),并将其保存到 /var/crash 目录中。
有时,XenServer 崩溃后会挂起且不重新启动。发生这种情况时,服务器无响应但仍在运行,只有重新启动服务器才能解决问题。此外,服务器上可能没有可用的崩溃转储:/var/crash 目录中没有转储,并且 xe host-crashdump-list 不包含有关崩溃的信息。
在这种情况下,您可以强制进行崩溃转储,以保存有关崩溃的信息,然后可以对其进行分析。
切换到串行控制台后,请完成以下步骤:
- 等待 XenServer 变得无响应。
- 按三次 Ctrl+A 切换到 Xen 管理程序菜单。您会在串行控制台上看到此消息:
*** Serial input to Xen (type 'CTRL-a' three times to switch input) - 按 h 显示所有可用操作。
- 按 Shift+C 触发崩溃转储。
- 等待 XenServer 主机重新启动,并将所有数据保存到本地文件系统。
- 在服务器的
/var/crash目录中检查新的崩溃转储。
切换到调试管理程序
在某些情况下,将主机切换到使用调试管理程序并尝试重现问题可能会很有用。调试管理程序会执行更多内置检查,并且其输出更详细。
要在主机上启用调试管理程序,请完成以下步骤:
- 通过 SSH 或 XenCenter 中的控制台选项卡登录到 XenServer 主机控制台。
- 将目录更改为
/boot目录:cd /boot -
验证您是否拥有调试模块 xen-debug.efi 文件:
ls -l xen*此命令显示可用的管理程序版本以及启动主机时使用的符号链接。在正常操作中,
xen-release.efi链接到发布管理程序文件xen-<version>.efi,而xen-debug.efi链接到调试管理程序文件xen-<version>-d.efi。调试管理程序与发布管理程序版本相同,但文件名中包含额外的-d。
- 将
xen.efi链接更改为指向调试管理程序:ln -sf /boot/xen-debug.efi /boot/xen.efi - 重新启动主机。
在使用调试管理程序执行技术支持建议的操作并收集更多诊断信息后,请将管理程序切换回发布管理程序,然后再恢复正常操作。
要在主机上恢复使用发布管理程序,请完成以下步骤:
- 登录到 XenServer 主机控制台,可以通过 SSH 或 XenCenter 中的“控制台”选项卡。
- 将目录更改为
/boot目录:cd /boot - 将
xen.efi链接更改为指向发布管理程序:ln -sf /boot/xen-release.efi /boot/xen.efi - 重新启动主机。