注意

本文档适用于 Ceph 开发版本。

在 Windows 上排除 Ceph 问题

MSI 安装程序

可以在此处查阅 MSI 源代码:https://github.com/cloudbase/ceph-windows-installer

可以使用以下命令生成 MSI 日志

msiexec.exe /i $msi_full_path /l*v! $log_file

WNBD 驱动安装失败将被记录在此处:C:\Windows\inf\setupapi.dev.log.

Wnbd

对于WNBD排除问题,请查看此页面:https://github.com/cloudbase/wnbd#troubleshooting

权限

大多数rbd-wnbdrbd device命令需要特权权限。确保使用提升的 PowerShell 或 CMD 命令提示符。

崩溃转储

用户空间崩溃转储可以放置在可配置的位置,并针对所有应用程序或预定义的应用程序启用,如以下所述:https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps.

每当 Windows 应用程序崩溃时,都会向ApplicationWindows 事件日志提交一个事件,具有事件 ID 1000。该条目还将包括进程 ID、故障模块名称和路径以及异常代码。

请注意,为了分析崩溃转储,需要调试符号。我们目前使用MinGW构建了 Ceph,因此默认情况下DWARF符号将被嵌入到二进制文件中。windbg不支持此类符号,但gdb可以使用。

gdb可以调试正在运行的 Windows 进程,但它无法打开 Windows 小型转储文件。gdb分支可在此功能合并到上游之前使用:https://github.com/ssbssa/gdb/releases。作为替代方案,DWARF符号可以使用cv2pdb进行转换,但请注意该工具对 C++ 的支持有限。

ceph 工具

The cephPython 工具目前还不能在 Windows 上原生使用。通过一些小的修改它可能可以运行,但主要问题是 Python 目前不允许在 Windows 上使用AF_UNIXhttps://bugs.python.org/issue33408

作为替代方案,可以通过 Windows 子系统 for Linux (WSL) 使用ceph工具。例如,可以通过使用以下方式联系 Windows RBD 守护进程:

ceph daemon /mnt/c/ProgramData/ceph/out/ceph-client.admin.61436.1209215304.asok help

IO 计数器

除了标准的 RBD 性能计数器外,还可以使用以下方式获取libwnbdIO 计数器:

rbd-wnbd stats $imageName

同时,可以使用以下方式获取 WNBD 驱动计数器:

wnbd-client stats $mappingId

注意,该wnbd-client映射标识符将是完整的 RBD 图像规范(即device输出的rbd device list列)。

缺少库

如果缺少或不受支持所需的 DLL 之一,Ceph 工具可能会静默退出,并返回 -1073741515 退出代码。

The 依赖项查看器工具可用于确定缺少的库。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.