본문 바로가기

Biusiness Insight/Computer Science

[NVIDIA] AI 인프라 및 운영 - ③ AI 운영

반응형

 

13. AI 데이터 센터 관리 및 모니터링

13.1 Key Messages

  • 클러스터 관리 (Cluster Management)
    • 인프라 프로비저닝 (Infrastructure Provisioning)
    • 자원 관리 (Resource Management)
    • 작업 관리 (Workload Management)
  • 프로비저닝 (Provisioning Tools) : 프로비저닝은 하드웨어에 소프트웨어와 드라이버를 설치하는 과정
  • 모니터링 도구 (Monitoring Tools) : 모니터링은 AI 인프라 및 해당 소프트웨어, 서비스, 실행 중인 작업(job)의 상태와 매트릭을 확인하는 과정을 포함
  • 작업 관리 (Workload Management) : 자원할당, 작업 스케줄링 (Scheduling Jobs), 자원 사용량 모니터링 (Monitoring Resource Usage)

 

13.2 인프라 프로비저닝 (Infrastructure Provisioning)

  • 설치된 하드웨어는 최신 버전이 아니거나 올바른 소프트웨어, 펌웨어 버전이 아닐 수 있음
  • 프로비저닝 준비 과정에서 소프트웨어와 펌웨어의 정확한 버전을 확인하고 다운로드 해야함.
  • 펌웨어와 소프트웨어 다운로드 및 시스템 업데이트 : 운영 체제(OS), GPU 드라이버, 네트워킹 드라이버, 관리도구, 서버/스위치/스토리지에서 실행해야 하는 애플리케이션 등

<프로피저닝 도구>

구분 특징/기능 자원 환경 활용 사례
Ansible
ansible.com/
- 오픈소스 가번 IT 자동화 소프트웨어 애플리케이션
- 시스템 구성 및 소프트웨어 배포 가능
- 간단한 YAML 형식으로 플레이북 작성
- 에이전트가 필요 없는 에이전트리스(Agentless) 방식
온프레미즈,
클라우드
- 소규모 및 중소규모 서버 관리
- 빠른 배포 환경
Terraform
terraform.io/
- 클라우드 및 온프레미즈 자원을 구성할 수 있는 인프라스트럭처 코드 도구
- 다양한 클라우드 플랫폼과 호환성 제공 (AWS, Azure, GCP 등)
- 선언형 구문을 통해 자원 상태 관리
주로 클라우드 - 복잡한 멀티 클라우드 환경 관리
- 대규모 인프라 자동화
Foreman
theforeman.org/
- 서버 수명주기 전반을 관리할 수 있는 오픈소스 프로젝트
- 오케스트레이션 및 모니터링을 통해 서버 구성
- Puppet, Ansible 등 다양한 구성 관리 툴과 통합 가능
- 직관적 웹 기반 사용자 인터페이스 제공
온프레미즈 - 물리적 서버 및 가상 머신 구성/관리

 

13.3 자원관리 및 모니터링 (Resource Management and Monitoring)

1) 자원 관리 및 모니터링 개요

구분 모니터 (Monitor) 관리 (Manage)
컴퓨팅 노드
Compute Nodes
- 시스템 전반 상태
- GPU 및 CPU 지표
- 소프트웨어 및 OS 패치/업데이트 (보안 결함 기반)
- 펌웨어 업데이트
- 새로운 장치 드라이버 설치 및 기존 드라이버 업데이트
- 고장 난 구성 요소 교체
네트워킹
Networking
- 네트워크 혼잡
- 대역폭
- 연결 상태
- 불량 케이블 교체
- 새 연결 및 작업량 기반 업데이트/업그레이드
- 스위치 펌웨어 및 소프트웨어 업데이트
클러스터 구성 요소
Cluster Components
- 디스크 공간 사용량
- 파일 시스템
- 관리 노드 상태
- 관리 노드 OS 업데이트
- 온프레미즈 및 클라우드 간 소프트웨어 스택 동기화
- 사용자 클러스터 접근 관리

 

2) 자원 관리 및 모니터링 도구

도구 주요 기능 설명
Redfish
dmtf.org/standards/redfish
AI 데이터 센터의 다양한 관리 작업 수행 서버, 네트워크, 스토리지 장치 및 기타 인프라의 간단하고 안전한 관리를 제공하기 위해 설계된 표준
DCGM Exporter
docs.nvidia.com/
github.com/NVIDIA/dcgm-exporter
GPU 메트릭 수집 및 클러스터 모니터링 NVIDIA DCGM의 Go API를 기반으로 GPU 메트릭 수집 및 작업 부하 동작 이해 또는 클러스터 GPU 모니터링 가능
Prometheus & Grafana
grafana.com/docs/
메트릭 수집, 저장 및 시각화
(시계열 데이터)
- Prometheus는 메트릭을 수집 및 저장하는 오픈 소스 모니터인 시스템
- Grafana : 시계열 데이터 시각화를 위한 도구

 

13.4 작업 관리 및 모니터링 (Workload Management and Monitoring)

1) 작업 관리 및 모니터링 개요

관리 (Management) 모니터링 (Monitoring)
워크로드가 실행에 필요한 자원을 보유하고 있는지 확인
- 필요한 GPU 수
- 필요한 CPU 코어 수
작업(Job)의 리소스 사용량 확인
- GPU 및 CPU 사용량 추적
작업을 컴퓨팅 노드에 스케줄링 메모리 및 디스크 사용량 추적
작업 종료 작업 상태 확인
실패한 작업 재시작  

 

2) 작업 관리 및 모니터링 도구

도구 주요 기능 설명
Kubernetes
kubernetes.io
워크로드 관리 및 자동화 컨테이너화된 워크로드를 관리하고 오케스트레이션하는 오픈 소스 도구
Jupyter Lab
https://jupyter.org/
데이터 분석 및 시각화를 위한 대화형 환경 제공 데이터 과학자와 머신러닝 전문가가 코드 및 데이터 시각화와 같은 계산 문서를 생성하고 공유하는 데 사용하는 오픈 소스 웹 애플리케이션
Slurm
slurm.schedmd.com/doc
리소스 할당 및 스케줄링을 간소화하여 클러스터 환경에서 효율적인 작업 관리 제공 대규모 AI 및 HPC 클러스터에서 리소스 공유를 간소화하기 위해 SchedMD가 만든 도구

 

13.4 Base Commend Manager

기능 영역 설명
인프라 프로비저닝
Infrastructure Provisioning
OS 설치 및 클러스터 무결성 관리
- 운영 체제(OS)를 설치하고, 네트워킹, 보안, DNS를 설정하며 클러스터 무결성을 보장.
- 서버 관리 및 업데이트를 자동화하여 서버 일탈 방지
사용자 접근 및 작업 관리
User Access and Workload Management
Kubernetes 및 Jupyter 환경 자동화와 확장 지원
- 쿠버네티스(Kubernetes)를 배포하고, 확장을 자동화하며 NVIDIA NGC™ 컨테이너를 통해 Jupter 설정을 간소화. Run:AI 통합 포함.
자원 관리
Resource Monitoring
클러스터 성능 및 리소스 사용량 종합 모니터링
- 클러스터 및 작업(Job) 모니터링, GPU 메트릭, 리소스 할당, 액세스 제어, 차지백 옵션 제공

엔비디아 Base Commend Manager

 

 

14. 오케스트레이션, MLOps 및 작업 스케줄링

14.1 Key Messages

  • 오케스트레이션 및 스케줄링 (Orchestration & Scheduling)
  • 쿠버네티스 (Kubernetes) : 소프트웨어 배포, 확장 및 관리를 자동화하기 위한 오픈소스 컨테이너 오케스트레이션 시스템
  • SLURM : Linux 클러스터를 위한 오픈 소스 클러스터 관리 및 작업 스케줄링 시스템

 

14.2 오케스트레이션 & 스케줄링 (Orchestration & Scheduling)

오케스트레이션 (Orchestration) 작업 스케줄링 (Job Scheduling)
컨테이너와 관련된 작업을 자동화하는 방식으로,
관리 중인 환경의 요구사항에 따라 작업을 처리함.
사용 가능한 컴퓨팅 리소스에 워크로드를 할당하는 프로세스
- 컨테이너 기반
- 마이크로서비스와 AI 관련 워크로드를 지원하도록 설계됨.
- 추론(서빙)을 위해 확장 가능 : 요구사항에 따라, 자동 스케일 업/다운 가능
- 고급 스케줄링 기능을 위한 메타 스케줄러 필요
- 전체 워크플로우 및 작업 프로세스 관리
- 로드 밸런싱 : 컨테이너 간 트래픽 분배
- 베어메탈 기반
- HPC 설계 : 고성능 컴퓨팅 환경에 적합
- 추론 기능 없음
- 고급 스케줄링 기능 내장 : 우선순위 큐(priority queues), 선점(pre-emption) 등 고급 기능 제공
- 작업 및 태스크 할당
- 호스트 리소스 선택 : 컨테이너 실행을 위한 사용 가능한 호스트 리소스 결정

 

14.3 쿠버네티스 (Kubernetes)

1) 개요

  • 정의 : Kubernetes(K8s)는 소프트웨어 배포, 확장 및 관리를 자동화하는 오픈소스 컨테이너 오케스트레이션 시스템
  • 작업 정의 (Job Definition)
    • CUDA 컨테이너 사용
    • nvidia-smi 명령으로 실행
    • GPU 1개 필요
  • 쿠버네티스 워크플로우
    • UI 또는 CLX : 작업 생성 (Create Job), 생성된 작업은 API를 통해 처리됨
    • 마스터 노드 (Marster note) : 워커 노드의 요구사항을 평가하고 적합한 워커 노드 작업에 배포
    • 팟 (Pod) : 작업이 스케줄링되고, CUDA 컨테이너를 가져오는 등의 작업 수행
    • 워커 노드 (Worker Nodes) : 마스터 노드의 지시에 따라 작업 실행

쿠버네티스란 (source: 엔비디아)

 

2) 쿠버네티스 컴포넌트

쿠버네티스 컴포넌트

Components 설명
노드 (Node) K8s 클러스터에 추가된 서버
클러스터 (Cluster) 하나 이상의 노드로 구성된 집합
네임스페이스 (Namespace) 고유한 이름 객체를 포함하는 격리된 환경
컨테이너 (Container) 자체 포함된 배포 가능한 애플리케이션
파드 (Pod) 컨테이너와 관련 메타데이터를 포함하는 기본 실행 단위
볼륨 (Volume) K8s에서 공유할 수 있는 스토리지
서비스 (Service) 네트워킹, 포트 등을 포함한 네트워크 서비스
- 작업 (Job) : 특정 "작업"을 실행하고 완료하는 파드를 배포
- DaemonSet : 모든 노드에서 파드 복제본을 실행하도록 요구하는 객체
- 디플로이먼트 (Deployment) : 파드가 실행 중인지 확인하고 삭제된 경우 복사본을 다시 배포

 

3) 쿠버네티스에서 GPU 관리 (NVIDIA GPU Operator)

 

4) 엔비디아 Network Operator

  • Network Operator 구성요소
    • MLNX_OFED 드라이버
    • Kubernetes RDMA 공유 장치 플러그인 ( Kubernetes RDMA Shared Device Plugin)
    • NVIDIA Peer Memory 드라이버.
  • Network Operator는 GPU Operator와 함께 작동하여 호스트 네트워킹 소프트웨어를 배포하고 관리함.
  • Kubernetes에서 GPUDirect RDMA를 활성화

 

14.4 MLOps

1) 데이터센터를 위한 MLOps Ecosystem : https://www.nvidia.com/en-us/data-center/solutions/mlops/

엔비디아 MLOps 파트너

2) Machine Learning 학습 및 추론 운영화 (Operationalizing)

  • 데이터 전처리 및 피쳐 엔지니어링 (Feature Engineering)
  • 데이터, 모델, 환경, 매개변수 버전 관리
  • 실험, 결과 추적 및 비교, 모델 검증
  • 모델 및 파이프라인의 프로덕션 배포
  • 정확도 및 성능 모니터링, 재학습

3) MLOps 도구의 역할

  • 사용자 생산성 향상 및 워크플로우 가속화
  • 리소스 활용 극대화
  • 프로젝트 확장 가능성 제공

 

14.5 SLURM

1) SLURM 이란 : Simple Linux Utility for Resource Management

: SLURM은 리눅스 클러스터를 위한 오픈 소스 클러스터 관리 및 작업 스케줄링 시스템으로, SchedMD에 의해 개발됨

 

2) 주요 특징

  • 확장성 및 장애 내성
  • 커널 수정 불필요
  • 작업을 클러스터 리소스의 서브셋에서 실행하도록 스케줄링
  • AI 학습에 최적화
  • 고성능 작업 지원 (예: InfiniBand 네트워킹을 활용한 멀티 노드 작업)
  • 유닉스 (Unix) 계열 시스템과 밀접한 연계 : 기존 인증/보안 메커니즘과 쉽게 통합할 수 있음.

 

3)  구성 요소

  • 컨트롤러 : slurmctld
    • 중앙관리자로 워크로드를 모니터링하고 사용 가능한 클러스터 리소스를 관리
    • Primary와 Backup 구성으로 가용성 보장
  • 컴퓨트 노드 : slurmd
    • 컴퓨트 노드에서 실행되는 데몬으로, 작업 수신, 실행, 결과 반환을 담당
  • 주요 사용자 명령어
    • scontrol : 클러스터 설정 및 작업 제어
    • sinfo : 클러스터 상태 정보 확인
    • squeue : 실행 중인 작업 상태 확인
    • scancel : 작업 취소
    • sacct : 작업 계정 데이터 확인
    • srun : 작업 실행

SLURM 시스템 디자인 (source : 엔비디아)

 

4) 컨테이너 기반 멀티 노드 학습을 위한 SLURM

컨테이너 기반 멀티 노드 학습을 위한 SLURM (source : 엔비디아)

 

 

(source : 코세라 - 엔비디아)

 

반응형