Skip to content
Snippets Groups Projects

New feature: GekkoFS Proxy

Merged Marc Vef requested to merge marc/proxy_dev into master

The GekkoFS proxy is an additional (alternative) component that runs on each client and acts as gateway between the client and daemons. It can improve network stability, e.g., for opa-psm2, and provides a basis for future asynchronous I/O as well as client caching techniques to control file system semantics.

The gkfs script fully supports the GekkoFS proxy and an example can be found in scripts/run. When using the proxy manually additional arguments are required on the daemon side, i.e., which network interface and protocol should be used:

<daemon args> --proxy-listen eno1 --proxy-protocol ofi+sockets

The proxy is started thereafter:

./gkfs_proxy -H ./gkfs_hostfile --pid-path ./vef_gkfs_proxy.pid -p ofi+sockets

The shared hostfile was generated by the daemons whereas the pid_path is local to the machine and is detected by clients. The pid-path defaults to /tmp/gkfs_proxy.pid.

Under default operation, clients detect automatically whether to use the proxy. If another proxy path is used, the environment variable LIBGKFS_PROXY_PID_FILE can be set for the clients.

Alternatively, the gkfs automatically sets all required arguments:

scripts/run/gkfs -c scripts/run/gkfs.conf -f start --proxy
* [gkfs] Starting GekkoFS daemons (1 nodes) ...
* [gkfs] GekkoFS daemons running
* [gkfs] Startup time: 2.013 seconds
* [gkfs] Starting GekkoFS proxies (1 nodes) ...
* [gkfs] GekkoFS proxies running
* [gkfs] Startup time: 5.002 seconds
Press 'q' to exit

Please consult include/config.hpp for additional configuration options. Note, GekkoFS proxy does not support replication.

Closes #114 (closed)

Edited by Marc Vef

Merge request reports

Pipeline #4641 passed

Pipeline passed for 64915a03 on marc/proxy_dev

Test coverage 62.50% (-15.00%) from 1 job

Merged by Marc VefMarc Vef 9 months ago (Jun 28, 2024 7:55am UTC)

Loading

Pipeline #4645 failed

Pipeline failed for 9dd6ebef on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading