MinIO S3 Gateway on Kobol NAS
I was talking with a colleague of mine who is a well know storage and data protection boffin who has been in the salt mines technically and blogging well before I knew what hexadecimal lun id’s were.
“You want to play with a Kobol NAS” .. “Sure .. hold my beer”. This guy knows how to tweak my inner love for storage. So, what is a Kobol NAS, well it is Open-Source NAS running on Helios 64 ARM and the best bit is you get to build it yourself, https://kobol.io/ . So cool, just insert disks here, after building it of course.
This article is not about the Kobol NAS specifically as I am still yet to do it as promised to said storage guy, but how it can run Docker along with other applications natively such as Open Media Vault. The Helios 64 operating system is quite accommodating and anybody familiar with Debian will feel right at home.
I have been a fan of MinIO for quite a long time and used it for testing S3 extents for products like Veeam and Linux S3 Fuse file systems. For this blog MinIO is essentially an Open-Source file management application that supports unstructured data utilizing S3 compliant API calls such as Puts and Gets and uses a bucket construct for file placement.
There is a product within the MinIO suite which is the Minio S3 Gateway for NAS https://docs.min.io/docs/minio-gateway-for-nas.html and as Kobol can run Docker well hello we now can now ingest S3 objects into out NAS with a web front end to boot and API support.
Once you have your Kobol up and running and install the Docker engine through the TUI the process is quite simple as MinIO as it has its own Github repo https://hub.docker.com/r/minio/minio/
docker run –name minio -p 9000:9000 -v /srv/dev-disk-by-label-kobolxfs/minio:/data -e “MINIO_ACCESS_KEY=enteryourkeyhere” -e “MINIO_SECRET_KEY=enteryourkeyhere” –restart unless-stopped minio minio/minio server /data
To break down the components of the docker container instantiation –
/srv/dev-disk-by-label-kobolxfs/minio:/data mounts the data folder in the docker container to /srv/dev-disk-by-label-kobolxfs/minio. This can also be seen in the deployed docker container as /dev/md127 which is the raid array on the Kobol NAS
The secret and access key are stipulated during the container instantiation “enteryoukeyhere”, “–restart unless-stopped” is used for when the NAS is rebooted, and you want the docker container to restart automagically and “minio/minio” stipulates the version of MinIO you want to run as a docker container. Other options are minio/stable.
As any other Docker process, you can start, stop and kill the container
The Kobol Open-Source NAS provides the perfect platform to run on as you are not locked into vendor code and gives you the freedom to do what you wish while using the NAS for other services such as general file storage, media services, DNS, proxy services etc.
Could you extend the idea into an Enterprise environment? I have seen many cases where System Engineers have a need to Archive Logs, DB backups, archive FTP backup data etc and the cost of vendor-based solutions is out of commercial reach. MinIO provides an alternative with low capital expenditure and can still easily backed up using snapshot technology by traditional enterprise backup systems such as Rubrik, Veeam, Cohesity <enter vendor of choice here>, as the transactional IO is low if you were to visualize the solution.
There are plenty of options for ingesting S3 objects for Linux, S3 Fuse which can mount in fstab, and Windows has the typical suit from S3 Browser from Amazon to CloudBerry that can mount as a drive.