Files
markbase/docs/COLIMA_MACOS_GOTGT_TEST.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

7.7 KiB
Raw Blame History

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测试:

docker run --rm alpine ping -c 3 192.168.110.210
# 结果:✅ 成功64 bytes from 192.168.110.210
# 说明:网络可达,但端口未开放

端口连接测试:

docker run --rm alpine nc -zv 192.168.110.210 3260
# 结果:❌ 失败Connection refused
# 说明:端口不可达

localhost转发测试:

docker run --rm alpine nc -zv localhost 3260
# 结果:❌ 失败localhost:3260 not forwarded
# 说明Colima未转发macOS的localhost:3260

解决方案

Option 1: 配置Colima端口转发推荐

方法:

# 在Colima配置中添加端口转发
colima start --port-forward 3260

或修改Colima配置文件:

# ~/.colima/default/colima.yaml
portForward:
  - 3260:3260  # iSCSI target port

预期结果:

  • Colima容器可以通过 localhost:3260 访问macOS gotgt
  • 真实测试性能

Option 2: gotgt监听在外部IP

方法:

{
  "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 tgt3275 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/slocalhost
    • 优于Docker tgt13.2倍)
    • 适合macOS native iSCSI

测试未完成

无法测试Colima ↔ macOS gotgt的原因:

  • 网络架构限制localhost隔离
  • 端口转发配置缺失
  • 需要额外配置才能完成

建议方案

Option A: 配置Colima端口转发推荐

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端口网络架构限制需要显式端口转发配置。