通用方案:专有云环境中AliFlash盘挂载超时的解决方法

通用方案:专有云环境中AliFlash盘挂载超时的解决方法

更新时间:2020-11-03 13:57:02

1. 概述

本文主要介绍在专有云环境中,AliFlash盘挂载超时的解决方法。

方案总览

类别 内容
风险等级(方案执行的影响)
操作方式 黑屏
操作复杂度
预估执行时长 15分钟
客户业务的影响
可监控性 不支持
有效性(重启、重拉、补丁、升级、扩容等配置是否丢失) 固化
数据修订(变更是否涉及增删改操作)
执行灰度策略 请参见灰度标准
首次发布时间 N/A
预计完成时间 N/A

1.1. 适用范围

  • 专有云版本:V2.*,V3.*
  • 产品:基础服务设备

说明:适用于专有云V3.13以下版本。

1.2. 风险说明

本方案中修改的参数在机器启动时对磁盘挂载有效,不会影响系统运行,更改完成后,等待下次计划重启机器后,生效即可。

1.3. 用户告知

实施此方案前,需要收集并填写以下信息:

本次变更涉及xxx产品的xxx集群(集群名称),共xxx台服务器,此集群总共xxx台服务器。举例如下:

  • 本次变更涉及VPC产品的XGW集群,共1台服务器,此集群总共2台服务器。

  • 本次变更涉及ECS产品的计算节点集群(名称),共10台服务器,此集群总共100台服务器。

灰度标准如下:

  • 根据产品集群维度进行灰度,最多同时可以进行三个产品的灰度,且产品必须是在达到终态的条件下。
  • 同一集群内的机器,灰度节奏为每天一台。建议集群内第一台机器修改参数后重启后无影响,再进行其他机器的修改,其他服务器等待下次重启即可。

2. 问题描述

在某项目计划停机后,机房进行上电,OSS集群机器的AliFlash盘recover epilog时间长,导致挂载超时,出现机器启动异常的情况,该问题通过添加系统启动参数和设备挂载参数解决。

3. 解决方案

3.1. 环境检查

专有云V3环境需要登录OPS服务器进行相应的操作,专有云V2环境需要登录DMSAG服务器进行相应的操作。

获取所有物理机的IP地址

适用于专有云V3环境
  1. 登录OPS服务器,如何登录OPS服务器请参见专有云如何登录OPS服务器
  2. 执行以下命令,获得物理机IP列表。
    curl localhost:7070/api/v5/BatchGetMachineInfo?attr=id | grep hostname |sed 's/,/\n/g'|sed 's/\[/\n/g'|grep cloud| awk -F '"' '{print $4}' >/tmp/allip.list
适用于专有云V2环境
  1. 登录DMSAG服务器。
  2. 执行以下命令,获得rtable文件所在目录的路径。
    docker inspect $(docker ps |grep -i tianmu_api |awk '{print $1}') | grep -i "L1root/L1tools/main/config" |grep -v Source |cut -d: -f1 |cut -d'"' -f2
  3. 执行以下命令,获得物理机列表。
    cat [$Path]/rtable.csv|grep -v sn_ |awk -F , '{print $7}' | grep -vi ip >/tmp/allip.list
    说明:[$Path]为上一步获取的路径。

获取需要修改参数的主机列表

  1. 执行以下命令,获取需要修改参数的主机列表。
    pssh -ih /tmp/allip.list "ls /dev/df*" |grep -i success |awk -F' ' {'print $4'}
    系统显示类似如下。
  2. 获取主机列表后,需要现场技术支持将主机列表中的物理机按照集群分组,再按照灰度标准进行变更。

3.2. 实施步骤

添加系统启动参数

适用于5U、6U机器
  1. 登录环境检查中获取的主机,执行以下命令,备份文件。
    cp /boot/grub/grub.conf /boot/grub/grub.conf.bak
  2. 执行以下命令,编辑grub.conf文件。
    vim /boot/grub/grub.conf
    添加以下参数。
    rd.udev.event_timeout=300
适用于7U机器
  1. 登录环境检查中获取的主机,执行以下命令,备份文件。
    cp /etc/default/grub /etc/default/grub.bak
  2. 执行以下命令,编辑文件。
    vim /etc/default/grub
    添加以下参数。
    GRUB_CMDLINE_LINUX_DEFAULT="rd.udev.event_timeout=300"
  3. 添加成功后,执行以下命令,生成新的grub.cfg文件。
    注意:只有7U机器需要执行此步骤。
    grub2-mkconfig -o /boot/grub2/grub.cfg
    系统显示类似如下。

添加设备挂载参数

  1. 登录环境检查中获取的主机,执行以下命令,备份文件。
    cp /etc/fstab /etc/fstab.bak
  2. 执行以下命令,编辑fstab文件。
    vim /etc/fstab
    添加以下参数。
    x-systemd.device-timeout=300s

3.3. 结果验证

确认系统重启参数添加成功

适用于5U、6U机器

登录环境检查中获取的主机,执行以下命令,确认系统重启参数添加成功。

cat /boot/grub/grub.conf

系统显示类似如下。

适用于7U机器

登录环境检查中获取的主机,依次执行以下命令,确认系统重启参数添加成功。

cat /etc/default/grub
cat /boot/grub2/grub.cfg |grep vmlinuz

系统显示类似如下。

确认设备挂载参数添加成功

登录环境检查中获取的主机,依次执行以下命令,确认设备挂载参数添加成功。

cat /etc/fstab

系统显示类似如下。

4. 回滚方案

适用于5U、6U机器

回滚实施步骤中备份的文件,等待下次重启机器后,使其生效。

适用于7U机器

回滚实施步骤中备份的文件,等待下次重启机器后,使其生效。