CSI Storage Plug-in (SP) for VMware vSphere
CSI-vSphere is a Container Storage Interface (CSI) plug-in that that provides VMDK support to vSphere virtual machine (VM).
The CSI-vSphere SP has the following requirements:
- The SP supports the CSI decentralized model and must be deployed to all VMs that require access to storage.
- A VM must be located on a host running the
of the VMware vSphere Docker Volume Service (vDVS).
The SP's RPCs
NodeProbewill only be successful if the VM is able to access the backend, ESXi component.
The following command may be used to verify a VM can access the ESXi vDVS component:
$ docker run -it golang sh -c \ "go get github.com/thecodeteam/csi-vsphere/cmd/vmdkops && vmdkops"
The above command will complete without error if the VM is able to successfully communicate with the service running on the ESXi host.
CSI-vSphere may be installed with the following command:
$ go get github.com/thecodeteam/csi-vsphere
The resulting binary is located at
Starting the Plug-in
Before starting the plug-in please set the environment variable
CSI_ENDPOINT to a valid Go network address such as
$ CSI_ENDPOINT=csi.sock csi-vsphere INFO serving address="unix://csi.sock"
The server can be shutdown by using
Ctrl-C or sending the process
any of the standard exit signals.
Using the Plug-in
The CSI specification uses the gRPC protocol for plug-in communication.
The easiest way to interact with a CSI plug-in is via the Container
Storage Client (
csc) program provided via the
$ go get github.com/thecodeteam/gocsi/csc
The CSI-vShere SP is configured via environment variables:
||The port used to connect to the ESX service|
||The datastore from which VMDKs are listed and the default datastore in/from which VMDKs are created/removed.|
This SP is built using the GoCSI CSP package and as such may be configured with any of its configuration properties. The following table is a list of the global configuration properties for which CSI-vSphere provides a default value:
||Instructs the idempotency interceptor to validate the existence of a volume before allowing an operation to proceed|
||Indicates that a
||Indicates that a
||A list of the CSI versions this SP supports|
The CSI-vSphere SP supports the following CSI volume access modes:
||✓||Can only be published once as read/write on a single node, at any given time.|
||✓||Can only be published once as readonly on a single node, at any given time.|
||Can be published as readonly at multiple nodes simultaneously|
||Can be published at multiple nodes simultaneously. Only one of the node can be used as read/write. The rest will be readonly|
||Can be published as read/write at multiple nodes simultaneously|
While the SP does not support any of the
MULTI_NODE access modes, the SP will
allow a single volume to be mounted at multiple target paths on a single host.
For any questions or concerns please file an issue with the CSI-vSphere project or join the Slack channel #project-rexray at codecommunity.slack.com.