核心功能: - ✅ Categories/Series双视图管理(category_view.rs + import_markdown.rs) - ✅ FUSE Multi-Volume支持(tree_type参数) - ✅ SSH/SFTP/SCP/rsync协议完整实现(4042行) - ✅ NFS/SMB Module Phase 1-3完成 - ✅ Archive Module Phase 1-4完成(2916行) - ✅ Download Center API完整实现 - ✅ S3兼容API实现(560行) Git配置修正: - ✅ 删除错误origin(gitea.momentry.ddns.net) - ✅ 删除m5max128(指向机器名) - ✅ 设置origin = m5max128gitea.momentry.ddns.net/admin/markbase - ✅ 设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase 数据清理: - ✅ 删除38个临时SQLite(保留accusys.sqlite、demo.sqlite) - ✅ 删除.bak、test_*.bin、调试脚本等临时文件 - ✅ 删除临时目录(build/、download files/、raid_test/等) - ✅ 更新.gitignore排除临时文件 架构优化: - 52个文件修改,2434行新增,4739行删除 - Workspace成员整合(16个crate) - 数据库状态:accusys.sqlite保留(主demo测试) 远程同步: - ✅ 准备推送到m5max128gitea(远程Gitea) - ✅ 准备推送到m4minigitea(本地Gitea)
20 KiB
MarkBaseFS Phase 3详细规划
版本:1.0 日期:2026-05-26 状态:等待Block Storage Device Entitlement审批
目录
- Phase 3概述
- DriverKit Entitlement审批状态
- HDD DriverKit驱动实现
- Object Storage DriverKit驱动实现
- NVMe DriverKit驱动实现
- MarkBaseFS Integration
- 开发时间规划
- 技术风险与缓解策略
- 验收标准
Phase 3概述
目标
实现MarkBaseFS四层存储系统的DriverKit驱动层
四层存储架构
| Tier | 技术 | Entitlement | 审批状态 | 开发优先级 |
|---|---|---|---|---|
| NVMe tier | Thunderbolt 5 NVMe SSD | Block Storage Device | ⏳ 待审批 | P1(最高性能) |
| HDD tier | Thunderbolt 3 HDD RAID | SCSI Controller | ✅ 已通过 | P2(高容量) |
| Object Storage tier | S3/MinIO/Ceph | Networking | ✅ 已通过 | P3(云端扩展) |
| Debug Kit tier | USB设备访问 | 无需Entitlement | ✅ 无需审批 | P4(调试支持) |
DriverKit Extension Bundle配置问题
关键技术发现:xcodegen不支持DriverKit Extension Bundle配置 ❌
| 配置项 | 需求 | 当前状态 | 说明 |
|---|---|---|---|
| Target类型 | DriverKit Extension Bundle | ❌ xcodegen不支持 ❌ | 需要手动创建 ✅✅✅ |
| SDK链接 | DriverKit.framework | ❌ 未链接 ❌ | 需要手动配置 ✅✅✅ |
| DriverKit Family SDK | SCSIControllerDriverKit.framework + NetworkDriverKit.framework | ❌ 未链接 ❌ | 需要手动配置 ✅✅✅ |
解决方案:
选项A:等待Block Storage Device审批通过(推荐)✅✅✅
- 等待1-7天审批 ⏳
- 使用正确entitlements重新实现 ✅✅✅
- 避免配置问题浪费时间 ✅✅✅
选项B:手动创建DriverKit Extension Bundle
- 使用Xcode手动创建DriverKit Extension target ✅✅✅
- 配置DriverKit SDK链接 ✅✅✅
- 测试Networking + SCSI Controller Entitlement ✅✅✅
- 预计耗时:1-2天 ⏳
DriverKit Entitlement审批状态
当前审批状态
| Entitlement | 用途 | Request ID | 审批状态 | 申请日期 |
|---|---|---|---|---|
| DriverKit Family: Networking | Object Storage Driver | 8B3NMV8K76 |
✅ 已通过 | 2026-05-24 |
| DriverKit Family: SCSI Controller | HDD Driver | 8B3NMV8K76 |
✅ 已通过 | 2026-05-24 |
| DriverKit Family: Block Storage Device | NVMe Driver | 8B3NMV8K76 |
⏳ 再次申请 | 2026-05-25 |
审批预计时间
- Networking + SCSI Controller:✅ 已通过(2天)
- Block Storage Device:⏳ 再次申请,预计1-7天
审批通过后的行动
Block Storage Device Entitlement审批通过后:
-
更新entitlements.plist
<key>com.apple.developer.driverkit.family.block-storage-device</key> <true/> -
重新编译NVMe DriverKit驱动
- 链接BlockStorageDeviceDriverKit.framework
- 测试NVMe设备访问
-
开始NVMe tier开发
- Thunderbolt 5 NVMe SSD驱动
- 性能目标:6000-7000MB/s
HDD DriverKit驱动实现
Entitlement状态
- SCSI Controller Entitlement:✅ 已通过
- 开发优先级:P2
- 预计开始时间:Block Storage Device审批通过后
技术架构
Thunderbolt 3 HDD RAID System
Thunderbolt 3 Port (40Gbps)
↓
LSI3108 Hardware RAID Controller
↓
HDD Array (RAID 6)
↓
HDD DriverKit Driver
↓
MarkBaseFS Volume
关键技术
| 技术点 | 说明 | API |
|---|---|---|
| 设备发现 | Thunderbolt设备枚举 | IOServiceMatching |
| SCSI命令 | SCSI命令传输 | IOSCSIController |
| RAID管理 | LSI3108 RAID状态 | SCSI Controller DriverKit |
| 性能监控 | I/O性能统计 | IOStatistics |
DriverKit API
SCSIControllerDriverKit.framework
import DriverKit
import SCSIControllerDriverKit
class HDDTestDriver: IOSCSIController {
// SCSI Controller Entitlement
// Thunderbolt 3 HDD RAID
private var raidController: LSI3108Controller?
private var volumes: [HDDVolume] = []
override init() {
super.init()
print("HDDTestDriver initializing...")
}
override func Start() -> IOReturn {
print("HDDTestDriver Start() called")
// 初始化LSI3108 RAID Controller
initializeRAIDController()
// 发现HDD卷
discoverHDDVolumes()
// 测试HDD operations
testHDDOperations()
return kIOReturnSuccess
}
func initializeRAIDController() {
print("Initializing LSI3108 RAID Controller...")
// LSI3108初始化代码
// 配置RAID模式(RAID 6)
// 设置缓存策略
}
func discoverHDDVolumes() {
print("Discovering HDD volumes...")
// 枚举HDD卷
// 获取容量信息
// 检查健康状态
}
func testHDDOperations() {
print("Testing HDD operations...")
// 测试读写性能
// 测试RAID重建速度
// 测试错误处理
}
}
性能目标
| 指标 | 目标值 | 测量方法 |
|---|---|---|
| 读取速度 | 3000-4000 MB/s | Thunderbolt 3带宽 |
| 写入速度 | 2500-3500 MB/s | RAID 6性能 |
| 延迟 | <10ms | IOPS测试 |
| 并发 | 10用户并发访问 | 压力测试 |
实现步骤
Phase 3.1: HDD DriverKit驱动开发(预计2周)
-
创建HDD DriverKit Extension Bundle
- 手动创建DriverKit Extension target(避免xcodegen限制)
- 配置SCSIControllerDriverKit.framework链接
- 设置entitlements
-
实现设备发现
- Thunderbolt设备枚举
- LSI3108 RAID Controller初始化
- HDD卷发现
-
实现SCSI命令传输
- SCSI命令构造
- 命令传输接口
- 错误处理
-
实现RAID管理
- RAID状态监控
- 重建进度跟踪
- 故障检测
-
性能优化
- 命令队列优化
- 缓存策略优化
- 并发访问优化
验收标准
- ✅ Thunderbolt 3 HDD RAID成功识别
- ✅ LSI3108 RAID Controller初始化成功
- ✅ HDD卷挂载成功
- ✅ 读写性能达到目标
- ✅ RAID 6功能正常
- ✅ 错误处理正确
Object Storage DriverKit驱动实现
Entitlement状态
- Networking Entitlement:✅ 已通过
- 开发优先级:P3
- 预计开始时间:Block Storage Device审批通过后
技术架构
Object Storage Integration
MarkBaseFS Volume
↓
Object Storage DriverKit Driver
↓
HTTP/HTTPS API
↓
┌─────────┬─────────┬─────────┐
│ S3 │ MinIO │ Ceph │
└─────────┴─────────┴─────────┘
关键技术
| 技术点 | 说明 | API |
|---|---|---|
| HTTP客户端 | HTTP/HTTPS请求 | NetworkDriverKit |
| S3 API | S3兼容API | REST API |
| 认证 | AWS Signature v4 | HTTP Header |
| 缓存 | 本地缓存优化 | SQLite |
DriverKit API
NetworkDriverKit.framework
import DriverKit
import NetworkDriverKit
class ObjectStorageTestDriver: IONetworkController {
// Networking Entitlement
// S3/MinIO/Ceph support
private var s3Client: S3Client?
private var minioClient: MinIOClient?
private var cephClient: CephClient?
override init() {
super.init()
print("ObjectStorageTestDriver initializing...")
}
override func Start() -> IOReturn {
print("ObjectStorageTestDriver Start() called")
// 初始化Object Storage客户端
initializeClients()
// 测试Object Storage operations
testObjectStorageOperations()
return kIOReturnSuccess
}
func initializeClients() {
// 初始化S3客户端
initializeS3Client()
// 初始化MinIO客户端
initializeMinIOClient()
// 初始化Ceph客户端
initializeCephClient()
}
func testObjectStorageOperations() {
// 测试S3 operations
testS3Operations()
// 测试MinIO operations
testMinIOOperations()
// 测试Ceph operations
testCephOperations()
}
}
性能目标
| 指标 | 目标值 | 测量方法 |
|---|---|---|
| 上传速度 | >100 MB/s | 大文件上传 |
| 下载速度 | >100 MB/s | 大文件下载 |
| 延迟 | <100ms | 小文件访问 |
| 并发 | 10并发上传/下载 | 压力测试 |
实现步骤
Phase 3.2: Object Storage DriverKit驱动开发(预计1周)
-
创建Object Storage DriverKit Extension Bundle
- 手动创建DriverKit Extension target
- 配置NetworkDriverKit.framework链接
- 设置entitlements
-
实现HTTP客户端
- HTTP/HTTPS请求封装
- 认证处理(AWS Signature v4)
- 错误处理
-
实现S3 API
- Bucket操作(创建、删除、列表)
- Object操作(上传、下载、删除)
- 分片上传(大文件)
-
实现缓存优化
- 本地SQLite缓存
- LRU缓存策略
- 预加载优化
-
实现多后端支持
- S3兼容API
- MinIO适配
- Ceph RADOS Gateway适配
验收标准
- ✅ S3 API成功连接
- ✅ MinIO成功连接
- ✅ Ceph成功连接
- ✅ Bucket操作正确
- ✅ Object操作正确
- ✅ 性能达到目标
NVMe DriverKit驱动实现
Entitlement状态
- Block Storage Device Entitlement:⏳ 待审批
- 开发优先级:P1(最高性能)
- 预计开始时间:Block Storage Device审批通过后
技术架构
Thunderbolt 5 NVMe SSD
Thunderbolt 5 Port (80Gbps)
↓
NVMe SSD Controller
↓
┌─────────┬─────────┬─────────┬─────────┐
│ SSD 1 │ SSD 2 │ SSD 3 │ SSD 4 │
└─────────┴─────────┴─────────┴─────────┘
↓
NVMe DriverKit Driver
↓
MarkBaseFS Volume
关键技术
| 技术点 | 说明 | API |
|---|---|---|
| 设备发现 | Thunderbolt 5设备枚举 | IOServiceMatching |
| NVMe命令 | NVMe命令传输 | IOBlockStorageDevice |
| 性能优化 | 高性能I/O | NVMe Queue |
| RAID支持 | 软RAID配置 | Block Storage DriverKit |
DriverKit API
BlockStorageDeviceDriverKit.framework
import DriverKit
import BlockStorageDeviceDriverKit
class NVMeTestDriver: IOBlockStorageDevice {
// Block Storage Device Entitlement
// Thunderbolt 5 NVMe SSD
private var nvmeController: NVMeController?
private var namespaces: [NVMeNamespace] = []
override init() {
super.init()
print("NVMeTestDriver initializing...")
}
override func Start() -> IOReturn {
print("NVMeTestDriver Start() called")
// 初始化NVMe Controller
initializeNVMeController()
// 发现NVMe Namespaces
discoverNVMeNamespaces()
// 测试NVMe operations
testNVMeOperations()
return kIOReturnSuccess
}
func initializeNVMeController() {
print("Initializing NVMe Controller...")
// NVMe Controller初始化代码
// 配置Queue深度
// 设置中断处理
}
func discoverNVMeNamespaces() {
print("Discovering NVMe Namespaces...")
// 枚举NVMe Namespaces
// 获取容量信息
// 检查健康状态
}
func testNVMeOperations() {
print("Testing NVMe operations...")
// 测试读写性能
// 测试Queue深度
// 测试错误处理
}
}
性能目标
| 指标 | 目标值 | 测量方法 |
|---|---|---|
| 读取速度 | 6000-7000 MB/s | Thunderbolt 5带宽 |
| 写入速度 | 5000-6000 MB/s | NVMe SSD性能 |
| IOPS | >100万 | 4K随机读写 |
| 延迟 | <100μs | NVMe特性 |
| 并发 | 10用户并发访问 | 压力测试 |
实现步骤
Phase 3.3: NVMe DriverKit驱动开发(预计2周)
-
创建NVMe DriverKit Extension Bundle
- 手动创建DriverKit Extension target
- 配置BlockStorageDeviceDriverKit.framework链接
- 设置entitlements(等待审批)
-
实现设备发现
- Thunderbolt 5设备枚举
- NVMe Controller初始化
- Namespace发现
-
实现NVMe命令传输
- NVMe命令构造
- Queue管理
- 中断处理
-
实现高性能I/O
- Queue深度优化
- 并发I/O优化
- 缓存策略
-
实现软RAID支持
- RAID 0配置
- RAID 1配置
- RAID 10配置
验收标准
- ✅ Thunderbolt 5 NVMe SSD成功识别
- ✅ NVMe Controller初始化成功
- ✅ NVMe Namespaces挂载成功
- ✅ 读写性能达到目标
- ✅ IOPS达到目标
- ✅ 软RAID功能正常
MarkBaseFS Integration
四层存储架构集成
┌─────────────────────────────────────────┐
│ MarkBaseFS Volume │
│ (Frame Management System) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ MarkBaseFS DriverKit Layer │
├──────────┬──────────┬─────────┬─────────┤
│ NVMe │ HDD │ Object │ Debug │
│ Driver │ Driver │ Storage │ Kit │
│ (P1) │ (P2) │ (P3) │ (P4) │
└──────────┴──────────┴─────────┴─────────┘
↓
┌─────────────────────────────────────────┐
│ Frame Index Table (SQLite) │
│ (frame_records, video_metadata) │
└─────────────────────────────────────────┘
集成步骤
Phase 3.4: MarkBaseFS Integration(预计1周)
-
统一接口设计
- MarkBaseFS统一接口
- 四层存储抽象
- Frame Index Table集成
-
驱动管理器实现
- 驱动加载管理
- 驱动状态监控
- 驱动故障恢复
-
Frame Index Table集成
- NVMe tier存储:frame_records
- HDD tier存储:video_metadata
- Object Storage tier:frame_locations
-
性能优化
- 四层存储负载均衡
- Frame存储策略优化
- 缓存策略优化
验收标准
- ✅ 四层存储统一接口正确
- ✅ Frame Index Table集成正确
- ✅ 驱动管理器功能正确
- ✅ 性能达到目标
开发时间规划
Phase 3总时间规划
| Phase | 任务 | 预计时间 | 开始条件 |
|---|---|---|---|
| Phase 3.1 | HDD DriverKit驱动开发 | 2周 | Block Storage Device审批通过 |
| Phase 3.2 | Object Storage DriverKit驱动开发 | 1周 | Block Storage Device审批通过 |
| Phase 3.3 | NVMe DriverKit驱动开发 | 2周 | Block Storage Device审批通过 |
| Phase 3.4 | MarkBaseFS Integration | 1周 | Phase 3.1-3.3完成 |
| Phase 3.5 | 测试与优化 | 1周 | Phase 3.4完成 |
总预计时间:7周
关键里程碑
| 里程碑 | 预计日期 | 说明 |
|---|---|---|
| Block Storage Device审批通过 | 2026-05-27 ~ 2026-06-02 | Block Storage Device Entitlement审批通过 |
| HDD Driver完成 | 审批后2周 | HDD DriverKit驱动开发完成 |
| Object Storage Driver完成 | HDD Driver后1周 | Object Storage DriverKit驱动开发完成 |
| NVMe Driver完成 | Object Storage Driver后2周 | NVMe DriverKit驱动开发完成 |
| MarkBaseFS Integration完成 | NVMe Driver后1周 | 四层存储集成完成 |
| Phase 3完成 | Integration后1周 | 测试与优化完成 |
技术风险与缓解策略
风险1:DriverKit Extension Bundle配置失败
风险等级:高
描述:xcodegen不支持DriverKit Extension Bundle配置
缓解策略:
-
手动创建DriverKit Extension Bundle ✅✅✅
- 使用Xcode手动创建DriverKit Extension target
- 配置DriverKit SDK链接
- 配置entitlements
-
等待Block Storage Device审批通过 ✅✅✅
- 使用正确entitlements重新实现
- 避免配置问题浪费时间
风险2:Block Storage Device Entitlement审批延迟
风险等级:中
描述:Block Storage Device Entitlement审批可能延迟
缓解策略:
-
并行开发HDD + Object Storage Driver ✅✅✅
- Networking + SCSI Controller Entitlement已通过
- 可以立即开始开发
-
准备详细的开发文档 ✅✅✅
- 创建Phase 3详细规划文档
- 审批通过后立即开始
风险3:NVMe性能未达到目标
风险等级:中
描述:NVMe SSD性能可能未达到6000-7000MB/s
缓解策略:
-
性能优化
- Queue深度优化
- 并发I/O优化
- 缓存策略优化
-
性能测试
- AJA System Test验证
- 压力测试
- 性能监控
风险4:四层存储集成复杂
风险等级:中
描述:四层存储集成可能比预期复杂
缓解策略:
-
模块化设计
- 独立的驱动模块
- 统一的接口抽象
-
逐步集成
- 先集成NVMe + HDD
- 再集成Object Storage
- 最后集成Debug Kit
验收标准
Phase 3验收标准
| 验收项 | 标准 | 验收方法 |
|---|---|---|
| HDD Driver | ✅ Thunderbolt 3 HDD RAID成功识别 | 功能测试 |
| HDD Performance | ✅ 读写速度3000-4000MB/s | 性能测试 |
| Object Storage Driver | ✅ S3/MinIO/Ceph成功连接 | 功能测试 |
| Object Storage Performance | ✅ 读写速度>100MB/s | 性能测试 |
| NVMe Driver | ✅ Thunderbolt 5 NVMe SSD成功识别 | 功能测试 |
| NVMe Performance | ✅ 读写速度6000-7000MB/s | 性能测试 |
| Integration | ✅ 四层存储集成正确 | 功能测试 |
| Frame Index Table | ✅ Frame存储正确 | 功能测试 |
最终交付物
-
HDD DriverKit驱动
- 源代码
- 测试代码
- 文档
-
Object Storage DriverKit驱动
- 源代码
- 测试代码
- 文档
-
NVMe DriverKit驱动
- 源代码
- 测试代码
- 文档
-
MarkBaseFS Integration
- 统一接口
- Frame Index Table集成
- 文档
-
测试报告
- 功能测试报告
- 性能测试报告
- 集成测试报告
附录
参考文档
- Apple DriverKit Documentation
- Apple FSKit Documentation
- Apple Block Storage Device DriverKit
- Apple SCSI Controller DriverKit
- Apple Network DriverKit
相关文件
/Users/accusys/markbase/MarkBaseFS/: 项目根目录/Users/accusys/markbase/MarkBaseFS/MarkBaseFS/MarkBaseFS.swift: FSKit Module主入口/Users/accusys/markbase/MarkBaseFS/MarkBaseFS/FrameIndexTable.swift: Frame Index Table核心/Users/accusys/markbase/MarkBaseFS/MarkBaseFS/MarkBaseFMS.swift: Frame Management System/Users/accusys/markbase/MarkBaseFS/MarkBaseFS/MarkBaseFSVolume.swift: Volume管理/Users/accusys/markbase/MarkBaseFS/docs/PHASE2_SUMMARY.md: Phase 2完成总结/Users/accusys/markbase/MarkBaseFS/docs/FUSE_DESIGN.md: FUSE设计文档/Users/accusys/markbase/MarkBaseFS/docs/FUSE_POC_TEST.md: POC测试计划/Users/accusys/markbase/MarkBaseFS/docs/FUSE_POC_REPORT.md: POC测试报告
文档版本:1.0 最后更新:2026-05-26 状态:等待Block Storage Device Entitlement审批