Latest

Monday, 14 March 2022

Install MinIO Object Storage Server on Rocky Linux 8

Install MinIO Object Storage Server on Rocky Linux 8

In this article, you will learn how to install MinIO Object Storage Server on Rocky Linux 8 or other RPM based distros.

 

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)

You should try this Wireless Keyboard Mouse Combo to efficiently typing at Linux Bash prompt.

Install MinIO Object Storage Server on Rocky Linux 8

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 Server on Linux:

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 Storage 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>
Mar 13 20:19:46 minio-01.centlinux.com minio[1302]:  You are running an older v>
Mar 13 20:19:46 minio-01.centlinux.com minio[1302]:  Update: Run `mc admin upda>

 

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:

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/

 

Conclusion:

In this article, you have learned how to install MinIO Object Storage server on Rocky Linux 8 or RPM based distros.

If you find this article useful? Consider supporting us by Buy Me A Coffee


No comments:

Post a Comment

© 2022 CentLinux. All Rights Reserved.