Skip to main content
E-Series Systems
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Impostare NVMe su InfiniBand sul lato host

Collaboratori

La configurazione di un iniziatore NVMe in un ambiente InfiniBand include l'installazione e la configurazione dei pacchetti infiniband, nvme-cli e rdma, la configurazione degli indirizzi IP dell'iniziatore e l'impostazione del layer NVMe-of sull'host.

Prima di iniziare

È necessario utilizzare il sistema operativo RHEL 7, RHEL 8, RHEL 9, SUSE Linux Enterprise Server 12 o 15 Service Pack più recente. Vedere "Tool di matrice di interoperabilità NetApp" per un elenco completo dei requisiti più recenti.

Fasi
  1. Installare i pacchetti rdma, nvme-cli e infiniband:

    SLES 12 o SLES 15

    # zypper install infiniband-diags
    # zypper install rdma-core
    # zypper install nvme-cli

    RHEL 7, RHEL 8 O RHEL 9

    # yum install infiniband-diags
    # yum install rdma-core
    # yum install nvme-cli
  2. Per RHEL 8 o RHEL 9, installare gli script di rete:

    RHEL 8

    # yum install network-scripts

    RHEL 9

    # yum install NetworkManager-initscripts-updown
  3. Per RHEL 7, attivare ipoib. Modificare il file /etc/rdma/rdma.conf e modificare la voce per il caricamento ipoib:

    IPOIB_LOAD=yes
  4. Ottenere l'NQN host, che verrà utilizzato per configurare l'host in un array.

    # cat /etc/nvme/hostnqn
  5. Verificare che entrambi i collegamenti delle porte IB siano attivi e che lo stato sia attivo:

    # ibstat
    CA 'mlx4_0'
            CA type: MT4099
            Number of ports: 2
            Firmware version: 2.40.7000
            Hardware version: 1
            Node GUID: 0x0002c90300317850
            System image GUID: 0x0002c90300317853
            Port 1:
                    State: Active
                    Physical state: LinkUp
                    Rate: 40
                    Base lid: 4
                    LMC: 0
                    SM lid: 4
                    Capability mask: 0x0259486a
                    Port GUID: 0x0002c90300317851
                    Link layer: InfiniBand
            Port 2:
                    State: Active
                    Physical state: LinkUp
                    Rate: 56
                    Base lid: 5
                    LMC: 0
                    SM lid: 4
                    Capability mask: 0x0259486a
                    Port GUID: 0x0002c90300317852
                    Link layer: InfiniBand
  6. Impostare gli indirizzi IP IPv4 sulle porte ib.

    SLES 12 o SLES 15

    Creare il file /etc/sysconfig/network/ifcfg-ib0 con il seguente contenuto.

    BOOTPROTO='static'
    BROADCAST=
    ETHTOOL_OPTIONS=
    IPADDR='10.10.10.100/24'
    IPOIB_MODE='connected'
    MTU='65520'
    NAME=
    NETWORK=
    REMOTE_IPADDR=
    STARTMODE='auto'

    Quindi, creare il file /etc/sysconfig/network/ifcfg-ib1:

    BOOTPROTO='static'
    BROADCAST=
    ETHTOOL_OPTIONS=
    IPADDR='11.11.11.100/24'
    IPOIB_MODE='connected'
    MTU='65520'
    NAME=
    NETWORK=
    REMOTE_IPADDR=
    STARTMODE='auto'

    RHEL 7 o RHEL 8

    Creare il file /etc/sysconfig/network-scripts/ifcfg-ib0 con il seguente contenuto.

    CONNECTED_MODE=no
    TYPE=InfiniBand
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    IPADDR='10.10.10.100/24'
    DEFROUTE=no
    IPV4=FAILURE_FATAL=yes
    IPV6INIT=no
    NAME=ib0
    ONBOOT=yes

    Quindi, creare il file /etc/sysconfig/network-scripts/ifcfg-ib1:

    CONNECTED_MODE=no
    TYPE=InfiniBand
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    IPADDR='11.11.11.100/24'
    DEFROUTE=no
    IPV4=FAILURE_FATAL=yes
    IPV6INIT=no
    NAME=ib1
    ONBOOT=yes

    RHEL 9

    Utilizzare nmtui per attivare e modificare una connessione. Di seguito è riportato un file di esempio /etc/NetworkManager/system-connections/ib0.nmconnection il tool genera:

    [connection]
    id=ib0
    uuid=<unique uuid>
    type=infiniband
    interface-name=ib0
    
    [infiniband]
    mtu=4200
    
    [ipv4]
    address1=10.10.10.100/24
    method=manual
    
    [ipv6]
    addr-gen-mode=default
    method=auto
    
    [proxy]

    Di seguito è riportato un file di esempio /etc/NetworkManager/system-connections/ib1.nmconnection il tool genera:

    [connection]
    id=ib1
    uuid=<unique uuid>
    type=infiniband
    interface-name=ib1
    
    [infiniband]
    mtu=4200
    
    [ipv4]
    address1=11.11.11.100/24'
    method=manual
    
    [ipv6]
    addr-gen-mode=default
    method=auto
    
    [proxy]
  7. Attivare il ib interfaccia:

    # ifup ib0
    # ifup ib1
  8. Verificare gli indirizzi IP utilizzati per la connessione all'array. Eseguire questo comando per entrambi ib0 e. ib1:

    # ip addr show ib0
    # ip addr show ib1

    Come illustrato nell'esempio riportato di seguito, l'indirizzo IP di ib0 è 10.10.10.255.

    10: ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65520 qdisc pfifo_fast state UP group default qlen 256
        link/infiniband 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:c9:03:00:31:78:51 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
        inet 10.10.10.255 brd 10.10.10.255 scope global ib0
           valid_lft forever preferred_lft forever
        inet6 fe80::202:c903:31:7851/64 scope link
           valid_lft forever preferred_lft forever

    Come illustrato nell'esempio riportato di seguito, l'indirizzo IP di ib1 è 11.11.11.255.

    10: ib1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65520 qdisc pfifo_fast state UP group default qlen 256
        link/infiniband 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:c9:03:00:31:78:51 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
        inet 11.11.11.255 brd 11.11.11.255 scope global ib0
           valid_lft forever preferred_lft forever
        inet6 fe80::202:c903:31:7851/64 scope link
           valid_lft forever preferred_lft forever
  9. Impostare il livello NVMe-of sull'host. Creare i seguenti file in /etc/modules-load.d/ per caricare nvme_rdma kernel e assicurarsi che il modulo kernel sia sempre attivo, anche dopo un riavvio:

    # cat /etc/modules-load.d/nvme_rdma.conf
      nvme_rdma
  10. Riavviare l'host.

    Per verificare nvme_rdma kernel module è stato caricato, eseguire questo comando:

    # lsmod | grep nvme
    nvme_rdma              36864  0
    nvme_fabrics           24576  1 nvme_rdma
    nvme_core             114688  5 nvme_rdma,nvme_fabrics
    rdma_cm               114688  7 rpcrdma,ib_srpt,ib_srp,nvme_rdma,ib_iser,ib_isert,rdma_ucm
    ib_core               393216  15 rdma_cm,ib_ipoib,rpcrdma,ib_srpt,ib_srp,nvme_rdma,iw_cm,ib_iser,ib_umad,ib_isert,rdma_ucm,ib_uverbs,mlx5_ib,qedr,ib_cm
    t10_pi                 16384  2 sd_mod,nvme_core