Files
markbase/MarkBaseFS/docs/PHASE3_PLAN.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  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)
2026-06-12 12:59:54 +08:00

20 KiB
Raw Blame History

MarkBaseFS Phase 3详细规划

版本1.0 日期2026-05-26 状态等待Block Storage Device Entitlement审批


目录

  1. Phase 3概述
  2. DriverKit Entitlement审批状态
  3. HDD DriverKit驱动实现
  4. Object Storage DriverKit驱动实现
  5. NVMe DriverKit驱动实现
  6. MarkBaseFS Integration
  7. 开发时间规划
  8. 技术风险与缓解策略
  9. 验收标准

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审批通过后

  1. 更新entitlements.plist

    <key>com.apple.developer.driverkit.family.block-storage-device</key>
    <true/>
    
  2. 重新编译NVMe DriverKit驱动

    • 链接BlockStorageDeviceDriverKit.framework
    • 测试NVMe设备访问
  3. 开始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周

  1. 创建HDD DriverKit Extension Bundle

    • 手动创建DriverKit Extension target避免xcodegen限制
    • 配置SCSIControllerDriverKit.framework链接
    • 设置entitlements
  2. 实现设备发现

    • Thunderbolt设备枚举
    • LSI3108 RAID Controller初始化
    • HDD卷发现
  3. 实现SCSI命令传输

    • SCSI命令构造
    • 命令传输接口
    • 错误处理
  4. 实现RAID管理

    • RAID状态监控
    • 重建进度跟踪
    • 故障检测
  5. 性能优化

    • 命令队列优化
    • 缓存策略优化
    • 并发访问优化

验收标准

  • 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周

  1. 创建Object Storage DriverKit Extension Bundle

    • 手动创建DriverKit Extension target
    • 配置NetworkDriverKit.framework链接
    • 设置entitlements
  2. 实现HTTP客户端

    • HTTP/HTTPS请求封装
    • 认证处理AWS Signature v4
    • 错误处理
  3. 实现S3 API

    • Bucket操作创建、删除、列表
    • Object操作上传、下载、删除
    • 分片上传(大文件)
  4. 实现缓存优化

    • 本地SQLite缓存
    • LRU缓存策略
    • 预加载优化
  5. 实现多后端支持

    • 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周

  1. 创建NVMe DriverKit Extension Bundle

    • 手动创建DriverKit Extension target
    • 配置BlockStorageDeviceDriverKit.framework链接
    • 设置entitlements等待审批
  2. 实现设备发现

    • Thunderbolt 5设备枚举
    • NVMe Controller初始化
    • Namespace发现
  3. 实现NVMe命令传输

    • NVMe命令构造
    • Queue管理
    • 中断处理
  4. 实现高性能I/O

    • Queue深度优化
    • 并发I/O优化
    • 缓存策略
  5. 实现软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周

  1. 统一接口设计

    • MarkBaseFS统一接口
    • 四层存储抽象
    • Frame Index Table集成
  2. 驱动管理器实现

    • 驱动加载管理
    • 驱动状态监控
    • 驱动故障恢复
  3. Frame Index Table集成

    • NVMe tier存储frame_records
    • HDD tier存储video_metadata
    • Object Storage tierframe_locations
  4. 性能优化

    • 四层存储负载均衡
    • 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周 测试与优化完成

技术风险与缓解策略

风险1DriverKit Extension Bundle配置失败

风险等级:高

描述xcodegen不支持DriverKit Extension Bundle配置

缓解策略:

  1. 手动创建DriverKit Extension Bundle

    • 使用Xcode手动创建DriverKit Extension target
    • 配置DriverKit SDK链接
    • 配置entitlements
  2. 等待Block Storage Device审批通过

    • 使用正确entitlements重新实现
    • 避免配置问题浪费时间

风险2Block Storage Device Entitlement审批延迟

风险等级:中

描述Block Storage Device Entitlement审批可能延迟

缓解策略:

  1. 并行开发HDD + Object Storage Driver

    • Networking + SCSI Controller Entitlement已通过
    • 可以立即开始开发
  2. 准备详细的开发文档

    • 创建Phase 3详细规划文档
    • 审批通过后立即开始

风险3NVMe性能未达到目标

风险等级:中

描述NVMe SSD性能可能未达到6000-7000MB/s

缓解策略:

  1. 性能优化

    • Queue深度优化
    • 并发I/O优化
    • 缓存策略优化
  2. 性能测试

    • AJA System Test验证
    • 压力测试
    • 性能监控

风险4四层存储集成复杂

风险等级:中

描述:四层存储集成可能比预期复杂

缓解策略:

  1. 模块化设计

    • 独立的驱动模块
    • 统一的接口抽象
  2. 逐步集成

    • 先集成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存储正确 功能测试

最终交付物

  1. HDD DriverKit驱动

    • 源代码
    • 测试代码
    • 文档
  2. Object Storage DriverKit驱动

    • 源代码
    • 测试代码
    • 文档
  3. NVMe DriverKit驱动

    • 源代码
    • 测试代码
    • 文档
  4. MarkBaseFS Integration

    • 统一接口
    • Frame Index Table集成
    • 文档
  5. 测试报告

    • 功能测试报告
    • 性能测试报告
    • 集成测试报告

附录

参考文档

相关文件

  • /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审批