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
-
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.
-
Access and Secret keys with permissions for the target bucket
-
A compute node with Linux OS
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
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
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.