docker-volume-plugins icon indicating copy to clipboard operation
docker-volume-plugins copied to clipboard

VolumeDriver.Mount: error mounting data: exit status 1

Open minzak opened this issue 5 years ago • 17 comments

I have worked gluster cluster. sync also worked.

# gluster volume info
 
Volume Name: gluster-fs
Type: Replicate
Volume ID: be633a3e-555f-44d0-8ec8-07e77a440f47
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: gluster0:/gluster/brick
Brick2: gluster1:/gluster/brick
Brick3: gluster2:/gluster/brick
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off

And I have simple docker-compose file

version: "3.4"
services:

  mysql:
    image: mysql
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]
    ports:
      - "3306:3306"
    networks:
      - default
    volumes:
      - data:/var/lib/mysql

volumes:
  data:
    driver: glusterfs
    name: "data"

I can't run because always got the same error like this

VolumeDriver.Mount: error mounting data: exit status 1

And this

[2020-01-16 10:40:27.671991] I [MSGID: 114057] [client-handshake.c:1376:select_server_supported_programs] 0-gluster-fs-client-2: Using Program GlusterFS 4.x v1, Num (1298437), Version (400)
[2020-01-16 10:40:27.672188] I [MSGID: 114057] [client-handshake.c:1376:select_server_supported_programs] 0-gluster-fs-client-1: Using Program GlusterFS 4.x v1, Num (1298437), Version (400)
[2020-01-16 10:40:27.672754] I [MSGID: 114046] [client-handshake.c:1106:client_setvolume_cbk] 0-gluster-fs-client-2: Connected to gluster-fs-client-2, attached to remote volume '/gluster/brick'.
[2020-01-16 10:40:27.672778] I [MSGID: 108002] [afr-common.c:5648:afr_notify] 0-gluster-fs-replicate-0: Client-quorum is met
[2020-01-16 10:40:27.673116] I [MSGID: 114046] [client-handshake.c:1106:client_setvolume_cbk] 0-gluster-fs-client-1: Connected to gluster-fs-client-1, attached to remote volume '/gluster/brick'.
[2020-01-16 10:40:27.675667] I [fuse-bridge.c:5166:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.24 kernel 7.27
[2020-01-16 10:40:27.675689] I [fuse-bridge.c:5777:fuse_graph_sync] 0-fuse: switched to graph 0
[2020-01-16 10:40:27.677743] I [MSGID: 108031] [afr-common.c:2581:afr_local_discovery_cbk] 0-gluster-fs-replicate-0: selecting local read_child gluster-fs-client-0
[2020-01-16 10:44:32.157093] E [fuse-bridge.c:227:check_and_dump_fuse_W] (--> /lib/x86_64-linux-gnu/libglusterfs.so.0(_gf_log_callingfn+0x12f)[0x7f3055f6ac9f] (--> /usr/lib/x86_64-linux-gnu/glusterfs/7.1/xlator/mount/fuse.so(+0x8e32)[0x7f3054522e32] (--> /usr/lib/x86_64-l
inux-gnu/glusterfs/7.1/xlator/mount/fuse.so(+0x9fe8)[0x7f3054523fe8] (--> /lib/x86_64-linux-gnu/libpthread.so.0(+0x7fa3)[0x7f3055adcfa3] (--> /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f30557244cf] ))))) 0-glusterfs-fuse: writing to fuse device failed: No such file or
 directory
[2020-01-16 10:44:34.118949] E [fuse-bridge.c:227:check_and_dump_fuse_W] (--> /lib/x86_64-linux-gnu/libglusterfs.so.0(_gf_log_callingfn+0x12f)[0x7f3055f6ac9f] (--> /usr/lib/x86_64-linux-gnu/glusterfs/7.1/xlator/mount/fuse.so(+0x8e32)[0x7f3054522e32] (--> /usr/lib/x86_64-l
inux-gnu/glusterfs/7.1/xlator/mount/fuse.so(+0x9fe8)[0x7f3054523fe8] (--> /lib/x86_64-linux-gnu/libpthread.so.0(+0x7fa3)[0x7f3055adcfa3] (--> /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f30557244cf] ))))) 0-glusterfs-fuse: writing to fuse device failed: No such file or
 directory

I'm try use name: "gfs/data" name: "gluster-fs/data"

Also i try recreate gluster volume with other names like gfs Also i manually create folder data And no lucky. It is worked?

minzak avatar Jan 16 '20 11:01 minzak

We have the same issue running on ubuntu 18.04

thijsvanloef avatar Jan 17 '20 09:01 thijsvanloef

Same problem. I have Fedora 31 + gluster 7.1 and glusterfs works from host, but with docker I get same error

timnis avatar Jan 27 '20 15:01 timnis

Maybe problem is that this plugin works only with glusterfs version 3.x, see #18 last comments

timnis avatar Jan 28 '20 06:01 timnis

I ran into this as well. It was because the latest tag for trajano/glusterfs-volume-plugin on dockerhub is quite old. Using trajano/glusterfs-volume-plugin:v2.0.3 seems to work.

mukerjee avatar Feb 03 '20 08:02 mukerjee

@mukerjee what version of the glusterfs you use on your glusterfs server?

timnis avatar Feb 04 '20 12:02 timnis

@timnis I'm using glusterfs 7.2

Seems to work fine. That said, I ran into issues trying to get docker to create a subdirectory on the fly for new containers. It seems like glusterfs has return code 0 in this situation but doesn't actually do anything.

I switched to mounting glusterfs on the host and then using https://github.com/MatchbookLab/local-persist to point each container at a new subdirectory below the glusterfs mount point. This gives me the behavior i want: new subdirectory per container created on the fly with the right permissions for that container.

mukerjee avatar Feb 04 '20 18:02 mukerjee

I was seeing "exit status 1" as well, with a new glusterfs 7.3 volume, until I saw this issue. Switching to v2.0.3 fixed it for me.

kavian72 avatar Feb 28 '20 04:02 kavian72

@kavian72 and what docker version you are using? can you share your install steps for this plugin? Im using too the 7.3 version of gluster and docker 19.03.7, but is not working, instead of use the gluster volume, is using the normal hard disk and mounting the volume for the container there. worker1-plugin

doouz avatar Mar 06 '20 02:03 doouz

@donatocl I'm using docker-ce 19.03.6, so very similar to yours. For the installation, I used the documented install steps, with just one change: instead of referring to trajano/glusterfs-volume-plugin (which translates to trajano/glusterfs-volume-plugin:latest), I specifically referenced trajano/glusterfs-volume-plugin:v2.0.3. For everything else, I just followed the documented steps.

However, I don't understand the screenshot you're showing...that's obviously from your host machine, but the Docker volume would only be visible from inside the guest container. Also, the host machine you're using appears to be your Gluster host itself...if you're creating your containers right on the Gluster host machine, then you don't really need the Docker volume plugin, i.e. you can just use a bind mount to the locally-mounted Gluster volume. The Gluster volume driver is needed when you are running your container on another machine.

So, overall, I'm very confused by what you're showing us. :smile:

kavian72 avatar Mar 06 '20 17:03 kavian72

Getting the same problem.. has anyone solved it? docker: Error response from daemon: VolumeDriver.Mount: error mounting my-vol: exit status 1.

Docker version:

akshat.s@host1:~$ docker version
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:53 2018
OS/Arch: linux/amd64
Experimental: false

Glusterfs version:

glusterfs 7.3
Repository revision: git://git.gluster.org/glust...
Copyright (c) 2006-2016 Red Hat, Inc. <https: www.gluster.org=""/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.

akshatgit avatar Mar 24 '20 12:03 akshatgit

trajano/glusterfs-volume-plugin:v2.0.3

Thanks...this solve the mount problem...

3 nodes - Ubuntu 20.04 glusterfs-server 7.x docker 19.03.8

Cu4rach4 avatar May 20 '20 03:05 Cu4rach4

Is there any chance you fix the issue with the "latest" tag?

jhonny-oliveira avatar May 31 '20 18:05 jhonny-oliveira

I think the safer action would be to remove the "latest" tag altogether, and just update the documentation to list the actual latest value as each new release is published.

Using a tag such as this is not a very good practice, because it hides what version you're using. When you download the "latest" tag to your machine, how do you keep track of what you have vs. what updates are available? A tag named "latest" may sound easier to use, but it's obfuscating important information...so in the long term, it's actually making things harder.

I know the use of "latest" is a common practice among the Docker community, and what I'm saying is probably an unpopular viewpoint. But "popular" is not the same as "correct". :-)

kavian72 avatar May 31 '20 19:05 kavian72

@kavian72 I agree, perhaps @ximon18 port will handle it.

trajano avatar May 31 '20 20:05 trajano

@kavian72, that is the safest solution. Having properly updated documentation can also save some frustration from a lot of people. Nevertheless, I do not understand why "latest" is not delivering the same as 2.0.3... 2.0.3 is the latest, right?

@trajano and all other contributors, thank you very much for this great plugin!

jhonny-oliveira avatar Jun 01 '20 09:06 jhonny-oliveira

Not sure, I stopped working on this when I reformatted my PC and couldn't get the build scripts to work locally. The CI builds do not work as expected since this creates 3 images rather than one so I used to do them on my machine and never got around putting the CI process on something like Travis.

trajano avatar Jun 01 '20 21:06 trajano

I'll try and get to publishing my port as soon as I can, some other priorities and the consequences of the global situation got in the way until now. FYI for my own purposes I did already publish a Docker image containing the tini patch but there's no published source code for it nor any CI to build it, both of which I want to setup as a proper fork. It's also only the Gluster volume plugin, I'm not sure if I can or should take over the other backend volume plugins as I don't use them, know anything about them nor have a setup to test them. The plugin that I am using is here: https://hub.docker.com/r/ximoneighteen/glusterfs-volume-plugin

ximon18 avatar Jun 02 '20 13:06 ximon18