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