출처: https://www.netapp.com/blog/why-parallel-nfs-is-the-right-choice-for-ai-ml-workloads/
인공지능(AI) 워크로드에 대한 요구 사항은 운영 규모와 완료 속도에 따라 좌우되는 경우가 많습니다. 이러한 요구 사항을 충족하기 위해 서두르다 보면 오랜 시간 검증된 환경이 간과되는 경우가 많고, 결국 기업은 사일로화되고 유지 관리가 어려운 맞춤형 복잡한 솔루션을 구축하게 됩니다. 설상가상으로, NFS가 우리 주변에서 가장 널리 사용되는 파일 시스템 환경임에도 불구하고 AI 및 머신러닝(AI/ML)에 NFS를 사용하는 것에 대한 부정적인 여론이 형성되고 있습니다.
AI/ML 환경에서 NFS 사용에 대한 오해와 반대 의견은 비효율적인 설정과 NFS의 최신 기능 사용 거부와 관련이 있습니다. 이 블로그 게시물에서는 NFS의 개선 사항을 강조하고, 요구 사항을 전혀 희생하지 않고 AI 환경을 원활하게 부트스트래핑할 수 있는 잠재력을 보여드리고자 합니다. 이를 증명하기 위해, 이 블로그 게시물에서는 NetApp® ONTAP® 소프트웨어가 호스트 환경의 구성 변경 없이 AI/ML 워크로드를 처리하면서도 요구 사항을 충족하거나 초과하는 성능을 제공할 수 있는 역량을 강조합니다.
AI/ML 워크로드의 과제
AI를 활용하는 사례가 점점 더 많아짐에 따라 데이터 액세스, 데이터 컴퓨팅, 그리고 데이터 스토리지에 대한 부담이 커지고 있습니다. GPU가 고성능을 발휘하려면 데이터에 손쉽게 접근할 수 있어야 합니다. GPU Direct Storage와 같은 기술은 고대역폭 링크를 통해 방대한 스토리지에 대한 액세스를 용이하게 합니다. 이러한 액세스를 위해 GPU와 스토리지 어레이 사이에 여러 개의 병렬 레인이 설정됩니다. 전송 방식 또한 네트워크 레인의 포화 상태를 유지하는 데 중요한 역할을 합니다. 사실 NFSv3 서버는 단일 서버, 다중 클라이언트 모델 기반으로 설계되어 있어 이러한 부하를 감당할 수 없습니다.
링크를 완전히 포화시키고 GPU를 계속 사용하게 하려면 스토리지와 컴퓨팅 간의 동시 I/O를 구동할 수 있는 다중 I/O 경로 프레임워크가 필요합니다. 병렬 파일 시스템은 데이터를 여러 부분으로 분할하여 여러 서버에 저장하고 동시 액세스를 제공하도록 설계되었습니다. 이러한 파일 시스템은 데이터의 다양한 영역을 인덱싱하는 고유한 방식을 제공하여 데이터에 대한 동시 액세스를 가능하게 합니다. 이렇게 여러 I/O 경로를 조율하여 사용하면 I/O 성능이 크게 향상됩니다.
NFSv3는 트래픽을 분리할 방법이 없기 때문에 메타데이터 성능은 AI/ML의 또 다른 핵심 요구 사항으로, 사용자들이 병렬 파일 시스템을 선호하게 만드는 요인입니다. 그러나 병렬 파일 시스템 구축에는 비용이 많이 들고 유지 관리를 포함한 신중한 고려가 필요합니다. 벤더 종속성, 독점 클라이언트, 그리고 분산된 데이터 문제는 말할 것도 없습니다.
게임 체인저—NFSv4.1
NFS 4.1 버전은 고속 액세스를 위한 NFS 구축 과정에서 발생하는 여러 가지 해결 방법과 제약 사항을 해결합니다. 이는 성능 향상에 중점을 둔 프로토콜의 대대적인 재설계입니다.

병렬 NFS
특히 버전 4.1에서 병렬 NFS(pNFS)는 진정한 스케일아웃을 지원하여 데이터를 여러 서버에 분산하고 클라이언트가 여러 경로를 통해 직접 액세스할 수 있도록 합니다. pNFS의 또 다른 특징은 클라이언트가 파일 레이아웃 드라이버를 사용하여 서버와 통신할 수 있도록 한다는 것입니다. 트래픽을 분리하여 메타데이터(파일 속성을 설명하는 파일 시스템 호출)와 데이터(읽기 및 쓰기 트래픽)를 클러스터 내의 여러 서버에서 독립적으로 처리할 수 있습니다.
위 그림은 마운트 서비스 작업(예: 열기, 닫기, 통계, 조회, 디렉토리 읽기) 중에 프로비저닝되는 메타데이터 서버(MDS)에 대한 여러 연결을 강조합니다. 모든 고속 노드에 상주할 수 있는 파일의 사용자 데이터는 데이터 서버(DS)를 통해 직접 액세스할 수 있습니다. 이러한 연결은 파일 레이아웃에 대한 응답을 기반으로 동적으로 설정됩니다.
AI/ML 워크로드 제품군 내의 다양한 작업은 전송 과정에서 데이터와 메타데이터를 분리할 수 있을 때 큰 이점을 얻습니다. 또한, 작업 유형에 대한 독립적인 연결과 다양한 파일에 대한 액세스를 통해 이 아키텍처는 AI/ML 워크로드 실행에 매우 적합합니다.
세션 트렁킹
NFS 트래픽을 분리하고 I/O 액세스를 위한 직접 경로를 제공하는 것만으로는 사용 가능한 모든 대역폭을 포화시키기에 여전히 부족합니다. 클라이언트와 서버 간의 네트워크 링크를 포화시키는 확실한 방법은 두 연결 사이에 여러 연결을 생성하는 것입니다. NFSv4.1에 세션 트렁킹 기능이 추가되어 이러한 목적을 달성할 수 있었습니다. 세션 트렁킹은 데이터 서버에 사용 가능한 모든 인터페이스의 처리량을 통합함으로써 네트워크 대역폭을 극대화하는 데 도움이 됩니다. 이러한 통합은 동일한 세션 내에서 각각 서로 다른 소스 및 대상 네트워크 주소를 가진 여러 연결을 연결함으로써 수행됩니다.
이전 그림에서 볼 수 있듯이, 이제 NFS 작업은 클라이언트와 서버 간의 모든 사용 가능한 인터페이스의 처리량을 합친 수준으로 진행할 수 있습니다. 이러한 네트워크 대역폭의 다중화는 NFS 원격 프로시저 호출(RPC)을 전송하는 고속 레인을 생성합니다.
pNFS 트렁킹
다중 경로 기능을 pNFS와 결합함으로써, 파일 시스템의 메타데이터나 읽기/쓰기 트래픽, 또는 둘 다를 전달하는 집중된 레인을 확보할 수 있습니다. 결과적으로 생성되는 아키텍처는 다른 병렬 파일 시스템과 매우 유사하지만, 설치 및 유지 관리 비용이 들지 않습니다. 다음 그림은 잘 알려진 병렬 파일 시스템인 Lustre와 pNFS 간의 아키텍처 유사성을 잘 보여줍니다.

표준화된 NFS 의미 체계를 채택함으로써 이제 우리는 시간에 검증된 환경에서 고속 디스크, 고속 네트워크, 강력한 컴퓨팅을 함께 활용할 수 있게 되었습니다.
ONTAP 준비
이전 기술 논의에서 언급했듯이 AI/ML은 처리량 경쟁입니다. 워크로드는 주로 데이터 처리, 모델 학습, 그리고 추론으로 구성됩니다. 스토리지 관점에서는 최종 모델 생성 전에 주기적인 체크포인트를 통해 대용량 데이터 세트를 수집하고 내보내는 것을 의미합니다. NetApp ONTAP에서는 스케일아웃 NAS, FlexGroup, NFS over RDMA, pNFS, 세션 트렁킹 등과 같은 여러 기술이 AI/ML 워크로드 지원의 중추가 될 수 있습니다.
데이터 레이아웃
AI/ML 데이터 세트의 크기는 끊임없이 증가하고 있으며, 이를 하나의 단위로 처리해야 합니다. FlexGroup은 이러한 규모의 데이터에 적합한 선택입니다. 클러스터 내에 데이터를 균등하게 분산할 수 있는 자유와 유연성을 제공하기 때문입니다. 클러스터 내 모든 노드에서 데이터에 균등하게 액세스할 수 있으므로, 전체 클러스터의 통합 대역폭을 사용하는 핫스팟 없이 진정한 스케일아웃 솔루션을 구현할 수 있습니다. 각 노드에 듀얼 100Gbps RDMA over Converged Ethernet(RoCE) 포트가 있는 8노드 ONTAP 클러스터를 상상해 보세요. 이제 시스템은 AI/ML을 위한 단일 작업을 수행하는 데 필요한 800Gbps의 대역폭을 확보했습니다. 이 정도면 충분합니다!
데이터 전송
NFS over RDMA 사양 지원을 통해 메모리 복사의 비효율성이 제거되었습니다. 데이터를 호스트의 시스템 메모리에서 서버로 직접 복사할 수 있으며, 그 반대의 경우도 마찬가지이므로 CPU 오버헤드가 발생하지 않습니다. 이 기능은 NFS에서 고속을 구현하는 데 있어 중요한 개선 사항입니다.
더욱이 이 기술은 GPU Direct Storage(GPU Direct Storage)와도 호환됩니다. NVIDIA가 병렬 컴퓨팅을 위해 개발한 CUDA와 같은 최신 프로그래밍 모델은 기본적으로 NFS over RDMA를 사용할 수 있습니다. 데이터 과학자가 CUDA 지원 프로그램을 개발하는 경우, 데이터가 어디에 저장되는지는 중요하지 않을 가능성이 높습니다. NFS over RDMA 시맨틱을 사용하여 스토리지에서 GPU 메모리로 데이터를 전송하기만 하면 됩니다. ONTAP의 성숙한 NFS 스택은 최고의 표준으로, NFS over RDMA를 조기에 도입하여 GPU 직접 스토리지의 모든 측면을 검증해 왔습니다.
데이터 가속
마지막으로, 사용 가능한 대역폭을 포화시키는 데 중요한 단계는 여러 NFS 스트림을 실행할 수 있는 기능입니다. ONTAP의 pNFS 구현 및 RDMA 마운트를 위한 세션 트렁킹은 NUMA(Non-Uniform Memory Access)를 방지하고 각 노드에서 사용 가능한 모든 인터페이스 카드의 대역폭을 통합합니다. 클러스터 확장에 따라 I/O 연결을 동적으로 생성하고 확장할 수 있는 기능은 더 많은 사용 사례가 추가됨에 따라 AI/ML 워크로드가 그에 맞춰 처리될 수 있도록 지원합니다.
결과
FlexGroup 볼륨이 클러스터 전체에 균일한 데이터 분산을 제공하고 전송을 통해 데이터 전송의 비효율성을 제거함으로써 ONTAP은 니어라인 속도로 데이터 처리량을 향상시킵니다. 이를 입증하기 위해 몇 가지 테스트를 진행했습니다. GPU Direct Storage를 지원하는 NVIDIA DGX A100 시스템을 4개의 고가용성(HA) 쌍으로 구성된 NetApp AFF A800 클러스터에 연결했습니다. 이 구성은 호스트 환경에 대한 업데이트가 전혀 필요하지 않았습니다. 자세한 내용은 관련 블로그 게시물을 참조하십시오. 하지만 가장 중요한 점은 NFS를 통해 AI/ML 워크로드를 실행하는 데 있어 탁월한 속도를 구현하는 간편한 설정입니다.

위 그림은 ONTAP 노드당 RoCE 인터페이스가 두 개뿐인 NVIDIA DGX A100 시스템의 개략도입니다. 달성된 처리량은 회선 속도의 약 86%이며, 엔지니어링 후 분석 결과 각 노드는 더 높은 수준으로 확장할 수 있는 여지가 더 있음을 보여줍니다.
pNFS와 ONTAP을 사용하여 AI/ML 워크로드를 최적화하세요!
데이터 규모에 맞춰 확장하면서도 데이터 액세스에 제약이 없는 파일 시스템은 AI/ML 워크로드의 가장 기본적인 요건입니다. 하지만 이 기본 요건이 충족되면, 간편한 설정과 풍부한 기능이 AI/ML 환경을 정의합니다. 특정 벤더의 독점 파일 시스템을 사용하면 빠른 속도를 얻을 수 있지만, 해당 스토리지 시스템의 데이터는 영원히 고립된 상태로 유지됩니다. 비독점 시스템에서의 접근 기능을 희생하지 않으면서 AI/ML의 요건을 충족하거나 능가하는 범용 파일 시스템을 구축해야 합니다.
ONTAP FlexGroup 볼륨은 풍부한 기능을 제공합니다. Ontap은 여러 클라우드 서비스를 제공하는 유일한 데이터 관리 소프트웨어입니다. 기존 액세스 방식을 사용하여 AI/ML 워크로드를 지원하는 새롭게 도입된 기능은 모든 플랫폼에서 데이터의 유동성 과 가용성을 유지합니다.
ONTAP의 새로운 기능은 AI/ML 워크로드에 대한 NFS의 부정적인 주장을 반박하는 데에도 도움이 됩니다. NFS는 다양한 종류가 있으며, pNFS 트렁킹을 통해 대규모 데이터 저장 및 액세스를 처리할 수 있으므로 AI/ML 엔진을 계속 실행하고 기존 NFS 환경에 통합할 수 있습니다.
ONTAP과 pNFS를 사용하여 AI/ML 워크로드를 향상시키고, 가속화하고, 간소화하는 방법을 알아보세요. 시작하려면 ONTAP 클러스터를 최신 릴리스로 업그레이드하세요. 최신 릴리스 후보(RCC)에 대한 자세한 내용은 support.netapp.com을 참조하세요 .