Instructions for using beegfs-client-compat

532 views
Skip to first unread message

Nathan R.M. Crawford

unread,
Sep 8, 2017, 2:30:30 PM9/8/17
to fhgfs...@googlegroups.com
Hi All,

  I am trying to use a single BeeGFS-6 client to mount one file system from a v6 server and one from a v2015.03 server. The only documentation I can find is a couple posts in this list from 2014. Here is my best guess at the proper procedure, although it is obviously wrong somewhere as I cannot mount the older FS.

1) Take working v6 config and convert to a multi-mount setup. in /etc/beegfs/newfs.d/ and /etc/beegfs/oldfs.d/ have unique client, helperd, and mount config files with different port offsets.

2) Download and install beegfs-client-compat-2015.03-2015.03.r26-el7.noarch.rpm

3) Build and install module:
  cd /opt/beegfs/src/client/beegfs_client_compat_module_2015.03/build
  make TARGET=beegfs_201503 BEEGFS_OPENTK_IBVERBS=1
  make install TARGET=beegfs_201503

4) modprobe beegfs_201503

At this point the module looks OK, and I can mount the v6 newfs with:

mount -t beegfs beegfs_newfs /newfs -ocfgFile=/etc/beegfs/newfs.d/beegfs-client.conf,_netdev

but trying to mount the old with:
mount -t beegfs_201503 beegfs_oldfs /oldfs -ocfgFile=/etc/beegfs/oldfs.d/beegfs-client.conf,_netdev

fails with this in the syslog:
beegfs_201503: modprobe(130515): File system registered. Type: beegfs_201503. Version: 2015.03-r26
beegfs_201503: mount(130659): External logger (provided by beegfs-helperd) is unreachable => logging currently disabled
beegfs_201503: beegfs_201503_X(130710): Helper daemon is unreachable => corresponding functionality (e.g. hostname resolution) currently unavailable
beegfs_201503: mount(130659): Mount sanity check: Communication with user-space helper daemon failed. Is beegfs-helperd running?
beegfs_201503: mount(130659): Mount sanity check failed. Canceling mount. (Log file may provide additional information. Check can be disabled with sysMountSanityCheckMS=0 in the config file.)


  Since the error may take some time to work through, and could be an unrelated network issue, I am mainly posting to see if steps 1-4 are the right way to do this. Are there official instructions posted somewhere? Backwards compatibility, at least during transitional periods, seems like something useful for a lot of people.

Thanks,
Nate



--
Dr. Nathan Crawford              nathan....@uci.edu
Modeling Facility Director
Department of Chemistry
1102 Natural Sciences II         Office: 2101 Natural Sciences II
University of California, Irvine  Phone: 949-824-4508
Irvine, CA 92697-2025, USA

Nathan R.M. Crawford

unread,
Sep 8, 2017, 6:04:18 PM9/8/17
to Bernd Schubert, fhgfs...@googlegroups.com
Hi Bernd,

  Dingdingdingdingding! That seems to allow mounting!

  I will try the autobuild using the scripts next.

Thanks a ton,
Nate 

On Fri, Sep 8, 2017 at 12:24 PM, Bernd Schubert <"Bernd Schubert"@fastmail.fm> wrote:
Hi Nathan,

I don't remember the details anymore and don't have time to try this on
my own now. I would do the following in
/etc/beegfs/oldfs.d/beegfs-client.conf

# use the IP, not the same
sysMgmtdHost = <IP-of-the-mgmtd>

logType = syslog

logHelperdIP = <IP-of-any-system-running-the-old-helperd>


Also, I'm not sure if anything has changed in the mean time, but
actually /etc/init.d/beegfs-client *was* supposed to build the old
module as well (this step just didn't work with older versions that
didn't know about the compat module yet).

Hope it helps,
Bernd

Toby Darling

unread,
Nov 29, 2017, 12:50:50 PM11/29/17
to fhgfs...@googlegroups.com
Hi Nathan (and everyone else)

Many thanks for your post, it was most useful as we have two 2015.03
clusters and now a new v7 cluster in test. My clients can now talk to
all 3 thanks to your pointers.

The thing that was going to trip me up was our nagios monitoring system
which uses beegfs-ctl to gather cluster stats. As there's no
beegfs-ctl-compat-2015, I grabbed /opt/beegfs/lib/libbeegfs-opentk.so
and /opt/beegfs/sbin/beegfs-ctl from a 2015.03 installation.

However, beegfs-ctl talks to the kernel client to get it's config from
/proc/fs/beegfs/<ID>/config. That path is hard coded in the client
source. When you build the client-compat, the kernel module is called
beegfs-201503 by default, so the config is under /proc/fs/beegfs-201503/...

You need to edit
/opt/beegfs/src/client/beegfs_client_compat_module_2015.03/source/filesystem/FhgfsOpsIoctl.c

changing line 218

cfgFileStrLen = os_scnprintf(fileName, BEEGFS_IOCTL_CFG_MAX_PATH,
"/proc/fs/beegfs/%s/config",

to resemble

cfgFileStrLen = os_scnprintf(fileName, BEEGFS_IOCTL_CFG_MAX_PATH,
"/proc/fs/beegfs-201503/%s/config",

[tweak as necessary if you're not using the default kernel module name]

Now I can

LD_LIBRARY_PATH=. ./beegfs-ctl ...

and talk to my old clusters, while using /usr/bin/beegfs-ctl to talk to
the new one.

This feels like a hack, if anyone knows of a cleaner way of achieving
this (like a macro in that path?), please let me know.
A win for open source, though. Thanks BeeGFS!

Cheers
Toby
> Dr. Nathan Crawford nathan....@uci.edu <mailto:nathan....@uci.edu>
> Modeling Facility Director
> Department of Chemistry
> 1102 Natural Sciences II Office: 2101 Natural Sciences II
> University of California, Irvine Phone: 949-824-4508
> Irvine, CA 92697-2025, USA
>
> --
> You received this message because you are subscribed to the Google
> Groups "beegfs-user" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to fhgfs-user+...@googlegroups.com
> <mailto:fhgfs-user+...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.

Cheers
Toby
--
Toby Darling, Scientific Computing (2N249)
MRC Laboratory of Molecular Biology
Francis Crick Avenue
Cambridge Biomedical Campus
Cambridge CB2 0QH
Phone 01223 267070
Reply all
Reply to author
Forward
0 new messages