Reversing the rug pull: Migrating from MinIO to Garage
I don't really want to get too deep into all the drama surrounding the sudden removal of management and admin features from the MinIO console UI, but basically, the fact that it was done without any visible warning left a rather bitter taste in my mouth. And if there's one kind of food I dislike, it's bitter food. 😆
I saw a couple of recommendations toward using Garage, and while the set up is not as straightforward, I was up and running relatively easily. The data migration is pretty simple as well. I included instructions below for anyone (or future me) who would want to do the same.
A quick note: The instructions below are specifically for TrueNAS users, but since TrueNAS Apps are basically container applications, those who use Docker or any other containerized setup should be able to more or less follow.
- Create an instance of the Garage app and run it.
- For Docker users, this could be in a form of a Docker Compose script or through Portainer, most likely similar to how you have previously set up MinIO.
- The TrueNAS app also installs the Garage Web UI, so you might want to install that too if you're on Docker. Apparently there's plans for an official web UI implementation, but for now we have that.
- Set up Garage with the following commands (just replace the
<name>
with the name of the Garage container fromdocker ps
):
# Get the node ID
docker exec -it <name> /garage node id
# Create a cluster layout
docker exec -it <name> /garage layout assign -z <zone_name> -c 1G <node_id>
# Apply layout
docker exec -it <name> /garage layout apply --version 1
- You should now be able to set up buckets and keys from the Web UI or CLI. From here, moving data from MinIO to Garage can be done using
rclone
:
# Configure MinIO and Garage remotes
# Follow the instructions. Option #4 for S3 for both. Then either option #19 for MinIO or #32 for Other.
rclone config
# Copy from MinIO to Garage
rclone copy <minio>:<bucket_name> <garage>:<bucket_name> --progress