설치

GUI 콘솔은 관리자가 제공하는 별도의 웹 주소로 접속하여 웹 서비스 형태로 이용할 수 있습니다. 사용자는 플랫폼 의존적인 데스크톱 앱을 따로 설치할 필요가 없으며, Chrome 등과 같은 최신 브라우저만 있으면 설치하면 됩니다. 마이크로소프트의 Internet Explorer 브라우저 개발이 중단되었고 웹 표준 및 최신 브라우저 기능을 충실히 따르지 않으므로 지원하지 않습니다.

  • 권장 브라우저: 최신 크롬 (최소한 버전 80 이상)
  • 요구사항: 웹 브라우저를 구동할 수 있는 머신 (2 코어, 4 GiB 메모리)

Backend.AI 데몬/서비스 구동을 위해서는 다음과 같은 하드웨어가 필요합니다. 최적 성능을 위해서는 아래 명기된 사양의 두 배 이상 필요합니다.

  • Manager: 2 코어, 4 GiB 메모리
  • Agent: 4 코어, 32 GiB 메모리, NVIDIA GPU (GPU 워크로드가 필요한 경우), > 512 GiB SSD
  • Console-Server: 2 코어, 4 GiB 메모리
  • WSProxy: 2 코어, 4 GiB 메모리
  • PostgreSQL DB: 2 코어, 4 GiB 메모리
  • Redis: 1 코어, 2 GiB 메모리
  • Etcd: 1 코어, 2 GiB 메모리

각 서비스를 설치하기 전에 사전에 설치되어야 할 주요 의존 호스트 패키지는 다음과 같습니다:

  • GUI 콘솔: 최신 브라우저를 구동할 수 있는 운영체제 (Windows, Mac OS, Ubuntu 등)
  • Manager: Python (>=3.8), pyenv/pyenv-virtualenv (>=1.2)
  • Agent: docker (>=19.03), CUDA/CUDA Toolkit (>=8, 11 추천), nvidia-docker v2, Python (>=3.8), pyenv/pyenv-virtualenv (>=1.2)
  • Console-Server: Python (>=3.8), pyenv/pyenv-virtualenv (>=1.2)
  • WSProxy: docker (>=19.03), docker-compose (>=1.24)
  • PostgreSQL DB: docker (>=19.03), docker-compose (>=1.24)
  • Redis: docker (>=19.03), docker-compose (>=1.24)
  • Etcd: docker (>=19.03), docker-compose (>=1.24)

첫 설치 후 다음과 같은 자료 또는 서비스가 제공됩니다:

  • DVD 1장 (Backend.AI 패키지 포함)
  • 사용자 GUI 가이드 매뉴얼
  • 관리자 GUI 가이드 매뉴얼 (엔터프라이즈 고객 전용)
  • 설치 리포트
  • 사용자/관리자 초기 방문 교육 (3-5 시간)

제품의 유지보수 및 지원 정보: 상용 계약에는 기본적으로 엔터프라이즈 버전의 월간/연간 구독 사용료가 포함됩니다. 최초 설치 후 약 2주 간 초기 사용자/관리자 교육(1-2회) 및 유무선 상의 고객 지원 서비스가 제공되며, 3-6개월 간 마이너 릴리즈 업데이터 지원 및 온라인 채널을 통한 고객 지원 서비스가 제공됩니다. 이후 제공되는 유지보수 및 지원 서비스는 계약 조건에 따라 세부 내용이 다를 수 있습니다. 오픈소스 무료 버전 사용자의 경우에도 유지보수 및 지원 플랜을 별도로 구입할 수 있습니다.

간단한 Backend.AI 서버 관리 가이드

Backend.AI 서버 데몬은 래블업의 지원팀이 설치하게 됩니다. 만약 데몬이나 서비스에 문제가 발생했을 시에는 contact@lablup.com 으로 연락하십시오.

Backend.AI는 여러 개의 모듈과 데몬으로 구성되어 있습니다. 여기서는 각 서비스에 관한 짧은 설명과 서비스 별로 문제가 발생하였을 때 사용할 수 있는 간단한 관리 가이드를 제공합니다. 관리 명령은 일반적으로 사용 가능하지만, 호스트 별 설치 상황에 따라 구체적인 사항은 달라질 수 있습니다.

Manager

사용자로부터 오는 모든 요청을 받아 처리하는 게이트웨이 서버입니다. 사용자의 요청이 연산 세션(컨테이너)과 관련 있다면, 해당 세션을 관리하는 Agent 또는 해당 컨테이너로 작업을 위임합니다.

# check status
sudo systemctl status backendai-manager
# start service
sudo systemctl start backendai-manager
# stop service
sudo systemctl stop backendai-manager
# restart service
sudo systemctl restart backendai-manager
# see logs
sudo journalctl --output cat -u backendai-manager

Agent

연산 워커 노드입니다. 연산 세션(컨테이너)의 수명주기를 관리합니다.

# check status
sudo systemctl status backendai-agent
# start service
sudo systemctl start backendai-agent
# stop service
sudo systemctl stop backendai-agent
# restart service
sudo systemctl restart backendai-agent
# see logs
sudo journalctl --output cat -u backendai-agent

Console-Server

사용자 웹 GUI 환경을 제공하고, 이메일/비밀번호 기반의 사용자 인증 또한 지원합니다.

# check status
sudo systemctl status backendai-console-server
# start service
sudo systemctl start backendai-console-server
# stop service
sudo systemctl stop backendai-console-server
# restart service
sudo systemctl restart backendai-console-server
# see logs
sudo journalctl --output cat -u backendai-console-server

WSProxy

사용자가 띄운 웹기반 앱(터미널, Jupyter Notebook 등)과 매니저 사이의 통신을 중계하는 서비스입니다.

cd /home/lablup/halfstack
# check status
docker-compose -f docker-compose.wsproxy-simple.yaml -p <project> ps
# start service
docker-compose -f docker-compose.wsproxy-simple.yaml -p <project> up -d
# stop service
docker-compose -f docker-compose.wsproxy-simple.yaml -p <project> down
# restart service
docker-compose -f docker-compose.wsproxy-simple.yaml -p <project> restart
# see logs
docker-compose -f docker-compose.wsproxy-simple.yaml -p <project> logs

PostgreSQL DB

Manager가 사용하는 데이터베이스입니다.

cd /home/lablup/halfstack
# check status
docker-compose -f docker-compose.hs.postgres.yaml -p <project> ps
# start service
docker-compose -f docker-compose.hs.postgres.yaml -p <project> up -d
# stop service
docker-compose -f docker-compose.hs.postgres.yaml -p <project> down
# restart service
docker-compose -f docker-compose.hs.postgres.yaml -p <project> restart
# see logs
docker-compose -f docker-compose.hs.postgres.yaml -p <project> logs

DB를 백업하기 위해서는 다음과 같은 명령을 사용할 수 있습니다. 구체적인 명령은 설치 환경에 따라 다양할 수 있습니다.

# query postgresql container's ID
docker ps | grep halfstack-db
# Connect to the postgresql container via bash
docker exec -it <postgresql-container-id> bash
# Backup DB data. PGPASSWORD may vary depending on the system configuration
PGPASSWORD=develove pg_dumpall -U postgres > /var/lib/postgresql/backup_db_data.sql
# Exit container
exit

백업 데이터를 통해 DB를 복원하려면 다음과 같은 명령을 실행할 수 있습니다. 구체적인 옵션을 설치 환경에 따라 다양할 수 있습니다.

# query postgresql container's ID
docker ps | grep halfstack-db
# Connect to the postgresql container via bash
docker exec -it <postgresql-container-id> bash
# Disconnect all connection, for safety
psql -U postgres
postgres=# SELECT pg_terminate_backend(pg_stat_activity.pid)
postgres-# FROM pg_stat_activity
postgres-# WHERE pg_stat_activity.datname = 'backend'
postgres-# AND pid <> pg_backend_pid();
# Ensure previous data be cleaned (to prevent overwrite)
postgres=# DROP DATABASE backend;
postgres=# \q
# Restore from data
psql -U postgres < backup_db_data.sql

Redis

캐시 서비스로, Agent와 연산 세션의 사용량 정보를 수집하고, Agent에서 Manager로 가는 heartbeat 신호를 중계합니다. 사용자의 로그인 인증 정보를 보관하기도 합니다.

cd /home/lablup/halfstack
# check status
docker-compose -f docker-compose.hs.redis.yaml -p <project> ps
# start service
docker-compose -f docker-compose.hs.redis.yaml -p <project> up -d
# stop service
docker-compose -f docker-compose.hs.redis.yaml -p <project> down
# restart service
docker-compose -f docker-compose.hs.redis.yaml -p <project> restart
# see logs
docker-compose -f docker-compose.hs.redis.yaml -p <project> logs

일반적으로, Redis 데이터를 백업할 필요가 없습니다. 사용자 로그인 세션 쿠키 정보, 컨테이너 별 실시간 사용량 등과 같은 일시적으로만 존재하면 되는 정보를 저장하고 있기 때문입니다.

Etcd

설정 서버로, Backend.AI의 전역 설정값을 보관하고 있습니다.

cd /home/lablup/halfstack
# check status
docker-compose -f docker-compose.hs.etcd.yaml -p <project> ps
# start service
docker-compose -f docker-compose.hs.etcd.yaml -p <project> up -d
# stop service
docker-compose -f docker-compose.hs.etcd.yaml -p <project> down
# restart service
docker-compose -f docker-compose.hs.etcd.yaml -p <project> restart
# see logs
docker-compose -f docker-compose.hs.etcd.yaml -p <project> logs

Manager에서 사용하는 Etcd 설정 데이터를 백업하려면 Manager가 설치된 폴더로 이동한 후 다음과 같은 명령을 사용하면 됩니다.

cd /home/lablup/manager  # paths may vary
backend.ai mgr etcd get --prefix '' > etcd_backup.json

백업 데이터를 통해 Etcd 설정을 복원하려면 다음과 같은 명령을 실행할 수 있습니다.

cd /home/lablup/manager  # paths may vary
backend.ai mgr etcd put-json '' etcd_backup.json