본문으로 건너뛰기

"storage" 태그로 연결된 3개 게시물개의 게시물이 있습니다.

모든 태그 보기

· 약 15분
박종현

Backend.AI에서는 컨테이너를 활용하여 사용자별로 격리된 연산 환경(연산 세션)을 제공하고 있습니다. 일반적으로, 컨테이너의 파일시스템은 읽기만 가능한 계층과 쓰기 가능한 계층(writable container layer)으로 구분되어 있고, 컨테이너 사용자가 생성한 파일은 모두 쓰기 가능한 계층에 저장됩니다. 하지만, 쓰기 가능한 계층에 생성된 파일은 컨테이너가 삭제되면 함께 사라지는 문제가 있습니다. 이 문제는 컨테이너 생성 시 호스트 파일시스템의 특정 디렉터리를 마운트하고, 마운트 된 디렉터리에 데이터를 저장함으로써 해결할 수 있습니다. 외부에서 마운트된 디렉터리는 컨테이너의 수명 주기와 상관없이 독립적으로 존재하기 때문입니다.

Backend.AI 에서도 "스토리지 폴더" 또는 "데이터 폴더"라 불리는 마운트 폴더를 관리할 수 있는 기능을 제공하고 있습니다. 컨테이너 및 Backend.AI에서 외부 마운트 폴더를 관리하는 방식에 관해서는 Backend.AI의 자동마운트 폴더 기능 활용하기에서 보다 자세하게 다룬 바가 있습니다.

· 약 11분

이번 글에서는 Backend.AI의 스토리지 지원 기능 중 타 컨테이너 관리 솔루션에서는 보기 어려운 자동마운트 폴더 기능에 대해 소개합니다. 자동마운트 폴더를 활용하면 서로 다른 연산 세션 간에도 사용자가 설치한 프로그램이나 설정을 손쉽게 공유할 수 있습니다.

· 약 13분

Backend.AI에서는 storage folder 기능을 통해 컨테이너로 이루어진 사용자들의 연산 세션들이 종료되더라도 영구적으로 저장되는 입출력 데이터 및 소스 코드 등을 관리할 수 있도록 하고 있습니다. 이러한 storage folder들은 일반적인 구성에서 클러스터 내부의 스토리지 노드를 NFS로 마운트하는 방식으로 제공됩니다. 이를 통해 사용자의 연산 세션이 어떤 agent 노드에서 실행되든지 상관 없이 항상 각 사용자의 계산 코드는 동일한 storage folder들을 동일한 방식(컨테이너 내에서 /home/work 하위 폴더로 탑재)으로 접근할 수 있습니다.

그러나 이렇게 네트워크를 통해 접근하는 파일시스템을 사용하는 경우, 아무리 스토리지와 네트워크의 속도가 빠르다고 하더라도 수십만~수백만 개의 파일을 읽고 쓰는 것은 여전히 많은 성능 부하를 발생시키며, 최악의 경우 시스템을 다운시키는 현상을 초래하기도 합니다. 단적인 예를 들면, 하나의 폴더에 수백만개의 파일이 들어있는 경우 ls 명령어로 파일 목록을 조회하는 것조차 몇 분 이상이 걸릴 수 있습니다.