11.2. 使用 configfs 设置 NVMe/RDMA 控制器
使用此流程,使用 configfs
配置 RDMA (NVMe™/RDMA)控制器上的 Non-volatile Memory Express™(NVMe™™(NVMe™)。
先决条件
-
验证您有一个要分配给
nvmet
子系统的块设备。
步骤
创建
nvmet-rdma
子系统:modprobe nvmet-rdma mkdir /sys/kernel/config/nvmet/subsystems/testnqn cd /sys/kernel/config/nvmet/subsystems/testnqn
# modprobe nvmet-rdma # mkdir /sys/kernel/config/nvmet/subsystems/testnqn # cd /sys/kernel/config/nvmet/subsystems/testnqn
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用子系统名称替换 testnqn。
允许任何主机连接到此控制器:
echo 1 > attr_allow_any_host
# echo 1 > attr_allow_any_host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置命名空间:
mkdir namespaces/10 cd namespaces/10
# mkdir namespaces/10 # cd namespaces/10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用命名空间号替换 10
设置 NVMe 设备的路径:
echo -n /dev/nvme0n1 > device_path
# echo -n /dev/nvme0n1 > device_path
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用命名空间:
echo 1 > enable
# echo 1 > enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建带有 NVMe 端口的目录:
mkdir /sys/kernel/config/nvmet/ports/1 cd /sys/kernel/config/nvmet/ports/1
# mkdir /sys/kernel/config/nvmet/ports/1 # cd /sys/kernel/config/nvmet/ports/1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示 mlx5_ib0 的 IP 地址:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为控制器设置传输地址:
echo -n 172.31.0.202 > addr_traddr
# echo -n 172.31.0.202 > addr_traddr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 RDMA 设置为传输类型:
echo rdma > addr_trtype echo 4420 > addr_trsvcid
# echo rdma > addr_trtype # echo 4420 > addr_trsvcid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为端口设置地址系列:
echo ipv4 > addr_adrfam
# echo ipv4 > addr_adrfam
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建软链接:
ln -s /sys/kernel/config/nvmet/subsystems/testnqn /sys/kernel/config/nvmet/ports/1/subsystems/testnqn
# ln -s /sys/kernel/config/nvmet/subsystems/testnqn /sys/kernel/config/nvmet/ports/1/subsystems/testnqn
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证 NVMe 控制器是否在指定端口上侦听并准备好连接请求:
dmesg | grep "enabling port"
# dmesg | grep "enabling port" [ 1091.413648] nvmet_rdma: enabling port 1 (172.31.0.202:4420)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow