Code Monkey home page Code Monkey logo

edgefs-csi's People

Contributors

autosupport avatar dyusupov avatar pow-devops2020 avatar sabbot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edgefs-csi's Issues

iSCSI segfault when provisioning volume

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

[ERRO] [node4] [Driver] [grpc] rpc error: code = Internal desc = mount failed: exit status 32

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

iSCSI support for multi-path provisioned LUNs

With this functionality, CSI provisioner would setup md capable LUN that consists of 2+ EdgeFS block devices.

  1. Enhanced performance. This would provide an additional performance boost by spreading I/O across 2+ paths.

  2. Enhanced reliability. This would enable local to container RAID group rebuilds.

Edgefs service comes to inoperable state

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:

  1. Create Objects
#!/bin/bash -e
LIMIT=30

for ((a=1; a <= LIMIT ; a++))
do
   efscli object create cltest/test/bk1/lun$a -s 128K
done
  1. Create exports
#!/bin/bash -e
LIMIT=5

for ((a=1; a <= LIMIT ; a++))
do
   efscli service serve iscsi01 cltest/test/bk1/lun$a
done
  1. Login to target via iscsiadm and format disks
  2. Unlogin from target
  3. Delete all exports
#!/bin/bash -e
LIMIT=30

for ((a=1; a <= LIMIT ; a++))  
do
  efscli service unserve iscsi01 $a@cltest/test/bk1/lun$a
done
  1. Delete luns
#!/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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.