본문으로 건너뛰기

21.09: 2021년 11월 업데이트

· 약 14분
Lablup

안녕하세요! Backend.AI 21.09 / Enterprise R2 의 2021년 11월 업데이트 개선 사항에 대해 알려드립니다!

6개월 단위의 통합 업데이트 릴리즈이며, 주요한 버그 수정 및 필수 기능 개선 사항은 Backend.AI 21.03 / Enterprise R2 에도 반영됩니다. Backend.AI 20.09 및 그 이전 버전은 현재 사용 중인 고객들을 위한 긴급한 보안 패치가 아닌 한 더 이상 업데이트가 제공되지 않습니다.

  • Manager: 21.09.0 / 21.03.xx
  • Agent: 21.09.0 / 21.03.xx
  • Common: 21.09.0 / 21.03.xx
  • Client SDK: 21.09.0 / 21.03.xx
  • Storage-Proxy: 21.09.0 / 21.03.xx
  • WebServer: 21.09.0 / 21.03.xx
  • WebUI: 21.03.9 / 21.09.0
  • WSProxy: 21.07.0
  • Control Panel: 21.03.2

새로운 하드웨어 플랫폼 지원

ARM64 (aarch64) 환경에서의 직접 실행 지원 (21.09)

Backend.AI 클러스터를 ARM64 환경(Linux, macOS)에서 native로 실행할 수 있게 되었습니다. 현재 테스트가 완료된 환경은 AWS EC2의 Graviton 2 프로세서를 사용한 Ubuntu 20.04 환경 및 Apple Silicon 기반 macOS Big Sur 환경입니다. macOS의 경우 컨테이너는 Docker for Desktop 환경을 이용하여 ARM64용 리눅스 이미지를 사용할 수 있습니다. 향후 ARM64 노드와 x86-64 노드가 혼합된 클러스터에서의 스케줄링 지원과, Jetson Nano와 같은 IoT 노드 및 macOS의 CoreML 성능을 활용할 수 있도록 리눅스 컨테이너를 별도로 거치지 않는 native 실행형 모드가 추가될 예정입니다.

고속 네트워크 자동 인식과 RDMA 지원 (21.09 / 21.03)

Mellanox Infiniband 네트워크 장비를 구비하고 있다면 Backend.AI를 통해 별다른 설정없이 노드 간 고속 분산 가속 환경을 활용할 수 있습니다. InfiniBand 네트워크 인터페이스가 있을 경우, Backend.AI가 이를 자동으로 인식하여 사용자 세션 컨테이너에 관련 장치를 자동으로 마운트 합니다. 또한, GPU 노드에 Mellanox OFED 드라이버가 설치되어 있고 커널 이미지에 NCCL 라이브러리가 있을 경우, 원격 GPU간 RDMA 기능을 활용할 수도 있습니다.

NetApp 스토리지 통합 (21.09)

Storage-Proxy에 NetApp 스토리지 백엔드를 통합하여, NetApp 스토리지를 사용하는 경우 보다 상세한 실시간 통계 및 모니터링 기능을 지원합니다. NetApp 전용 가속 I/O 명령을 자동으로 지원하므로, 데이터 폴더(vfolder)에서 파일을 다룰 때 보다 높은 I/O 성능을 누릴 수 있습니다.

관리자 및 개발자를 위한 기능

통계 대시보드 (21.09 / 21.03, 엔터프라이즈 전용)

대규모 엔터프라이즈 고객을 위한 별도의 통계 및 실시간 성능 모니터링 대시보드 서비스가 추가되었습니다. 각 노드별, 컨테이너별 실시간 리소스 사용량과 GPU 사용량, 노드의 건강 상태 등을 확인할 수 있습니다.

엔터프라이즈용 대시보드: 기본 화면
엔터프라이즈용 대시보드: DBMS 사용 통계 화면* (*최근 6시간)
엔터프라이즈용 대시보드: Agent 별 GPU 사용 통계 화면* (*최근 15분)
엔터프라이즈용 대시보드: 사용자 별 자원 사용량 통계 화면* (*최근 6시간)
엔터프라이즈용 대시보드: 세션 별 자원 사용량 통계 화면* (*최근 6개월)

사용자를 위한 일반 기능

이미지 다운로드 시 진행상황 표시 (21.09)

Backend.AI에는 세션 생성 시 컨테이너 이미지가 미리 받아져있지 않은 경우 자동으로 다운로드하는 옵션을 제공합니다. 이번 업데이트를 통해 이미지 다운로드 진행 상황을 피드백할 수 있는 SDK/API를 개발하였고, CLI 환경에서 진행 정도를 표시하도록 개선하였습니다. GUI에서도 곧 지원될 예정입니다.

CLI 명령어 체계 개선 및 JSON 기반 출력 지원 (21.09)

공식 Client SDK의 CLI 명령어가 보다 일관성 있고 예측 가능한 명령어들을 제공하도록 개선되었습니다. 특히, backend.ai admin 하위 명령어들은 주제별로 단수형 단어를 사용하여 재분류되었고(예: scaling-group, agent) 각 주제 아래에는 액션을 나타내는 단어들이 일관성 있게 사용되도록(예: list, info) 바뀌었습니다. 일반 사용자들이 세션 실행 시 자주 사용하는 명령어들(run, start, rm)은 단축 명령어 방식으로 기존과 동일하게 지원합니다. 대부분의 결과 조회 명령어들은 이제 최상위 옵션으로 JSON 출력을 하도록 지정할 수 있어 보다 편리하게 자동화 스크립트를 작성할 수 있습니다. (예: backend.ai --output=json session list --status=running)

허용된 이미지 리스트 제공

프로젝트 또는 사용자별 선택적 이미지 목록 보여주기를 위한 초석으로, 허용된 이미지 리스트만 세션 런처 화면에서 보여줄 수 있도록 하는 기능입니다. 차후 이 기능을 통해 하나의 레지스트리에서 사용자 별로 다른 이미지를 생성할 수 있게 하여, 별 다른 설정 없이도 환경 설정의 자유도를 더욱 높이도록 할 것입니다.

오버레이 네트워크 세팅 기능 제공

오버레이 네트워크는 물리 네트워크 위에 성립되는 가상의 사설 네트워크로, Backend.AI에서 Docker daemon 호스트 간의 분산 네트워크를 생성하고 클러스터 세션을 생성하는 데 사용됩니다. Backend.AI는 오버레이 네트워크 생성 시 적용할 설정을 관리자가 지정할 수 있도록 하여, 설치 환경에 최적화된 오버레이 네트워크를 생성할 수 있습니다. 특히, 오버레이 네트워크 상의 노드 간 데이터 전송 시 Maximum Transmission Unit (MTU) 값을 지정하여 네트워크 속도를 최적화 할 수 있습니다.

오버레이 네트워크 세팅 UI

가속 컴퓨팅을 위한 옵션(OMP, BLAS) 제공

OpenMP, BLAS 환경 변수를 연산 세션 생성 시 설정할 수 있도록 하여, 멀티 스레드 작업 성능을 사용자가 튜닝할 수 있는 기능을 지원합니다. 예를 들어, 사용자의 코드가 OpenMP를 통해 멀티 스레딩 작업을 수행하는 경우, 작업 별로 생성할 스레드의 수가 OMP_NUM_THREADS 환경 변수를 통해 런타임에 결정됩니다. 따라서, 코드의 작동 방식 및 OMP_NUM_THREADS 값에 따라 동일한 환경에서 동일한 코드를 실행하더라도 성능이 달라질 수 있습니다. 이러한 멀티 스레딩 성능 튜닝을 지원하기 위해 세션 생성시 해당 옵션 값을 변경할 수 있는 사용자 인터페이스를 제공합니다.

OpenMP, BLAS 환경 변수 설정을 위한 UI

폴더 별 쿼타(용량 제한) 적용 기능 제공

노트

이 기능은 디렉토리 별로 쿼타를 지원하는 파일시스템(예: XFS 등)에서만 지원됩니다. 파일시스템 수준에서 이 기능을 지원하지 않는 경우 파일 I/O 오버헤드가 지나치게 커지므로, 일반적인 파일시스템에서는 지원이 어렵습니다.

스토리지 볼륨 내부의 폴더 별로 가용량을 제한할 수 있는 기능을 제공합니다. 기본적으로 사용자 계정의 키페어 정책에 설정된 최대 폴더 용량으로 설정이 되어있고 그 범위를 넘지 않는 선에서 더 작은 가용량으로도 설정할 수 있습니다.

폴더 정보 하단에 추가된 용량 정보
폴더 옵션 변경 다이얼로그에서 추가된 쿼타 설정 UI

WSProxy - 세션 컨테이너 간 앱 서비스 직접 연결 지원

WSProxy는 사용자 브라우저와 세션 컨테이너 내의 앱 서비스(Terminal, Jupyter, VSCode 등) 사이의 연결을 중계하는 서비스입니다. 기존에는 WSProxy가 각 앱 서비스에 연결하기 위해서는 [WSProxy -> WebServer -> Manager -> 컨테이너]와 같은 중계 경로를 거쳐야 했습니다. 이번 업데이트를 통해 [WSProxy -> 컨테이너] 로의 직접 연결을 지원하여(v2 API) 보다 앱 서비스의 응답 시간을 줄이고 효율을 개선하였습니다. 하이브리드 클라우드 환경 등과 같이 WSProxy가 컨테이너가 속한 Agent 호스트에 직접 접속할 수 없는 경우를 위해, 기존의 연결 방식도 지속적으로 지원합니다(v1 API).

관리자 메뉴 중 자원 > 자원그룹 탭에서 자원그룹 별 wsproxy 주소를 직접 입력 가능한 UI 추가

신규 다국어 인터페이스 (21.09 / 21.03)

이제 몽골어와 인도네시아어 인터페이스를 지원합니다.

그외 사용자 인터페이스 및 사용성 개선 내용

  • 강제 종료 버튼 margin 폭 수정
  • 세션 런처의 이미지 리스트를 나타내는 드롭다운 너비 수정
  • 로그인 계정에 등록된 접근 키/비밀 키 리스트 제공
  • (관리자용) 자원 페이지에서 스토리지 상세 정보 안내가 제공되지 않을 경우 아이콘 비활성화
  • 자원 관리 패널과 세션 목록 패널의 너비 동일하도록 수정
  • 세션 페이지의 자원 관리 패널이 반응형 웹에 대응하도록 수정
  • Help 링크 수정
  • 폴더 리스트에 폴더명 필터 추가
  • 로그 파일에 특정 정보 숨기도록 수정
  • 레지스트리 설정을 변경할 수 있는 UI 추가
  • 모든 페이지의 padding 일원화
  • 이용약관 및 개인정보처리방침 다이얼로그의 중복된 스크롤 제거
  • 폴더 목록 페이지 새로고침시 목록에 데이터가 보이지 않는 에러 수정

개발 및 연구 프레임워크 지원

Python 3.9 및 Ubuntu 20.04 기반 이미지 업데이트

기본으로 사용하는 Python 이미지가 CPython 3.9 및 Ubuntu 20.04 환경을 사용하도록 업데이트되었습니다.

TensorFlow 2.7, 2.6 / CUDA 11.3 지원

  • 이제 CUDA 11.3과 함께 TensorFlow 2.6, 2.7을 지원합니다.