为极客天成改写一套CSI存储插件
极客天成有个很厉害的scaleflash网络文件系统,充分利用rdma的无损网络特性,并进一步发扬光大。研发出来了可以顶替EMC盘阵的存储系统,可以在其上跑Oracle等数据库系统,真的是国货之光了。 帮它们改写了一个csi的存储插件,记录一下,基于yandex的s3 csi而来,这样既可以跑到底层上提供文件块设备,也可以上升到类似NFS或者S3的层次提供文件系统,能满足大多数需求。那源代码就绝对不提供了,只说一下过程: CSI PLUGIN的使用方法: 一、导入镜像 csi存储插件的image cr.yandex/crp9ftr22d26age3hulg/csi-s3:0.42.66 文件:csi.tar 将文件放到所有worknode上,导入本地镜像库: ctr --address /run/k3s/containerd/containerd.sock -n k8s.io images import /root/csi.tar crictl -r unix:///run/k3s/containerd/containerd.sock images 看到有 cr.yandex/crp9ftr22d26age3hulg/csi-s3:0.42.66 既是导入成功 二、安装controller和nodeserver 安装driver 文件:driver.yaml kubectl apply -f driver.yaml 安装controller 文件:controller.yaml kubectl apply -f controller.yaml 安装nodeserver 文件:nodeserver.yaml 解释一下,controller是一个statefulset,整个集群运行一个即可;而nodeservershi则是一个daemonset,每个worknode都会运行一个副本 上面 worknode 是3个,所以有3个副本 三、scaleflash 块设备的使用 块设备最小单位是G,所以如果需求了100M,那也是1G。 首先必须定义一个storageclass,以后使用这一个storageclass就可以了: cat << EOF >scaleflash-storageclass.yaml --- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: scaleflash provisioner: ru.yandex.s3.csi parameters: mounter: scaleflash clstID: "nvmatrix_101" fsType: "xfs" EOF kubectl apply -f scaleflash-storageclass.yaml 再定义pvc ...