Ubuntu 24.04 에서 MinIO (Object storage service) 설치 및 설정
오브젝트 스토리지는 전통적인 파일 시스템처럼 마운트하여 사용하는 개념이 아니고, API 또는 시스템 명령어를 통해 파일 (객체) 을 송수신하는 개념입니다.
오브젝트 스토리지의 주요 특징과 사용 방법은 다음과 같습니다.
- 데이터 구조 : 오브젝트 스토리지는 데이터를 객체(object) 단위로 저장하며, 각 객체는 고유의 ID와 메타데이터를 가집니다.
- 확장성 : 수평적 확장이 용이하여 대규모 데이터를 효율적으로 관리할 수 있습니다.
- API 기반 접근 : HTTP 기반의 RESTful API를 통해 데이터를 송수신합니다.
- 메타데이터 : 각 객체에 대한 상세한 메타데이터를 저장하여 데이터 관리를 용이하게 합니다.
일반적으로 Object storage 서비스를 제공하기 위해 사용하는 OpenStack Swift 대신 더 간단하게 Object Storage 서비스를 제공할 수 있는 패키지로 MinIO 를 고려해 볼 수 있습니다. MinIO 는 설치와 설정이 매우 간단하고, S3 호환 API 를 제공하는 고성능 객체 스토리지 서버입니다. 우분투에서 MinIO 를 설치하고 설정하는 방법은 다음과 같습니다.
1. 설치
# apt -y update
# apt -y upgrade
# wget https://dl.min.io/server/minio/release/linux-amd64/minio
# chmod +x minio
# mv minio /usr/local/bin/
MinIO 를 실행하려면 데이터를 저장할 디렉토리를 지정해야 합니다. 예를 들어 /data 디렉토리에 데이터를 저장하도록 설정할 수 있습니다.
# mkdir /data
# minio server /data
이 명령을 실행하면 MinIO 서버가 시작되고, 웹 브라우저에서 http://<서버 IP>:9000 으로 접속할 수 있습니다.
기본적으로 MinIO 는 웹 UI 를 통해 관리할 수 있는데, 로그인 계정은 다음과 같습니다.
- RootUser: minioadmin
- RootPass: minioadmin
2. 계정 패스워드 변경
데몬 실행 전에 패스워드를 미리 지정하고 실행하면 됩니다.
# export MINIO_ROOT_USER=sysdocu
# export MINIO_ROOT_PASSWORD=sysdocu1234
# minio server /data
3. 사용 도구
1) MinIO 웹 인터페이스 사용
웹 브라우저에서 http://<서버 IP>:9000 에 접속하여 MinIO 웹 인터페이스에 로그인하면 전반적인 관리가 가능합니다.
2) 클라이언트 도구 설치
MinIO 클라이언트 (mc) 는 MinIO 서버를 관리하고 파일을 업로드/다운로드하는 데 사용됩니다.
# wget https://dl.min.io/client/mc/release/linux-amd64/mc
# chmod +x mc
# mv mc /usr/local/bin/
4. Client 에서 테스트
1) MinIO 클라이언트 설정
MinIO 클라이언트에서 MinIO 서버를 설정합니다.
# mc alias set sysdocu http://<서버 IP>:9000 sysdocu sysdocu1234
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `sysdocu` successfully.
2) 버킷 생성
파일을 업로드할 버킷을 생성합니다.
여기서 mybucket 은 새로 생성할 버킷의 이름입니다.
# mc mb sysdocu/mybucket
3) 파일 업로드
로컬 파일을 MinIO 서버에 업로드합니다.
# mc cp test.txt sysdocu/mybucket
aaa 디렉토리를 통째로 업로드 할때는 --recursive 옵션을 사용합니다.
# mc cp --recursive aaa sysdocu/mybucket/
4) 파일 다운로드
# mc cp sysdocu/mybucket/test.txt .
5) 파일 목록 확인
버킷에 있는 파일 목록을 확인합니다.
# mc ls sysdocu/mybucket
5. 공유 설정
위와 같이 업로드한 test.html 파일은 접근을 해보면 AccessDenied 메세지가 출력되는 것을 알 수 있습니다.
http://<서버 IP>:9000/mybucket/test.txt
이는 기본값이 private 으로 되어 있기 때문인데, bucket 에 해당되는 모든 파일을 public 처리하거나 특정 파일 하나에 대해서만 public 처리할 수 있습니다.
1) bucket 전체 public / private 처리
버킷 전체 공개
# mc anonymous set public sysdocu/mybucket
버킷 전체 비공개
# mc anonymous set private sysdocu/mybucket
2) 단일 파일 public / private 처리
하나의 파일 공개
# mc anonymous set public sysdocu/mybucket/test.txt
하나의 파일 비공개
# mc anonymous set private sysdocu/mybucket/test.txt
3) 특정 디렉토리 (aaa) 내 파일들 public / private 처리
for file in $(mc ls --recursive sysdocu/mybucket/aaa/ | awk '{print $5}'); do
mc anonymous set public sysdocu/mybucket/aaa/$file
done
private 처리할 경우 public 위치에 private 문자로 치환하여 사용하면 됩니다.
브라우저에서 접근하여 확인하고자 할 경우 MinIO 서버이름 (sysdocu) 은 제외하고 아래와 같이 접근하면 됩니다.
http://<서버 IP>:9000/mybucket/aaa/test.txt
'리눅스 > OS 일반' 카테고리의 다른 글
VMware 가상서버 이미지를 Proxmox 로 이전하기 (0) | 2024.07.04 |
---|---|
Debian 12.x 에서 MinIO (Object storage service) 를 파일시스템처럼 마운트하기 (0) | 2024.07.03 |
Proxmox NFS 공유 스토리지 추가하기 (0) | 2024.06.28 |
Proxmox VE 에서 VM 고가용성 (HA) 설정하기 (0) | 2024.06.28 |
pm2 포트 모니터링 (0) | 2024.06.27 |