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)
This commit is contained in:
755
MarkBaseFS/docs/PHASE3_PLAN.md
Normal file
755
MarkBaseFS/docs/PHASE3_PLAN.md
Normal file
@@ -0,0 +1,755 @@
|
||||
# MarkBaseFS Phase 3详细规划
|
||||
|
||||
**版本:1.0**
|
||||
**日期:2026-05-26**
|
||||
**状态:等待Block Storage Device Entitlement审批**
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
1. [Phase 3概述](#phase-3概述)
|
||||
2. [DriverKit Entitlement审批状态](#drivertitlement审批状态)
|
||||
3. [HDD DriverKit驱动实现](#hdd-driverkit驱动实现)
|
||||
4. [Object Storage DriverKit驱动实现](#object-storage-driverkit驱动实现)
|
||||
5. [NVMe DriverKit驱动实现](#nvme-driverkit驱动实现)
|
||||
6. [MarkBaseFS Integration](#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**
|
||||
```xml
|
||||
<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**
|
||||
|
||||
```swift
|
||||
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**
|
||||
|
||||
```swift
|
||||
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**
|
||||
|
||||
```swift
|
||||
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 tier:frame_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周 | 测试与优化完成 |
|
||||
|
||||
---
|
||||
|
||||
## 技术风险与缓解策略
|
||||
|
||||
### 风险1:DriverKit Extension Bundle配置失败
|
||||
|
||||
**风险等级:高**
|
||||
|
||||
**描述:xcodegen不支持DriverKit Extension Bundle配置**
|
||||
|
||||
**缓解策略:**
|
||||
|
||||
1. **手动创建DriverKit Extension Bundle** ✅✅✅
|
||||
- 使用Xcode手动创建DriverKit Extension target
|
||||
- 配置DriverKit SDK链接
|
||||
- 配置entitlements
|
||||
|
||||
2. **等待Block Storage Device审批通过** ✅✅✅
|
||||
- 使用正确entitlements重新实现
|
||||
- 避免配置问题浪费时间
|
||||
|
||||
### 风险2:Block Storage Device Entitlement审批延迟
|
||||
|
||||
**风险等级:中**
|
||||
|
||||
**描述:Block Storage Device Entitlement审批可能延迟**
|
||||
|
||||
**缓解策略:**
|
||||
|
||||
1. **并行开发HDD + Object Storage Driver** ✅✅✅
|
||||
- Networking + SCSI Controller Entitlement已通过
|
||||
- 可以立即开始开发
|
||||
|
||||
2. **准备详细的开发文档** ✅✅✅
|
||||
- 创建Phase 3详细规划文档
|
||||
- 审批通过后立即开始
|
||||
|
||||
### 风险3:NVMe性能未达到目标
|
||||
|
||||
**风险等级:中**
|
||||
|
||||
**描述: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. **测试报告**
|
||||
- 功能测试报告
|
||||
- 性能测试报告
|
||||
- 集成测试报告
|
||||
|
||||
---
|
||||
|
||||
## 附录
|
||||
|
||||
### 参考文档
|
||||
|
||||
- [Apple DriverKit Documentation](https://developer.apple.com/documentation/driverkit)
|
||||
- [Apple FSKit Documentation](https://developer.apple.com/documentation/fskit)
|
||||
- [Apple Block Storage Device DriverKit](https://developer.apple.com/documentation/blockstoragedevicedriverkit)
|
||||
- [Apple SCSI Controller DriverKit](https://developer.apple.com/documentation/scsicontrollerdriverkit)
|
||||
- [Apple Network DriverKit](https://developer.apple.com/documentation/networkdriverkit)
|
||||
|
||||
### 相关文件
|
||||
|
||||
- `/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审批**
|
||||
Reference in New Issue
Block a user