The DingoFS CSI Driver implements the CSI specification for container orchestrators to manager DingoFS File Systems.
- Kubernetes 1.18+
make csi
CSI_IMAGE_NAME=<IMAGE_NAME> DRIVER_VERSION=<IMAGE_TAG> make docker-build
CSI_IMAGE_NAME=<IMAGE_NAME> DRIVER_VERSION=<IMAGE_TAG> make docker-push
- ControllerServer: CreateVolume, DeleteVolume, ValidateVolumeCapabilities
- NodeServer: NodePublishVolume, NodeUnpublishVolume, NodeGetInfo, NodeGetCapabilities
- IdentityServer: GetPluginInfo, Probe, GetPluginCapabilities
- Provisioner: Responsible for dynamically provisioning and deprovisioning storage resources.
- add label to node
kubectl label node <nodename> dingofs-csi-controller=enabled # Add the following label for all node that your pod run on kubectl label node <nodename> dingofs-csi-node=enabled
- deploy csi driver
attention: if you want to enable DiskCache, read the related section below
kubectl apply -f deploy/csi-driver.yaml kubectl apply -f deploy/csi-rbac.yaml kubectl apply -f deploy/csi-controller-deployment.yaml kubectl apply -f deploy/csi-node-daemonset.yaml
- create storage class and pvc
# copy and fill in the blanks in storageclass-default.yaml kubectl apply -f storageclass.yaml # copy and modify the pvc-default.yaml kubectl apply -f pvc.yaml
- now you can bind this pvc to a pod
what is DiskCache? A disk based cache used by client to increase the io performance of client.
If you want to enable it:
- check out content in csi-node-daemonset-enable-cache.yaml to bind the cache dir on curvefs-csi-node to pod's /curvefs/client/data/cache
- add "diskCache.diskCacheType=2" or "diskCache.diskCacheType=1" to your mountOptions section of storageclass.yaml, 2 for read and write, 1 for read
Know Issue:
With discache enabled (type=2, write), metadata in metadatasever will be newer than data in s3 storage, if the csi node pod crash but write cache is not fully uploaded to s3 storage, you may lose this part of data. Remount will crash, because you only have meta but without data (haven't been flushed to s3).
DingoFS CSI Driver Version | DingoFS Version | DingoFS CSI Driver Image |
---|---|---|
v1.0.0 | v2.3.0-rc0 | dingodatabase/dingofs-csi:v1.0.0 |
v1.1 | v2.4.0-beta2 | dingodatabase/dingofs-csi:v1.1 |
v2.1 | v2.5.0-beta | dingodatabase/dingofs-csi:v2.1 |