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 생성
참고 문헌
'Software Defined Storage' 카테고리의 다른 글
IBM Ceph storage Appliance (Ready Node) (0) | 2024.05.13 |
---|---|
Ceph OSD 드라이브 교체 (0) | 2024.05.06 |
Ceph Storage 하드웨어 최소 사양 (0) | 2024.05.02 |
Ceph Storage Block Device 성능 테스트 방법 (RBD Benchmark) (0) | 2024.04.29 |
Ceph Storage 기본 성능 테스트 방법 (Benchmark) (0) | 2024.04.25 |