Skip to main content

Setting up s3fs-fuse

S3FS-Fuse is an open-source FUSE plugin and an easy-to-use utility for mounting E2E Object Storage Bucket as a File system on E2E Compute Node or your own on-premise server. The plugin supports all major Linux Distributions (eg. Ubuntu).

In this tutorial, we will walk through configuration of S3FS-FUSE with EOS on a CentOS.

Prerequisites

  1. Bucket created in E2E Object Storage with the necessary permissions and its access key pairs. If you have not yet started with bucket creation, you can refer to this article to get started with object storage.

  2. Access and Secret keys with permissions for the target bucket

  3. A compute node with Linux OS

tip

Launch Compute Node through E2E My Account or use your own laptop

Step 1: Installing s3fs-fuse

s3fs is available in default repositories for CentOS, RHEL, and Ubuntu systems. You can simply install it by executing the following commands on your system.

Debian 9 and Ubuntu 16.04 or newer:

sudo apt install s3fs

RHEL and CentOS 7 or newer through via EPEL:

sudo yum install epel-release
sudo yum install s3fs-fuse

macOS via Homebrew:

brew cask install osxfuse
brew install s3fs

Step 2: Creating Access Credentials

To access EOS from s3fs, we will need to generate a password file and store EOS access credentials. You can generate EOS credentials (access / secret key) through My Account.

touch /etc/eos_creds
echo "<access_key>:<secret_key>" > /etc/eos_creds
Note

Replace <access_key> and <secret_key> with your actual Bucket Access credentials.

Now, set Owner only permission on the password file to limit access.

chmod 600 /etc/eos_creds

Step 3: Creating Directory as mount point

Create a directory as mount point for the bucket. We will use /eos for this article to keep it simple.

mkdir /eos

Step 4: Run s3fs command to mount the bucket

Run the following command to mount the bucket at directory eos.

s3fs <bucket> /eos -o passwd_file=/etc/eos_creds,use_path_request_style,url=https://objectstore.e2enetworks.net
Note

In the above command replace <bucket> with your actual bucket name

Step 5: Test the Mount Point

Verify the bucket is mounted using the below command:

mount | grep s3fs

If all went correctly, then you will see an output like below:

s3fs on /eos type fuse.s3fs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

To check file operations to the mounted bucket, you may run these commands from /eos:

touch s3fs_file
cp s3fs_file /eos/

To see object list from the bucket:

s3cmd ls s3://e2e-test
# Sample Output
# 2019-11-27 02:48 0 s3://e2e-test/s3fs_file

Conclusion

We have successfully configured s3fs-fuse to work with E2E Object Service. The complete user guide on the usage of s3fs-fuse is available here.