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.