Data
What is MinIO?
천재보단범재
2022. 10. 20. 14:11
What is MinIO
MinIO는 분산 Object Storage이다.
Open Source로 Private Cloud에 적합한 S3 성격의 Storage이다.
Go 언어로 개발되었으며 Docker Image도 1억건 이상 pull한 유명한 Storage이다.
사진, 비디오, Log 등 비정형화된 데이터 저장에 적합하다.
특징
- S3 API 호환
- Erasure Coding을 통한 보안성 강화
- Kubernetes 환경에서 설치 가능
- Horizontal and Vertical scaling
- MinIO Console이라는 Web UI 제공
- High availability(고가용성)
MinIO 설치
MinIO Server 설치
Standalone 환경에서 설치를 진행하였다.
MinIO User를 먼저 생성합니다.
groupadd minio
useradd -m -g minio minio
passwd minio
MinIO Server를 Download합니다.
su minio
cd ~
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
# ~/.local/bin 폴더로 이동
mkdir -p ~/.local/bin
mv minio ~/.local/bin
MinIO storage 폴더와 설정파일을 세팅합니다.
# Storage 및 설정 폴더 생성
mkdir -p ~/minio/data
mkdir -p ~/minio/conf
# 설정파일 생성
vi ~/minio/conf/minio
# ~/minio/conf/mino 파일
MINIO_ACCESS_KEY="minio"
MINIO_VOLUMES="/home/minio/minio/data"
MINIO_OPTS="-C /home/minio/minio/conf --address :9000 --console-address :9001"
MINIO_SECRET_KEY="secret-key"
설정 파일에 세팅하는 값은 아래와 같다.
- MINIO_ACCESS_KEY -> MinIO에 접근할 수 있는 access-key
- MINIO_VOLUMES -> MinIO Storage 폴더 경로
- MINIO_OPTS -> MinIO 실행 옵션
- -C -> MinIO 설정 폴더 경로
- --address -> MinIO Server IP, Port 설정
- --console-address -> MinIO Console UI IP, Port 설정
- MINIO_SECRET_KEY -> MinIO에 접근할 수 있는 secret-key
MinIO Service 파일을 생성한다.
sudo vi /etc/systemd/system/minio.service
# minio.service 파일
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/home/minio/.local/bin/minio
[Service]
User=minio
Group=minio
ProtectProc=invisible
EnvironmentFile=/home/minio/minio/conf/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /home/minio/minio/conf/minio\"; exit 1; fi"
ExecStart=/home/minio/.local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576
# 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})
Service 생성 후 Service를 실행한다.
sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
sudo systemctl status minio
# minio service status
● minio.service - MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-10-20 06:52:28 UTC; 12min ago
Docs: https://docs.min.io
Process: 832 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /home/minio/minio/conf/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
Main PID: 834 (minio)
CGroup: /system.slice/minio.service
└─834 /home/minio/.local/bin/minio server -C /home/minio/minio/conf --address :9000 --console-address :9001 /home/minio/minio/data
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: MinIO Object Storage Server
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: Copyright: 2015-2022 MinIO, Inc.
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: Version: RELEASE.2022-10-15T19-57-03Z (go1.18.7 linux/amd64)
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: Status: 1 Online, 0 Offline.
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: API: http://172.31.26.44:9000 http://127.0.0.1:9000
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: Console: http://172.31.26.44:9001 http://127.0.0.1:9001
Oct 20 06:52:28 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: Documentation: https://min.io/docs/minio/linux/index.html
Oct 20 06:52:29 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: You are running an older version of MinIO released 4 days ago
Oct 20 06:52:29 ip-172-31-26-44.ap-northeast-2.compute.internal minio[834]: Update: Run `mc admin update`
MinIO 실행시 설정한 Console IP, Port로 들어가본다.
예시에서는 9001포트로 Console Web UI를 실행하였다.
Username에는 ACCESS-KEY, Password에는 SCRET-KEY를 입력해서 로그인한다.
정상적으로 설치된 것을 확인할 수 있다.
728x90
반응형