Learn how to install MinIO Object Storage on Rocky Linux 8 with this step-by-step guide. Follow our detailed instructions to set up and configure MinIO for efficient and secure object storage on your Rocky Linux server. #centlinux #linux #cloudstorage
Table of Contents
What is MinIO?
MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. It can handle unstructured data such as photos, videos, log files, backups, and container images with (currently) the maximum supported object size of 5TB.
MinIO storage stack has three major components: MinIO Server, MinIO Client (a.k.a. mc, which is a command-line client for the object and file management with any Amazon S3 compatible servers), and MinIO Client SDK that can be used by application developers to interact with any Amazon S3 compatible server.
MinIO cloud storage server is designed to be minimal and scalable. It is light enough to be bundled along with the application stack, similar to NodeJS, and Redis.
Designed for high performance, MinIO offers a suite of features that are specific to large enterprise deployments, these include erasure coding, bitrot protection, encryption/WORM, identity management, continuous replication, global federation, and multi-cloud deployments via gateway mode.
MinIO server is hardware agnostic, it can be installed on physical or virtual machines or launched as Docker containers and deployed on container orchestration platforms like Kubernetes. (Source: https://en.wikipedia.org/wiki/MinIO)
MinIO Alternatives
There are several alternatives to MinIO for object storage, each offering unique features and benefits. Here are some popular options:
- Amazon S3:
- Description: Amazon S3 (Simple Storage Service) is a widely used, scalable object storage service provided by AWS.
- Strengths: Highly reliable, scalable, integrated with other AWS services, global availability.
- Use Cases: Ideal for large-scale applications, backups, data archiving, and content distribution.
- Google Cloud Storage:
- Description: A fully managed object storage service provided by Google Cloud.
- Strengths: High availability, strong security, seamless integration with Google Cloud services.
- Use Cases: Suitable for application data, media storage, and data analytics.
- Microsoft Azure Blob Storage:
- Description: A scalable object storage solution from Microsoft Azure for storing large amounts of unstructured data.
- Strengths: Integration with Azure services, advanced security features, flexible pricing.
- Use Cases: Good for backup, disaster recovery, and big data analytics.
- Backblaze B2:
- Description: An affordable cloud storage service similar to Amazon S3, offered by Backblaze.
- Strengths: Cost-effective, straightforward pricing, easy to use.
- Use Cases: Ideal for personal backups, media storage, and archiving data.
- Wasabi:
- Description: A cloud storage service known for its high-speed performance and low-cost pricing model.
- Strengths: No egress fees, high speed, affordable.
- Use Cases: Suitable for businesses needing a low-cost, high-performance storage solution.
- DigitalOcean Spaces:
- Description: An object storage service from DigitalOcean, designed for simplicity and scalability.
- Strengths: Simple pricing, integrates well with DigitalOcean infrastructure, user-friendly.
- Use Cases: Ideal for developers and small to medium-sized businesses.
- IBM Cloud Object Storage:
- Description: A highly scalable and secure object storage service provided by IBM.
- Strengths: Advanced security features, AI integration, flexible deployment options.
- Use Cases: Suitable for enterprise applications, data archiving, and AI workloads.
- Ceph:
- Description: An open-source storage platform that provides object, block, and file storage in a unified system.
- Strengths: Highly scalable, open-source, flexible.
- Use Cases: Good for enterprises looking for a flexible, scalable open-source solution.
- OpenStack Swift:
- Description: An open-source object storage system that is part of the OpenStack cloud computing platform.
- Strengths: Open-source, highly scalable, customizable.
- Use Cases: Suitable for private cloud deployments and enterprises seeking an open-source solution.
Each of these alternatives offers different advantages, making them suitable for a variety of use cases depending on your specific requirements and preferences.
Recommended Online Training: Learn Bash Shell in Linux for Beginners
Environment Specification
We are using a minimal Rocky Linux 8 virtual machine with following specifications.
- CPU – 3.4 Ghz (2 cores)
- Memory – 2 GB
- Storage – 20 GB
- Operating System – Rocky Linux 8.5 (Green Obsidian)
- Hostname – minio-01.centlinux.com
- IP Address – 192.168.116.128 /24
Update your Linux Operating System
Connect with minio-01.centlinux.com as root user with the help of a ssh client.
Build cache for your yum repositories.
# dnf makecache Rocky Linux 8 - AppStream 507 kB/s | 9.6 MB 00:19 Rocky Linux 8 - BaseOS 387 kB/s | 6.6 MB 00:17 Rocky Linux 8 - Extras 3.6 kB/s | 12 kB 00:03 Last metadata expiration check: 0:00:01 ago on Sat 12 Mar 2022 10:34:17 PM PKT. Metadata cache created.
Update software packages of your Linux operating system by executing following command.
# dnf update -y
You may have to reboot your Linux operating system, if the above command updates your Linux Kernel.
# reboot
After reboot, check the Linux operating system and Kernel versions.
# uname -r 4.18.0-348.20.1.el8_5.x86_64 # cat /etc/os-release NAME="Rocky Linux" VERSION="8.5 (Green Obsidian)" ID="rocky" ID_LIKE="rhel centos fedora" VERSION_ID="8.5" PLATFORM_ID="platform:el8" PRETTY_NAME="Rocky Linux 8.5 (Green Obsidian)" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:rocky:rocky:8:GA" HOME_URL="https://rockylinux.org/" BUG_REPORT_URL="https://bugs.rockylinux.org/" ROCKY_SUPPORT_PRODUCT="Rocky Linux" ROCKY_SUPPORT_PRODUCT_VERSION="8"
Install MinIO Object Storage on Linux Server
MinIO Object Storage software is not available in yum repositories, therefore, you have to download it from MinIO official website.
Create a directory for use by MinIO server as storage volume.
# mkdir /u01
Create a Linux user to own MinIO software and services.
# useradd -s /sbin/nologin -d /u01/minio minio
You will need wget command to download MinIO. Therefore, install it by using dnf command.
# dnf install -y wget
Download the MinIO Storage software by using wget command.
# cd /tmp # wget https://dl.min.io/server/minio/release/linux-amd64/minio --2022-03-12 22:52:24-- https://dl.min.io/server/minio/release/linux-amd64/minio Resolving dl.min.io (dl.min.io)... 178.128.69.202, 138.68.11.125 Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 95567872 (91M) [application/octet-stream] Saving to: ‘minio’ minio 100%[===================>] 91.14M 568KB/s in 8m 31s 2022-03-12 23:00:57 (183 KB/s) - ‘minio’ saved [95567872/95567872]
You can also find the MinIO software for other Hardware platforms and operating systems at MinIO Download Page.
Move the MinIO to /usr/local/bin directory and adjust file permissions and ownership.
# mv minio /usr/local/bin/ # chmod 775 /usr/local/bin/minio # chown minio:minio /usr/local/bin/minio
Create a Systemd Service for MinIO Server
Create a configuration file for MinIO storage server by using vim text editor.
# vi /etc/minio.conf
Add following lines to define the basic MinIO parameters.
# Volume to be used for Minio server. MINIO_VOLUMES="/u01/minio/" # Use if you want to run Minio on a custom port. MINIO_OPTS="--address :9000 --console-address :9001" # Root user for the server. MINIO_ROOT_USER=minioadmin # Root secret for the server. MINIO_ROOT_PASSWORD=centlinux
Adjust the file ownership of MinIO configuration file.
# chown minio:minio /etc/minio.conf
By using vim command, create a systemd service unit for MinIO.
# vi /usr/lib/systemd/system/minio.service
Add following directives in this file.
[Unit] Description=Minio Wants=network-online.target After=network-online.target [Install] WantedBy=multi-user.target [Service] Type=simple User=minio Group=minio WorkingDirectory=/u01/minio EnvironmentFile=/etc/minio.conf ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Enable and start MinIO service.
# systemctl enable --now minio.service Created symlink /etc/systemd/system/multi-user.target.wants/minio.service → /usr/lib/systemd/system/minio.service.
Check the status of MinIO service.
# systemctl status minio.service
● minio.service - Minio
Loaded: loaded (/usr/lib/systemd/system/minio.service; enabled; vendor prese>
Active: active (running) since Sun 2022-03-13 20:19:44 PKT; 1s ago
Main PID: 1302 (minio)
Tasks: 6 (limit: 5808)
Memory: 51.4M
CGroup: /system.slice/minio.service
└─1302 /usr/local/bin/minio server --address :9000 --console-address>
Mar 13 20:19:44 minio-01.centlinux.com systemd[1]: Started Minio.
Mar 13 20:19:45 minio-01.centlinux.com minio[1302]: API: http://192.168.116.128>
Mar 13 20:19:45 minio-01.centlinux.com minio[1302]: Console: http://192.168.116>
Mar 13 20:19:45 minio-01.centlinux.com minio[1302]: Documentation: https://docs>
Configure Linux Firewall
To make your Storage service accessible across the network, you have to allow the MinIO service ports in Linux firewall.
# firewall-cmd --permanent --add-port={9000,9001}/tcp success # firewall-cmd --reload success
Access MinIO Web Console
Open URL http://minio-01.centlinux.com:9001 in a web browser.
Login a minioadmin user.
You have reached at the Bucket page. There isn’t any Bucket right now.
Click on “Create Bucket” to create your first MinIO Storage bucket.
Provide a name for Bucket and click on “Create Bucket”.
Upload a few files to your bucket.
The MinIO storage server is working fine.
Install MinIO Client on Rocky Linux 8
You can install MinIO Client (mc) to access your Storage server right from the Linux shell.
mc utility provides many Unix like commands to manage your MinIO server.
You can download mc utility form MinIO website as follows.
# cd /tmp # wget https://dl.min.io/client/mc/release/linux-amd64/mc --2022-03-13 20:50:07-- https://dl.min.io/client/mc/release/linux-amd64/mc Resolving dl.min.io (dl.min.io)... 138.68.11.125, 178.128.69.202 Connecting to dl.min.io (dl.min.io)|138.68.11.125|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 23318528 (22M) [application/octet-stream] Saving to: ‘mc’ mc 100%[===================>] 22.24M 964KB/s in 23s 2022-03-13 20:50:32 (970 KB/s) - ‘mc’ saved [23318528/23318528]
Move mc command to /usr/local/bin directory and grant it execution privilege.
# mv mc /usr/local/bin/ # chmod +x /usr/local/bin/mc
Check the version of mc command.
# mc --version mc version RELEASE.2022-03-09T02-08-36Z
Connect to you MinIO storage server by using following command.
# mc alias set minio http://192.168.116.128 minioadmin centlinux --api s3v4 mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials. mc: Successfully created `/root/.mc/share`. mc: Initialized share uploads `/root/.mc/share/uploads.json` file. mc: Initialized share downloads `/root/.mc/share/downloads.json` file. Added `minio` successfully.
Execute following command to list all the buckets in MinIO storage server.
# mc ls play [2022-03-13 11:54:54 PKT] 0B acer/ [2022-03-13 13:37:05 PKT] 0B app-data/ [2022-03-13 13:50:19 PKT] 0B asiatrip/ [2022-03-13 18:46:22 PKT] 0B bucket/ [2022-03-13 16:50:15 PKT] 0B cgsecgchwczygil/ [2022-03-13 13:37:05 PKT] 0B data-files/ [2022-03-13 12:03:22 PKT] 0B dev-bucket/ [2022-03-13 17:20:47 PKT] 0B dev-stage-prv/ [2022-03-13 17:20:30 PKT] 0B dev-stage-pub/ [2022-03-13 14:52:40 PKT] 0B exercises/ [2022-03-13 12:59:08 PKT] 0B howzeh/ [2022-03-13 16:55:44 PKT] 0B njzfohoiooxfrfw/ [2022-03-13 12:06:29 PKT] 0B notea/ [2022-03-13 20:33:55 PKT] 0B test1/ [2022-03-13 13:37:05 PKT] 0B user-images/
You should try this Wireless Keyboard Mouse Combo (PAID LINK) to efficiently typing at Linux Bash prompt.
Final Thoughts
Setting up MinIO Object Storage on Rocky Linux 8 provides a powerful and scalable solution for your data storage needs. By following this guide, you should now have MinIO up and running efficiently on your server. If you need any further assistance or customized configurations, I offer professional services to help you achieve the best results.
Visit my Fiverr profile to explore my services and get expert help with your MinIO installation and configuration. Let’s ensure your storage solution is optimized and secure!