Minimal object storage S3 compatible
Table of contents:
At Cloudberry lab I’ve met lots of cases where customers would like to use their FTP or even webDAV stack as backup destination. In some cases this become a nightmare and either backup window is not affordable (e.g. backup performance is not really awesome). I started to seek for alternative to this legacy architectures and, I guess, I found the first and the fly is good so far! Minio — minimal object storage, what acts as generic s3 compatible storage.
These are the major benefits of this tiny tool:
- Open source (not sure for how long, but might be good idea to ask @Harshavardhana;
- S3 compatible (what means it exactly acts as Amazon S3 storage, thus all their queries to the storage from dev tools / 3d-parties are the same);
- Supports multipart upload (means that you can deal with chunks and multithreading, when uploading huge object).
All these above are enough for me for now to consider Minio is great example for stress-tests and production environments.
Here is my experiment — going to build S3 storage for my backups. The very first thing I am going to setup my Minio server by following this guide.
As part of the experiment I am running this S3 compatible on my Mac with network share (it is just NAS) attached over SMB. All these prerequisites are really straight forward, so I am just going to skip them and go ahead with starting my server pointing to my NAS the following way:
1chmod +x minio 2./minio server /Volumes/NAS/folder/backup/
As I am going to use Cloudberry Backup for Windows I also need proxy server to downgrade my v4 to v2 signature (more info here). We are going to deal with the following proxy done. I am going to skip go installation and we are having proxy running here by the following command:
1./s3v2tov4-proxy -l :8000 -f http://localhost:9000 -access access_key -secret secret_key
Where localhost with port
9000 is default (feel free to change it accordingly) server and port where my minio instance sits.
8000 port is where I am proxying it. So all requests to my
localhost:8000 should go with v2 signature and this is the server I am going to use for my Cloudberry backup endpoint. Finally here we go with Cloudberry storage configuration as S3 compatible: