全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

为自定义镜像安装NVMe驱动

最近更新时间:2026-10-08 10:01:31

本文介绍如何为自定义操作系统镜像安装并配置NVMe驱动,使镜像能够正确识别和使用基于NVMe协议的高性能块存储设备,从而解锁低延迟、高吞吐量的存储性能并支持多重挂载等高级功能。

概述

NVMe(Non-Volatile Memory Express)是专为块存储设备设计的高性能存储协议。安装NVMe驱动后,您的自定义镜像将能正确识别和使用基于NVMe协议的高性能块存储设备,从而完全解锁低延迟、高吞吐量的存储性能,并支持多重挂载等高级功能。

适用场景

  • 计划通过NVMe协议使用高性能块存储设备。

  • 需要使用多重挂载功能共享块存储设备。

    基于支持NVMe协议的标准镜像制作的自定义镜像,将自动获得NVMe支持并保留相关标签。通过其他方式导入的自定义镜像,需手动安装NVMe驱动,并在控制台为镜像配置NVMe属性,以确保所有依赖NVMe协议的功能可以正常使用。

操作步骤

步骤一:创建实例

使用计划安装NVMe驱动的自定义镜像创建一台云服务器实例,并连接该实例。

步骤二:安装NVMe驱动(以Ubuntu/Debian为例)

  1. 运行以下命令,检查initrd中是否包含NVMe驱动。

    lsinitramfs /boot/initrd.img-$(uname -r) | grep -i nvme
    • 若返回信息包含 nvme,表示操作系统的initrd中默认已加载NVMe驱动,可跳过本步骤剩余操作,直接执行步骤三:设置GRUB参数。

    • 若返回为空,表示initrd中未包含NVMe驱动,请继续执行以下操作。

  1. 根据操作系统类型,安装NVMe相关工具并更新initramfs。

    sudo apt-get update
    sudo apt-get install -y nvme-cli
    sudo update-initramfs -u
  2. 再次运行检查命令,确认initrd中已包含NVMe驱动。

    lsinitramfs /boot/initrd.img-$(uname -r) | grep -i nvme

步骤三:配置GRUB参数

NVMe作为高性能、低延迟的存储协议,在虚拟化(KVM)、SR-IOV等场景下表现优异。但在实际使用中,NVMe控制器的初始化过程会受到云平台、虚拟化层以及操作系统启动流程的影响,不同环境下初始化完成时间存在差异,可能导致系统在启动过程中无法及时识别NVMe设备。为提高兼容性、避免实例在首次启动或扩容启动时出现识盘失败,建议在GRUB中加入 nvme_core.io_timeout 和 nvme_core.admin_timeout 参数。

在大多数Linux发行版中,NVMe的I/O超时时间(io_timeout)默认配置为30秒。不同内核版本对 io_timeout 支持的最大值不同:较新的内核支持将其设置为 4294967295(2³²-1)秒,而部分较旧内核的最大值仅为 255 秒。您可以通过尝试写入参数的方式检查当前内核支持的最大值,例如:echo 4294967295 > /sys/module/nvme_core/parameters/io_timeout。如果命令执行成功,则表示当前内核支持最大值 4294967295;如果返回 "Numerical result out of range" 或类似错误,则说明该内核版本仅支持较小的数值(例如255秒)。

  1. 运行以下命令,打开 /etc/default/grub 文件。

    sudo vi /etc/default/grub
  2. 按 i 进入编辑模式,在 GRUB_CMDLINE_LINUX= 一行中,添加 nvme_core.io_timeout=4294967295 和 nvme_core.admin_timeout=4294967295 参数信息。

  3. 按 Esc 退出编辑模式,输入 :wq 并按 Enter 键保存并退出。

  4. 输入以下命令,使修改的GRUB配置文件生效。

    sudo update-grub2

步骤四:重新制作自定义镜像

  1. 基于已经安装并配置好NVMe驱动的实例,重新制作一个自定义镜像。

  2. 将该镜像的NVMe驱动属性修改为支持,具体操作可参考自定义镜像属性修改相关内容。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈