13.7. 초기 InfiniBand RDMA 작업 테스트


참고
이 섹션은 InfiniBand 장치에만 적용됩니다. iWARP 및 RoCE/IBoE 장치는 IP 기반 장치이므로, IPoIB가 구성되고 장치에 IP 주소가 있는 경우 RDMA 작업을 테스트하는 데 대한 섹션을 진행해야 합니다.
rdma 서비스가 활성화되고 opensm 서비스(필요한 경우)가 활성화되고 특정 하드웨어에 대한 적절한 사용자 공간 라이브러리가 설치되면 사용자 space rdma 작업이 가능해야 합니다. libibverbs-utils 패키지의 간단한 테스트 프로그램은 RDMA 작업이 제대로 작동하는지 확인하는 데 유용합니다. ibv_devices 프로그램은 시스템에 있는 장치를 표시하고 ibv_devinfo 명령은 각 장치에 대한 자세한 정보를 제공합니다. 예를 들어 다음과 같습니다.
~]$ ibv_devices
    device                 node GUID
    ------              ----------------
    mlx4_0              0002c903003178f0
    mlx4_1              f4521403007bcba0
~]$ ibv_devinfo -d mlx4_1
hca_id: mlx4_1
        transport:                      InfiniBand (0)
        fw_ver:                         2.30.8000
        node_guid:                      f452:1403:007b:cba0
        sys_image_guid:                 f452:1403:007b:cba3
        vendor_id:                      0x02c9
        vendor_part_id:                 4099
        hw_ver:                         0x0
        board_id:                       MT_1090120019
        phys_port_cnt:                  2
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             2048 (4)
                        sm_lid:                 2
                        port_lid:               2
                        port_lmc:               0x01
                        link_layer:             InfiniBand

                port:   2
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet
~]$ ibstat mlx4_1
CA 'mlx4_1'
        CA type: MT4099
        Number of ports: 2
        Firmware version: 2.30.8000
        Hardware version: 0
        Node GUID: 0xf4521403007bcba0
        System image GUID: 0xf4521403007bcba3
        Port 1:
                State: Active
                Physical state: LinkUp
                Rate: 56
                Base lid: 2
                LMC: 1
                SM lid: 2
                Capability mask: 0x0251486a
                Port GUID: 0xf4521403007bcba1
                Link layer: InfiniBand
        Port 2:
                State: Active
                Physical state: LinkUp
                Rate: 40
                Base lid: 0
                LMC: 0
                SM lid: 0
                Capability mask: 0x04010000
                Port GUID: 0xf65214fffe7bcba2
                Link layer: Ethernet
ibv_devinfoibstat 명령은 약간 다른 정보를 출력합니다(예: port MTU는 ibv_devinfo 에 있지만 ibstat 출력에는 없음) Port GUID는 ibstat 출력에 존재하지만 ibv_devinfo 출력에는 존재하지 않으며 몇 가지 항목은 다르게 지정됩니다(예:). ibstat 출력의 기본 로컬 식별자 (LID)는 ib v _devinfo의 port_ lid출력과 동일합니다.
infiniband-diags 패키지에서 ibping 과 같은 간단한 ping 프로그램을 사용하여 RDMA 연결을 테스트할 수 있습니다. ibping 프로그램은 클라이언트-서버 모델을 사용합니다. 먼저 한 시스템에서 ibping 서버를 시작한 다음 다른 시스템에서 ibping 을 클라이언트로 실행하고 ibping 서버에 연결하라고 알려야 합니다. 기본 RDMA 기능을 테스트하려고 하므로 서버를 지정하기 위해 IP 주소 대신 RDMA 특정 주소 확인 방법을 사용해야 합니다.
서버 시스템에서 사용자는 ibv_devinfo 및 ib stat 명령을 사용하여 테스트할 포트의 port_lid (또는 Base lid)를 출력할 수 있습니다(위 인터페이스의 포트 1이라고 가정함, port_lid/Base LID2 이고 Port GUID는 0xf4521407bcba1)입니다. 그런 다음 테스트할 카드와 포트에 특별히 바인딩하는 데 필요한 옵션으로 ibping 을 시작하고 ibping 을 서버 모드에서 실행해야 합니다. 를 전달하여 ibping 또는 --help 를 볼 수 있지만, 이 경우 -S 또는 --Server 옵션이 필요하고 특정 카드와 포트에 바인딩하려면 -C 또는 --Ca 및 - P 또는 -- Port 가 필요합니다. 참고: 이 인스턴스의 포트는 네트워크 포트 번호를 나타내지 않지만 다중 포트 카드를 사용할 때 카드의 실제 포트 번호를 나타냅니다. 예를 들어 다중 포트 카드의 두 번째 포트를 사용하여 RDMA 패브릭에 대한 연결을 테스트하려면 ibping 에 카드의 포트 2 에 바인딩하도록 지시해야 합니다. 단일 포트 카드를 사용하거나 카드에서 첫 번째 포트를 테스트할 때는 이 옵션이 필요하지 않습니다. 예를 들어 다음과 같습니다.
~]$ ibping -S -C mlx4_1 -P 1
그런 다음 클라이언트 시스템으로 변경하고 ibping 을 실행합니다. 서버 ibping 프로그램이 바인딩되어 있는 포트 GUID 포트 또는 서버 ibping 프로그램이 바인딩되는 포트의LID( 로컬 식별자 ) 기록해 둡니다. 또한 클라이언트 시스템의 어떤 카드 및 포트가 서버에 바인딩된 카드 및 포트와 동일한 네트워크에 물리적으로 연결되어 있는지 확인합니다. 예를 들어 서버에 있는 첫 번째 카드의 두 번째 포트가 바인딩되고 해당 포트가 보조 RDMA 패브릭에 연결된 경우 클라이언트의 경우 해당 보조 패브릭에 연결하는 데 필요한 카드와 포트를 지정합니다. 이러한 항목을 파악한 후 ibping 프로그램을 클라이언트로 실행하고 에서 연결할 주소로 서버에서 수집된 LID 또는 GUID 포트를 사용하여 서버에 연결합니다. 예를 들어 다음과 같습니다.
~]$ ibping -c 10000 -f -C mlx4_0 -P 1 -L 2
--- rdma-host.example.com.(none) (Lid 2) ibping statistics ---
10000 packets transmitted, 10000 received, 0% packet loss, time 816 ms
rtt min/avg/max = 0.032/0.081/0.446 ms
또는
~]$ ibping -c 10000 -f -C mlx4_0 -P 1 -G 0xf4521403007bcba1 \
--- rdma-host.example.com.(none) (Lid 2) ibping statistics ---
10000 packets transmitted, 10000 received, 0% packet loss, time 769 ms
rtt min/avg/max = 0.027/0.076/0.278 ms
이 결과는 사용자 공간 애플리케이션에서 최종 RDMA 통신이 작동하는지 확인합니다.
다음과 같은 오류가 발생할 수 있습니다.
~]$ ibv_devinfo
libibverbs: Warning: no userspace device-specific driver found for /sys/class/infiniband_verbs/uverbs0
No IB devices found
이 오류는 필요한 사용자 공간 라이브러리가 설치되지 않았음을 나타냅니다. 관리자는 섹션 13.4절. “InfiniBand 및 RDMA 관련 소프트웨어 패키지” 에 나열된 사용자 공간 라이브러리(하드웨어에 적합) 중 하나를 설치해야 합니다. 드문 경우지만 사용자가 드라이버 또는 libibverbs 에 대해 잘못된 아키텍처 유형을 설치하는 경우 이러한 상황이 발생할 수 있습니다. 예를 들어 libibverbs 가 arch x86_64 이고 libmlx4 가 설치되어 있지만 i686 유형이 설치된 경우 이 오류는 발생할 수 있습니다.
참고
많은 샘플 애플리케이션에서는 LID 대신 호스트 이름 또는 주소를 사용하여 서버와 클라이언트 간의 통신을 여는 것을 선호합니다. 이러한 애플리케이션의 경우 엔드 투 엔드 RDMA 통신을 테스트하기 전에 IPoIB를 설정해야 합니다. ibping 애플리케이션은 간단한 LID를 주소 지정 형태로 허용할 예정이므로 테스트 시나리오에서 IPoIB 주소 지정에 발생할 수 있는 문제를 없애므로 단순한 RDMA 통신이 작동하는지 여부를 보다 격리된 보기를 제공할 수 있습니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동