Ceph项目Windows平台测试指南

Ceph项目Windows平台测试指南

ceph Ceph is a distributed object, block, and file storage platform ceph 项目地址: https://gitcode.com/gh_mirrors/ce/ceph

前言

Ceph作为一款开源的分布式存储系统,从Pacific版本开始正式支持Windows平台的原生客户端工具和库。这意味着Windows节点可以直接使用Ceph存储,而无需通过iSCSI网关或SMB共享等中间层。为确保Windows平台的稳定性和兼容性,Ceph社区投入了大量精力进行测试工作。

Windows CI测试流程详解

测试架构

Windows CI测试采用双虚拟机架构:

  1. Linux构建机:负责编译Linux端的Ceph服务端二进制文件,并交叉编译Windows客户端二进制文件
  2. Windows测试机:运行编译好的Windows客户端测试套件

测试执行流程

  1. 构建阶段:在Linux VM中完成服务端和客户端的交叉编译
  2. 集群部署:重建Linux VM并启动Ceph vstart测试集群
  3. 测试执行:启动Windows VM并运行测试套件

测试框架采用PowerShell编写,具有以下特点:

  • 支持测试并行执行
  • 自动聚合测试结果
  • 能够隔离或跳过已知不稳定的测试用例

测试结果分析

结果查看方式

测试结果通过多种形式呈现:

  1. 控制台输出:显示编译错误和失败的测试名称
  2. 构建产物:包含详细的日志和测试报告

构建产物结构

├── client/          # Windows客户端相关日志
│   ├── eventlog/    # Windows系统事件日志
│   ├── logs/        # Ceph客户端日志
│   └── *.conf       # Ceph配置文件
├── cluster/         # Linux服务端相关日志
│   ├── ceph_logs/   # Ceph服务日志
│   └── journal      # 集群日志
└── test_results/    # 测试结果
    ├── out/         # 原始测试输出(按可执行文件分组)
    ├── test_results.html  # HTML格式聚合报告
    └── test_results.txt   # 纯文本格式聚合报告

测试报告解读

测试结果采用subunit格式存储,便于处理大量并行测试。报告末尾会显示具体的错误信息,例如:

{0} ceph_test_dokan.DokanTests.test_mount [9.203000s] ... FAILED

Captured details:
~~~~~~~~~~~~~~~~~
    b'/home/ubuntu/ceph/src/test/dokan/dokan.cc:136'
    b'Expected equality of these values:'
    b'  wait_for_mount(mountpoint)'
    b'    Which is: -138'
    b'  0'

HTML报告会按测试套件(测试二进制文件)分组显示结果,便于快速定位问题。

常见问题排查

1. 仅Windows CI失败的可能原因

Windows CI与其他测试环境有以下关键区别:

  • 测试范围:Windows CI专注于客户端组件测试,会运行大量librados、librbd和libcephfs集成测试
  • 编译配置:使用不同的工具链(mingw-llvm)和依赖项版本
  • 构建模式:默认使用Release模式而非Debug模式

这些测试往往能发现影响所有平台的回归问题,而不仅仅是Windows特有的问题。

2. Windows CI为何设为必选

将Windows CI设为必选测试的主要考虑:

  • 质量保证:早期作为可选测试时,经常出现回归问题
  • 成熟度标志:Windows支持已达到生产可用级别
  • 效率提升:相比等待完整Teuthology结果,能更快发现问题

故障排查技巧

当测试失败时,建议按以下步骤排查:

  1. 检查服务状态:测试前后会打印ceph状态,可帮助识别崩溃的服务
  2. 分析日志
    • Windows应用事件日志(记录进程崩溃信息)
    • 客户端和服务端日志
  3. 注意超时:测试超时通常表明进程崩溃

结语

Windows CI作为Ceph质量保障体系的重要组成部分,不仅确保了Windows平台的稳定性,也为整个项目的代码质量提供了额外保障。开发者应当重视Windows CI的测试结果,及时修复发现的问题,共同维护Ceph的跨平台能力。

ceph Ceph is a distributed object, block, and file storage platform ceph 项目地址: https://gitcode.com/gh_mirrors/ce/ceph

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周风队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值