Re: FUSE


Pittman, Ashley M
 

 

Steffan,

 

What you’re doing is correct, and the results are mostly as expected.  DAOS does not yet support pool and container enumeration although this is being worked on, once the feature is in DAOS then we’ll add support for it to dfuse, for the time being the readdir call in dfuse will return directory contents for directories that represent something within a container, and ENOTSUPP for pools and the root if you’re launching without the -p and -c options.

 

I would caution against using a subdirectory in /mnt/daos for mounting fuse, it’ll probably work but I think the DAOS server assumes that it can write files with any name to that directory so I’ll be lower risk to use a different mount point to avoid any confusion.

 

Once dfuse is up and running you should be able to call stat on any entry and see results, ENOSSUPP is what I’d expect if you ran ls on /mnt/daos/fuse on your example below.

 

 

Finally, it’s possible to launch dfuse in “singleton” mode which means you can launch it directly without the use of orterun, this is often easier but you need to run the server with a -a flag and set DAOS_SINGLETON_CLI=1 and CRT_ATTACH_INFO_PATH=/path in the dfuse environment

 

Ashley,

 

 

From: <daos@daos.groups.io> on behalf of Steffen Christgau <christgau@...>
Reply-To: "daos@daos.groups.io" <daos@daos.groups.io>
Date: Friday, 30 August 2019 at 15:07
To: "daos@daos.groups.io" <daos@daos.groups.io>
Subject: Re: [daos] FUSE

 

Hi everybody,

 

I'm interested in FUSE access as well just to take a curious look into

the pool and because pool commands are not implemented in the v0.6 daos

client ("pool [list-containers] not yet implemented"). ...

 

On 30/08/2019 09.39, Lombardi, Johann wrote:

We have some instructions in the admin guide:

With dfuse, you can currently mount:

   * a container (dfuse -p ${pool_UUID} -c $(container_UUID})

   * a pool (dfuse -p ${pool_UUID}), the namespace is then structured as

     follows: /${container_UUID}/

   * a DAOS system: /${pool_UUID}/$(container_UUID}/

 

... Thus, I tried to mount a pool (and even as system) with dfuse. Based

on what's written in the admin guide, I started dfuse as the user under

which the server and agent are running:

 

orterun -np 1 --ompi-server file:/tmp/daos_urifile dfuse -p $DAOS_POOL

-s 0 -g daos_server -m /mnt/daos/fuse/ -S

 

The server log shows some INFOs on enabled/disabled caps and no errors.

The mount appears to be successfully created:

 

dfuse on /mnt/daos/fuse type fuse.pam

(rw,nosuid,nodev,relatime,user_id=996,group_id=994,max_read=4096)

 

996 and 994 are the daos user and group.

 

However, the filesystem appears not work correctly:

 

ls -l /mnt/daos

ls: cannot access /mnt/daos/fuse: Operation not supported

total 4

d?????????? ? ?    ?       ?            ? fuse

drwxr-xr-x. 7 daos daos 4096 Aug 29 16:03 pmem0

drwxr-xr-x. 2 daos daos    6 Aug 14 14:44 pmem1

 

(before mounting fuse was a regular directory owned by daos:daos)

 

strace reveals:

 

stat("/mnt/daos/fuse", 0x61e0e0)        = -1 EOPNOTSUPP

 

For find(1) it is newfstatat syscall that fails.

 

Would the master work better?

 

Or put from another perspective: How can I query the content of a pool

with command line tools?

 

Regards, Steffen

 

 

 

---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

Join daos@daos.groups.io to automatically receive all group messages.