ProxyFS

module
v0.0.0-...-4017c26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 3, 2021 License: Apache-2.0

README

Build Status Coverage Status

ProxyFS

Integrated File and Object Access for Swift Object Storage

Synopsis

ProxyFS is a hierarchical file system that provides integrated file and object API access for data stored with Swift object storage for the same data. It supports SMB and NFS along with AWS S3 and Swift object protocols. We call this "bi-modal access", and it means that filesystem clients and mount and read/write data that is simultaneously accessible to object API clients.

How to Contribute

All code contributions for ProxyFS go through GitHub.

https://github.com/swiftstack/ProxyFS

Please feel free to contribute by opening a pull request to the development branch. If you see an open pull request, feel free to review it and leave comments on it. ProxyFS follows a git flow development model.

If you'd like to ask questions, discuss ideas, or otherwise communicate with other ProxyFS contributors, please register for and participate in the ProxyFS dev mailing list or the ProxyFS Slack group, which you can join through this inivitation.

Development Environment

The officially supported development environment for ProxyFS is Runway. Please read Runway's documentation and make sure to use the ProxyFS manifest instead of the default one.

How to get the code (if not using Runway)

  • Define your GOPATH as desired (where your bin/, /pkg, and /src/ directory trees will appear)
  • cd $GOPATH
  • mkdir -p src/github.com/swiftstack
  • cd src/github.com/swiftstack
  • git clone git@github.com:swiftstack/ProxyFS.git
  • cd ProxyFS

How to run unit tests (in your Development Environment)

  • Install/update to at least Go 1.8.3 (if not using Runway)
  • Ensure $GOPATH/bin is in your $PATH
  • cd $GOPATH/src/github.com/swiftstack/ProxyFS
  • make

License

See LICENSE file

Directories

Path Synopsis
Package bucketstats implements easy to use statistics collection and reporting, including bucketized statistics.
Package bucketstats implements easy to use statistics collection and reporting, including bucketized statistics.
The cleanproxyfs program deletes the headhunter databases and deletes log segments from Swift, thereby creating a "clean slate" for continued testing or development.
The cleanproxyfs program deletes the headhunter databases and deletes log segments from Swift, thereby creating a "clean slate" for continued testing or development.
This is a command-line wrapper around package confgen APIs.
This is a command-line wrapper around package confgen APIs.
Distributed Lock Manager (DLM) provides locking between threads on the same system and between threads on different systems.
Distributed Lock Manager (DLM) provides locking between threads on the same system and between threads on different systems.
Package fs, sitting on top of the inode manager, defines the filesystem exposed by ProxyFS.
Package fs, sitting on top of the inode manager, defines the filesystem exposed by ProxyFS.
Package fuse is a FUSE filesystem for ProxyFS (an alternative to the Samba-VFS frontend).
Package fuse is a FUSE filesystem for ProxyFS (an alternative to the Samba-VFS frontend).
Package headhunter manages the headhunter databases, which keep track of which log segments correspond to the current revision of a given inode.
Package headhunter manages the headhunter databases, which keep track of which log segments correspond to the current revision of a given inode.
Package inode provides inode-management functionality for ProxyFS.
Package inode provides inode-management functionality for ProxyFS.
Package jrpcfs implements a JSON RPC interface to package fs.
Package jrpcfs implements a JSON RPC interface to package fs.
Package logger provides logging wrappers These wrappers allow us to standardize logging while still using a third-party logging package.
Package logger provides logging wrappers These wrappers allow us to standardize logging while still using a third-party logging package.
The proxyfsd program is the main ProxyFS dæmon and is named accordingly.
The proxyfsd program is the main ProxyFS dæmon and is named accordingly.
Package retryrpc provides a client and server RPC model which survives lost connections on either the client or the server.
Package retryrpc provides a client and server RPC model which survives lost connections on either the client or the server.
Package stats provides a simple statsd client API.
Package stats provides a simple statsd client API.
Package swiftclient provides API access to the local Swift NoAuth Pipeline.
Package swiftclient provides API access to the local Swift NoAuth Pipeline.
Package utf provides utilities for working with UTF strings, notably including UTF16.
Package utf provides utilities for working with UTF strings, notably including UTF16.
Package utils provides miscellaneous utilities for ProxyFS.
Package utils provides miscellaneous utilities for ProxyFS.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL