ub-ssu-csi:基于 Kubernetes 的 CSI 驱动项目

UB SSU存储的Kubernetes CSI 驱动

分支1Tags0
文件最后提交记录最后更新时间
13 天前
10 天前
10 天前
10 天前
12 天前
28 天前
10 天前
26 天前
13 天前
13 天前
10 天前
12 天前
12 天前

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

项目介绍

UB SSU存储的Kubernetes CSI 驱动

定制我的领域