Software Defined Storage

MioIO 설치

DaehanCNI 2024. 6. 5. 14:59

MinIO 라는 SDS(Software Define Storage) 설치 방법에 대해서 소개하고자 한다. 간단하게 설치 사용할 수 있는 장점이 있어 테스트 및 소형으로 운영이 가능할 것으로 보인다. 본 내용은 Single-Node에 설치하는 방법에 대하여 설명하였다. 

 

1. OS 설치

MinIO는 RHEL 또는 Debian/Ubuntu 계열에 대하여 지원하고 있으며, 설치 테스트를 위하여 Ubuntu 22.04.4  LTS 설치하였다. 

 

 

2. Network 설정

모든 서버의 네트워크 설정은 고정 IP을 사용하도록 한다.

minio:~$ sudo vi /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp1s0:
      addresses: [10.0.2.201/16]
      routes:
        - to: 0.0.0.0/0
          via: 10.0.0.1
          metric: 101
      nameservers:
        addresses:
          - 8.8.8.8
  version: 2
minio:~$ sudo netplan apply
minio:~$ ping -c 3 8.8.8.8

 

3. Package 최신화

Package 업데이트를 통하여 최신의 상태로 만든다. 

minio:~$ sudo apt update
minio:~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
… …

 

4. MinOS 다운로드

RHEL 과 Ubuntu/Debian 계열 관련하여 다운로드 주소가 다르므로 참고하기 바란다.

minio:~$ wget h
ttps://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240528171904.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb
--2024-06-05 04:37:57--  https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240528171904.0.0_amd64.deb
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: 36858196 (35M) [application/vnd.debian.binary-package]
Saving to: ‘minio.deb’

 

5. MinIO 설치 및 확인

minio:~$ sudo dpkg -i minio.deb 
(Reading database ... 74592 files and directories currently installed.)
Preparing to unpack minio.deb ...
Unpacking minio (20240528171904.0.0) over (20240528171904.0.0) ...
Setting up minio (20240528171904.0.0) ...

 

minio:~$ sudo vi /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
Type=notify

… … …

 

6. 사용할 디스크 설정 (Option)

사용하고자 하는 디스크를 설정한다. 테스트를 위하여 xfs 로 설정하였다. 

minio:/mnt$ sudo fdisk /dev/sda 

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

… … …
stephen@minio:/mnt$ sudo mkfs.xfs /dev/sda1 
meta-data=/dev/sda1              isize=512    agcount=4, agsize=655296 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
minio:/mnt$ sudo mount /dev/sda1 /dev/disk

 

7. 그룹 및 사용자 생성

minio:~$ sudo groupadd -r minio-user
minio:~$ sudo useradd -M -r -g minio-user minio-user
minio:~$ sudo chown minio-user:minio-user /mnt/disk

 

8. 설정 파일 생성

서버의 Root 사용자 및 패스워드를 설정한다. 

minio:~$ sudo vi /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=admin
MINIO_ROOT_PASSWORD=qwer1234

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

MINIO_VOLUMES="/mnt/disk"

# 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"

# MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server
# MinIO assumes your network control plane can correctly resolve this hostname to the local machine

# Uncomment the following line and replace the value with the correct hostname for the local machine and port for the MinIO server (9000 by default).

#MINIO_SERVER_URL="http://minio.example.net:9000"

 

9. 서비스 시작

minio:~$ sudo systemctl start minio.service 
minio:~$ sudo systemctl status minio.service 
● minio.service - MinIO
     Loaded: loaded (/lib/systemd/system/minio.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-06-05 04:55:39 UTC; 10s ago
       Docs: https://docs.min.io
    Process: 1365 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
   Main PID: 1366 (minio)

… … …

 

컴퓨터 booting 시, 시작하길 원한다면 enable 처리한다. 

minio:~$ sudo systemctl enable minio.service

 

10. Dashboard 확인 

Dashboard 을 통하여 사용하고자 하는 Bucket 및 Policy 등을 설정하여 사용할 수 있다. 

 

 

10.1 Bucket 생성

 

 

참고 문헌

https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html#minio-snsd

 

Deploy MinIO: Single-Node Single-Drive — MinIO Object Storage for Linux

 

min.io