98f2307 Merge pull request #260 from TerryHowe/update-csi-driver-version e9d8712 Merge pull request #259 from stmcginnis/deprecated-kind-kube-root faf79ff Remove --kube-root deprecated kind argument 734c2b9 Merge pull request #265 from Rakshith-R/consider-main-branch f95c855 Merge pull request #262 from huww98/golang-toolchain 3c8d966 Treat main branch as equivalent to master branch e31de52 Merge pull request #261 from huww98/golang fd153a9 Bump golang to 1.23.1 a8b3d05 pull-test.sh: fix "git subtree pull" errors 6b05f0f use new GOTOOLCHAIN env to manage go version 18b6ac6 chore: update CSI driver version to 1.15 227577e Merge pull request #258 from gnufied/enable-race-detection e1ceee2 Always enable race detection while running tests 988496a Merge pull request #257 from jakobmoellerdev/csi-prow-sidecar-e2e-path 028f8c6 chore: bump to Go 1.22.5 69bd71e chore: add CSI_PROW_SIDECAR_E2E_PATH f40f0cc Merge pull request #256 from solumath/master cfa9210 Instruction update 379a1bb Merge pull request #255 from humblec/sidecar-md a5667bb fix typo in sidecar release process 4967685 Merge pull request #254 from bells17/add-github-actions d9bd160 Update skip list in codespell GitHub Action adb3af9 Merge pull request #252 from bells17/update-go-version f5aebfc Add GitHub Actions workflows b82ee38 Merge pull request #253 from bells17/fix-typo c317456 Fix typo 0a78505 Bump to Go 1.22.3 edd89ad Merge pull request #251 from jsafrane/add-logcheck 043fd09 Add test-logcheck target d7535ae Merge pull request #250 from jsafrane/go-1.22 b52e7ad Update go to 1.22.2 14fdb6f Merge pull request #247 from msau42/prow dc4d0ae Merge pull request #249 from jsafrane/use-go-version e681b17 Use .go-version to get Kubernetes go version 9b4352e Update release playbook c7bb972 Fix release notes script to use fixed tags 463a0e9 Add script to update specific go modules b54c1ba Merge pull request #246 from xing-yang/go_1.21 5436c81 Change go version to 1.21.5 267b40e Merge pull request #244 from carlory/sig-storage b42e5a2 nominate self (carlory) as kubernetes-csi reviewer a17f536 Merge pull request #210 from sunnylovestiramisu/sidecar 011033d Use set -x instead of die 5deaf66 Add wrapper script for sidecar release f8c8cc4 Merge pull request #237 from msau42/prow b36b5bf Merge pull request #240 from dannawang0221/upgrade-go-version adfddcc Merge pull request #243 from pohly/git-subtree-pull-fix c465088 pull-test.sh: avoid "git subtree pull" error 7b175a1 Update csi-test version to v5.2.0 987c90c Update go version to 1.21 to match k/k 2c625d4 Add script to generate patch release notes git-subtree-dir: release-tools git-subtree-split: 98f23071d946dd3de3188a7e1f84679067003162 |
||
---|---|---|
.github | ||
cmd/nvmfplugin | ||
deploy/kubernetes | ||
doc | ||
examples/kubernetes/example | ||
pkg | ||
release-tools | ||
.gitignore | ||
.prow.sh | ||
code-of-conduct.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
generate-patch-release-notes.sh | ||
go-modules-targeted-update.sh | ||
go-modules-update.sh | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
OWNERS | ||
OWNERS_ALIASES | ||
README.md | ||
SECURITY_CONTACTS | ||
verify-logcheck.sh |
CSI NVMf driver
Overview
This is a repository for NVMe-oF CSI Driver. Currently it implements bare minimum of th CSI spec.
Requirements
The CSI NVMf driver requires initiator and target kernel versions to be Linux kernel 5.0 or newer. Before using this csi driver, you should create a NVMf remote disk on the target side and record traddr/trport/trtype/nqn/deviceuuid.
Modprobe Nvmf mod on K8sNode
# when use TCP as transport
$ modprobe nvme-tcp
# when use RDMA as transport
$ modprobe nvme-rdma
Test NVMf driver using csc
Get csc tool from https://github.com/rexray/gocsi/tree/master/csc
$ go get github.com/rexray/gocsi/csc
1. Complile NVMf driver
$ make
2.1 Start NVMf driver
$ ./output/nvmfplugin --endpoint tcp://127.0.0.1:10000 --nodeid CSINode
2.2 Prepare nvmf backend target(Kernel or SPDK)
Kernel
Follow guide to set up kernel target to deploy kernel nvmf storage service on localhost.
SPDK
Follow guide to set up SPDK target to deploy spdk nvmf storage service on localhost.
You can get the information needed for 3.2 through spdk's script/rpc.py nvmf_get_subsystem
3.1 Get plugin info
$ csc identity plugin-info --endpoint tcp://127.0.0.1:10000
"csi.nvmf.com" "v1.0.0"
3.2 NodePublish a volume
The information here is what you used in step 2.2
export TargetTrAddr="NVMf Target Server IP (Ex: 192.168.122.18)"
export TargetTrPort="NVMf Target Server Ip Port (Ex: 49153)"
export TargetTrType="NVMf Target Type (Ex: tcp | rdma)"
export DeviceUUID="NVMf Target Device UUID (Ex: 58668891-c3e4-45d0-b90e-824525c16080)"
export NQN="NVMf Target NQN"
csc node publish --endpoint tcp://127.0.0.1:10000 --target-path /mnt/nvmf --vol-context targetTrAddr=$TargetTrAddr \
--vol-context targetTrPort=$TargetTrPort --vol-context targetTrType=$TargetTrType \
--vol-context deviceUUID=$DeviceUUID --vol-context nqn=$NQN nvmftestvol
nvmftestvol
You can find a new disk on /mnt/nvmf
3.3 NodeUnpublish a volume
$ csc node unpublish --endpoint tcp://127.0.0.1:10000 --target-path /mnt/nvmf nvmftestvol
nvmftestvol
Test NVMf driver in kubernetes cluster
TODO: support dynamic provision.
1. Docker Build image
$ make container
2.1 Load Driver
$ kubectl create -f deploy/kubernetes/
2.2 Unload Driver
$ kubectl delete -f deploy/kubenetes/
3.1 Create Storage Class(Dynamic Provisioning)
NotSupport Now
- Create
$ kubectl create -f examples/kubernetes/example/storageclass.yaml
- Check
$ kubectl get sc
3.2 Create PV and PVC(Static Provisioning)
Supported
- Create Pv
$ kubectl create -f examples/kubernetes/example/pv.yaml
- Check
$ kubectl get pv
- Create Pvc
$ kubectl create -f exameples/kubernetes/example/pvc.yaml
- Check
$ kubectl get pvc
4. Create Nginx Container
- Create Deployment
$ kubectl create -f examples/kubernetes/example/nginx.yaml
- Check
$ kubectl exec -it nginx-451df123421 /bin/bash
$ lsblk
Community,discussion,contribution,and support
You can reach the maintainers of this project at:
Code of conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.