nexenta / edgefs-csi Goto Github PK
View Code? Open in Web Editor NEWCSI driver for EdgeFS
License: Apache License 2.0
CSI driver for EdgeFS
License: Apache License 2.0
Here's the error:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x1021af0]
goroutine 8 [running]:
_/opt/edgefs/src/csi/edgefs-csi/csi/edgefs.(*EdgeFS).ListServices(0xc4204fa180, 0x0, 0x0, 0x0, 0x144c7e0, 0xc4200ef340, 0xc4200be070, 0x1141920, 0xc420505b60)
/opt/edgefs/src/csi/edgefs-csi/csi/edgefs/edgefs.go:650 +0x4f0
_/opt/edgefs/src/csi/edgefs-csi/csi/edgefs.(*EdgeFS).GetClusterData(0xc4204fa180, 0x0, 0x0, 0x0, 0x4, 0xc420044570, 0xb, 0x1, 0x144bc00)
/opt/edgefs/src/csi/edgefs-csi/csi/edgefs/edgefs.go:714 +0xa3
_/opt/edgefs/src/csi/edgefs-csi/csi/edgefs.(*EdgeFS).CreateIscsiVolume(0xc4204fa180, 0xc420110040, 0x40, 0x0, 0x0, 0x140000000, 0xc420338540, 0xc4204fa180, 0x0, 0x0, ...)
/opt/edgefs/src/csi/edgefs-csi/csi/edgefs/edgefs.go:319 +0x37e
_/opt/edgefs/src/csi/edgefs-csi/csi/drivers/iscsi.(*ControllerServer).CreateVolume(0xc4200be630, 0x146dfe0, 0xc420338390, 0xc4203a8150, 0xc4200be630, 0xc4203a8150, 0x0)
/opt/edgefs/src/csi/edgefs-csi/csi/drivers/iscsi/controllerserver.go:149 +0xb88
github.com/container-storage-interface/spec/lib/go/csi._Controller_CreateVolume_Handler.func1(0x146dfe0, 0xc420338390, 0x12dfe80, 0xc4203a8150, 0x20, 0x18, 0x1203140, 0x0)
/opt/edgefs/src/csi/edgefs-csi/src/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go:4947 +0x86
_/opt/edgefs/src/csi/edgefs-csi/csi.(*Driver).grpcErrorHandler(0xc420292cc0, 0x146dfe0, 0xc420338390, 0x12dfe80, 0xc4203a8150, 0xc42000a460, 0xc42000a480, 0x20, 0x1203140, 0xc420083a01, ...)
/opt/edgefs/src/csi/edgefs-csi/csi/driver.go:203 +0x61
_/opt/edgefs/src/csi/edgefs-csi/csi.(*Driver).(_/opt/edgefs/src/csi/edgefs-csi/csi.grpcErrorHandler)-fm(0x146dfe0, 0xc420338390, 0x12dfe80, 0xc4203a8150, 0xc42000a460, 0xc42000a480, 0x11ca680, 0x1bc5958, 0x12fc320, 0xc4203e6000)
/opt/edgefs/src/csi/edgefs-csi/csi/driver.go:138 +0x73
github.com/container-storage-interface/spec/lib/go/csi._Controller_CreateVolume_Handler(0x12b5100, 0xc4200be630, 0x146dfe0, 0xc420338390, 0xc4201283c0, 0xc420291e20, 0x0, 0x0, 0xc420090070, 0x70)
/opt/edgefs/src/csi/edgefs-csi/src/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go:4949 +0x167
google.golang.org/grpc.(*Server).processUnaryRPC(0xc420259980, 0x147a540, 0xc4202faa80, 0xc4203e6000, 0xc4202ada10, 0x1b991a0, 0x0, 0x0, 0x0)
/opt/edgefs/src/csi/edgefs-csi/src/google.golang.org/grpc/server.go:998 +0x4bc
google.golang.org/grpc.(*Server).handleStream(0xc420259980, 0x147a540, 0xc4202faa80, 0xc4203e6000, 0x0)
/opt/edgefs/src/csi/edgefs-csi/src/google.golang.org/grpc/server.go:1278 +0xe02
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc42035a040, 0xc420259980, 0x147a540, 0xc4202faa80, 0xc4203e6000)
/opt/edgefs/src/csi/edgefs-csi/src/google.golang.org/grpc/server.go:717 +0x9f
created by google.golang.org/grpc.(*Server).serveStreams.func1
/opt/edgefs/src/csi/edgefs-csi/src/google.golang.org/grpc/server.go:715 +0xa1
Full log available at:
logs-from-driver-in-edgefs-iscsi-csi-controller-0.txt
Here's the applied yaml:
edgefs.zip
Here's the commands I ran on the mgr pod toolbox:
efscli system init
efscli cluster create cltest
efscli tenant create cltest/test
efscli bucket create cltest/test/files-iscsi -s 512K -r 2 -R 1 -t 1
efscli service create iscsi files-iscsi
efscli service serve files-iscsi cltest/test/files-iscsi/lun1
I've applied weavenet and the kubernetes dashboard but besides that, this is a fresh cluster (has been rebooted though).
Node status:
ServerID 149537A1FFF0F80253CC54C38B65E390 blackmarsh:blackmarsh-0 ONLINE
ServerID D970BBC047EE482D80CA0DC93E609145 hammerfell:hammerfell-0 ONLINE
ServerID 16E1E95A33A4EAC97CEBDEF9853F0930 elsweyr:elsweyr-0 ONLINE
Kubernetes version:
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
This is a bare metal cluster with 3 identical nodes of the following:
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
Linux $HOSTNAME 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Node hardware: https://eons.dev/project/cloud-storage-over-wan/#hardware
hi! I am trying to mount pv to pod with help of NFS dynamic provisioning and met problem during mounting process.
Error:
Jan 5 21:13:43.214 [ERRO] [node4] [Driver] [NodePublishVolume()] Failed to mount volume 10.174.65.38:/nfs/pvc-c26498bd-c3c5-4a5a-b946-57b4c1179f55. Error: mount failed: exit status 32
Mounting command: mount
Mounting arguments: -t nfs -o vers=3,tcp 10.x.x.x:/nfs/pvc-c26498bd-c3c5-4a5a-b946-57b4c1179f55 /var/lib/kubelet/pods/ab2eb907-94a5-4dc3-b55c-ebb9bd109d56/volumes/kubernetes.io~csi/pvc-c26498bd-c3c5-4a5a-b946-57b4c1179f55/mount
Output: mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified
OS: Centos 7
rpcbind and nfs-utils packages installed.
rpcbind service started
With this functionality, CSI provisioner would setup md capable LUN that consists of 2+ EdgeFS block devices.
Enhanced performance. This would provide an additional performance boost by spreading I/O across 2+ paths.
Enhanced reliability. This would enable local to container RAID group rebuilds.
During CSI ISCSI testing, edgsfs iscsi service may stuck in inoperable state
Cluster definitions
efscli cluster create cltest
efscli tenant create cltest/test
efscli bucket create cltest/test/bk1
efscli service create iscsi iscsi01
Steps to reproduce:
#!/bin/bash -e
LIMIT=30
for ((a=1; a <= LIMIT ; a++))
do
efscli object create cltest/test/bk1/lun$a -s 128K
done
#!/bin/bash -e
LIMIT=5
for ((a=1; a <= LIMIT ; a++))
do
efscli service serve iscsi01 cltest/test/bk1/lun$a
done
#!/bin/bash -e
LIMIT=30
for ((a=1; a <= LIMIT ; a++))
do
efscli service unserve iscsi01 $a@cltest/test/bk1/lun$a
done
#!/bin/bash -e
LIMIT=30
for ((a=1; a <= LIMIT ; a++))
do
efscli object delete cltest/test/bk1/lun$a
done
7 Neadm service restart iscsi01
8 Repeat from step 1
On second iteration we could stuck with IO errors via neadm or efscli commands
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.