NAS & ODROID/OMV 5 NAS

OMV 5 NAS - Portainer Stack 과 HDD 라벨

awesometic 2020. 9. 7. 16:16
반응형
  • 환경: Odroid SBC + various HDDs
  • 최초 작성: 2020-09-07
  • 마지막 업데이트: 2020-09-08
  • 글을 퍼가실 땐 꼭 출처를 남겨주세요. :)

Portainer Stack

원래는 Portainer에서 굳이 Stack으로 서비스들을 실행시킬 필요는 없습니다. 하지만 Portainer에서 서비스들이 사용할 Volume들을 생성할 때 마운트 지점을 자유롭기 정하기 위해선 local-persist 라는 드라이버가 필요한데, 이 드라이버가 ARM 플랫폼에선 지원하지 않기 때문에  Odroid나 Raspberry Pi 등 ARM SBC에선 Stack으로 서비스들을 실행시켜야만 합니다.

복잡해 보이지만 Docker에 익숙해지면 익숙해질수록 docker-compose (Portainer 에서의 Stack)을 사용하는 게 훨씬 쉽습니다.

Portainer 웹 패널에서 왼쪽 Stacks 메뉴로 들어갑니다.

위의 Add stack 버튼을 눌러 새로운 Stack을 추가합니다.

기본 값에서 아래 텍스트 에디터에 docker-compose.yml 에 쓰이는 문법 그대로 설정 값들을 넣으시면 됩니다.

Portainer에서 Stack은 docker-compose 를 관리 Portainer의 규칙에 맞게 관리하기 위한 일종의 Superset입니다. 실제로 작동하진 않지만, 아래와 같은 docker-compose 설정값을 그대로 넣을 수 있습니다.

docker-compose 의 문법을 그대로 사용하기 때문에 docker-compose에 대해서 알고 계셔야 합니다. 이 가이드에선 복사, 붙여넣기 만으로도 작동이 되게끔 템플릿을 드리지만, 지속적인 유지관리를 위해선 Docker와 docker-compose에 익숙해지실 필요가 있습니다.
version: '2'

services:
  web-service:
    image: provider/web-service:latest
    container_name: web-service
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped

  database-service:
    image: provider/database-service:latest
    container_name: database-service
    ports:
      - 3306:3306
    environments:
      - DB_ROOT_PASSWORD: password
    restart: unless-stopped

실제로 어떻게 사용할 수 있는 지는 앞으로 몇 가지 서비스들과 함께 같이 추가해보도록 하겠습니다.

HDD 라벨

Portainer에서 컨테이너를 생성할 때, 컨테이너의 설정 파일이 들어갈 디렉토리를 지정할 수 있습니다. OMV 웹 패널에선 공유 폴더로 쉽게 지정 가능하지만, Docker를 사용할 땐 시스템 내 실제 디렉토리 이름을 알아야 합니다.

SSH 로 OMV 에 접속해 다음 명령어를 입력합니다.

ls -al /srv

OMV의 파일 시스템은 모두 /srv 경로 밑에, 앞에 dev-disk-by-라벨 이란 이름으로 마운트됩니다. 제 경우 dev-disk-by-label-HDD 란 디렉토리가 나타나는데, 이것을 봤을 때 실제 하드디스크는 /srv/dev-disk-by-label-HDD 에 마운트된 것을 알 수 있습니다.

라벨은 하드디스크의 경로 이름을 줄여주고, 여러 개의 디스크가 마운트되어 있을 때 구별이 잘 가게끔 도와줍니다. 파일 시스템을 만들 때 라벨을 지정하지 않았더라도 나중에 파일시스템 메뉴에서 지정해줄 수 있습니다.

만약 라벨이 없을 경우 실제 마운트되는 디렉토리 이름이 UUID 등 복잡한 식별자를 사용하기 때문에 굉장히 길어집니다.

이 경로를 잘 기억해서 후에 Docker 컨테이너를 만들 때 사용합니다.

반응형