Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Backend.AI 엔터프라이즈 고객 지원 가나다 - 박종현

Lablup Inc.
November 28, 2023
41

Backend.AI 엔터프라이즈 고객 지원 가나다 - 박종현

Lablup Conf 2023

Lablup Inc.

November 28, 2023
Tweet

More Decks by Lablup Inc.

Transcript

  1. 엔터프라이즈 수요의 확대 클라우드 기반 대규모 AI 학습/추론팜 운영 사업

    다양한 AI 가속기 운영 지원 단일 팜 데이터센터 GPU 서버 300대 이상 통합 운영 최초 BMT 오프라인 설치 다수의 엔터프라이즈 고객사 확보 최초 해외 사이트 설치/운영 HA 구성 / 멀티노드 클러스터링 최초 대학 고객 원격 지원 채널 단일 팜 데이터센터 GPU 서버 100대 통합 운영 GDS 스토리지 컨테이너 수준 통합 지원 고속 네트워킹, 스토리지 컨테이너 통합 본격 지원
  2. 엔터프라이즈 수요의 확대 § 아주 단순하게 말하면, 우리도 AlphaGo, ChatGPT

    같은 것 만들고 서비스 해보자는 수요 § 데이터센터 GPU 서버 시스템 구매 _ 클라우드의 경우 비용 문제 및 데이터 보안 문제로 여전히 접근이 어려움 _ 특정 프로젝트의 경우 온프레미스 시스템에 클라우드 자원을 탄력적으로 붙여 운영하는 하이브리드 형태 고민 § 다수의 GPU 서버를 다수의 개발자/연구자가 효율적으로 편리하게 사용할 수 있는 운영 플랫폼 수요 _ 인프라 관리의 복잡성 _ 다수의 엔터프라이즈 고객에게 핵심 가치는 연구개발이지, 연구개발을 위한 인프라 운영 관리가 아님 _ 빠르게 변화하는 AI 학습/추론 환경의 특성상, 루틴한 매뉴얼대로 운영하기도 어려움 _ 자체적으로 인프라 관리 인력과 비용을 감당할 것인가 vs 적절한 비용으로 외부 솔루션을 도입할 것인가
  3. 연구개발을 위한 인프라 관리의 복잡성 연구자별 GPU 장치 사용 스케줄

    수동 관리 어떤 서버의 어떤 GPU 장비를 어떤 사용자가 언제 쓸 것인지 결정 사용 종료시 수동 자원 반납 연구자별 OS 계정 제공 코드 실행을 위해 root 권한이 필요한 경우 대응 연구자별 스토리지 사용 권한 제어 팀/랩 단위 관리 어려움 이기종 가속기/GPU를 활용할 시 장비 종류 관리 소요 대규모 연산 수행 시 반복적 수동 설정 멀티 노드활용을 위한 SSH 접속 환경, 초고속 네트워크/스토리지 장치 설정 등 한 사용자의 실수가 전체 서비스에 영향을 미칠 가능성이 큼 사용자가 하나부터 열까지 코드 실행 환경을 구축해야함 다양한 규모의 워크로드 관리의 어려움 …
  4. 연구개발 산출물 서비스를 위한 배포 인프라 관리의 복잡성 추론 서비스

    연구자가 수동 운영 동적으로 생성/삭제되는 추론 서비스 라우팅 테이블 수동 관리 정적인 API 단말 주소 설정 부하 기반 스케일링 어려움 안정적 운영을 위한 LB/HA 관리 학습 결과물을 서비스하는 파이프라인 관리의 어려움 이기종 추론 가속기 관리 문제 …
  5. 엔터프라이즈 고객사 지원의 주요 흐름 § 계약 단계 _ 설치/운영에

    필요한 구체적인 사안 논의 및 컨설팅 참여 _ 설치 일정 및 제반 사항 확인/문의 § 설치 _ 기반 시스템 확인 OS 및 연산 가속 장치 GPU 등 호스트 구동 확인 설치 대상 서버의 연결 상태 및 방화벽 구성, NAT 유무 등 네트워크 망 구성 상태 확인 로컬 디스크 구조 / 공용 스토리지 마운트 및 작동 확인 HA 또는 도메인 적용시 VIP, 도메인, SSL 인증서 등 확인 HA 구성 여부에 따라 필요 일정에 다소 차이가 발생 _ Backend.AI Enterprise 설치, 구성, 테스트
  6. 엔터프라이즈 고객사 지원의 주요 흐름 § 관리자/사용자 가이드 세션 _

    설치 직후 보통 보여드리면서 안내 _ 별도의 관리자/사용자 가이드 세션 진행 § 운영 지원 _ 장애 대응 _ 기능 요청 및 버그 리포트 개발팀에 전달 및 배포 일정 관리 기능 요청의 경우 고객이 실제 필요한 부분을 최대한 도출 버그의 경우 가능하면 재현 상황을 만들어 개발팀과 논의할 수 있으면 최선 _ 기타 인프라 이슈에 관한 컨설팅 프론트/백엔드를 모두 제공하는 솔루션이라, 인프라 장애인 경우에도 일단은 연락이 먼저 오게 됨 _ 운영 지원의 만족도에 따라 추후 업셀링 up selling 에 큰 영향이 갈 수 있음
  7. 팀과 고객 사이를 적절하게 대변 Enterprise C/S Sales Dev Customer

    설치/운영 관련 기술적 논의 참여 계약상 지원 범위 논의/확인 개발 또는 버그 수정 필요 사항 논의 신규 기능 고객사 배포/가이드 사용중 불편 사항 조치 실제 현장의 피드백 청취 고객에게는 회사 입장을 대변 회사에게는 고객 입장을 대변
  8. 현장의 다양한 상황 § Stale file handle _ 주로 마운트

    된 NFS 연결이 끊겼을 때 발생 네트워크 장애 등 _ 네트워크 연결 점검 unmount mount § 코드 실행하다 보면 갑자기 속도가 느려질 때가 있어요 _ 메모리가 충분하지 않은 시스템의 경우 메모리 소비가 많아질 때 작업을 swap 메모리로 저장해서 느려질 수 있음 _ DGX 경우에는 실제 swap 파티션을 생성하지 않음 https://docs.nvidia.com/dgx/dgx os 6 user guide/installing on ubuntu.html _ 다만 Out of Memory OOM 발생 확률이 올라감
  9. 현장의 다양한 상황 § 업데이트 하고 났더니 갑자기 학습시 파일

    로딩이 안 되고 504 Gateway Timeout Error 발생해요 _ 학습 프로세스의 PID 확인 후 /proc/ pid /stack 커널 스택 조회하니 NFSv4에 read syscall 보낸 후 멈춤 _ Backend.AI 상에서 생성한 연산 세션과 동일한 컨테이너 환경을 docker run 명령으로 호스트에서 생성했더니 동일하게 문제가 재현 물론 브라우저가 아니니 504 에러는 안 납니다 _ https://www.ibm.com/docs/ko/aix/7.1?topic nfs version 4 _ 다수의 사이트에서 발생. 최근에는 스토리지 벤더의 특별한 권고가 있는 경우를 제외하고 NFSv3를 권장 # /etc/fstab 10.20.30.40:/myvolume /vfroot/myvolume nfsvers=3,rw,… 0 0
  10. 현장의 다양한 상황 § Network middlebox에서 오랫동안 유지되는 TCP 패킷

    drop _ 일정 시간 사용하다 보면 연산 세션 생성하면 PREPARING 상태에서 멈추는 문제 _ Manager Agent 간 RPC 요청 연결의 효율성을 위해 TCP 연결을 하나 생성한 후 계속 열어 두고 사용 _ Manager/Agent가 서로 다른 서브넷에 있고, 그 사이 트래픽을 중계하는 middlebox 라우터 등 에서 일정 시간 열린 TCP 채널을 강제로 닫는 설정이 되어 있는 경우 _ 연결이 끊어진 후 RST/FIN 신호조차 Manager/Agent 쪽에 전달되지 않아 Manager는 TCP 연결이 살아 있다고 판단하고 채널을 계속 재활용 하지만 실제로는 채널이 없어 Agent 쪽으로 RPC 요청이 전달되지 않음 _ RPC 요청을 보낼 때 항상 새로운 연결을 만들어 보내도록 수정 Manger Agent Network Middlebox ?
  11. 현장의 다양한 상황 § 이번에 CUDA 새 버전 나왔던데 우리

    코드가 돌아가나요? _ 코드마다 달라서 해봐야 압니다. _ GPU 서버 하나만 업데이트 해서 테스트 하고 잘 되면 나머지도 업데이트 하는 것이 안전합니다. § 새 GPU 서버 또는 CUDA 버전에서 코드 실행이 안 돼요 또는 속도가 느려요 _ A100 GPU의 경우 NGC 이미지 21.07 이전 이미지에 최적화 문제가 있어 21.07 이미지가 나온 후 해결된 사례 _ 새로운 환경에서는 이전 코드가 잘 실행될 수도 있지만 안 될 수도 있음 케바케 _ 이건 돌려보면서 튜닝을 해야하고 저희도 어쩔 수가 없습니다. § 코드 실행하면 segfault 가 나요 _ 대부분 OOM일 확률이 높습니다.
  12. 현장의 다양한 상황 § TensorFlow 실행하는데 메모리가 충분한 것 같은데도

    OOM이 발생해요 _ set memory growth 옵션을 켜면 괜찮아질 수도 있습니다. _ https://www.tensorflow.org/api docs/python/tf/config/experimental/set memory growth § PyTorch 코드를 실행하는데 이런 에러가 나면서 실행이 안 돼요 _ NotADirectoryError: [Errono 20] Not a directory: 'hipconfig’ _ PyTorch의 업스트림 이슈: https://github.com/pytorch/pytorch/pull/83009 _ 임시로 sudo vi /usr/local/bin/hipconfig 명령으로 hipconfig 파일을 만든 후 #!/bin/sh 만 추가해 저장하면 위 오류를 피해갈 수 있습니다.
  13. 엔터프라이즈 고객사의 주요 특징 § 오프라인 환경인 경우가 다수 _

    설치 및 운영에 필요한 데이터 반입 반출 어려움 _ 노트북 반입 쉽지 않음 _ 심한 곳은 휴대폰 반입도 금지 § 경우에 따라 다르지만 적어도 사이트 담당자가 있는 경우가 많음 _ 직접 만나는 고객이 엔드 유저보다는 사이트 담당자가 됨 _ 사이트 담당자가 운영을 잘 할 수 있게 도와주고 이슈 처리하는 역할 § 대체로 현장 방문 또는 통화를 통한 직접 지원 선호 § Backend.AI는 내부적으로는 상당히 복잡한 플랫폼으로, 각 모듈의 구조 및 역할과 서비스 설정 방식에 관해서도 어느 정도 지식이 필요 지원 공수의 스케일 문제
  14. 자동화... 재활용… 문서화… § 관리자/사용자 매뉴얼 _ 사용자: https://webui.docs.backend.ai/ko/latest/ /en/latest/

    for English version _ 관리자 현재는 엔터프라이즈 고객 전용 https://lablup inc backendai control panel manual.readthedocs hosted.com/ko/latest/ § 블로그 _ https://blog.lablup.com/posts/ § Knowledge Base KB : https://kb.backend.ai _ 좀더 문서를 쌓은 후 공개 예정 _ 사이트 관리자가 스스로 참고할 수 있는 문제 해결 가이드 _ 비슷한 이슈는 잘 정리된 링크로 즉시 전달
  15. 자동화... 재활용… 문서화… § 설치 자동화 및 고도화 _ 설치/업데이트

    공수 최소화 _ 파트너십 확장 특히 해외 파트너십