MinIO 는 Amazon S3 API 와 호환되는 고성능 오브젝트 스토리지다. 바이너리 하나로 단일 노드부터 다중 노드 · 다중 드라이브 이레이저 코딩 클러스터까지 올릴 수 있어 Kubernetes · 백업 타깃 · 데이터 레이크에 널리 쓰였다. 오브젝트 하나의 최대 크기는 5TiB 다. 공식 홈페이지
커뮤니티판(AGPLv3) 은 2025년을 거치며 기능이 빠지고 결국 개발이 멈췄다.[1]
| 시점 | 변화 |
|---|---|
| 2021 | 라이선스가 Apache 2.0 에서 AGPLv3 로 바뀜 |
| 2025-02 | 내장 관리 콘솔에서 사용자 · 정책 · 버킷 설정 · 복제 관리 화면이 빠지고 오브젝트 브라우저만 남음. 관리 기능은 상용 AIStor 로 이동 |
| 2025-05-24 | RELEASE.2025-05-24T17-08-30Z — LDAP · OIDC 외부 IdP 로그인이 커뮤니티판에서 제거, FIPS(boringcrypto) 빌드 제거 |
| 2025-10-15 | RELEASE.2025-10-15T17-29-55Z — 마지막 커뮤니티 바이너리 릴리스 (세션 정책 우회 CVE 수정) |
| 2025-12-03 | GitHub 저장소 유지보수 모드 선언. 새 기능 · PR 받지 않음 |
| 2026-04-25 | 저장소 보관(archived). 읽기 전용 |
지금 상태는 아래와 같다.
dl.min.io 의 바이너리 다운로드 주소(/server/minio/release/linux-amd64/minio, /client/mc/...) 는 410 Gone 을 돌려준다. 옛 문서의 wget 은 더 이상 동작하지 않는다.go build 하거나 go install github.com/minio/minio@RELEASE.2025-10-15T17-29-55Z 로 직접 빌드해야 한다. 보안 패치는 더 나오지 않는다.이미 돌리고 있는 커뮤니티판은 계속 동작한다. 다만 CVE 대응이 없으므로 외부에 노출된 엔드포인트는 앞에 리버스 프록시 · WAF 를 두고 접근을 좁히는 편이 낫다.
| 요소 | 역할 |
|---|---|
minio server |
S3 엔드포인트(기본 9000) 와 콘솔(--console-address, 보통 9090) |
mc |
커맨드라인 클라이언트. 버킷 · 정책 · 미러링 |
| 이레이저 코딩 | 드라이브 4개 이상일 때 데이터 · 패리티 블록으로 나눠 저장 |
| 사이트 복제 | 여러 클러스터 사이 버킷 · IAM 동기화 |
minio 라이브러리, boto3.위 버전과 저장소는 오래된 것이라 저장소가 존재하지 않을 수 있다.
dl.min.io바이너리 주소는 2026-09 기준 410 을 돌려준다. 바이너리는 소스에서 빌드하거나 AIStor 로 대체한다. 아래 구동 방식과 설정 파일은 AIStor 에서도 같다.
wget https://dl.min.io/server/minio/release/linux-amd64/minio
minio 구동 시 설정하는 포트에 맞게 연다.
sudo firewall-cmd --permanent --add-port=9000/tcp --add-port=9090/tcp
sudo firewall-cmd --reload
단일 노드
# minio server <데이터_디렉토리>
minio server /home/minio/data --address :9000 --console-address :9090
멀티노드 스크립트
#!/bin/bash
MINIO_HOME=$HOME/minio
MINIO_BIN_DIR=$MINIO_HOME/bin
MINIO_DATA_DIR=$MINIO_HOME/data
# 노드에 디스크가 여러 개일 경우 마운트 된 디렉토리 이름의 끝을 숫자로 맞춘 뒤 {0...1} 형식으로 입력
# /sdb01, /sdb02, /sdb03, /sdb04 를 사용한다고 가정할 경우 /sdb0{1...4} 로 입력한다.
MINIO_LOG_DIR=$MINIO_HOME/logs
export MINIO_ROOT_USER=haedong
export MINIO_ROOT_PASSWORD=${REDACTED}
LOG_FILE=$MINIO_LOG_DIR/minio.log
# address 는 엔드포인트, console-address 는 Web-console
nohup $MINIO_BIN_DIR/minio server --address :9000 --console-address :9090 http://storage0{1...3}.host.name$MINIO_DATA_DIR/disk0{1...2} 1> $LOG_FILE 2>&1 &
# TLS 설정 시 certs 디렉토리에 public.crt, private.key 파일이 있어야 한다.
# nohup $MINIO_BIN_DIR/minio server --address :9000 --console-address :9090 --certs-dir /opt/minio/certs http://storage0{1...3}.host.name$MINIO_DATA_DIR/disk0{1...2} 1> $LOG_FILE 2>&1 &
MINIO_PID=$!
if [ ! -z $MINIO_PID ] ; then
echo "$MINIO_PID" > minio.pid
fi
/etc/minio/minio.conf
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=${REDACTED}
MINIO_VOLUMES="/data/minio/data"
MINIO_OPTS="--console-address :9090 --address :9000 --certs-dir /opt/minio/certs"
/etc/systemd/system/minio.service
[Unit]
Description=MinIO High Performance Object Storage
Wants=network-online.target
After=network-online.target
[Service]
User=minio
Group=minio
EnvironmentFile=-/etc/minio/minio.conf
ExecStart=/opt/minio/bin/minio server \
--address :9000 \
--console-address :9090 \
--certs-dir /opt/minio/certs \
https://data-store0{1...3}.haedongg.net${MINIO_DATA_DIR}
Restart=always
LimitNOFILE=65536
TasksMax=infinity
TimeoutStopSec=infinity
SendSIGKILL=no
StandardOutput=append:/var/log/minio/minio.log
StandardError=append:/var/log/minio/minio.err
[Install]
WantedBy=multi-user.target
인증서 파일 (--certs-dir 아래)
private.key
public.crt
Keepalived 와 HAproxy 를 이용해 HA 구성이 가능하다.
/etc/haproxy/haproxy.cfg (minio 클러스터용)
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
# status web 설정
listen hastats
mode http
bind *:8080
stats enable
stats show-legends
stats uri /hastat
stats auth admin:admin
# 프론트엔드에서 설정한 포트로 연결이 들어올 경우 백엔드로 보낸다
frontend api
bind *:19000
default_backend api
mode tcp
backend api
balance roundrobin
mode tcp
option tcp-check
option tcplog
server storage01 192.168.1.41:9000 check
server storage02 192.168.1.42:9000 check
server storage03 192.168.1.43:9000 check
frontend web-console
bind *:19090
default_backend web-console
mode tcp
backend web-console
balance roundrobin
mode tcp
option tcp-check
option tcplog
server storage01 192.168.1.41:9090 check
server storage02 192.168.1.42:9090 check
server storage03 192.168.1.43:9090 check
마지막 커뮤니티 릴리스 RELEASE.2025-10-15T17-29-55Z, 저장소 보관 2026-04-25 — 2026-09-20 확인. https://github.com/minio/minio ↩︎