How To Configure Minio Gateway on PhotonOS With Tintri Cloud Connector

Last year Tintri released the feature known as Cloud Connector which is used to offload snapshots to S3 based storage providers for long term archival.  Since the feature came out the majority of the use cases I have been on have been for on premises solutions versus using actual Amazon S3 in the public cloud.  Primarily this is because people have some older storage on premises they want to re-use for S3 bucket storage.  The solution is to use Minio as an S3 gateway in Docker, running on PhotonOS, mounting NFS based storage for fast, easy S3 offload.

Configure PhotonOS for Minio Gateway

This is probably the easiest thing I have done in a long time.  Head over to the PhotonOS download page and grab the latest image you need.  I grabbed the VMware version but what is cool is there is plenty of other options.  Once you import it and deploy it and set a static IP, run the following commands

tdnf update
systemctl enable docker
systemctl start docker

What I was taught by a co-worker was that Docker is already on PhotonOS which makes this so crazy simple.  Once Docker is running here is all you need to do, assuming you already have an NFS export in place.  Now there is a few things I found but NFS Version 4 seemed to work the best.  Some of my NFS shares on certain devices had locking issues with version 3.  This will create a Docker Volume that will attach to the NFS mount.

docker volume create --driver local \
    --opt type=nfs \
    --opt o=addr=<ServerIP>,rw,vers=4 \
    --opt device=:/<MountPoint> <VolumeName>

# Optional for NFS Version 3 with no locking option 
docker volume create --driver local \
    --opt type=nfs \
    --opt o=addr=<ServerIP>,rw,nolock \
    --opt device=:/<MountPoint> <VolumeName>

Deploy Minio Gateway with NFS

Next you just deploy Minio using that Docker Volume for the gateway mode

docker run -d --name <ContainerName>  -p 9000:9000 --restart unless-stopped \
    -e "MINIO_ACCESS_KEY=<YourAccessKey" -e "MINIO_SECRET_KEY=<YourSecretKey>" \
    -v <VolumeName>:/<ContainerMountPoint> \
    minio/minio gateway nas /<ContainerMountPoint>

Once that is done you can access the Minio webUI at http://<PhotonOS_ServerIP>:9000with the access and secret key.  Test creating a bucket and uploading files and if that all works you can attach to Tintri Cloud Connector and test with snapshot offloading.  Obviously there are some other options you can deploy this with but there is no faster way to get an S3 gateway up and running and Minio supports more extensive deployment models as well.

It also stands to reason that you can do this to run a front end gateway for Google Cloud Platform and Azure as well.  I may test those in the future but the basic concept would be the same.

About Chris Colotti

Chris is active on the VMUG and event speaking circuit and is available for many events if you want to reach out and ask. Previously to this he spent close to a decade working for VMware as a Principal Architect. Previous to his nine plus years at VMware, Chris was a System Administrator that evolved his career into a data center architect. Chris spends a lot of time mentoring co-workers and friends on the benefits of personal growth and professional development. Chris is also amongst the first VMware Certified Design Experts (VCDX#37), and author of multiple white papers. In his spare time he helps his wife Julie run her promotional products as the accountant, book keeper, and IT Support. Chris also believes in both a healthy body and healthy mind, and has become heavily involved with fitness as a Diamond Team Beachbody Coach using P90X and other Beachbody Programs. Although Technology is his day job, Chris is passionate about fitness after losing 60 pounds himself in the last few years.

Leave a Reply

Your email address will not be published. Required fields are marked *