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:
309
docs/COLIMA_MACOS_GOTGT_TEST.md
Normal file
309
docs/COLIMA_MACOS_GOTGT_TEST.md
Normal file
@@ -0,0 +1,309 @@
|
||||
# Colima Initiator ↔ macOS gotgt 测试报告
|
||||
|
||||
**测试日期**: 2026-05-30 15:22
|
||||
**测试环境**: macOS 26.5 arm64, M4 Mac mini, Colima v0.10.1
|
||||
**测试目的**: 测试 Colima VM initiator ↔ macOS gotgt target 性能
|
||||
|
||||
---
|
||||
|
||||
## 测试架构
|
||||
|
||||
**计划架构**:
|
||||
```
|
||||
Colima VM (Linux initiator) macOS (gotgt target)
|
||||
┌─────────────────────┐ ┌─────────────────────┐
|
||||
│ libiscsi tools │ │ gotgt daemon │
|
||||
│ iscsi-perf │ │ test_lun.bin │
|
||||
│ │ │ Port: 3260 │
|
||||
│ │ │ │
|
||||
│ TCP:192.168.x.x:3260│◄────────────►│ │
|
||||
└─────────────────────┘ └─────────────────────┘
|
||||
▲ ▲
|
||||
│ │
|
||||
libiscsi (Linux) gotgt (Go native)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 测试结果
|
||||
|
||||
### ✅ 成功项目
|
||||
|
||||
|测试项|结果|说明|
|
||||
|------|:----:|------|
|
||||
|macOS gotgt启动|✅|Daemon running, PID 26908|
|
||||
|LUN文件创建|✅|256MB test_lun.bin|
|
||||
|gotgt配置|✅|Portal: 127.0.0.1:3260|
|
||||
|
||||
### ❌ 失败项目
|
||||
|
||||
|测试项|结果|说明|
|
||||
|------|:----:|------|
|
||||
|Colima访问macOS端口3260|❌|网络架构限制|
|
||||
|libiscsi从Colima连接gotgt|❌|端口不可达|
|
||||
|性能测试|❌|无法执行|
|
||||
|
||||
---
|
||||
|
||||
## 网络架构限制
|
||||
|
||||
### 问题分析
|
||||
|
||||
**Colima VM网络架构**:
|
||||
```
|
||||
macOS Host
|
||||
├── Colima VM (macOS Virtualization.Framework)
|
||||
│ ├── 网络空间:NAT或bridge模式
|
||||
│ ├── IP地址:172.17.0.x (Docker内部)
|
||||
│ └── 端口转发:仅显式配置的端口
|
||||
└── gotgt daemon
|
||||
├── 监听:127.0.0.1:3260 (macOS localhost)
|
||||
└── 无法从Colima VM访问 ❌
|
||||
```
|
||||
|
||||
**关键限制**:
|
||||
1. **localhost隔离** ✅
|
||||
- macOS localhost (127.0.0.1) 与Colima VM localhost隔离
|
||||
- VM无法直接访问host的localhost端口
|
||||
- 这是macOS Virtualization.Framework的设计
|
||||
|
||||
2. **端口转发缺失** ❌
|
||||
- Colima默认只转发显式配置的端口(如docker.sock)
|
||||
- 3260端口未配置转发
|
||||
- 需要手动配置或使用不同网络模式
|
||||
|
||||
3. **防火墙检查** ✅
|
||||
- macOS防火墙已关闭(State = 0)
|
||||
- 但网络隔离仍然存在
|
||||
|
||||
---
|
||||
|
||||
### 测试验证
|
||||
|
||||
**Ping测试**:
|
||||
```bash
|
||||
docker run --rm alpine ping -c 3 192.168.110.210
|
||||
# 结果:✅ 成功(64 bytes from 192.168.110.210)
|
||||
# 说明:网络可达,但端口未开放
|
||||
```
|
||||
|
||||
**端口连接测试**:
|
||||
```bash
|
||||
docker run --rm alpine nc -zv 192.168.110.210 3260
|
||||
# 结果:❌ 失败(Connection refused)
|
||||
# 说明:端口不可达
|
||||
```
|
||||
|
||||
**localhost转发测试**:
|
||||
```bash
|
||||
docker run --rm alpine nc -zv localhost 3260
|
||||
# 结果:❌ 失败(localhost:3260 not forwarded)
|
||||
# 说明:Colima未转发macOS的localhost:3260
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 解决方案
|
||||
|
||||
### Option 1: 配置Colima端口转发(推荐)
|
||||
|
||||
**方法**:
|
||||
```bash
|
||||
# 在Colima配置中添加端口转发
|
||||
colima start --port-forward 3260
|
||||
```
|
||||
|
||||
**或修改Colima配置文件**:
|
||||
```yaml
|
||||
# ~/.colima/default/colima.yaml
|
||||
portForward:
|
||||
- 3260:3260 # iSCSI target port
|
||||
```
|
||||
|
||||
**预期结果**:
|
||||
- Colima容器可以通过 `localhost:3260` 访问macOS gotgt
|
||||
- 真实测试性能
|
||||
|
||||
---
|
||||
|
||||
### Option 2: gotgt监听在外部IP
|
||||
|
||||
**方法**:
|
||||
```json
|
||||
{
|
||||
"iscsiportals": [{
|
||||
"portal": "192.168.110.210:3260" // macOS外部IP
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
**问题**:
|
||||
- gotgt默认监听在IPv6 [::]:3260
|
||||
- libiscsi尝试连接Portal IP但失败(认证/协议问题)
|
||||
- 需要gotgt支持IPv4绑定
|
||||
|
||||
---
|
||||
|
||||
### Option 3: 使用反向测试(已完成)
|
||||
|
||||
**方法**:
|
||||
- macOS initiator ↔ Colima tgt target ✅(已测试)
|
||||
- 结果:249 MB/s(真实TCP/IP iSCSI)
|
||||
|
||||
**说明**:
|
||||
- 这个测试已经完成(LIBISCSI_DOCKER_TGT_TEST.md)
|
||||
- 从macOS访问Colima VM更容易(端口转发已配置)
|
||||
|
||||
---
|
||||
|
||||
## 性能数据对比
|
||||
|
||||
### 已验证的性能数据
|
||||
|
||||
|方案|吞吐量|IOPS|说明|来源|
|
||||
|------|:------:|:----:|------|------|
|
||||
|macOS gotgt (localhost)|3275 MB/s|26k|macOS native loopback|ISCSI_GOTGT_TEST_REPORT.md|
|
||||
|libiscsi ↔ Docker tgt|249 MB/s|2k|真实TCP/IP iSCSI|LIBISCSI_DOCKER_TGT_TEST.md|
|
||||
|Docker tgt容器内|19200 MB/s|119k|本地文件,非真实iSCSI|ISCSI_PERFORMANCE_COMPARISON.md|
|
||||
|macOS NVMe|3400 MB/s|N/A|硬件基准|本次测试|
|
||||
|**Colima ↔ macOS gotgt**|**N/A**|N/A|**网络架构限制**|本次测试|
|
||||
|
||||
---
|
||||
|
||||
### 预期性能(如果配置成功)
|
||||
|
||||
**假设Colima ↔ macOS gotgt可达**:
|
||||
|
||||
预期性能:**~300-800 MB/s**
|
||||
|
||||
**理由**:
|
||||
1. gotgt性能优于Docker tgt(3275 vs 249 MB/s)
|
||||
2. Colima VM网络开销(NAT + virtiofs)
|
||||
3. macOS Virtualization.Framework overhead
|
||||
4. 比libiscsi ↔ Docker tgt快,但比localhost慢
|
||||
|
||||
**对比公式**:
|
||||
```
|
||||
gotgt native (3275 MB/s) / Docker tgt (249 MB/s) = 13.2x
|
||||
预期:Colima ↔ gotgt ~ 300-800 MB/s (中等范围)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 关键发现
|
||||
|
||||
### ✅ 网络架构认知
|
||||
|
||||
1. **Colima localhost隔离** ✅
|
||||
- macOS Virtualization.Framework设计
|
||||
- VM无法直接访问host localhost
|
||||
- 需显式端口转发配置
|
||||
|
||||
2. **端口转发单向性** ✅
|
||||
- macOS → Colima容易(已配置)
|
||||
- Colima → macOS困难(未配置)
|
||||
|
||||
3. **gotgt监听限制** ⚠️
|
||||
- 默认监听IPv6 [::]:3260
|
||||
- libiscsi Portal IP配置问题
|
||||
|
||||
---
|
||||
|
||||
### ❌ 测试未完成
|
||||
|
||||
**无法执行的原因**:
|
||||
- Colima网络架构限制
|
||||
- 端口转发配置缺失
|
||||
- gotgt Portal配置问题
|
||||
|
||||
**需要的前提**:
|
||||
- 配置Colima端口转发3260
|
||||
- 或gotgt监听在192.168.110.210
|
||||
- 或使用反向测试(已完成)
|
||||
|
||||
---
|
||||
|
||||
## 与其他测试对比
|
||||
|
||||
### 测试矩阵
|
||||
|
||||
|方向|方案|性能|状态|说明|
|
||||
|------|------|:------:|:----:|------|
|
||||
|**macOS → Colima**|libiscsi ↔ Docker tgt|249 MB/s|✅|已完成|
|
||||
|**Colima → macOS**|Colima ↔ gotgt|N/A|❌|网络限制|
|
||||
|**macOS localhost**|gotgt loopback|3275 MB/s|✅|已完成|
|
||||
|**Colima localhost**|Docker tgt文件|19200 MB/s|⚠️|非真实iSCSI|
|
||||
|
||||
---
|
||||
|
||||
### 关键差异
|
||||
|
||||
**macOS → Colima(成功)**:
|
||||
- macOS initiator连接Colima tgt ✅
|
||||
- Colima端口转发已配置(docker.sock模式)
|
||||
- 性能:249 MB/s(真实TCP/IP)
|
||||
|
||||
**Colima → macOS(失败)**:
|
||||
- Colima initiator连接macOS gotgt ❌
|
||||
- macOS localhost未转发到Colima VM
|
||||
- 网络架构限制
|
||||
|
||||
---
|
||||
|
||||
## 结论
|
||||
|
||||
### ✅ 网络架构验证
|
||||
|
||||
1. **Colima VM网络隔离** ✅
|
||||
- localhost隔离是设计特性
|
||||
- 端口转发需显式配置
|
||||
- 单向访问更容易(host → VM)
|
||||
|
||||
2. **gotgt性能验证** ✅
|
||||
- 已验证:3275 MB/s(localhost)
|
||||
- 优于Docker tgt(13.2倍)
|
||||
- 适合macOS native iSCSI
|
||||
|
||||
---
|
||||
|
||||
### ❌ 测试未完成
|
||||
|
||||
**无法测试Colima ↔ macOS gotgt的原因**:
|
||||
- 网络架构限制(localhost隔离)
|
||||
- 端口转发配置缺失
|
||||
- 需要额外配置才能完成
|
||||
|
||||
---
|
||||
|
||||
### 建议方案
|
||||
|
||||
**Option A: 配置Colima端口转发(推荐)**
|
||||
```bash
|
||||
colima start --port-forward 3260
|
||||
```
|
||||
|
||||
**Option B: 使用反向测试数据**
|
||||
- 已有:macOS libiscsi ↔ Docker tgt (249 MB/s)
|
||||
- 已有:macOS gotgt localhost (3275 MB/s)
|
||||
- 可推算:Colima ↔ gotgt预期性能
|
||||
|
||||
**Option C: 继续其他测试**
|
||||
- 网络架构已验证
|
||||
- 转向hybrid database或其他任务
|
||||
|
||||
---
|
||||
|
||||
## 文件记录
|
||||
|
||||
|文件|说明|
|
||||
|------|------|
|
||||
|`docs/COLIMA_MACOS_GOTGT_TEST.md`|本测试报告|
|
||||
|`docs/LIBISCSI_DOCKER_TGT_TEST.md`|反向测试(成功)|
|
||||
|`docs/ISCSI_GOTGT_TEST_REPORT.md`|gotgt native测试|
|
||||
|`docs/ISCSI_PERFORMANCE_COMPARISON.md`|之前的对比(需修正)|
|
||||
|
||||
---
|
||||
|
||||
**测试完成**: 2026-05-30 15:22
|
||||
**版本**: v1.0
|
||||
**关键发现**: Colima无法访问macOS localhost端口(网络架构限制),需要显式端口转发配置。
|
||||
Reference in New Issue
Block a user