관리자 기능

관리자 계정으로 로그인 하면 왼쪽 사이드바에 Administration 메뉴가 추가로 보입니다. Backend.AI에 등록된 사용자 정보는 Users 탭에서 볼 수 있습니다. Domain admin의 경우 도메인에 속한 사용자 정보만 확인할 수 있고, super admin은 전체 사용자 정보를 조회할 수 있습니다. 사용자의 생성 및 비활성화는 super admin만 할 수 있습니다.

User management page

새로운 사용자 생성 및 정보 갱신

사용자는 CREATE USER 버튼을 클릭하여 생성할 수 있습니다. 이 때 비밀번호는 8자 이상, 알파벳/특수문자/숫자를 1개 이상 포함해야 합니다.

Create user dialog

사용자가 생성된 것을 확인합니다.

User management page

Controls 열에서 초록색 정보 버튼을 클릭하면 보다 자세한 사용자 정보를 확인할 수 있습니다. 사용자가 소속된 Domain과 Group 정보 또한 확인할 수 있습니다.

Detailed information of a user

Controls 열의 톱니바퀴로 된 설정 아이콘을 클릭하면 이미 존재하는 사용자의 정보를 업데이트 할 수 있습니다. 사용자의 이름, 비밀번호, 활성/비활성 여부 등을 변경하여 저장할 수 있습니다.

User update dialog

사용자 계정 비활성화

사용자 계정을 삭제하는 기능은 사용량 통계 처리 및 메트릭 보존, 실수로 인한 계정 유실을 막기 위하여 만약을 위해 관리자라 할지라도 막혀 있습니다. 대신 사용자 계정을 비활성화 해서 사용자가 해당 계정을 통해 로그인 하는 것을 막을 수 있습니다. Controls 열의 휴지통 아이콘을 클릭합니다. 확인을 위한 다이얼로그가 뜨는데, OKAY 버튼을 클릭하면 사용자를 비활성화 할 수 있습니다.

Deactivating user account

비활성 상태로 바뀐 사용자 계정은 Users 탭에서 보이지 않습니다.

사용자의 키페어 관리

사용자 계정에는 보통 하나 이상의 키페어가 할당되어 있습니다. 키페어는 사용자 로그인 후 Backend.AI 서버로 요청을 보낼 때 인증을 위해 사용 됩니다. 로그인을 위해서는 사용자 이메일 및 비밀번호를 통한 인증이 필요하지만, 사용자가 서버로 보내는 매 요청은 키페어에 기반하여 인증하게 됩니다.

한 사용자가 여러 개의 키페어를 가질 수 있지만, 사용자의 키페어 관리 부담을 줄이기 위해 현재는 사용자의 키페어 중 하나만 사용하여 요청을 보내도록 하고 있습니다. 또한, 새 사용자를 생성하면 자동으로 키페어가 하나 만들어지므로, 사용자 생성 시 별도로 키페어를 생성하여 할당할 필요는 없습니다.

키페어는 Users 페이지의 Credentials 탭에서 조회할 수 있습니다. 현재 활성화된 키페어가 바로 출력이 되고, 비활성 키페어를 조회하려면 하단의 Inactive 패널을 클릭하면 됩니다.

Credential list page

Users 탭과 마찬가지로 Controls 열의 버튼을 이용해서 키페어의 상세 정보를 확인하거나 업데이트 할 수 있습니다. 파란색 휴지통 버튼을 클릭하면 해당 키페어를 비활성화 할 수 있고, 빨간색 휴지통 버튼을 클릭하면 키페어를 완전히 삭제할 수 있습니다. 단, 키페어를 사용해서 연산 세션을 생성한 적이 있으면 삭제할 수 없습니다. 만약, 실수로 키페어를 삭제한 경우 우측 상단의 ADD CREDENTIAL 버튼을 클릭하여 해당 사용자의 키페어를 다시 생성할 수 있습니다. 필요한 경우 Advanced 패널을 클릭해서 access key와 secret key를 직접 명시적으로 적어줄 수도 있습니다.

Rate Limit 필드는 15분 동안 Backend.AI 서버로 보내는 요청의 최대 수를 지정하는 곳입니다. 예를 들어 1000으로 설정한 경우, 해당 키페어로는 15분 동안 1000개 이상의 API 요청을 보내면 서버에서 에러를 발생하고 요청을 받아들이지 않습니다. 기본값을 사용하다가 사용자의 패턴에 따라 API 요청 빈도가 많을 경우 이 값을 증가시키는 것을 권장합니다.

Add keypair dialog

리소스 정책 관리

리소스 정책은 Users 페이지의 Resource Policies에서 조회 및 수정할 수 있습니다. 리소스 정책을 통해 키페어 별로 자원 사용 및 기타 세션 사용 관련 정책을 설정할 수 있습니다. 필요에 따라 사용자용/연구용 등 목적으로 여러 가지 리소스 정책을 설정하여 키페어에 분리 적용할 수 있습니다.

주석

도메인과 그룹 수준에서 자원 정책을 설정하려면 super admin 전용 UI인 Manager Hub를 사용해야 합니다. 앱/웹 콘솔에서는 현재 키페어 기반의 자원 정책만 설정할 수 있습니다. Manager Hub는 엔터프라이즈 버전의 일부입니다.

Resource policy page

위 예제 이미지에서는 default 라는 이름의 리소스 정책 하나가 있습니다. Control 열의 설정 아이콘을 클릭하여 자원 정책을 변경할 수 있습니다. 설정값을 변경한 후 UPDATE를 클릭하면 저장할 수 있습니다.

Update resource policy dialog

각 설정값의 의미는 다음과 같습니다.

  • CPU: 키페어가 사용할 수 있는 최대 CPU core 수. 예를 들어, 4로 설정한다면 해당 리소스 정책을 사용하는 키페어는 4개 이상의 코어를 컨테이너에 할당할 수 없습니다. 이 때, 코어 수는 키페어가 생성한 모든 컨테이너의 합을 기준으로 제한을 걸게 됩니다. 만약 3개의 코어로 컨테이너를 하나 할당한 상황이라면 새로운 컨테이너는 1개의 코어만 할당할 수 있습니다. 또한, Unlimited에 체크하면 별도 리소스 정책을 정하지 않고 서버 자원이 허용하는 대로 자원 할당이 가능합니다. 이는 다른 자원 설정에도 마찬가지로 적용됩니다.
  • RAM: 최대 메모리
  • GPU: 최대 할당 가능한 물리 GPU의 수. Backend.AI 서버의 GPU 제공 모드가 "device"로 설정된 경우에만 사용됩니다.
  • fGPU: 최대 할당 가능한 가상화된 GPU의 수. Backend.AI 서버의 GPU 제공 모드가 "shares”로 설정된 경우에만 사용됩니다. fGPU의 단위는 GPU 장치 수와 상관없으며, 서버에 설정된 SM(streaming multiprocessor)과 GPU 메모리 단위에 따라 정해집니다.
  • Container per session: 한 세션이 가질 수 있는 최대 컨테이너의 수를 지정. 여러 개의 컨테이너를 묶어 하나의 세션으로 사용할 수 있는 기능을 위한 설정이며, 여러 컨테이너를 묶는 기능은 개발 중에 있어 현재는 사용되지 않는 값입니다.
  • Idle timeout: 작동 중인 세션이 idle timeout에 지정된 시간 동안 사용되지 않으면 자동으로 삭제하게 되는데, 그 시간 간격을 설정할 수 있습니다. 예를 들어, 600으로 설정할 경우 10분 동안 아무런 사용 내역이 없는 세션은 자동 삭제 됩니다. 0으로 설정하거나 Unlimited에 체크할 경우 자동 삭제를 하지 않습니다.
  • Concurrent Jobs: 한 번에 한 사용자가 생성할 수 있는 최대 세션의 수입니다. 5로 설정할 경우 해당 정책을 사용하는 키페어는 5개 이상의 연산 세션을 생성할 수 없습니다.
  • Allowed hosts: Storage 폴더 사용을 위한 스토리지 및 NFS가 여러 개 마운트 되어 있을 경우, 접근할 수 있는 스토리지 및 NFS 호스트를 제어할 때 사용합니다. 마운트 되어 있더라도 여기서 지정되지 않으면 사용자는 해당 저장소를 사용할 수 없습니다. 다만, 사용자가 속한 도메인/그룹 단에서 allowed hosts를 설정한 경우에는 사용할 수 있습니다. 도메인/그룹 단의 설정은 Manager Hub를 통해 할 수 있습니다.
  • Capacity: 최대 사용 가능한 저장소의 크기를 설정하는 곳입니다. 디스크 크기 제한은 특정한 상황에서만 가능하여 현재는 일반적으로 지원하고 있지 않으며, 일반적인 지원을 위해 개발 중입니다.
  • Max.#: 생성할 수 있는 최대 Storage 폴더 개수입니다.

CREATE POLICY 버튼을 클릭하여 새로운 리소스 정책을 생성할 수도 있습니다. 각 설정값의 위미는 상기 설명과 동일합니다.

리소스 정책을 생성한 후 키페어에 연결하기 위해서는 Users 페이지의 Credentials 탭으로 가서 원하는 키페어의 Controls 열에 위치한 톱니바퀴 설정 버튼을 누른 후 Select Policy 필드를 클릭하여 선택하면 됩니다.

이미지 관리

세션 생성 시 사용할 이미지 관리는 Environments 페이지의 Images 탭에서 할 수 있습니다. 탭에 들어가면 현재 Backend.AI 서버에서 가지고 있는 모든 이미지의 메타 정보가 출력됩니다. 이미지 별로 속한 레지스트리, 네임스페이스, 이미지 이름, 이미지의 기반 OS, Digest, 요구되는 최소 자원 등의 정보를 확인할 수 있습니다. 관리되고 있는 agent 노드 중 하나 이상에 다운로드 되어 있는 이미지의 경우 좌측에 체크 표시가 됩니다. 체크가 없는 이미지는 어느 agent에도 설치되지 않았음을 의미합니다.

주석

특정 agent를 선택하여 이미지를 설치하는 기능은 현재 개발 중에 있습니다.

Image list page

Controls 열의 설정 아이콘을 클릭하여 이미지의 최소 자원 요구량을 변경할 수 있습니다. 이미지마다 최소 동작을 위해 필요한 연산 자원 양 및 하드웨어가 있습니다. (예를 들어, GPU 전용 이미지의 경우 최소 할당 GPU가 있어야 합니다.) 최소 자원량의 기본값은 이미지의 메타데이터에 포함된 채로 제공됩니다. 각 이미지마다 지정 된 자원의 양보다 작은 자원으로 세션을 생성하려고 할 경우, 해당 요청은 자동으로 이미지 최소 자원 요구량으로 조정된 후 생성이 진행됩니다.

경고

미리 지정된 값보다 작은 양으로 최소 자원 요구량을 변경하지 마세요! 이미지 메타데이터에 포함된 최소 자원 요구량은 테스트를 거쳐 결정된 값입니다. 변경하려는 최소 자원량에 대하여 정말 잘 알고 있지 않은 경우 기본값으로 남겨두시기 바랍니다.

Update image resource setting

도커 레지스트리 관리

Environments의 Registries 탭을 클릭하여 현재 연결되어 있는 도커 레지스트리의 정보를 확인할 수 있습니다. index.docker.io 는 도커에서 서비스 하는 레지스트리로 기본적으로 등록되어 있습니다.

주석

오프라인 환경일 경우 기본 도커 레지스트리에 접근이 불가능하므로, 우측 휴지통 아이콘을 클릭하여 삭제하면 됩니다.

Controls에 있는 리프레시 아이콘을 클릭하여 해당 레지스트리에 저장된 Backend.AI 용 이미지 정보를 Backend.AI에 받아올 수 있습니다. 레지스트리에 저장된 이미지 중 Backend.AI 용으로 레이블 되지 않은 이미지 정보는 따로 받아오지 않습니다.

Registries page

ADD REGISTRY 버튼을 클릭하여 운영하고 있는 사설 도커 레지스트리를 추가할 수 있습니다. 이 때, Registry Hostname과 Registry URL 주소는 동일하게 설정하여야 하고, Registry URL의 경우 http:// 또는 https:// 와 같은 scheme을 명시적으로 붙여 주어야 합니다. 또한, 해당 레지스트리에 저장되는 이미지는 반드시 Registry Hostname을 접두어로 한 이름을 가져야 합니다. Username과 Password는 선택 사항으로, 레지스트리에서 별도 인증 설정을 한 경우에는 채워주시면 됩니다.

주석

index.docker.io 의 경우 Hostname과 Registry URL가 다른데, 이는 도커에서 기본 레지스트리의 경우 별도 예외 처리를 해주기 때문입니다. 기본 레지스트리가 아닌 경우 Hostname과 Registry URL을 맞추어 주어야 연결할 수 있습니다.

Add registry dialog

레지스트리를 생성하고 메타 정보를 업데이트 했다고 하더라도 사용자가 바로 해당 레지스트리에 있는 이미지를 사용할 수는 없습니다. Storage 폴더 사용을 위해 allowed hosts를 등록해야 했던 것처럼, 레지스트리 등록 후 도메인 또는 그룹 수준에서 allowed docker registries 필드에 해당 레지스트리를 등록해야 도메인 또는 그룹 소속 사용자가 레지스트리 이미지에 접근할 수 있습니다. Allowed docker registries 등록은 도메인과 그룹 관리 기능이 있는 Manager Hub를 이용해서 할 수 있습니다. 키페어의 리소스 정책에서 allowed docker registries를 설정하는 기능은 아직 제공하지 않고 있습니다.

리소스 프리셋 설정

연산 세션을 생성할 때 Resource allocation 패널에서 다음과 같은 사전 정의된 리소스 프리셋이 출력 됩니다. Super admin에게는 이 리소스 프리셋을 설정할 수 있는 기능을 제공합니다.

Resource presets in compute session launch dialog

Environment 페이지의 Resource Presets 탭으로 이동합니다. 현재 정의되어 있는 리소스 프리셋의 리스트를 확인할 수 있습니다.

Resource presets tab

Controls 열의 설정 아이콘(톱니바퀴 모양)을 클릭하여 리소스 프리셋이 제공할 CPU, RAM, fGPU 등의 자원을 설정할 수 있습니다. 아래 예제의 경우 Backend.AI 서버의 GPU 제공 모드가 shares이므로 GPU 필드는 비활성화 되어 있습니다. 원하는 값으로 자원을 설정한 후 저장하고 연산 세션 생성 시 해당 프리셋이 출력되는지 확인해 봅니다. 프리셋에 정의된 자원량보다 적은 자원만 할당 가능한 경우에는 해당 프리셋이 출력되지 않습니다.

Modify resource preset dialog

Agent 노드 조회

Super admin의 경우 Resources 페이지의 Connected 탭에서는 현재 Backend.AI에 연결된 agent 워커 노드를 조회할 수 있습니다. 노드의 IP와 연결된 시간, 현재 사용중인 실제 리소스 등을 조회할 수 있습니다. 콘솔 앱에서는 별도로 agent 노드를 조작하는 기능은 제공하지 않습니다.

Agent node list

Terminated 탭으로 이동하면 한 번 연결되었다가 종료되거나 연결이 끊긴 에이전트의 정보를 확인할 수 있습니다. 노드 관리에 참고 자료로 활용할 수 있습니다.

Terminated agent node list

리소스 그룹 관리

Agent는 리소스 그룹이라는 단위로 묶일 수 있습니다. 예를 들어, V100 GPU를 탑재한 agent가 3대, P100 GPU를 탑재한 agent가 2대 있는데, 사용자에게 두 GPU 자원을 별도로 노출하고 싶을 경우 V100 agent 3대를 하나의 리소스 그룹으로 묶고, 나머지 P100 agent 2대를 다른 리소스 그룹으로 묶어서 관리할 수 있습니다.

리소스 그룹에 특정 agent를 추가하는 작업은 현재 UI 상에서 처리되지 않으며, agent 설치 폴더의 설정 파일 옵션을 수정한 뒤 agent를 재시작 하는 방식으로 가능합니다. 리소스 그룹은 Resources 페이지의 Scaling Group 탭에서 조회할 수 있습니다.

Resource group tab

Control 열에서 설정 아이콘을 클릭하여 리소스 그룹을 편집할 수 있습니다. Select scheduler 필드에서 연산 세션 생성 스케줄링 방식을 선택할 수 있는데, 현재 지원하는 방식은 FIFO, LIFO, DRF 세 가지 입니다. FIFO와 LIFO는 가장 처음 또는 가장 마지막에 작업 큐에 들어온 연산 세션을 먼저 생성하는 방식으로 스케줄링 방식이고, DRF는 Dominant Resource Fairness의 약자로 사용자 별로 최대한 공평하게 자원 할당이 가능하도록 조절하여 스케줄링 하는 방식입니다. Active Status를 꺼서 해당 리소스 정책을 비활성화 할 수 있습니다.

Modify resource group dialog

CREATE 버튼을 클릭하여 새로운 리소스 정책을 생성할 수 있습니다.

시스템 설정 조회

System Settings 페이지에서 Backend.AI에 설정된 주요 설정값을 조회할 수 있습니다. 현재는 몇가지 변경 기능 및 설정 조회 기능을 제공하고 있습니다.

주석

향후 CLI에서 지원하는 다양한 설정 변경 기능을 GUI에도 계속 추가할 예정입니다.

서버 관리 메뉴

Maintenance 페이지로 이동하면 서버를 관리할 수 있는 몇 가지 버튼을 볼 수 있습니다.

  • RECALCULATE USAGE: 간혹 네트워크 접속이나 도커 데몬의 컨테이너 관리 문제로 컨테이너가 실제로 사용하고 있는 자원과 Backend.AI에서 출력되는 자원 점유량이 일치하지 않는 경우가 있을 수 있습니다. 그 때 RECALCULATE USAGE 버튼을 클릭하면 자원 점유량을 수동 보정할 수 있습니다.
  • RESCAN IMAGES: 등록된 모든 도커 레지스트리에서 이미지 메타 정보를 받고 업데이트 합니다. Backend.AI에서 사용 가능한 이미지를 레지스트리에 새로 등록한 경우 사용할 수 있습니다.
Maintenance page

주석

사용하지 않는 이미지를 제거하거나, 주기적 관리 일정 등록 등 기타 관리에 필요한 설정이 계속 추가될 예정입니다.