Centos系统云主机中nvme盘不可用解决方法

天翼云开发者社区
• 阅读 1

本文分享自天翼云开发者社区《Centos系统云主机中nvme盘不可用解决方法》,作者:P****n

问题描述 Linux系统的云主机使用NVMe盘后,出现非预期的慢IO读写,导致系统或者应用程序对于NVMe磁盘的IO操作失败。系统将nvme盘踢出,在系统中通过lsblk查看不到nvme盘,后续的读写操作均失败,从而导致系统和应用程序异常或者业务中断。 问题原因 NVMe驱动中的 io_timeout参数控制了最大能够容忍的IO超时时间,在大部分Linux发行版本中默认配置为30秒。如果IO读写操作的延迟过高,超过了该参数的配置值,则NVMe驱动会返回IO失败。在特定情况下,系统或者应用程序可以对IO操作进行重试。但在某些情况下,可能导致系统或者应用程序对于NVMe磁盘的IO操作失败。系统将nvme盘踢出,在系统中通过lsblk查看不到nvme盘,后续的读写操作均失败,从而导致系统和应用程序异常或者业务中断。 为了减少NVMe磁盘的IO操作超时出现的异常情况,通常会将 io_timeout参数设置为可能的最大值,提高对于IO延迟的容忍度。在新版本的内核中,io_timeout参数的最大值为4,294,967,295,较早版本中为255。不同的版本的内核中,NVMe驱动的内核模块也有所不同,部分内核模块为nvme.ko ,或者部分内核模块为nvme_core.ko,从而完整的参数名称也存在nvme.io_timeout和nvme_core.io_timeout两种可能。 解决方案 1、远程连接CentOS云主机。 2、执行以下命令,查看系统内核是否已经加载了NVMe驱动。 cat /boot/config-uname -r | grep -i nvme | grep -v "^#" 系统显示类似如下,如果存在CONFIG_BLK_DEV_NVME=y,则表示该镜像已经加载NVMe驱动。 CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=y CONFIG_BLK_DEV_NVME_SCSI=y CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m CONFIG_NVME_FC=m CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_LOOP=m CONFIG_NVME_TARGET_RDMA=m CONFIG_NVME_TARGET_FC=m CONFIG_NVME_TARGET_FCLOOP=m CONFIG_NVMEM=y 3、在GRUB中添加NVMe相关的nvme timeout参数。 1)执行以下命令,打开grub文件。 vi /etc/default/grub 2)按i键进入编辑模式,确认io_timeout参数的完整参数名称和所能接受的最大值。例如,完整参数名称为nvme_core.io_timeout,所能接受的最大值为 4,294,967,295。则请在GRUB_CMDLINE_LINUX=一行中,添加nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295参数信息。 添加参数后,文件内容如下图所示:

3)按Esc键退出编辑模式,输入:wq并按Enter键,保存退出文件。 4)根据操作系统的启动方式不同,执行以下适用于您的操作系统的命令,使配置的GRUB生效: Legacy启动方式 grub2-mkconfig -o /boot/grub2/grub.cfg UEFI启动方式 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 5)执行以下命令,重启实例,使配置生效。 reboot 6)执行以下命令,确认相关配置已正确传递给内核。 cat /proc/cmdline 系统显示类似如下。 ... nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 7)执行以下命令,确认NVMe驱动参数已正确配置IO超时参数。 cat /sys/module/nvme_core/parameters/io_timeout 系统显示类似如下。 4294967295

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
NVMe协议笔记分享
NVMe概述NVMe是一个针对基于PCIe的固态硬盘的高性能的、可扩展的主机控制器接口。NVMe的显著特征是提供多个队列来处理I/O命令。单个NVMe设备支持多达64K个I/O队列,每个I/O队列可以管理多达64K个命令。当主机发出一个I/O命令的时候,主机系统将命令放置到提交队列(SQ),然后使用门铃寄存器(DB)通知NVMe设
Wesley13 Wesley13
3年前
3.12 重装系统 3.13 工单系统 3.14 RDS 3.15 SLB 3.16 阿里云其他产品介绍
3.12重装系统如何重装系统?1)更换系统盘直接换系统的那块盘,可以换不同的操作系统,比如从linux换成windows,或者从windows换成linux步骤:ECS控制台点击对应的实例停止实例右侧的更多更换系统盘2)重新初始化
windowsXP用户无法远程桌面连接天翼云2008云主机?
天翼云客户在使用WindowsXP或者Windows2003操作系统通过远程桌面连接Windows2008云主机时,可能出现提示“远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或技术人员来获得帮助”。而使用Windows7以上Windows操作系统则能正常通过远程桌面连接云主机。这是由于由于安全原因,天翼云云主机默认将Wi
天翼云云硬盘的磁盘模式及共享盘
在创建天翼云云硬盘的时候,除了选择存储类型为普通IO、高IO以及超高IO三种类型外(见如何选择天翼云云硬盘一文),还可以选择磁盘模式以及选择是否为共享盘。这到底又是什么意思呢,今天就来聊一聊这个问题。一、共享盘先来说说共享盘。我们把一个云硬盘打比为一个有很多储物格的储物间,储物间装了锁需要有钥匙才能打开使用。把云硬盘挂载到一台云主机上使用,就好像给这台云主机
如何选择天翼云云硬盘
天翼云提供普通云盘(SATA)、高效云盘(SAS)、SSD云盘(SSD)三种类型的云硬盘,这三种类型有什么区别,又分别适用于什么场景呢?今天就来说一说这个问题。首先我们了解一下什么是云硬盘。云硬盘即云主机使用的存储设备,购买云主机后操作系统、应用软件数据都保存在云硬盘上。本质上它是天翼云分布式存储池中划分出来的一个虚拟磁盘设备,在使用上和普通服务器的硬盘没有
实战天翼云云主机系统盘扩容
天翼云云主机默认提供的系统盘容量是40G,已经能适应于绝大多数场景。但在一些特殊场景下默认的40G系统盘空间不够,必须要扩大系统盘。这时候该如何处理呢?今天就来实战一番。以centos6(下文也适应于centos7)操作系统为例,我们使用ssh登录到云主机,使用 partedl 命令查看一下现在的分区情况。5、云主机开机回到弹性云主机页面,对云主机执行开机
如何将物理机Windows系统迁移到VMware虚拟机?
本文分享自天翼云开发者社区@《》,作者:我是小朋友如何将物理机上的Windows系统迁移到VMware虚拟机?本文详细介绍如何使用DiskGenius免费版将物理电脑上的Windows操作系统转移至VMware虚拟机。关于迁移物理系统到VMware虚拟机V
故障测试之模拟网络丢包
本文分享自天翼云开发者社区《》,作者:yn1、模拟网络丢包工具——TC(TrafficControl)TC(TrafficControl)是linux自带的模块,一般不需要安装,TC要求内核2.4.18以上。Linux操作系统中的流量控制器TC用于Linu
启动Tomcat时报错,提示80端口被占用怎么办?
本文分享自天翼云开发者社区《》,作者:wn本节操作以WindowsServer2019Datacenter操作系统的弹性云主机为例介绍排查80端口占用的操作步骤。可能原因提示80端口被占用,由提示可知,该端口可能是被其他程序占用,包括被木马病毒占用,可以按
创建云主机你不知道的那些事
本文分享自天翼云开发者社区《》,作者:乐道在界面上简简单单点击了一下创建云主机,但是后台发生了什么?大家清楚吗?本文将详细为大家讲述整个云主机创建的流程1、根据资源ID查询云主机基础信息表,如果该表里面存在云主机相关信息,会抛出异常(应该只是针对云主机名称
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
792
粉丝
16
获赞
40