ub-ssu-csi

UB SSU 存储 Kubernetes CSI 驱动,为 Unified Bus(UB)分布式存储系统实现容器存储接口(CSI)标准适配,原生支持块设备、文件系统两类存储卷形态,同时兼容组逻辑卷(Group Logical Volume)业务场景。驱动基于 NVMe over UB 高速传输协议构建存储通路,相较传统访问方式(nvme-of)可使 Mooncake 等上层 AI 存储业务性能提升 10%

功能特性

  • 通过声明式 PVC/PV 机制动态创建和删除 SSU 存储卷
  • 支持 Block 和 Filesystem 两种 volumeMode
  • 受限支持组逻辑卷场景(RAID 级别、nsnum、chunksize 可配置,不支持卷共享和 Pod 漂移)
  • 卷自动挂载到 Pod,Pod 删除后自动卸载和断开连接
  • 卷操作幂等性保证,异常场景下自动重试和恢复
  • 卷容量范围:下限 1GB,上限为池化存储总量
  • 支持通过kubelet查询卷使用量和总量

限制

  • 不提供卷扩容和快照能力
  • 不支持跨 Namespace 共享一个卷
  • 组逻辑卷场景不支持卷共享和 Pod 漂移

快速开始

1. 部署 CSI Driver

# 编辑 deploy/kubernetes/ub-ssu-csi.yaml 的 Secret 部分
# 在 data 字段填入 base64 编码的 UBSE 服务地址和证书:
#   serverAddr: UBSE 服务地址 (如: 192.168.1.100:8080)
#   ca.crt: CA 证书
#   client.crt: 客户端证书
#   client.key: 客户端密钥
kubectl apply -f deploy/kubernetes/ub-ssu-csi.yaml

CSI Driver 组件已统一部署在 ub-ssu-csi.yaml 中。

2. 创建存储卷并使用

Filesystem 模式:

kubectl apply -f examples/pvc.yaml        # volumeMode: Filesystem
kubectl apply -f examples/pod-filesystem.yaml

Block 模式:

kubectl apply -f examples/pvc-block.yaml  # volumeMode: Block
kubectl apply -f examples/pod-block.yaml

组逻辑卷:

kubectl apply -f examples/storageclass-group.yaml  # 含 raidLevel 参数
# 创建 PVC 时添加 annotations: csi.unifiedbus.com/nsnum 和 csi.unifiedbus.com/chunksize

健康检查

端点 逻辑
/healthz 检查 UBSE socket 文件是否存在
/readyz 检查 CSI 驱动是否已注册到 Kubelet

资源需求

组件 CPU Memory
Controller 500m 512Mi
SSU CSI Driver (per node) 100m 128Mi

兼容性

  • Kubernetes 1.19+
  • CSI 规范 1.8.0+
  • Go 1.24