26.3. IPoIB 구성


기본적으로 InfiniBand는 통신에 인터넷 프로토콜(IP)을 사용하지 않습니다. 그러나 IP over InfiniBand (IPoIB)는 InfiniBand remote direct memory access (RDMA) 네트워크 상단에 IP 네트워크 에뮬레이션 계층을 제공합니다. 이를 통해 수정되지 않은 기존 애플리케이션은 InfiniBand 네트워크를 통해 데이터를 전송할 수 있지만 애플리케이션에서 RDMA를 기본적으로 사용하는 경우보다 성능이 낮습니다.

참고

RHEL 8 이상에서 시작되는 Mellanox 장치는 기본적으로 Enhanced IPoIB 모드를 사용합니다(데이터그램만 해당). 이러한 장치에서는 연결 모드가 지원되지 않습니다.

26.3.1. IPoIB 통신 모드

IPoIB 장치는 Datagram 또는 Connected 모드에서 구성할 수 있습니다. 차이점은 IPoIB 계층이 통신의 다른 끝에서 머신으로 열려는 대기열 쌍의 유형입니다.

  • 데이터그램 모드에서 시스템은 신뢰할 수 없고 연결이 끊긴 대기열 쌍을 엽니다.

    이 모드는 InfiniBand 링크 계층의 최대 전송 단위(MTU)보다 큰 패키지를 지원하지 않습니다. 데이터를 전송하는 동안 IPoIB 계층은 IP 패킷 상단에 4바이트 IPoIB 헤더를 추가합니다. 결과적으로 IPoIB MTU는 InfiniBand 링크 계층 MTU보다 4바이트 적습니다. 2048 는 일반적인 InfiniBand 링크 계층 MTU이므로 데이터그램 모드의 일반적인 IPoIB 장치 MTU는 2044 입니다.

  • 연결된 모드에서 시스템은 신뢰할 수 있는 연결된 큐 쌍을 엽니다.

    이 모드에서는 InfiniBand 링크 계층 MTU보다 큰 메시지를 허용합니다. 호스트 어댑터는 패킷 분할 및 재 조립을 처리합니다. 결과적으로 연결된 모드에서 Infiniband 어댑터에서 전송된 메시지에 크기 제한이 없습니다. 그러나 data 필드 및 TCP/IP 헤더 필드로 인해 IP 패킷이 제한됩니다. 따라서 연결된 모드의 IPoIB MTU는 65520 바이트입니다.

    연결된 모드는 성능이 높지만 더 많은 커널 메모리를 사용합니다.

시스템은 연결 모드를 사용하도록 구성되어 있지만 InfiniBand 스위치 및 패브릭은 연결된 모드에서 멀티 캐스트 트래픽을 전달할 수 없기 때문에 시스템은 Datagram 모드를 사용하여 멀티캐스트 트래픽을 계속 보냅니다. 또한 호스트가 연결된 모드를 사용하도록 구성되지 않은 경우 시스템은 데이터그램 모드로 대체됩니다.

인터페이스의 MTU로 멀티 캐스트 데이터를 전송하는 애플리케이션을 실행하는 동안 데이터그램 모드에서 인터페이스를 구성하거나 데이터그램 크기의 패킷에 맞는 패킷의 전송 크기를 제한하도록 애플리케이션을 구성합니다.

26.3.2. IPoIB 하드웨어 주소 이해

IPoIB 장치에는 다음 부분으로 구성된 20 바이트 하드웨어 주소가 있습니다.

  • 처음 4바이트는 플래그와 큐 쌍 번호입니다.
  • 다음 8바이트는 서브넷 접두사입니다.

    기본 서브넷 접두사는 0xfe:80:00:00:00:00 입니다. 장치가 서브넷 관리자에 연결한 후 장치는 구성된 서브넷 관리자와 일치하도록 이 접두사를 변경합니다.

  • 마지막 8바이트는 IPoIB 장치에 연결되는 InfiniBand 포트의 GUID(Globally Unique Identifier)입니다.
참고

처음 12바이트가 변경될 수 있으므로 udev 장치 관리자 규칙에서 사용하지 마십시오.

26.3.4. nmcli를 사용하여 IPoIB 연결 구성

nmcli 유틸리티를 사용하여 명령줄에서 InfiniBand 연결을 통해 IP를 만들 수 있습니다.

사전 요구 사항

  • InfiniBand 장치가 서버에 설치되어 있습니다.
  • 해당 커널 모듈이 로드됨

프로세스

  1. 연결된 전송 모드에서 mlx5_ib0 인터페이스를 사용하고 최대 MTU는 65520 바이트인 InfiniBand 연결을 생성합니다.

    # nmcli connection add type infiniband con-name mlx5_ib0 ifname mlx5_ib0 transport-mode Connected mtu 65520
    Copy to Clipboard Toggle word wrap
  2. P_Key 를 설정합니다. 예를 들면 다음과 같습니다.

    # nmcli connection modify mlx5_ib0 infiniband.p-key 0x8002
    Copy to Clipboard Toggle word wrap
  3. IPv4 설정을 구성합니다.

    • DHCP를 사용하려면 다음을 입력합니다.

      # nmcli connection modify mlx5_ib0 ipv4.method auto
      Copy to Clipboard Toggle word wrap

      ipv4.method 가 이미 auto (기본값)로 설정된 경우 이 단계를 건너뜁니다.

    • 정적 IPv4 주소, 네트워크 마스크, 기본 게이트웨이, DNS 서버 및 검색 도메인을 설정하려면 다음을 입력합니다.

      # nmcli connection modify mlx5_ib0 ipv4.method manual ipv4.addresses 192.0.2.1/24 ipv4.gateway 192.0.2.254 ipv4.dns 192.0.2.200 ipv4.dns-search example.com
      Copy to Clipboard Toggle word wrap
  4. IPv6 설정을 구성합니다.

    • SLAAC(상태 비저장 주소 자동 구성)를 사용하려면 다음을 입력합니다.

      # nmcli connection modify mlx5_ib0 ipv6.method auto
      Copy to Clipboard Toggle word wrap

      ipv6.method 가 이미 auto (기본값)로 설정된 경우 이 단계를 건너뜁니다.

    • 정적 IPv6 주소, 네트워크 마스크, 기본 게이트웨이, DNS 서버 및 검색 도메인을 설정하려면 다음을 입력합니다.

      # nmcli connection modify mlx5_ib0 ipv6.method manual ipv6.addresses 2001:db8:1::fffe/64 ipv6.gateway 2001:db8:1::fffe ipv6.dns 2001:db8:1::ffbb ipv6.dns-search example.com
      Copy to Clipboard Toggle word wrap
  5. 프로필의 다른 설정을 사용자 지정하려면 다음 명령을 사용합니다.

    # nmcli connection modify mlx5_ib0 <setting> <value>
    Copy to Clipboard Toggle word wrap

    값을 따옴표로 묶거나 spaces로 묶습니다.

  6. 프로필을 활성화합니다.

    # nmcli connection up mlx5_ib0
    Copy to Clipboard Toggle word wrap

검증

  • ping 유틸리티를 사용하여 원격 호스트의 InfiniBand 어댑터에 ICMP 패킷을 보냅니다. 예를 들면 다음과 같습니다.

    # ping -c5 192.0.2.2
    Copy to Clipboard Toggle word wrap

26.3.5. 네트워크 RHEL 시스템 역할을 사용하여 IPoIB 연결 구성

IP는 InfiniBand (IPoIB)를 통해 InfiniBand 인터페이스를 통해 IP 패킷을 보낼 수 있습니다. IPoIB를 구성하려면 NetworkManager 연결 프로필을 만듭니다. Ansible 및 네트워크 시스템 역할을 사용하면 이 프로세스를 자동화하고 플레이북에 정의된 호스트에서 연결 프로필을 원격으로 구성할 수 있습니다.

네트워크 RHEL 시스템 역할을 사용하여 IPoIB를 구성할 수 있으며, InfiniBand의 상위 장치에 대한 연결 프로파일이 없으면 역할도 생성할 수 있습니다.

사전 요구 사항

  • 컨트롤 노드와 관리형 노드를 준비했습니다.
  • 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
  • 관리 노드에 연결하는 데 사용하는 계정에는 sudo 권한이 있습니다.
  • mlx5_ib0 이라는 InfiniBand 장치가 관리 노드에 설치됩니다.
  • 관리형 노드는 NetworkManager를 사용하여 네트워크를 구성합니다.

프로세스

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Configure the network
      hosts: managed-node-01.example.com
      tasks:
        - name: IPoIB connection profile with static IP address settings
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.network
          vars:
            network_connections:
              # InfiniBand connection mlx5_ib0
              - name: mlx5_ib0
                interface_name: mlx5_ib0
                type: infiniband
    
              # IPoIB device mlx5_ib0.8002 on top of mlx5_ib0
              - name: mlx5_ib0.8002
                type: infiniband
                autoconnect: yes
                infiniband:
                  p_key: 0x8002
                  transport_mode: datagram
                parent: mlx5_ib0
                ip:
                  address:
                    - 192.0.2.1/24
                    - 2001:db8:1::1/64
                state: up
    Copy to Clipboard Toggle word wrap

    예제 플레이북에 지정된 설정은 다음과 같습니다.

    type: <profile_type>
    생성할 프로필 유형을 설정합니다. 예제 플레이북은 두 개의 연결 프로필을 생성합니다. 하나는 InfiniBand 연결용이고 하나는 IPoIB 장치용입니다.
    parent: <parent_device>
    IPoIB 연결 프로필의 상위 장치를 설정합니다.
    p_key: <value>
    InfiniBand 파티션 키를 설정합니다. 이 변수를 설정하는 경우 IPoIB 장치에 interface_name 을 설정하지 마십시오.
    transport_mode: <mode>
    IPoIB 연결 작업 모드를 설정합니다. 이 변수를 데이터그램 (기본값) 또는 연결된 로 설정할 수 있습니다.

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.network/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. Playbook을 실행합니다.

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

검증

  1. mlx5_ib0.8002 장치의 IP 설정을 표시합니다.

    # ansible managed-node-01.example.com -m command -a 'ip address show mlx5_ib0.8002'
    managed-node-01.example.com | CHANGED | rc=0 >>
    ...
    inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute ib0.8002
       valid_lft forever preferred_lft forever
    inet6 2001:db8:1::1/64 scope link tentative noprefixroute
       valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap
  2. mlx5_ib0.8002 장치의 파티션 키(P_Key)를 표시합니다.

    # ansible managed-node-01.example.com -m command -a 'cat /sys/class/net/mlx5_ib0.8002/pkey'
    managed-node-01.example.com | CHANGED | rc=0 >>
    0x8002
    Copy to Clipboard Toggle word wrap
  3. mlx5_ib0.8002 장치의 모드를 표시합니다.

    # ansible managed-node-01.example.com -m command -a 'cat /sys/class/net/mlx5_ib0.8002/mode'
    managed-node-01.example.com | CHANGED | rc=0 >>
    datagram
    Copy to Clipboard Toggle word wrap

26.3.6. nmstatectl을 사용하여 IPoIB 연결 구성

nmstatectl 유틸리티를 사용하여 Nmstate API를 통해 InfiniBand(IPoIB) 연결을 통해 IP를 구성할 수 있습니다. Nmstate API는 구성을 설정한 후 결과가 구성 파일과 일치하는지 확인합니다. 문제가 발생하면 nmstatectl 이 변경 사항을 자동으로 롤백하여 시스템을 잘못된 상태로 두지 않습니다.

사전 요구 사항

  • InfiniBand 장치가 서버에 설치되어 있습니다.
  • InfiniBand 장치의 커널 모듈이 로드됩니다.

프로세스

  1. 다음 콘텐츠를 사용하여 YAML 파일(예: ~/create-IPoIB-profile.yml )을 생성합니다.

    interfaces:
    - name: mlx5_ib0.8002
      type: infiniband
      state: up
      ipv4:
        enabled: true
        address:
        - ip: 192.0.2.1
          prefix-length: 24
        dhcp: false
      ipv6:
        enabled: true
        address:
        - ip: 2001:db8:1::1
          prefix-length: 64
        autoconf: false
        dhcp: false
      infiniband:
        base-iface: "mlx5_ib0"
        mode: datagram
        pkey: "0x8002"
    
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: 192.0.2.254
        next-hop-interface: mlx5_ib0.8002
      - destination: ::/0
        next-hop-address: 2001:db8:1::fffe
        next-hop-interface: mlx5_ib0.8002
    Copy to Clipboard Toggle word wrap

    이제 IPoIB 연결이 다음 설정을 갖습니다.

    • IPOIB 장치 이름: mlx5_ib0.8002
    • 기본 인터페이스(parent): mlx5_ib0
    • InfiniBand 파티션 키: 0x8002
    • 전송 모드: 데이터그램
    • 정적 IPv4 주소: /24 서브넷 마스크가 있는 192.0.2.1
    • 정적 IPv6 주소: 2001:db8:1::1/64 서브넷 마스크
    • IPv4 기본 게이트웨이: 192.0.2.254
    • IPv6 기본 게이트웨이: 2001:db8:1::fffe
  2. 시스템에 설정을 적용합니다.

    # nmstatectl apply ~/create-IPoIB-profile.yml
    Copy to Clipboard Toggle word wrap

검증

  1. mlx5_ib0.8002 장치의 IP 설정을 표시합니다.

    # ip address show mlx5_ib0.8002
    ...
    inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute ib0.8002
       valid_lft forever preferred_lft forever
    inet6 2001:db8:1::1/64 scope link tentative noprefixroute
       valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap
  2. mlx5_ib0.8002 장치의 파티션 키(P_Key)를 표시합니다.

    # cat /sys/class/net/mlx5_ib0.8002/pkey
    0x8002
    Copy to Clipboard Toggle word wrap
  3. mlx5_ib0.8002 장치의 모드를 표시합니다.

    # cat /sys/class/net/mlx5_ib0.8002/mode
    datagram
    Copy to Clipboard Toggle word wrap

26.3.7. IPoIB가 구성된 후 iperf3를 사용하여 RDMA 네트워크 테스트

다음 예에서 대용량 버퍼 크기는 최대 처리량을 측정하고 iperf3 유틸리티를 사용하여 두 호스트 간의 대역폭과 대기 시간을 완전히 사용하는 60초 테스트를 수행하는 데 사용됩니다.

사전 요구 사항

  • 두 호스트 모두에 IPoIB를 구성했습니다.

프로세스

  1. iperf3 을 시스템에서 서버로 실행하려면 클라이언트 연결의 응답을 기다리는 서버로서 수신 대기하도록 주기적인 대역폭 업데이트 - i 를 제공하는 시간 간격을 정의합니다.

    # iperf3 -i 5 -s
    Copy to Clipboard Toggle word wrap
  2. 다른 시스템에서 iperf3 을 클라이언트로 실행하려면 주기적인 대역폭 업데이트 -i 를 제공하여 수신 대기 서버 -c of IP 주소 192.168.2.2-t 시간(초)을 사용하여 연결합니다.

    # iperf3 -i 5 -t 60 -c 192.168.2.2
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 사용합니다.

    1. 서버 역할을 하는 시스템에서 테스트 결과를 표시합니다.

      # iperf3 -i 10 -s
      -----------------------------------------------------------
      Server listening on 5201
      -----------------------------------------------------------
      Accepted connection from 192.168.2.3, port 22216
      [5] local 192.168.2.2 port 5201 connected to 192.168.2.3 port 22218
      [ID] Interval           Transfer     Bandwidth
      [5]   0.00-10.00  sec  17.5 GBytes  15.0 Gbits/sec
      [5]  10.00-20.00  sec  17.6 GBytes  15.2 Gbits/sec
      [5]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec
      [5]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec
      [5]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec
      [5]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec
      [5]  60.00-60.04  sec  82.2 MBytes  17.3 Gbits/sec
      - - - - - - - - - - - - - - - - - - - - - - - - -
      [ID] Interval           Transfer     Bandwidth
      [5]   0.00-60.04  sec  0.00 Bytes    0.00 bits/sec  sender
      [5]   0.00-60.04  sec   107 GBytes  15.3 Gbits/sec  receiver
      Copy to Clipboard Toggle word wrap
    2. 클라이언트 역할을 하는 시스템에서 테스트 결과를 표시합니다.

      # iperf3 -i 1 -t 60 -c 192.168.2.2
      
      Connecting to host 192.168.2.2, port 5201
      [4] local 192.168.2.3 port 22218 connected to 192.168.2.2 port 5201
      [ID] Interval           Transfer     Bandwidth       Retr  Cwnd
      [4]   0.00-10.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes
      [4]  10.00-20.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes
      [4]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec    0   6.01 MBytes
      [4]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec    0   6.01 MBytes
      [4]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec    0   6.01 MBytes
      [4]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec    0   6.01 MBytes
      - - - - - - - - - - - - - - - - - - - - - - - - -
      [ID] Interval           Transfer     Bandwidth       Retr
      [4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec    0   sender
      [4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec        receiver
      Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat