For this example of how to connect AWS Mountpoint to a Cloudian HyperStore bucket we will be deploying and configuration the following:

  • AWS CLI
  • AWS Mountpoint

We will be leveraging an existing Cloudian HyperStore 7.5.3 (minimum) environment and a CentOS Linux VM as a client host.

Prepare HyperStore User and Bucket for AWS Mountpoint

  • Log into HyperStore Cloudian Management Console (CMC) and create the appropriate group/user and target bucket. Note the user’s Access & Secret Key information.

Mountpoint

MountpointMountpoint

 

AWS Mountpoint will use the credential configuration in /home/.aws folder, so it is helpful to have AWS CLI installed.

Install AWS CLI

Numerous online sources exist for install, and for convenience included here:

  • Download & Install AWS CLI
[root@hs753 awscli]# mkdir /opt/awscli

[root@hs753 awscli]# pwd

/opt/awscli

[root@hs753 awscli] curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

[root@hs753 awscli] unzip awscliv2.zip

[root@hs753 awscli]# ./aws/install

You can now run: /usr/local/bin/aws –version

[root@hs753 awscli]# aws --version

aws-cli/2.15.44 Python/3.11.8 Linux/3.10.0-1160.71.1.el7.x86_64 exe/x86_64.centos.7 prompt/off

[root@hs753 awscli]# aws configure
AWS Access Key ID [None]:

AWS Secret Access Key [None]:

Default region name [None]:

Default output format [None]:

During this section, enter the appropriate AWS Access & Secret Key and default Region name.

Install & Configuration AWS Mountpoint

Download and install the latest version of AWS Mountpoint.

[root@hs753]# mkdir /opt/awsmountpoint

[root@hs753 awsmountpoint]# pwd

/opt/awsmountpoint
[root@hs753 awsmountpoint]# wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm

--2024-05-06 14:18:03--  https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.217.80, 54.231.136.200, 52.216.39.112, ...

Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.217.80|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 12042192 (11M) [binary/octet-stream]

Saving to: ‘mount-s3.rpm’
100%[===============>] 12,042,192  11.6MB/s   in 1.0s

2024-05-06 14:18:05 (11.6 MB/s) - ‘mount-s3.rpm’ saved [12042192/12042192]

[root@hs753 awsmountpoint]# yum install -y mount-s3.rpm

[root@hs753 awsmountpoint]# mount-s3 --version

mount-s3 1.6.0

[root@hs753 awsmountpoint]# mkdir /mnt/awsmountpoint

To mount the HyperStore S3 bucket, execute the following command:

[root@hs753 mnt]# mount-s3 --region region1 --endpoint-url http://s3-region1.localdomain.local:80 awsmountpoint /mnt/awsmountpoint/

bucket awsmountpoint is mounted at /mnt/awsmountpoint/

In this example:

The HyperStore region is: “region1”

The HyperStore endpoint is specified via:

--endpoint-url “http://-s3 region1.localdomain.local:80”

Target mounting bucket is: awsmountpoint

Local mounting directory is: /mnt/awsmountpoint

Verification Test

Verify the HyperStore bucket has been mounted successfully by copying a file to the /mnt/awsmountpoint directory:

[root@hs753 awscli]# cp awscliv2.zip /mnt/awsmountpoint/

[root@hs753 awscli]# cd /mnt/awsmountpoint/

[root@hs753 awsmountpoint]# ls -l

total 59098

-rw-r--r--. 1 root root 60516068 May  6 14:22 awscliv2.zip

Verification can also be performed via HyperStore CMC:

Mountpoint

Common Troubleshooting

Timeout Errors:

Verify correct port of HyperStore cluster and connectivity.

[root@hs753 /]# mount-s3 --region region1 --endpoint-url http://s3-region1.localdomain.local:80 awsmountpoint /mnt/awsmountpoint/
Error: Timeout after 30 seconds while waiting for mount process to be ready

Credential Errors:

Double check credentials in /home/.aws/credentials.

[root@hs753 awsmountpoint]#  mount-s3 --region region1 --endpoint-url http://s3-region1.localdomain.local:80 awsmountpoint /mnt/awsmountpoint/

Error: Failed to create S3 client

Caused by:

    0: initial ListObjectsV2 failed for bucket awsmountpoint in region us-east-1

    1: Client error

    2: No signing credentials found

Error: Failed to create mount process

Self Signed S3 Certificate:

Unfortunately, at this time it is not possible to disable TLS Certificate Verification (https://github.com/awslabs/mountpoint-s3/issues/717) with AWS Mountpoint; this will cause any HyperStore cluster leveraging self-signed certificates to fail mounting.

[root@hs753 awsmountpoint]# mount-s3 --region region1 --endpoint-url https://s3-region1.localdomain.local:443 awsmountpoint /mnt/awsmountpoint/

Error: Failed to create S3 client

Caused by:

    0: initial ListObjectsV2 failed for bucket awsmountpoint in region us-east-1

    1: Client error

    2: Unknown CRT error

    3: CRT error 1029: aws-c-io: AWS_IO_TLS_ERROR_NEGOTIATION_FAILURE, TLS (SSL) negotiation failed

Error: Failed to create mount process