I'm having trouble starting the MinIO service in a distributed setting across 2 virtual machines (not Docker). I'm encountering a Error: Read failure. Insufficient number of drives online. Waiting for a minimum of 4 drives to come online
when running sudo systemctl start minio.service
I first added both the VMs IPs to the /etc/hosts
file
127.0.0.1 localhost
127.0.1.1 vagrant
192.XXX.XXX.58 minio-01.example.com
192.XXX.XXX.116 minio-02.example.com
I then created virtual hard disks using this method here and this is my lsblk
output. Using loop0 to loop3's mount points
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 0 loop /mnt/disk1
loop1 7:0 0 4G 0 loop /mnt/disk2
loop2 7:0 0 4G 0 loop /mnt/disk3
loop3 7:0 0 4G 0 loop /mnt/disk4
permissions in /mnt
drwxr-xr-x 3 minio-user minio-user disk1/
drwxr-xr-x 3 minio-user minio-user disk2/
drwxr-xr-x 3 minio-user minio-user disk3/
drwxr-xr-x 3 minio-user minio-user disk4/
I then followed the tutorial provided by MinIO for distributed deployment (Multi-node Multi-drive) and these are my files:
/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})
/etc/default/minio
MINIO_VOLUMES="http://minio-0{1...2}.example.com:9000/mnt/disk{1...4}"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=miniocluster
MINIO_SERVER_URL="http://minio-01.example.com:9000"
After running the sudo systemctl start minio.service
I encountered this error
MinIO error - journalctl -f -u minio.service
I am unsure how to proceed since I believe I have already added the right permissions to each mount point and followed the tutorial provided by MinIO themselves. Any help is appreciated. Thank you.
I am expecting the MinIO service to pass through and able to access the platform on port :9000
Figured out the issue. Nothing wrong with the configuration, just needed to start both servers at the same time in order to detect the drives.