Skip to main content

Access unknown storage

Introduction

Pelicon can use StorageProvider CRD to access unsupported storage devices, but the storage connected in this way can only have some basic capabilities.

Prerequisites for access:

  1. The target storage conforms to the CSI specification
  2. The target storage is functioning normally

Usage

  1. Modify the following yaml as needed, and apply
apiVersion: uds.dce.daocloud.io/v1
kind: StorageProvider
metadata:
annotations:
uds.dce.daocloud.io/capabilities: '{"snapshot":true,"clone":true,"expansion":true,"protocol":"block"}' # Storage capabilities
name: ceph-rbd-1.0.0
spec:
driver: rbd.csi.ceph.com # Provision name
vendor: ceph # Storage vendor name
product: rbd # Storage product
protocol: block # Storage protocal(block/file/local)
version: 1.0.0 # Version
  1. Check the StorageProviders
kubectl get sp
NAME VENDOR PRODUCT PROTOCOL VERSION DRIVERNAME CSIDRIVER CSICONTROLLER STORAGEDRIVER AGE
ceph ceph rbd block 1.0.0 rbd.csi.ceph.com NotInstalled NotInstalled NotInstalled 162d
daocloud-local-1.0.0 daocloud DLocal local 1.0.0 local.storage.daocloud.io Ready Ready NotInstalled 332d
longhorn longhorn longhorn block 1.0.0 driver.longhorn.io NotInstalled NotInstalled NotInstalled 168d
xsky-block-4.1.x xsky SDS block 4.1.x iscsi.csi.xsky.com Ready Ready Ready 312d
xsky-file-4.1.x xsky SDS file 4.1.x nfs.csi.xsky.com Ready Ready NotInstalled 244d
  1. (Optional) Manage CSI Components

If you want Pelicon to identify the CSI components of the storage system to monitor the running status of the CSI and display it in the Status of the StorageProvider CR, you need to tag the CSI Controller and CSI Driver (assuming all CSI components are deployments).

kubectl label deployment <your-csi-controller> driver=<you provisioner name> role=csi-controller
kubectl label deployment <your-csi-driver> driver=<you provisioner name> role=csi-driver

StorageProvider capabilities annotation

NameExplanation
snapshot
clone
expansion
protocol