Ubuntu 16.04에서 Minio 분산 클러스터 구축하기

Minio 개요

Minio는 Apache License v2.0 기반의 오픈소스 객체 스토리지 서비스입니다. Amazon S3 클라우드 스토리지 API와 호환되며, 대용량 비정형 데이터 저장에 적합합니다.

매우 가벼운 서비스로, 다양한 애플리케이션과 쉽게 통합할 수 있습니다.

분산 배포 시 여러 서버의 디스크를 하나의 스토리지 풀로 통합하여 사용할 수 있습니다.

클러스터 구성 시 최소 4대의 서버가 필요하며, 4대 미만일 경우 일부 기능이 제한되거나 실행되지 않을 수 있습니다.

환경 구성

서버 정보

  • minio1 (Ubuntu 16.04) - 192.168.88.56
  • minio2 (Ubuntu 16.04) - 192.168.88.57
  • minio3 (Ubuntu 16.04) - 192.168.88.58
  • minio4 (Ubuntu 16.04) - 192.168.88.59

디렉토리 생성

모든 서버에서 아래 명령어를 실행합니다.
mkdir -p /opt/minio/{run,data1,data2} && mkdir -p /etc/minio

Minio 바이너리 다운로드

wget -P /opt/minio/run https://dl.min.io/server/minio/release/linux-amd64/minio

실행 권한 부여

chmod +x /opt/minio/run/minio

클러스터 실행 스크립트 생성

vi /opt/minio/run/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123456
/opt/minio/run/minio server \
  --config-dir /etc/minio \
  --address ":6090" \
  --console-address ":6091" \
  http://192.168.88.56/opt/minio/data1 \
  http://192.168.88.56/opt/minio/data2 \
  http://192.168.88.57/opt/minio/data1 \
  http://192.168.88.57/opt/minio/data2 \
  http://192.168.88.58/opt/minio/data1 \
  http://192.168.88.58/opt/minio/data2 \
  http://192.168.88.59/opt/minio/data1 \
  http://192.168.88.59/opt/minio/data2

중요 참고사항

  • MINIO_ACCESS_KEY: 최소 5자 이상
  • MINIO_SECRET_KEY: 최소 8자 이상, 단순한 패턴 사용 시 실행 실패 가능
  • --config-dir: 클러스터 설정 파일 디렉토리 지정
  • 기본 포트는 9000이며, --address 옵션으로 변경 가능

Systemd 서비스 등록

vi /etc/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/opt/minio/run/
ExecStart=/opt/minio/run/run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

권한 설정

chmod +x /etc/systemd/system/minio.service
chmod +x /opt/minio/run/minio
chmod +x /opt/minio/run/run.sh

클러스터 실행

모든 서버에서 동일한 순서로 실행합니다.
systemctl daemon-reload
systemctl start minio
systemctl enable minio

상태 확인

systemctl status minio.service

방화벽 설정

방화벽이 활성화된 경우 아래 포트를 허용합니다.
ufw allow 6090
ufw allow 6091
systemctl restart ufw

웹 콘솔 접속

브라우저에서 아래 URL로 접속합니다.
http://192.168.88.56:6091
또는 http://192.168.88.56:6090 (API 엔드포인트)

로그인 시 앞서 설정한 admin / admin123456 사용합니다.

Nginx 프록시 사용 시 주의사항

Nginx를 통해 리버스 프록시로 Minio에 접근할 때 다음과 같은 오류가 발생할 수 있습니다.
The request signature we calculated does not match the signature you provided. Check your key and signing method.
이 경우 Nginx 설정에서 proxy_set_header Host $host; 등을 적절히 구성해야 합니다.
자세한 해결 방법은 공식 문서를 참조하세요.

버킷 정책 설정

파일 유효 기간 설정

버킷 내 파일의 자동 삭제 정책을 설정할 수 있습니다. 예: 3일 후 자동 삭제
mc policy set expiration 72h myminio/mybucket

공개 접근 설정

파일을 URL로 직접 접근할 수 있도록 버킷을 공개로 설정합니다.
mc policy set public myminio/mybucket
위 명령어 사용을 위해 mc (Minio Client) 도구가 필요합니다.

태그: MinIO Ubuntu16.04 분산스토리지 객체스토리지 S3호환

6월 23일 00:33에 게시됨