Quick Deployment of Single Node Single Disk Architecture MinIO on Linux

Download MinIO Server Files

This step describes how to deploy MinIO in a single node single disk (SNSD) configuration for early development and evaluation. The SNSD deployment does not provide any additional reliability or availability beyond what is offered by the underlying storage volume implementation (RAID, LVM, ZFS, etc.). The SNSD deployment uses a zero-parity erasure code backend, which provides reliability or availability consistent with the underlying storage volume implementation, without any additional reliability or availability. These deployments are best suited for local testing and evaluation, or for small-scale data workloads with no availability or performance requirements.

For extended development or production environments, it is recommended to deploy MinIO in a multi-node multi-disk (distributed) network topology.

Use the following command to download and install the latest stable MinIO binary package, and set the <span>$PATH</span> :

wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/

Create <span>systemd</span> System Startup Service File

[root@node1 ~]# vim /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=minio-user
Group=minio-user
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

By default, the <span>minio.service</span> file runs as the <span>minio-user</span> user and group. You can create the user and group using <span>groupadd</span> and <span>useradd</span> commands. The example below creates the user and group and sets permissions to access the folder path used by MinIO. These commands typically require root ( <span>sudo</span> ) privileges.

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
mkdir /data/minio
chown minio-user:minio-user /data/minio

The drive path in this example is specified by the MINIO_VOLUMES environment variable. Change the values here and in the environment variable file to match the drive path intended for use by MinIO.

Create Environment Variable File

Create the environment variable file at <span>/etc/default/minio</span>. The MinIO server container can use this file for all environment variables.

The example below provides a starting environment file:

[root@node1 ~]# cat /etc/default/minio 
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=Rb992334%

# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.

MINIO_VOLUMES="/data/minio"

# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9001"

Start MinIO Service

Issue the following command on the localhost to start the MinIO SNSD deployment as a service:

systemctl start minio

Use the following command to confirm if the service is online and functioning properly:

systemctl status minio.service
journalctl -f -u minio.service

MinIO may log a large number of non-critical warnings while processing connections and synchronizations on the server. These warnings are typically transient and should resolve after the deployment goes live.

Changes in version RELEASE.2023-02-09T05-16-53Z: If MinIO detects enough drives to meet the deployment’s write quorum requirements, it will start MinIO; otherwise, it will fail to start.

If any drives remain offline after starting MinIO, check and resolve any issues preventing their functionality before beginning production workloads.

The MinIO service will not start automatically on host reboot. You must use <span>systemctl enable minio.service</span> to have the process start automatically as part of the host boot, allowing the process to restart automatically during server reboots without manual management.

systemctl enable minio.service

<span>journalctl</span> displays output logs as shown in the example below:

-- Logs begin at Fri 2023-06-30 14:28:39 CST. --
Feb 27 10:24:27 node1 minio[4331]: Copyright: 2015-2025 MinIO, Inc.
Feb 27 10:24:27 node1 minio[4331]: License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Feb 27 10:24:27 node1 minio[4331]: Version: RELEASE.2025-01-18T00-31-37Z (go1.23.5 linux/amd64)
Feb 27 10:24:27 node1 minio[4331]: API: http://192.168.77.232:9000  http://127.0.0.1:9000
Feb 27 10:24:27 node1 minio[4331]: WebUI: http://192.168.77.232:9001 http://127.0.0.1:9001
Feb 27 10:24:27 node1 minio[4331]: Docs: https://docs.min.io
Feb 27 10:24:28 node1 minio[4331]: INFO:
Feb 27 10:24:28 node1 minio[4331]:  You are running an older version of MinIO released 1 month before the latest release
Feb 27 10:24:28 node1 minio[4331]:  Update: Run `mc admin update ALIAS`

<span>API</span> lists the network interfaces and ports that clients can use to access the MinIO S3 API. <span>Console</span> lists the network interfaces and ports that clients can use to access the MinIO web console.

Quick Deployment of Single Node Single Disk Architecture MinIO on Linux

Leave a Comment