Rocky Linux에 MinIO 저장소를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. MinIO 수동 설치
  3. MinIO 개체 스토리지용 스토리지 설정
  4. MinIO 개체 스토리지 구성
  5. MinIO를 시스템 서비스로 실행\n
  6. 방화벽 설정\n
  7. SSL 인증서로 MinIO 보안
  8. 첫 번째 버킷 생성 및 파일 업로드
  9. MinIO 클라이언트 CLI 설정
  10. MinIO 명령줄을 통해 버킷 생성\n
  11. 결론

MinIO는 Go로 작성된 무료 오픈 소스 개체 스토리지 서버입니다. Amazone S3 객체 스토리지와 호환되며 객체 스토리지를 위한 최고의 무료 솔루션 중 하나입니다. MinIO를 사용하면 사진, 비디오, 로그 파일, 백업 및 컨테이너/VM 이미지를 저장할 수 있습니다.

서버 측에서 MinIO는 응용 프로그램 서버를 쉽게 설치하고 구성할 수 있는 응용 프로그램의 단순성과 함께 확장성이 뛰어난 아키텍처를 제공합니다. 그리고 클라이언트 측에서는 터미널에서 오브젝트 스토리지를 관리할 수 있는 바이너리 클라이언트 애플리케이션을 제공합니다. 또한 MinIO는 웹 브라우저 사용을 선호하는 사용자를 위해 강력하고 사용하기 쉬운 웹 관리 대시보드를 제공합니다.

MinIO는 여러 배포 아키텍처에 적합한 자체 호스팅 개체 스토리지 솔루션입니다. 지속적인 데이터 복제를 통해 대규모 인프라에 개체 스토리지로 MinIO를 배포하거나 홈 서버와 같은 소규모 환경에 배포할 수 있습니다.

이 튜토리얼에서는 Rocky Linux 서버에 MinIO Object Storage를 설치하는 과정을 잘 안내합니다. 또한 MinIO를 사용하여 새 개체 스토리지를 생성하고 MinIO 개체 스토리지 서버를 관리하도록 Linux 클라이언트 시스템을 구성합니다.

결국 Rocky Linux 서버에 MinIO Object Storage가 설치되고 SSL 인증서로 보호됩니다. 또한 MinIO를 관리하기 위한 클라이언트 시스템도 갖게 됩니다.

전제 조건

이 자습서를 시작하려면 다음 요구 사항이 필요합니다.

  • Rocky Linux를 실행하는 서버 - Rocky Linux v8 또는 v9를 사용할 수 있습니다.\n
  • sudo/root 권한이 있는 루트가 아닌 사용자.\n
  • 추가 디스크 또는 디렉토리가 오브젝트 스토리지로 사용됩니다.
  • 프로덕션의 경우 Rocky Linux 서버 IP 주소를 가리키는 도메인 이름이 필요합니다.\n

이제 MinIO 설치로 이동하겠습니다.

수동으로 MiniIO 설치

MinIO는 서버와 클라이언트 모두에 쉽게 설치하고 구성할 수 있는 차세대 개체 스토리지입니다. MinIO는 컨테이너화된 가상 머신과 기존 가상 머신 모두에 대해 여러 버전의 패키지를 제공합니다.

Kubernetes, RedHat OpenShift 또는 Docker를 사용하여 MinIO를 설치할 수 있습니다. 가상 머신의 경우 모든 Linux 배포판에 또는 Windows 및 macOS를 사용하여 MinIO를 설치할 수 있습니다.

이 예에서는 Rocky Linux 서버에 MinIO를 수동으로 설치합니다.

다음 curl 명령을 실행하여 MinIO용 바이너리 파일을 /usr/local/bin/minio에 다운로드합니다.

curl -o /usr/local/bin/minio https://dl.min.io/server/minio/release/linux-amd64/minio

이제 아래의 chmod 명령을 통해 MinIO 바이너리 파일을 실행 가능하게 만드십시오.

sudo chmod +x /usr/local/bin/minio

MinIO 바이너리 파일을 실행할 수 있는지 확인하려면 /usr/local/bin 디렉토리를 PATH 환경 변수에 추가해야 합니다.

다음 명령을 실행하여 파일 ~/.bashrc 구성을 통해 /usr/local/bin 디렉토리를 PATH 환경 변수에 추가합니다.

echo 'export PATH="$PATH:/usr/local/bin"' >> ~/.bashrc

다음으로 ~/.bashrc 구성 파일을 다시 로드하고 다음 명령을 통해 PATH 환경 변수를 확인합니다.

source ~/.bashrc
echo $PATH

PATH 환경 변수에 추가된 /usr/local/bin 디렉토리가 표시되어야 합니다.

그런 다음 다음 명령을 실행하여 minio 명령을 사용할 수 있는지 확인합니다. 이를 통해 MinIO 바이너리 파일 /usr/local/bin/minio의 전체 경로를 가져와야 합니다.

which minio

마지막으로 아래 minio 명령을 사용하여 시스템에 설치된 현재 MinIO 버전을 확인합니다.

minio --version

Rocky Linux에 MinIO가 설치된 것을 볼 수 있습니다.

이제 MinIO가 설치되었습니다. 오브젝트 스토리지를 설정하기 전에 오브젝트 스토리지로 사용할 디스크 또는 디렉토리를 준비해야 합니다.

MinIO 개체 저장소에 대한 저장소 설정

MinIO 개체 저장소를 설정하려면 디렉터리를 설정하거나 개체 저장소로 사용할 추가 디스크를 사용해야 합니다. 이 예제에서는 추가 디스크 /dev/vdb를 MinIO 개체 스토리지로 설정하는 방법을 배웁니다.

먼저 다음 명령을 실행하여 /dev/vdb 디스크에서 사용 가능한 파티션 목록을 확인합니다. 이 예에서는 파티션 /dev/vdb1이 하나만 있습니다.

fdisk -l /dev/vdb

이제 파티션 /dev/vdb1의 마운트 지점으로 사용될 새 디렉터리 /minio-data를 만듭니다.

mkdir -p /minio-data

다음으로 파티션 /dev/vdb1을 대상 디렉터리 /minio-data에 마운트합니다.

sudo mount /dev/vdb1 /minio-data

이렇게 하면 /dev/vdb1 파티션이 임시로 마운트되고 다시 시작하면 설정이 사라집니다. 설정을 영구적으로 유지하려면 부팅 시 파티션을 자동으로 마운트할 수 있는 /etc/fstab 파일을 통해 파티션을 마운트합니다.

다음 nano 편집기를 실행하여 /etc/fstab 파일을 편집하십시오.

sudo nano /etc/fstab

파일에 다음 구성을 추가하고 세부 파티션, 대상 마운트 및 파일 시스템 형식을 변경해야 합니다.

/dev/vdb1 /minio-data ext4 defaults 0 0

파일을 저장하고 완료되면 편집기를 종료하십시오.

이제 다음 명령을 실행하여 /etc/fstab 파일에 사용 가능한 파티션을 마운트합니다. 파티션이 각 대상 디렉토리에 마운트되었음을 의미하는 오류 메시지가 없는지 확인하십시오.

sudo mount -a

마지막으로 다음 명령을 실행하여 파티션 구성을 확인하십시오.

sudo df -h

/dev/vdb1 파티션이 MinIO 개체 스토리지로 사용될 대상 디렉토리 /minio-data에 마운트된 것을 볼 수 있습니다.

이제 오브젝트 스토리지에 대한 파티션을 구성했습니다. 다음으로 MinIO 설치 구성을 시작합니다.

MiniIO 개체 스토리지 구성

이 단계에서는 MinIO에 대한 새 구성을 만들고 MinIO 서비스를 실행하는 데 사용할 새 구성 파일을 만듭니다. MinIO 구성은 /etc/minio에 있어야 하며 MinIO 서비스를 실행하기 위한 구성은 /etc/default/minio에 있어야 합니다.

먼저 다음 명령을 실행하여 MinIO에 대한 새로운 전용 시스템 사용자를 생성합니다. 이 사용자는 MinIO 서비스를 실행하는 데 사용됩니다.

sudo useradd -r minio -s /sbin/nologin

다음으로 아래 명령을 실행하여 개체 저장소 디렉터리 /minio-data의 소유권을 사용자 및 그룹 minio로 변경합니다.

sudo chown -R minio:minio /minio-data

개체 저장소 디렉터리의 소유권을 변경한 후 새 구성 디렉터리 /etc/minio와 MinIO 서비스 실행을 위한 기본 구성 파일 /etc/default/minio를 만들어야 합니다. .

다음 명령을 실행하여 /etc/minio 구성 디렉토리를 만들고 새 디렉토리의 소유권을 minio 사용자로 변경합니다.

sudo mkdir -p /etc/minio
sudo chown -R minio:minio /etc/minio

다음 나노 편집기를 사용하여 새 MinIO 구성 파일 /etc/default/minio을 만듭니다.

sudo nano /etc/default/minio

파일에 다음 구성을 추가합니다. 또한 저장소 디렉터리, MinIO 관리 사용자 및 암호의 세부 정보를 변경해야 합니다.

MINIO_ROOT_USER="minio"
MINIO_VOLUMES="/minio-data"
MINIO_OPTS="-C /etc/minio --address :9000 --console-address :9001"
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD="PassMinioStorage"

파일을 저장하고 완료되면 편집기를 종료하십시오.

마지막으로 다음 명령을 실행하여 MinIO 구성 파일 /etc/default/minio의 소유권을 올바른 사용자 minio로 변경합니다.

sudo chown minio:minio /etc/default/minio

이제 MinIO 설치를 위한 구성 디렉터리 및 구성을 성공적으로 만들었습니다. 이를 염두에 두고 이제 MinIO를 시작할 수 있습니다. 그러나 더 쉽게 하기 위해 MinIO를 시스템 서비스로 실행하게 됩니다.

시스템 서비스로 MiniIO 실행

MinIO에 대한 구성 디렉터리 및 파일을 만든 후 이제 MinIO를 시스템 서비스로 설정하게 됩니다. 이를 통해 터미널 서버에서 systemctl 명령을 통해 MinIO를 쉽게 관리할 수 있습니다.

다음 nano 편집기를 실행하여 새 systemd 서비스 파일 /lib/systemd/system/minio.service을 만듭니다.

sudo nano /lib/systemd/system/minio.service

편집기에서 다음 구성을 추가하십시오.

[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio
Group=minio

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"

ExecStart=/usr/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=65536

# Disable timeout logic and wait until the process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

파일을 저장하고 완료되면 편집기를 종료하십시오.

MinIO용 systemd 서비스를 만든 후 다음 명령을 실행하여 systemd 관리자를 다시 로드합니다.

sudo systemctl daemon-reload

이제 아래 명령을 사용하여 minio 서비스를 시작하고 활성화합니다.

sudo systemctl start minio
sudo systemctl enable minio

이제 minio 서비스가 실행되고 활성화되어야 합니다. 아래의 systemctl 명령을 통해 minio 서비스를 확인하십시오.

sudo systemctl status minio

이제 실행 중인 minio 서비스의 출력을 수신해야 합니다. 또한 서비스가 활성화되고 시스템 부팅 시, 특히 네트워킹이 실행된 후 자동으로 실행되는 것을 볼 수 있습니다.

이 시점에서 MinIO는 기본 포트 9000에서 실행 중이며 서버 IP 주소와 TCP 포트 9000을 차례로 방문하여 이를 확인할 수 있습니다. 그러나 그 전에 방화벽에서 포트를 열고 SSL 인증서로 MinIO 배포를 보호해야 합니다.

방화벽 설정

이 단계에서는 MinIO 개체 스토리지용 포트를 열기 위해 방화벽을 설정합니다. 기본 MinIO 설치는 사용자 웹 관리 대시보드에 포트 9000을 사용하고 API에 포트 9001을 사용합니다.

다음 firewall-cmd 명령을 실행하여 방화벽에서 포트 9000 및 9001을 엽니다.

sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9001/tcp --permanent

그런 다음 다음 명령을 실행하여 firewalld 규칙을 다시 로드하고 새 변경 사항을 적용합니다. 그런 다음 firewalld에서 활성화된 규칙 목록을 확인합니다.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

방화벽에 추가된 포트 9000 및 9001이 표시되어야 합니다.

SSL 인증서로 MinIO 보안

firewalld에서 포트를 설정한 후 SSL 인증서를 사용하여 MinIO 설치를 보호합니다.

SSL로 MinIO 보안을 시작하기 전에 SSL 인증서를 생성했는지 확인하십시오. 프로덕션에 MinIO를 설치하는 경우 서버 IP 주소를 가리키는 도메인 이름이 있어야 합니다.

다음 cp 명령을 실행하여 SSL 인증서를 /etc/minio/certs 디렉터리에 복사합니다. 이 예제는 Letsencrypt로 생성된 SSL 인증서를 사용하고 도메인 minio.hwdomain.io를 사용합니다.

sudo cp /etc/letsencrypt/live/minio.hwdomain.io/privkey.pem /etc/minio/certs/private.key
sudo cp /etc/letsencrypt/live/minio.hwdomain.io/fullchain.pem /etc/minio/certs/public.crt

다음으로, 다음 nano 편집기를 사용하여 MinIO 구성 파일 /etc/default/minio을 엽니다.

sudo nano /etc/default/minio

옵션 MINIO_SERVER_URL 구성을 추가하고 도메인 이름을 도메인으로 변경합니다.

MINIO_SERVER_URL="https://minio.hwdomain.io:9000"

완료되면 파일을 저장하고 편집기를 종료합니다.

/etc/default/minio 파일을 변경할 때마다 아래의 systemctl 명령을 사용하여 minio 서비스를 다시 시작하여 변경 사항을 적용하십시오.

sudo systemctl restart minio

이제 MinIO 개체 스토리지가 실행 중이며 SSL 인증서로 보호됩니다.

이제 웹 브라우저를 열고 MinIO 설치의 도메인 이름과 기본 포트 9000(예: https://minio.hwdomain.io:9000/)을 차례로 방문합니다. 그러면 MinIO 로그인 페이지가 표시됩니다.

/etc/default/minio 파일에 구성된 사용자 및 암호를 입력하고 로그인을 클릭합니다.

올바른 사용자와 암호가 있으면 아래와 같이 MinIO 사용자 대시보드 화면이 나타납니다.

이제 모든 구성과 MinIO 설치 및 보안이 완료되었습니다. 다음 단계에서는 버킷을 설정하고 MinIO 명령줄을 사용하여 클라이언트 시스템을 설정하는 방법을 알아봅니다.

첫 번째 버킷 생성 및 파일 업로드

이 단계에서는 웹 관리 대시보드를 통해 MinIO에서 버킷을 생성하는 방법을 배웁니다. 시작하기 전에 사용자로 MinIO 대시보드에 로그인했는지 확인하십시오.

MinIO에서 버킷을 생성하려면 "Buckets" 메뉴를 클릭하고 "Create Bucket" 버튼을 클릭합니다.

이제 버킷에 대한 이름과 세부 정보를 입력하고 "버킷 생성"을 클릭하여 확인합니다. 이 예에서는 새 버킷 test-bucket을 생성합니다.

버킷이 생성된 후 새 파일을 업로드하거나 test-bucket 내부에 디렉터리를 생성할 수 있습니다.

다음 화면에서 test-bucket에 새로 업로드된 pool1.png 및 pool2.png 파일을 볼 수 있습니다.

MiniIO 클라이언트 CLI 설정

MinIO는 명령줄을 통해 MinIO 개체 스토리지를 관리할 수 있는 클라이언트 애플리케이션을 제공합니다. 이 예에서는 MinIO 클라이언트 CLI를 클라이언트 시스템에 설치하고 MinIO 서버를 추가한 다음 명령줄을 통해 목록 버킷과 파일을 확인합니다.

로컬 컴퓨터에서 다음 명령을 실행하여 MinIO 클라이언트 CLI를 /usr/local/bin/mc에 다운로드합니다.

curl -o /usr/local/bin/mc https://dl.min.io/client/mc/release/linux-amd64/mc

다운로드 후 MinIO 클라이언트 CLI /usr/local/bin/mc를 실행 가능하게 만드십시오.

sudo chmod +x /usr/local/bin/mc

이제 다음 명령을 실행하여 MinIO 클라이언트 CLI의 버전을 확인하십시오. 시스템에 설치된 MinIO 클라이언트가 표시되어야 합니다.

which mc
mc --version

MinIO 클라이언트 CLI를 구성한 후 다음으로 MinIO 서버를 추가합니다.

다음 명령을 실행하여 MinIO 서버를 로컬 시스템에 추가하십시오. 별칭 이름 test-minio, MinIO 개체 저장소의 도메인 이름, 사용자 및 암호를 변경해야 합니다.

mc alias set test-minio https://minio.hwdomain.io:9000 admin PassMinioStorage

추가한 후에 Added test-minio successful과 같은 출력 메시지가 표시되어야 합니다.

이제 다음 명령을 실행하여 test-minio를 확인하십시오. 이제 test-minio 서버에 대한 자세한 정보를 얻을 수 있습니다.

mc admin info test-minio

다음으로 test-minio 서버에서 사용 가능한 버킷 목록을 확인합니다. test-minio 서버에서 사용할 수 있는 test-bucket을 가져와야 합니다.

mc ls test-minio

마지막으로 다음 명령을 실행하여 test-bucket의 파일 목록을 확인합니다.

mc ls test-minio/test-bucket

다음 화면에서 pool1.png 파일과 pool2.png 파일이 test-bucket에서 사용 가능한 것을 볼 수 있습니다. 해당 파일은 상단 예제에서 업로드한 파일과 동일합니다.

MinIO 명령줄을 통해 버킷 생성

이 마지막 단계에서는 MinIO 클라이언트 명령줄을 통해 버킷을 관리하는 방법을 배웁니다. 클라이언트 명령줄을 통해 새 버킷을 생성하고 파일을 업로드하고 MinIO 버킷의 파일 목록을 확인합니다.

다음 명령을 실행하여 test-minio 서버에 새 버킷 test-bucket2를 만듭니다.

mc mb test-minio/test-bucket2

아래 명령을 사용하여 새 파일 test.txt를 만듭니다. 이 파일은 test-bucket2에 업로드됩니다.

echo "test file" > test.txt

다음으로 아래의 mc cp 명령을 통해 test.txt 파일을 test-bucket2에 업로드합니다.

mc cp test.txt test-minio/test-bucket2

파일 업로드 후 다음 명령을 실행하여 test-bucket2의 파일 목록을 확인합니다.

mc ls test-minio/test-bucket2

이제 다음 스크린샷과 같은 출력을 받아야 합니다. test.txt 파일이 test-bucket2에 업로드됩니다.

이제 MinIO 사용자 대시보드로 돌아가 Buckets 메뉴를 클릭합니다. test-bucket2가 생성된 것을 볼 수 있습니다.

test-bucket2를 클릭하면 MinIO 명령줄을 통해 업로드된 test.txt 파일이 표시됩니다.

결론

이 가이드에서는 Rocky Linux 서버에 MinIO Object Storage를 설치 및 구성했습니다. 또한 Linux에서 디스크를 설정하고 SSL 인증서를 통해 MinIO를 보호하고 시스템 서비스로 MinIO를 실행하기 위한 기본 구성을 배웠습니다.

결국 MinIO 웹 관리 대시보드를 통해 버킷을 만들고 파일을 업로드하여 MinIO의 기본 사용법을 배웠습니다. 또한 MinIO 클라이언트 명령줄을 설치하는 방법과 MinIO 서버 추가, 버킷 생성, 버킷의 목록 파일 확인 및 특정 버킷에 파일 업로드를 위한 기본 사용법을 배웠습니다.