Skip to main content
NetApp Solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

NVA-1173 NVIDIA DGX 시스템 및 NetApp AIPod - 구축 세부 정보

기여자

이 섹션에서는 이 솔루션을 검증하는 동안 사용되는 배포 세부 정보를 설명합니다. 사용된 IP 주소는 예이며 배포 환경에 따라 수정해야 합니다. 이 구성을 구현하는 데 사용되는 특정 명령에 대한 자세한 내용은 해당 제품 설명서를 참조하십시오.

아래 다이어그램은 1개의 DGX H100 시스템 및 1개의 AFF A90 컨트롤러 HA 쌍에 대한 상세 네트워크 및 연결 정보를 보여줍니다. 다음 섹션의 배포 지침은 이 다이어그램의 세부 정보를 기반으로 합니다.

_NetApp AIPOD 네트워크 구성 _

입력/출력 대화 상자 또는 작성된 내용을 표시하는 그림

다음 표는 최대 16개의 DGX 시스템 및 2개의 AFF A90 HA 쌍에 대한 케이블 연결 할당의 예를 보여줍니다.

스위치 및 포트 장치 장치 포트입니다

스위치 1 포트 1-16입니다

DGX-H100-01 ~ -16

enp170s0f0np0, 슬롯1 포트 1

스위치 1 포트 17-32

DGX-H100-01 ~ -16

enp170s0f1np1, 슬롯1 포트 2

스위치 1 포트 33-36

AFF-A90-01 ~ -04

포트 e6a

스위치 1 포트 37-40

AFF-A90-01 ~ -04

포트 e11a

스위치 1 포트 41-44

AFF-A90-01 ~ -04

포트 e2a

스위치 1 포트 57-64

ISL에서 switch2로

포트 57-64

스위치 2 포트 1-16입니다

DGX-H100-01 ~ -16

enp41s0f0np0, 슬롯 2 포트 1

스위치 2 포트 17-32

DGX-H100-01 ~ -16

enp41s0f1np1, 슬롯 2 포트 2

스위치 2 포트 33-36

AFF-A90-01 ~ -04

포트 e6b

스위치 2 포트 37-40

AFF-A90-01 ~ -04

포트 e11b

스위치 2 포트 41-44

AFF-A90-01 ~ -04

포트 e2b

스위치 2 포트 57-64

ISL에서 switch1로

포트 57-64

다음 표에는 이 검증에 사용된 다양한 구성 요소의 소프트웨어 버전이 나와 있습니다.

장치 소프트웨어 버전

NVIDIA SN4600 스위치

Cumulus Linux v5.9.1입니다

NVIDIA DGX 시스템

DGX OS v6.2.1(Ubuntu 22.04 LTS)

Mellanox OFED

24.01

NetApp AFF A90를 참조하십시오

NetApp ONTAP 9.14.1

스토리지 네트워크 구성

이 섹션에서는 이더넷 스토리지 네트워크 구성에 대한 주요 세부 정보를 간략하게 설명합니다. InfiniBand 컴퓨팅 네트워크 구성에 대한 자세한 내용은 을 "NVIDIA BasePOD 설명서"참조하십시오. 스위치 구성에 대한 자세한 내용은 을 "NVIDIA Cumulus Linux 설명서"참조하십시오.

SN4600 스위치를 구성하는 데 사용되는 기본 단계는 다음과 같습니다. 이 프로세스에서는 케이블 연결 및 기본 스위치 설정(관리 IP 주소, 라이센스 등)이 완료되었다고 가정합니다.

  1. MLAG(Multi-Link Aggregation) 및 페일오버 트래픽을 사용하도록 스위치 간 ISL 본드를 구성합니다

    • 이 검증에서는 8개의 링크를 사용하여 테스트 중인 스토리지 구성에 충분한 대역폭을 제공했습니다

    • MLAG 활성화에 대한 자세한 지침은 Cumulus Linux 설명서를 참조하십시오.

  2. 두 스위치의 각 클라이언트 포트 및 스토리지 포트 쌍에 대해 LACP MLAG를 구성합니다

    • DGX-H100-01의 각 스위치의 포트 swp17(enp170s0f1np1 및 enp41s0f1np1), DGX-H100-02의 포트 swp18 등(bond1-16)

    • AFF-A90-01(e2a 및 e2b)용 각 스위치의 포트 swp41, AFF-A90-02용 포트 swp42 등(bond17-20)

    • NV set interface bondX bond 멤버 swpX

    • NV set interface bondx bond MLAG id X

  3. 기본 브리지 도메인에 모든 포트 및 MLAG 결합을 추가합니다

    • NV set int swp1-16,33-40 브리지 도메인 br_default

    • NV set int bond1-20 브리지 도메인 br_default

  4. 각 스위치에서 RoCE를 활성화합니다

    • NV가 RoCE 모드 무손실을 설정합니다

  5. 클라이언트 포트용 VLAN-2, 스토리지 포트용 2개, 관리용 1개, 스위치에 대한 L3 스위치용 1개를 구성합니다

    • 스위치 1 -

      • 클라이언트 NIC 장애 발생 시 L3 스위치에 대한 VLAN 3

      • 각 DGX 시스템의 스토리지 포트 1용 VLAN 101(enp170s0f0np0, 슬롯 1 포트 1)

      • 각 AFF A90 스토리지 컨트롤러의 포트 e6a 및 e11a용 VLAN 102

      • 각 DGX 시스템 및 스토리지 컨트롤러에 대한 MLAG 인터페이스를 사용하는 관리용 VLAN 301

    • 스위치 2 -

      • 클라이언트 NIC 장애 발생 시 L3 스위치에 대한 VLAN 3

      • 각 DGX 시스템의 스토리지 포트 2용 VLAN 201(enp41s0f0np0, slot2 포트 1)

      • 각 AFF A90 스토리지 컨트롤러의 포트 e6b 및 e11b에 대한 VLAN 202

      • 각 DGX 시스템 및 스토리지 컨트롤러에 대한 MLAG 인터페이스를 사용하는 관리용 VLAN 301

  6. 각 VLAN에 물리적 포트(예: 클라이언트 VLAN의 클라이언트 포트 및 스토리지 VLAN의 스토리지 포트)를 적절하게 할당합니다

    • NV set int <swpX> bridge domain br_default access <vlan id>

    • MLAG 포트는 필요에 따라 연결된 인터페이스에서 여러 VLAN을 사용할 수 있도록 트렁크 포트로 유지되어야 합니다.

  7. 각 VLAN에 SVI(스위치 가상 인터페이스)를 구성하여 게이트웨이 역할을 하고 L3 라우팅을 활성화합니다

    • 스위치 1 -

      • NV int VLAN3 IP address 100.127.0.0/31 설정

      • NV set int vlan101 IP address 100.127.101.1/24

      • NV set int vlan102 IP address 100.127.102.1 / 24

    • 스위치 2 -

      • NV int VLAN3 IP address 100.127.0.1/31 설정

      • NV set int vlan201 IP address 100.127.201.1 / 24

      • NV set int vlan202 IP address 100.127.202.1 / 24

  8. 정적 라우트를 생성합니다

    • 동일한 스위치에 있는 서브넷에 대한 정적 경로가 자동으로 생성됩니다

    • 클라이언트 링크 장애 시 스위치에 대한 라우팅 전환을 위해 추가적인 정적 라우트가 필요합니다

      • 스위치 1 -

        • NV는 VRF 기본 라우터 정적 1000.127.128.0/17을 1000.127.0.1로 설정합니다

      • 스위치 2 -

        • NV는 VRF 기본 라우터 정적 100.127.0.0/17 을 100.127.0.0을 통해 설정합니다

스토리지 시스템 구성

이 섹션에서는 이 솔루션의 A90 스토리지 시스템 구성에 대한 주요 세부 정보를 설명합니다. ONTAP 시스템 구성에 대한 자세한 내용은 [ONTAP documentation] 을 참조하십시오. 아래 다이어그램은 스토리지 시스템의 논리적 구성을 보여 줍니다.

_NetApp A90 스토리지 클러스터 논리적 구성 _

입력/출력 대화 상자 또는 작성된 내용을 표시하는 그림

스토리지 시스템을 구성하는 데 사용되는 기본 단계는 다음과 같습니다. 이 프로세스에서는 기본 스토리지 클러스터 설치가 완료된 것으로 가정합니다.

  1. 각 컨트롤러에서 사용 가능한 모든 파티션에서 1개의 스페어를 제외한 1개의 애그리게이트를 구성합니다

    • Aggregate create-node <node>-aggregate <node>_data01-diskcount <47>

  2. 각 컨트롤러에서 ifgrp를 구성합니다

    • NET 포트 ifgrp create-node <node>-ifgrp A1A-mode multimode_LACP-Distr-Function 포트

    • NET 포트 ifgrp add-port-node <node>-ifgrp <ifgrp>-ports <node>:e2a, <node>:e2b

  3. 각 컨트롤러의 ifgrp에서 관리 VLAN 포트를 구성합니다

    • NET 포트 vlan create-node AFF-a90-01-port A1A-vlan-id 31

    • NET 포트 vlan create-node AFF-a90-02-port A1A-vlan-id 31

    • NET 포트 vlan create-node AFF-a90-03-port A1A-vlan-id 31

    • NET 포트 vlan create-node AFF-a90-04-port A1A-vlan-id 31

  4. 브로드캐스트 도메인을 생성합니다

    • broadcast-domain create-broadcast-domain vlan21-mtu 9000-ports AFF AFF-a90-01:e6a, AFF AFF AFF-a90-01:e11a, AFF AFF-a90-02:e6a, AFF-a90-02:e6a

    • broadcast-domain create-broadcast-domain vlan22-mtu 9000-ports aaaaaaaa90 AFF-01:e6b, AFF AFF AFF-a90-01:e11b, AFF AFF-a90-02:e6b, AFF-a90-03:e6b: e6b: e6b: e6b: e6b: e6b: e6b

    • Broadcast-domain create-broadcast-domain vlan31-mtu 9000-ports AFF-a90-01:A1A-31, AFF-a90-02:A1A-31, AFF-a90-03:A1A-31, AFF-a90-04:A1A-31

  5. 관리 SVM * 을 생성합니다

  6. 관리 SVM 구성

    • LIF를 생성합니다

      • net int create-vserver basepod-mgmt-lif vlan31-01-home-node AFF-a90-01-home-port a1A-31-address 192.168.31.X-넷마스크 255.255.0

    • FlexGroup 볼륨 생성 -

      • vol create-vserver basepod-mgmt-volume home-size 10T-auto-provision-as FlexGroup-jection-path/home

      • vol 생성 - vserver basepod-mgmt-volume cm-size 10T-auto-provision-as FlexGroup-jection-path/cm

    • 엑스포트 정책을 생성합니다

      • export-policy rule create-vserver basepod-mgmt-policy default-client-match 192.168.31.0/24-rorule sys-rwrule sys-superuser sys

  7. 데이터 SVM * 을 생성합니다

  8. 데이터 SVM 구성

    • RDMA 지원을 위해 SVM을 구성합니다

      • SVM NFS 수정 - vserver basePOD - 데이터 - RDMA가 활성화되었습니다

    • LIF 생성

      • net int create-vserver basepod-data-lif C1-6a-lif1-home-node AFF-a90-01-home-port e6a-address 100.127.102.101-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-6a-lif2-home-node AFF-a90-01-home-port e6a-address 100.127.102.102-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-6b-lif1-home-node AFF-a90-01-home-port e6b-address 100.127.202.101-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-6b-lif2-home-node AFF-a90-01-home-port e6b-address 100.127.202.102-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-11a-lif1-home-node AFF-a90-01-home-port e11a-address 100.127.102.103-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-11a-lif2-home-node AFF-a90-01-home-port e11a-address 100.127.102.104-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-11b-lif1-home-node AFF-a90-01-home-port e11b-address 100.127.202.103-netmask 255.255.0

      • net int create-vserver basepod-data-lif C1-11b-lif2-home-node AFF-a90-01-home-port e11b-address 100.127.202.104-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-6a-lif1-home-node AFF-a90-02-home-port e6a-address 100.127.102.105-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-6a-lif2-home-node AFF-a90-02-home-port e6a-address 100.127.102.106-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-6b-lif1-home-node AFF-a90-02-home-port e6b-address 100.127.202.105-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-6b-lif2-home-node AFF-a90-02-home-port e6b-address 100.127.202.106-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-11a-lif1-home-node AFF-a90-02-home-port e11a-address 100.127.102.107-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-11a-lif2-home-node AFF-a90-02-home-port e11a-address 100.127.102.108-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-11b-lif1-home-node AFF-a90-02-home-port e11b-address 100.127.202.107-netmask 255.255.0

      • net int create-vserver basepod-data-lif c2-11b-lif2-home-node AFF-a90-02-home-port e11b-address 100.127.202.108-netmask 255.255.0

  9. RDMA 액세스에 대해 LIF를 구성합니다

    • ONTAP 9.15.1을 통한 배포의 경우 물리적 정보에 대한 RoCE QoS 구성에는 ONTAP CLI에서 사용할 수 없는 운영 체제 수준 명령이 필요합니다. RoCE 지원을 위한 포트 구성에 대한 지원을 받으려면 NetApp 지원에 문의하십시오. RDMA 기반 NFS는 문제 없이 작동합니다

    • ONTAP 9.16.1부터 엔드 투 엔드 RoCE 지원을 위한 적절한 설정으로 물리적 인터페이스가 자동으로 구성됩니다.

    • net int modify -vserver basepod-data-lif * -rdma-protocols RoCE

  10. 데이터 SVM에서 NFS 매개 변수를 구성합니다

    • nfs modify -vserver basepod -data-v4.1 enabled -v4.1-pNFS enabled -v4.1-trunking enabled -tcp-max-transfer-size 262144

  11. FlexGroup 볼륨 생성 -

    • vol create -vserver basePOD -데이터 볼륨 데이터 -크기 100T -자동 프로비저닝 -FlexGroup-접합 경로/데이터로

  12. 엑스포트 정책을 생성합니다

    • export-policy rule create-vserver basepod-data-policy default-client-match 100.127.101.0/24-rorule sys-rwrule sys-superuser sys

    • export-policy rule create-vserver basepod-data-policy default-client-match 100.127.201.0/24-rorule sys-rwrule sys-superuser sys

  13. 루트 생성

    • Route add-vserver basepod_data-destination 100.127.0.0/17 - 게이트웨이 100.127.102.1 메트릭 20

    • Route add-vserver basepod_data-destination 100.127.0.0/17 - 게이트웨이 100.127.202.1 메트릭 30

    • route add-vserver basepod_data-destination 100.127.128.0/17-gateway 100.127.202.1 메트릭 20

    • Route add-vserver basepod_data-destination 100.127.128.0/17-gateway 100.127.102.1 메트릭 30

RoCE 스토리지 액세스를 위한 DGX H100 구성

이 섹션에서는 DGX H100 시스템 구성을 위한 주요 세부 정보를 설명합니다. 이러한 구성 항목 중 다수는 DGX 시스템에 배포된 운영 체제 이미지에 포함되어 있거나 부팅 시 Base Command Manager에 의해 구현될 수 있습니다. 이러한 이미지는 참조를 위해 여기에 나열되어 있습니다. BCM에서 노드 및 소프트웨어 이미지를 구성하는 방법에 대한 자세한 내용은 을 참조하십시오"BCM 설명서".

  1. 추가 패키지를 설치합니다

    • 이피툴입니다

    • python3-PIP

  2. Python 패키지를 설치합니다

    • 파라미코

    • 매트릭스 플로lib

  3. 패키지 설치 후 dpkg을 다시 구성하십시오

    • dpkg --configure-A를 참조하십시오

  4. MOFED를 설치합니다

  5. 성능 튜닝을 위한 MST 값을 설정합니다

    • mstconfig -y -d <aa:00.0,29:00.0> set advanced_pci_settings = 1 NUM_OF_VFS = 0 MAX_ACC_OUT_READ = 44

  6. 설정을 수정한 후 어댑터를 재설정합니다

    • mlxfwreset -d <aa:00.0,29:00.0>-y 재설정

  7. PCI 장치에서 MaxReadReq를 설정합니다

    • setpci -s <aa:00.0,29:00.0> 68.W = 5957

  8. RX 및 TX 링 버퍼 크기를 설정합니다

    • ethtool-G <enp170s0f0np0,enp41s0f0np0> Rx 8192 TX 8192

  9. mlnx_qos를 사용하여 PFC 및 DSCP를 설정합니다

    • mlnx_qos-i <enp170s0f0np0,enp41s0f0np0>--pfc 0,0,0,1,0,0,0—​trust=dscp—​cable_len=3

  10. 네트워크 포트에서 RoCE 트래픽에 대해 ToS를 설정합니다

    • echo 106>/sys/class/InfiniBand/<mlx5_7,mlx5_1>/tc/1/traffic_class

  11. 각 스토리지 NIC를 적절한 서브넷에 있는 IP 주소로 구성합니다

    • 스토리지 NIC 1의 경우 100.127.101.0/24

    • 스토리지 NIC 2의 경우 100.127.201.0/24

  12. LACP 결합을 위한 대역 내 네트워크 포트 구성(enp170s0f1np1, enp41s0f1np1)

  13. 각 스토리지 서브넷에 대한 운영 및 보조 경로에 대한 정적 경로를 구성합니다

    • Route add – net 100.127.0.0/17 GW 100.127.101.1 metric 20

    • Route add – net 100.127.0.0/17 GW 100.127.201.1 metric 30

    • Route add – net 100.127.128.0 / 17 GW 100.127.201.1 metric 20

    • Route add – net 100.127.128.0 / 17 GW 100.127.101.1 metric 30

  14. 마운트/홈 볼륨

    • mount-o vers=3, nconnect=16, rsize=262144, wsize=262144 192.168.31.X:/home/home

  15. 마운트/데이터 볼륨

    • 데이터 볼륨을 마운트할 때 다음과 같은 마운트 옵션이 사용됨

      • Servers = 4.1#에서는 여러 스토리지 노드에 대한 병렬 액세스를 위해 pNFS를 사용합니다

      • PROTO=RDMA#은 전송 프로토콜을 기본 TCP 대신 RDMA로 설정합니다

      • MAX_CONNECT = 16#은(는) NFS 세션 트렁킹을 활성화하여 스토리지 포트 대역폭을 집계합니다

      • Write=eager#은 버퍼링된 쓰기의 쓰기 성능을 향상시킵니다

      • rsize = 262144, wsize = 262144# 입출력 전송 크기를 256K로 설정합니다