Red Hat Training

A Red Hat training course is available for RHEL 8

16.2. 使用 configfs 设置 NVMe/RDMA 控制器

使用 configfs 配置 NVMe/RDMA 控制器。

先决条件

  • 验证您有一个要分配给 nvmet 子系统的块设备。

步骤

  1. 创建 nvmet-rdma 子系统:

    # modprobe nvmet-rdma
    
    # mkdir /sys/kernel/config/nvmet/subsystems/testnqn
    
    # cd /sys/kernel/config/nvmet/subsystems/testnqn

    使用子系统名称替换 testnqn

  2. 允许任何主机连接到此控制器:

    # echo 1 > attr_allow_any_host
  3. 配置命名空间:

    # mkdir namespaces/10
    
    # cd namespaces/10

    使用命名空间号替换 10

  4. 设置 NVMe 设备的路径:

    # echo -n /dev/nvme0n1 > device_path
  5. 启用命名空间:

    # echo 1 > enable
  6. 创建带有 NVMe 端口的目录:

    # mkdir /sys/kernel/config/nvmet/ports/1
    
    # cd /sys/kernel/config/nvmet/ports/1
  7. 显示 mlx5_ib0 的 IP 地址:

    # ip addr show mlx5_ib0
    
    8: mlx5_ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 4092 qdisc mq state UP group default qlen 256
        link/infiniband 00:00:06:2f:fe:80:00:00:00:00:00:00:e4:1d:2d:03:00:e7:0f:f6 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
        inet 172.31.0.202/24 brd 172.31.0.255 scope global noprefixroute mlx5_ib0
           valid_lft forever preferred_lft forever
        inet6 fe80::e61d:2d03:e7:ff6/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
  8. 为控制器设置传输地址:

    # echo -n 172.31.0.202 > addr_traddr
  9. 将 RDMA 设置为传输类型:

    # echo rdma > addr_trtype
    
    # echo 4420 > addr_trsvcid
  10. 为端口设置地址系列:

    # echo ipv4 > addr_adrfam
  11. 创建软链接:

    # ln -s /sys/kernel/config/nvmet/subsystems/testnqn   /sys/kernel/config/nvmet/ports/1/subsystems/testnqn

验证

  • 验证 NVMe 控制器是否在指定端口上侦听并准备好连接请求:

    # dmesg | grep "enabling port"
    [ 1091.413648] nvmet_rdma: enabling port 1 (172.31.0.202:4420)

其他资源

  • nvme(1) man page