WEKA 스토리지 솔루션
WEKA 데이터 플랫폼은 엔터프라이즈 데이터 스택을 현대화하기 위해 구축된 소프트웨어 기반 솔루션입니다. 고급 AI 네이티브 데이터 파이프라인 중심 아키텍처는 대규모 환경에서 높은 성능을 제공하므로 AI 워크로드가 더 빠르게 실행되고 더 효율적으로 작동합니다.
우리는 다음과 같은 이점 때문에 AI JVD 설계의 일부로 WEKA 데이터 플랫폼을 선택했습니다.
- 고성능: Weka의 아키텍처는 극한의 성능을 위해 설계되어 AI/ML 워크로드, 빅 데이터 분석 및 고성능 컴퓨팅(HPC) 환경에 적합합니다.
- 확장성: Weka는 몇 테라바이트에서 엑사바이트의 데이터로 확장할 수 있으므로 고객은 성능 저하 없이 스토리지 용량을 늘릴 수 있습니다. WEKA의 분산 아키텍처는 일반적인 스케일업 스타일의 스토리지 시스템, 어플라이언스 및 하이퍼바이저 기반의 소프트웨어 정의 스토리지 솔루션과 다릅니다. 대규모 AI 구축에 병목 현상이 발생할 수 있는 기존 스토리지 확장 및 파일 공유 제한을 극복하여 고객이 선호하는 선택 중 하나입니다.
- 통합 스토리지: Weka는 여러 프로토콜(예: NFS, SMB, POSIX, S3)을 지원할 수 있는 단일 스토리지 솔루션을 제공하여 데이터에 액세스하고 관리할 수 있는 유연성을 제공하고 Nvidia의 GPUDirect 스토리지 액세스를 허용합니다.
- 데이터 복원력: Weka는 데이터 복원력과 하드웨어 장애에 대한 보호를 보장하는 삭제 코딩을 포함한 고급 데이터 보호 기능을 제공합니다. 최소 6개의 스토리지 서버 구성으로 클러스터는 2개의 서버 장애에서 살아남을 수 있습니다.
- 관리 용이성: Weka의 소프트웨어 정의 스토리지 솔루션은 사용자 친화적인 인터페이스와 자동화된 관리 기능을 통해 배포 및 관리가 쉽습니다. 적절한 메모리, CPU 프로세서, 네트워킹 및 NVMe 솔리드 스테이트 드라이브가 있는 모든 표준 AMD EPYC™ 또는 Intel Xeon™ Scalable Processor 기반 하드웨어에 설치할 수 있습니다.
- GPU 지원: Weka는 GPU 가속에 최적화되어 있어 AI 및 기계 학습 애플리케이션과 같이 GPU 컴퓨팅에 크게 의존하는 환경에 이상적인 스토리지 솔루션입니다.
- 짧은 대기 시간: Weka의 아키텍처는 데이터에 대한 대기 시간이 매우 짧은 액세스를 허용하며, 이는 실시간 데이터 처리가 필요한 애플리케이션에 매우 중요합니다.
AI JVD 랩의 Weka 스토리지 클러스터
우리는 242TB 의 사용 가능한 스토리지를 제공하는 스토리지 백엔드 패브릭에 연결된 8개의 SuperMicro 기반 서버로 WEKA 스토리지 클러스터를 구축했습니다. WEKA는 8개의 클러스터 노드를 권장하며 프로덕션 배포에는 최소 6개의 노드가 필요합니다.
각 WEKA 서버에는 다음과 같은 사양이 있습니다
- AMD EPYC 9454P 프로세서
- 384GB 시스템 메모리
- OS 드라이브: 2x 1.92TB M.2 NVMe 데이터센터 SSD(PCIe 4.0)
- 데이터 드라이브: 7x 7.68TB U.2 NVMe 데이터센터 SSD(PCIe 4.0)
- 온보드 OOB 네트워크 연결(RJ45) 및 다음과 같은 추가 인터페이스 카드:
- 1 x NVIDIA Mellanox ConnectX-6 DX 어댑터 카드, 100GE, 듀얼 포트 QSFP28, PCIe 4.0 x16
- 2 x NVIDIA Mellanox ConnectX-6 VPI 어댑터 카드, HDR IB 및 200GE, 듀얼 포트 QSFP56, OCP 3.0
- 소프트웨어:
- 설치된 운영 체제는 Ubuntu 22.04 LTS입니다.
- 이 설계에서 테스트된 WEKA 릴리스 버전은 4.2.5입니다.
- WEKA 플래시 티어 라이선스(SnapShot 및 고성능 프로토콜 서비스 포함)
- (POSIX, NFS-W, S3 및 SMB-W)
일반적인 설정 변경 필요
WEKA는 특정 BIOS 설정을 강력히 권장하며 Mellanox 드라이버는 모든 노드에서 일치합니다. 편의상 이러한 변경 사항은 여기에 문서화되어 있습니다.
BIOS 설정:
BIOS 설정은 다음 bios_settings.yml 적용하여 변경할 수 있습니다.
-
Supermicro: AMD: ACPISRATL3CacheAsNUMADomain#0099: Disabled IOMMU#00EA: Disabled NUMANodesPerSocket#703F: Auto SMTControl#00CB: Disabled SR-IOVSupport#0067: Enabled DFCstates#7104: Disabled GlobalC-stateControl#00CD: Disabled
이러한 변경 사항을 적용하는 방법에 대한 자세한 내용은 다음을 참조하세요. GitHub - weka/bios_tool: Weka 서버의 bios_settings 보기/설정 도구
주니퍼 WEKA 클러스터의 네트워크 구성
스토리지 백엔드 섹션에 설명된 대로 WEKA 서버는 듀얼 호밍이며 NVIDIA Mellanox ConnectX-6 VPI 어댑터 카드의 200GE 포트를 사용하여 별도의 스토리지 백엔드 스위치(storage-backend-weka-leaf 1 및 storage-backend-weka-leaf 2)에 연결됩니다. 추가 QSFP28 100Gbe 포트는 이 JVD에서 사용되지 않지만 프론트엔드 수신/송신 트래픽, 스테이징 및 관리에 사용할 수 있습니다.
그림 113: 스토리지 인터페이스 연결
OFED 드라이버:
WEKA는 Connect-X 카드를 사용할 때 OFED(Mellanox) 드라이버에 대한 Nvidia의 권장 사항을 따를 것을 권장합니다. NVIDIA 설명서 - Mellanox OFED 설치하기.
드라이버 릴리스는 5.8 이상이어야 합니다.
OFED 드라이버의 모든 버전이 WEKA 클러스터의 모든 노드에서 정렬되었는지 확인합니다(즉, weka01에 적절한 OFED가 설치되어 있는지 확인).
Ubuntu의 경우 다음 명령을 권장합니다.
-
./mlnxofedinstall --force --dkms --all.
다음 스크립트를 모든 시스템에서 (루트로) 실행하여 적절한 Mellanox 펌웨어 설정을 지정할 수도 있습니다.
-
#!/bin/bash mst start for MLXDEV in /dev/mst/* ; do mlxconfig -d ${MLXDEV} -y s ADVANCED_PCI_SETTINGS=1 PCI_WR_ORDERING=1 mlxfwreset -y -d ${MLXDEV} reset done netplan apply mst stop
주니퍼 스위치를 탑재한 WEKA 데이터 플랫폼 모범 사례
클러스터는 WEKA 분산 POSIX 클라이언트를 사용하여 구성되며, 나머지 설계에 통합하려면 약간의 튜닝이 필요합니다.
다음을 권장합니다.
- 최대 전송 단위(MTU)를 9000으로 설정합니다
- 백엔드 스토리지 패브릭이 다른 리소스와 공유되는 경우 적절한 CoS 우선 순위를 설정하여 AI 수집 및 체크포인트 트래픽이 다른 애플리케이션의 네트워크 I/O 요청에 의해 중단되지 않도록 합니다.
- WEKA 분산 POSIX 클라이언트 대신 GPU Direct Storage를 사용하는 경우 ECN(Explicit Congestion Notification) 및 PFC(Priority Flow Control)를 활용하여 네트워크에서 혼잡 관리 및 완화 기능을 설정해야 합니다.
또한 WEKA는 WEKA 시스템 관점에서 네트워크 활동을 테스트하고 측정하는 데 사용할 수 있는 도구를 제공합니다.
명령줄 도구 'weka stats'는 '양호한' 네트워크 성능의 백분율 출력을 보고합니다.
-
weka stats --start-time -24h --end-time -1m --show- internal --stat GOODPUT_TX_ RATIO,GOODPUT_RX_RATIO
출력이 백분율로 표시되면 85% 미만은 추가 검사가 필요한 잠재적인 문제를 나타냅니다.
예:
-
NODE CATEGORY TIMESTAMP STAT VALUE all network 2024-06-14T12:58:00 GOODPUT_RX_RATIO 99.7636 % all network 2024-06-14T12:58:00 GOODPUT_TX_RATIO 99.7636 % all network 2024-06-14T12:57:00 GOODPUT_RX_RATIO 99.7663 % all network 2024-06-14T12:57:00 GOODPUT_TX_RATIO 99.7663 % all network 2024-06-14T12:56:00 GOODPUT_RX_RATIO 99.752 % all network 2024-06-14T12:56:00 GOODPUT_TX_RATIO 99.752 % all network 2024-06-14T12:55:00 GOODPUT_RX_RATIO 99.7578 % all network 2024-06-14T12:55:00 GOODPUT_TX_RATIO 99.7578 % all network 2024-06-14T12:54:00 GOODPUT_RX_RATIO 99.7795 % all network 2024-06-14T12:54:00 GOODPUT_TX_RATIO 99.7795 % all network 2024-06-14T12:53:00 GOODPUT_RX_RATIO 99.7685 % all network 2024-06-14T12:53:00 GOODPUT_TX_RATIO 99.7685 % all network 2024-06-14T12:52:00 GOODPUT_RX_RATIO 99.775 % all network 2024-06-14T12:52:00 GOODPUT_TX_RATIO 99.775 %
weka 통계 --category=network --show-internal --stat DROPPED_PACKETS --start-time -24h --end-time -1m -z
-
NODE CATEGORY TIMESTAMP STAT VALUE all network 2024-06-14T13:06:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:05:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:04:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:03:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:02:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:01:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:00:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:59:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:58:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:57:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:56:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:55:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:54:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:53:00 DROPPED_PACKETS 0 Packets/Sec
weka stats 명령이 표시된 대로 손실된 패킷을 보고하면 추가 조사가 필요합니다.
자세한 내용과 추가 도구는 WEKA 웹 사이트에서 찾을 수 있습니다. WEKA 구성을 위한 시스템 수동 준비 | W E K A.