4.2. 启用原生 NVMe 多路径
nvme_core.multipath
选项的默认内核设置被设置为 N
,这意味着原生 Non-volatile Memory Express™(NVMe™)多路径被禁用。您可以使用原生 NVMe 多路径解决方案启用原生 NVMe 多路径。
先决条件
- NVMe 设备连接到您的系统。如需更多信息,请参阅 通过光纤设备概述 NVMe。
步骤
检查内核中是否启用了原生 NVMe 多路径:
cat /sys/module/nvme_core/parameters/multipath
# cat /sys/module/nvme_core/parameters/multipath
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令显示以下之一:
N
- 禁用原生 NVMe 多路径。
Y
- 启用原生 NVMe 多路径。
如果原生 NVMe 多路径被禁用,请使用以下方法之一启用它:
使用内核选项:
在命令行中添加
nvme_core.multipath=Y
选项:grubby --update-kernel=ALL --args="nvme_core.multipath=Y"
# grubby --update-kernel=ALL --args="nvme_core.multipath=Y"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 64 位 IBM Z 构架中更新引导菜单:
zipl
# zipl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启系统。
使用内核模块配置文件:
使用以下内容创建
/etc/modprobe.d/nvme_core.conf
配置文件:options nvme_core multipath=Y
options nvme_core multipath=Y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 备份
initramfs
文件:cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重建
initramfs
:dracut --force --verbose
# dracut --force --verbose
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启系统。
可选: 在运行的系统中,更改 NVMe 设备中的 I/O 策略,以便在所有可用路径中分发 I/O:
echo "round-robin" > /sys/class/nvme-subsystem/nvme-subsys0/iopolicy
# echo "round-robin" > /sys/class/nvme-subsystem/nvme-subsys0/iopolicy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:使用
udev
规则永久设置 I/O 策略。使用以下内容创建/etc/udev/rules.d/71-nvme-io-policy.rules
文件:ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{iopolicy}="round-robin"
ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{iopolicy}="round-robin"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您的系统是否识别 NVMe 设备。以下示例假设您有一个通过光纤存储子系统连接的 NVMe,它有两个 NVMe 命名空间:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出所有连接的 NVMe 子系统:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查活动传输类型。例如,
nvme0 fc
表示设备通过光纤通道传输连接,nvme tcp
则表示设备通过 TCP 连接。如果您编辑了内核选项,请验证内核命令行上是否启用了原生 NVMe 多路径:
cat /proc/cmdline BOOT_IMAGE=[...] nvme_core.multipath=Y
# cat /proc/cmdline BOOT_IMAGE=[...] nvme_core.multipath=Y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您更改了 I/O 策略,请验证
round-robin
是否是 NVMe 设备上活跃的 I/O 策略:cat /sys/class/nvme-subsystem/nvme-subsys0/iopolicy round-robin
# cat /sys/class/nvme-subsystem/nvme-subsys0/iopolicy round-robin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow