2.5 KiB
2.5 KiB
Open-CAS 断电 PLP SSD 数据完整性测试
本项目提供了一套用于测试Open-CAS在断电情况下的PLP SSD数据完整性的测试框架。测试涵盖了多种数据写入场景,并通过模拟断电来验证数据的持久性和一致性。
环境要求
- Go 1.20+
- NVMe SSD (支持PLP - Power Loss Protection)
- HDD 硬盘
- 已安装配置的Open-CAS
目录结构
.
├── cmd/
│ ├── client/ # 客户端命令行工具
│ └── server/ # 服务器命令行工具
├── internal/
│ ├── config/ # 配置处理
│ ├── model/ # 数据模型
│ ├── testcase/ # 测试用例实现
│ └── utils/ # 工具函数
├── pkg/ # 可被外部导入的包
│ └── opencastools/ # Open-CAS操作工具
├── scripts/ # 测试脚本
├── go.mod # Go模块文件
└── README.md # 本文档
使用方法
- 配置测试环境
在运行测试前,请确保您的Open-CAS已正确配置,并将需要测试的NVMe和HDD设备路径在配置文件中指定。
- 启动服务器
go run cmd/server/main.go -config config.yaml
- 运行客户端测试
go run cmd/client/main.go -server localhost:8080 -test all
测试场景
本测试框架包含以下测试场景:
- 顺序写入测试
- 随机写入测试
- 混合读写测试
- 高并发写入测试
- 断电恢复测试
- 长期稳定性测试
详细测试指标和结果分析请参阅测试报告。
新增功能: 实时进度和数据完整性检测
实时进度追踪
客户端现在支持从服务器实时获取测试进度,使用流式传输技术(Server-Sent Events)实现。这使得客户端可以实时查看测试的进度和状态,而不需要频繁轮询。
断电数据完整性检测
系统现在支持在服务器意外断电后进行数据完整性检测,能够详细报告:
- 有多少数据块丢失
- 有多少数据块已损坏
- 总共丢失了多少MB的数据
- 提供数据恢复结果
使用方法
运行常规测试(实时进度)
./bin/client -test power_loss -server localhost:8080
运行断电后的恢复测试
在服务器断电并重启后,执行以下命令检查数据完整性:
./bin/client -recovery -server localhost:8080
这将执行数据完整性检测,并提供详细的数据丢失报告。