Sunday, November 1, 2020

Home built blob storage server

In the hopes of creating a "blob" like storage like Amazon S3, I recently did a Google for open source blob storage.  To my pleasure, I discovered minio.  Minio allows me to expose an S3 compatible service locally on my home network.  I can now work with large datasets in a S3-like fashion locally without having the overhead of dealing with an Internet connection.

I can also set up Minio to be a gateway to Amazon S3 or even to my local Hadoop cluster.

I also am able to set up the AWS CLI to interact with minio or have the minio client interact with AWS S3.

While redundancy can be implemented with minio, I'll save that as a project for later.

I picked up a Raspberry Pi 4 8 GB model from Amazon ($150) and a 8 TB external USB drive from Costco ($120).  One can always step down to a lower model / storage space if needed - just couldn't resist the savings on an 8 TB drive from Costco. :)

I downloaded the Raspbian Lite image, set up regionalization and my hostname.  Attached the USB drive and created a brand new ext3 partition on the USB drive, wiping out everything else.  Formatted and attached the drive and made sure it came up on reboots.

Then I downloaded minio using the wget process.  

    sudo ln -s /home/pi/minio /usr/bin/minio
    sudo ln -s /home/pi/mc /usr/bin/mc

Then I made a simple shell script ( to launch minio.

    export MINIO_ACCESS_KEY=SuperSecretAccessKey
    export MINIO_SECRET_KEY=SuperSecretSecretKey
    export MINIO_DOMAIN=blobstorage
    /usr/bin/minio server /mnt/data

Then I made a file 


Inside the file I put the following:

    Description=Minio Storage Service mnt-data.mount


I then verified the service worked as intended:

    $ sudo systemctl start minio
    $ sudo systemctl status minio

Opened my browser, and once I logged in, I was able to access the minio service via browser and I made an alias for my minio client.