ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Ubuntu 24.04 设置 NVMe over TCP 连接到 PowerFlex 4.6 详细步骤

Ubuntu 24.04 设置 NVMe over TCP 连接到 PowerFlex 4.6 详细步骤 前提条件Dell PowerFlex 4.6 存储系统已配置好 NVMe over TCP 目标端Ubuntu 24.04 LTS 主机作为 Initiator网络连通性已确认建议使用高速网络如 25GbE/100GbE已获取 PowerFlex 存储端的 NQN、IP 地址、端口等信息第一部分Ubuntu 24.04 主机端配置1. 安装必要的软件包# 更新系统sudo apt update sudo apt upgrade -y# 安装 nvme-cli 工具sudo apt install -y nvme-cli# 确认版本nvme version2. 加载内核模块# 加载 NVMe over TCP 所需的内核模块sudo modprobe nvmesudo modprobe nvme-coresudo modprobe nvme-fabricssudo modprobe nvme-tcp# 验证模块已加载lsmod | grep nvme3. 设置模块开机自动加载# 创建模块自动加载配置文件sudo tee /etc/modules-load.d/nvme-tcp.conf EOFnvmenvme-corenvme-fabricsnvme-tcpEOF4. 配置主机 NQNHost NQN# 查看系统自动生成的 Host NQNcat /etc/nvme/hostnqn# 如果文件不存在生成一个sudo mkdir -p /etc/nvmesudo nvme gen-hostnqn | sudo tee /etc/nvme/hostnqn# 查看生成的 NQNcat /etc/nvme/hostnqn输出示例nqn.2014-08.org.nvmexpress:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx第二部分网络配置优化1. 配置网络接口Netplan 示例network:version: 2ethernets:# NVMe/TCP 专用网络接口根据实际接口名称修改ens192:addresses:- 192.168.100.10/24mtu: 9000 # 推荐启用巨型帧dhcp4: falseroutes: []# 如有第二条路径多路径场景ens224:addresses:- 192.168.200.10/24mtu: 9000dhcp4: falseroutes: []# 应用网络配置sudo netplan apply# 验证 MTU 设置ip link show ens1922. TCP 网络性能调优sudo tee -a /etc/sysctl.d/99-nvme-tcp.conf EOF# NVMe/TCP 网络调优net.core.rmem_max 16777216net.core.wmem_max 16777216net.core.rmem_default 1048576net.core.wmem_default 1048576net.ipv4.tcp_rmem 4096 1048576 16777216net.ipv4.tcp_wmem 4096 1048576 16777216net.core.netdev_max_backlog 30000net.ipv4.tcp_timestamps 1net.ipv4.tcp_sack 1net.ipv4.tcp_window_scaling 1EOF# 应用参数sudo sysctl --system3. 验证网络连通性# Ping PowerFlex 存储端 NVMe/TCP 目标 IPping -c 4 192.168.100.1 # PowerFlex SDT 端 IP路径1ping -c 4 192.168.200.1 # PowerFlex SDT 端 IP路径22. 配置 NVMe Hosts / Host GroupsPowerFlex Manager UI:→ NVMe → Hosts→ Add Host→ 输入 Ubuntu 主机的 Host NQN从 /etc/nvme/hostnqn 获取→ 设置 Host 名称3. 创建并映射 VolumePowerFlex Manager UI:→ Volumes → Create Volume→ 设置容量、名称、存储池→ 将 Volume 映射到对应的 NVMe Host4. 记录 Target 信息从 PowerFlex 管理界面获取以下关键信息| 参数 | 示例值 ||------|--------|| Target NQN | nqn.2014-08.com.dell:powerflex:xxxxx || Target IPSDT 端口地址| 192.168.100.1, 192.168.200.1 || Transport Port | 4420默认端口 || Transport Type | tcp |第四部分发现并连接 NVMe Subsystem1. 发现 NVMe over TCP 目标# 发现存储端的 NVMe subsystem单路径sudo nvme discover -t tcp -a 192.168.100.1 -s 4420示例输出Discovery Log Number of Records 1, Generation counter 1Discovery Log Entry 0trtype: tcpadrfam: ipv4subtype: nvme subsystemtreq: not requiredportid: 0trsvcid: 4420subnqn: nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxxtraddr: 192.168.100.1sectype: none# 发现第二条路径如配置多路径sudo nvme discover -t tcp -a 192.168.200.1 -s 4420Dell PowerFlex 4.6 存储系统已配置好 NVMe over TCP 目标端Ubuntu 24.04 LTS 主机作为 Initiator网络连通性已确认建议使用高速网络如 25GbE/100GbE已获取 PowerFlex 存储端的 NQN、IP 地址、端口等信息3. 验证网络连通性# Ping PowerFlex 存储端 NVMe/TCP 目标 IPping -c 4 192.168.100.1 # PowerFlex SDT 端 IP路径1ping -c 4 192.168.200.1 # PowerFlex SDT 端 IP路径2第三部分PowerFlex 4.6 存储端配置1. 在 PowerFlex Manager 中启用 NVMe/TCP登录PowerFlex ManagerWeb UI进入Storage→Protection Domains→ 选择目标 Protection Domain确认SDTStorage Data Target已部署并配置2. 连接到 NVMe Subsystem单路径连接sudo nvme connect \-t tcp \-a 192.168.100.1 \-s 4420 \-n nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxx \--hostnqn$(cat /etc/nvme/hostnqn) \--hostid$(cat /etc/nvme/hostid)多路径连接推荐# 连接路径 1sudo nvme connect \-t tcp \-a 192.168.100.1 \-s 4420 \-n nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxx \--hostnqn$(cat /etc/nvme/hostnqn) \--hostid$(cat /etc/nvme/hostid) \--ctrl-loss-tmo3600 \--reconnect-delay10# 连接路径 2sudo nvme connect \-t tcp \-a 192.168.200.1 \-s 4420 \-n nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxx \--hostnqn$(cat /etc/nvme/hostnqn) \--hostid$(cat /etc/nvme/hostid) \--ctrl-loss-tmo3600 \--reconnect-delay10| 参数 | 说明 ||------|------|| -t tcp | 传输类型为 TCP || -a | 目标 IP 地址SDT 地址 || -s 4420 | 目标服务端口默认 4420 || -n | 目标子系统 NQN || --ctrl-loss-tmo | 控制器丢失超时时间秒-1 为永不放弃 || --reconnect-delay | 自动重连间隔秒 |3. 使用 connect-all 批量连接# 通过 discover 自动连接所有发现的 subsystemsudo nvme connect-all \-t tcp \-a 192.168.100.1 \-s 4420 \--ctrl-loss-tmo3600 \--reconnect-delay10可以写个脚本信息第五部分验证连接1. 查看已连接的 NVMe 控制器sudo nvme list通常的显示案例Node SN Model Namespace Usage Format-------------- ---------------- ---------------------- --------- -------------- --------/dev/nvme0n1 XXXXXXXX Dell PowerFlex 1 107.37 GB 512 B 0 B2. 查看详细控制器信息# 列出所有 NVMe 控制器sudo nvme list-subsys# 查看特定控制器详情sudo nvme id-ctrl /dev/nvme0# 查看命名空间信息sudo nvme id-ns /dev/nvme0n13. 验证多路径状态sudo nvme list-subsys多路径输出示例nvme-subsys0 - NQNnqn.2014-08.com.dell:powerflex:xxxxxxx\- nvme0 tcp traddr192.168.100.1,trsvcid4420 live- nvme1 tcp traddr192.168.200.1,trsvcid4420 live4. 检查 NVMe 原生多路径# 确认 NVMe 原生多路径已启用cat /sys/module/nvme_core/parameters/multipath# 输出应为 Y如果未启用# 启用 NVMe 原生多路径echo options nvme_core multipathY | sudo tee /etc/modprobe.d/nvme-multipath.conf# 更新 initramfs 并重启sudo update-initramfs -usudo reboot第六部分配置持久化连接开机自动连接方法一使用 nvme connect-all 配置文件推荐# 创建持久化发现配置sudo mkdir -p /etc/nvmesudo tee /etc/nvme/discovery.conf EOF# PowerFlex Path 1-t tcp -a 192.168.100.1 -s 4420# PowerFlex Path 2-t tcp -a 192.168.200.1 -s 4420EOF方法二使用 systemd 服务sudo tee /etc/systemd/system/nvme-tcp-connect.service EOF[Unit]DescriptionNVMe over TCP Connection to PowerFlexAfternetwork-online.targetWantsnetwork-online.target[Service]TypeoneshotRemainAfterExityes# 路径 1ExecStart/usr/sbin/nvme connect -t tcp -a 192.168.100.1 -s 4420 -n nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxx --ctrl-loss-tmo3600 --reconnect-delay10# 路径 2ExecStart/usr/sbin/nvme connect -t tcp -a 192.168.200.1 -s 4420 -n nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxx --ctrl-loss-tmo3600 --reconnect-delay10# 断开连接ExecStop/usr/sbin/nvme disconnect-all[Install]WantedBymulti-user.targetEOF# 启用服务sudo systemctl daemon-reloadsudo systemctl enable nvme-tcp-connect.servicesudo systemctl start nvme-tcp-connect.service# 查看状态sudo systemctl status nvme-tcp-connect.service方法三使用 nvme-cli 内置的 udev/systemd 自动连接# 持久化发现控制器nvme-cli 2.x 支持sudo nvme discover -t tcp -a 192.168.100.1 -s 4420 --persistentsudo nvme discover -t tcp -a 192.168.200.1 -s 4420 --persistent# 启用 nvme 自动连接服务sudo systemctl enable nvmefc-boot-connections.servicesudo systemctl enable nvmf-autoconnect.service第七部分文件系统和使用1. 分区和格式化# 查看新的 NVMe 设备lsblk# 创建分区可选sudo fdisk /dev/nvme0n1# 格式化为 ext4 或 xfssudo mkfs.ext4 /dev/nvme0n1# 或sudo mkfs.xfs /dev/nvme0n12. 挂载# 创建挂载点sudo mkdir -p /mnt/powerflex# 挂载sudo mount /dev/nvme0n1 /mnt/powerflex# 配置 fstab 持久挂载使用 UUIDUUID$(sudo blkid -s UUID -o value /dev/nvme0n1)echo UUID$UUID /mnt/powerflex ext4 _netdev,defaults 0 0 | sudo tee -a /etc/fstab第八部分监控与故障排查1. 实时监控# 查看 NVMe 控制器状态sudo nvme list-subsys# 查看控制器健康信息sudo nvme smart-log /dev/nvme0# 查看连接详细信息sudo nvme show-regs /dev/nvme02. 日志检查# 检查内核日志中 NVMe 相关信息sudo dmesg | grep -i nvmesudo journalctl -k | grep -i nvme# 查看系统日志sudo journalctl -u nvme-tcp-connect.service3. 常见故障排查| 问题 | 排查方法 ||------|----------|| discover 无响应 | 检查防火墙sudo ufw allow 4420/tcp检查网络连通性 || connect 失败 | 确认 Host NQN 已在 PowerFlex 端注册 || 设备不可见 | 检查 Volume 是否已映射到 Host || 多路径未生效 | 确认 nvme_core multipathY检查 nvme list-subsys || 性能不佳 | 检查 MTU、TCP 调优参数、网络带宽 || 连接中断后未恢复 | 确认 --ctrl-loss-tmo 和 --reconnect-delay 参数 |4. 断开连接# 断开特定控制器sudo nvme disconnect -n nqn.2014-08.com.dell:powerflex:xxxxxxxxxxxxxxx# 断开所有连接sudo nvme disconnect-all第九部分防火墙配置# 如果使用 UFWsudo ufw allow 4420/tcp comment NVMe over TCPsudo ufw allow 8009/tcp comment NVMe Discovery# 如果使用 iptablessudo iptables -A INPUT -p tcp --dport 4420 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 8009 -j ACCEPT
返回列表