本文介绍了不同发行平台的阿里云镜像的已知故障、故障涉及范围以及解决方法。

Debian 9.6:经典网络配置问题

  • 问题描述:无法Ping通使用Debian 9公共镜像创建的经典网络类型实例。
  • 问题原因:因为Debian系统默认禁用了systemd-networkd服务,经典网络类型实例无法通过DHCP(Dynamic Host Configuration Protocol)模式自动分配IP。
  • 涉及镜像ID:debian_9_06_64_20G_alibase_20181212.vhd。
  • 修复方案:您需要运行下列命令解决该问题。
    systemctl enable systemd-networkd 
    systemctl start systemd-networkd

CentOS 6.8:装有NFS Client的实例异常崩溃的问题

  • 问题描述:加载了NFS客户端(NFS Client)的CentOS 6.8实例出现超长等待状态,只能通过重启实例解决该问题。
  • 问题原因:在2.6.32-696 ~ 2.6.32-696.10的内核版本上使用NFS服务时,如果通信延迟出现毛刺(glitch,电子脉冲),内核nfsclient会主动断开TCP连接。若NFS服务端(Server)响应慢,nfsclient发起的连接可能会卡顿在FIN_WAIT2状态。正常情况下,FIN_WAIT2状态的连接默认在一分钟后超时并被回收,nfsclient可以发起重连。但是,由于此类内核版本的TCP实现有缺陷,FIN_WAIT2状态的连接永远不会超时,因此nfsclient的TCP连接永远无法关闭,无法发起新的连接,造成用户请求卡死(hang死),永远无法恢复,只能通过重启ECS实例进行修复。
  • 涉及镜像ID:centos_6_08_32_40G_alibase_20170710.vhd和centos_6_08_64_20G_alibase_20170824.vhd。
  • 修复方案:您可以升级内核至2.6.32-696.11及以上版本。
    yum update
    说明 操作实例时,请确保您已经提前创建了快照备份数据。

CentOS 7:重启系统后主机名大写字母被修改

  • 问题描述:第一次重启ECS实例后,部分CentOS 7实例的主机名(hostname)存在大写字母变成小写字母的现象,如下表所示。
    实例hostname示例 第一次重启后示例 后续是否保持小写不变
    iZm5e1qe*****sxx1ps5zX izm5e1qe*****sxx1ps5zx
    ZZHost zzhost
    NetworkNode networknode
  • 涉及镜像:以下CentOS公共镜像,和基于以下公共镜像创建的自定义镜像。
    • centos_7_2_64_40G_base_20170222.vhd
    • centos_7_3_64_40G_base_20170322.vhd
    • centos_7_03_64_40G_alibase_20170503.vhd
    • centos_7_03_64_40G_alibase_20170523.vhd
    • centos_7_03_64_40G_alibase_20170625.vhd
    • centos_7_03_64_40G_alibase_20170710.vhd
    • centos_7_02_64_20G_alibase_20170818.vhd
    • centos_7_03_64_20G_alibase_20170818.vhd
    • centos_7_04_64_20G_alibase_201701015.vhd
  • 涉及Hostname类型:如果您的应用有hostname大小写敏感现象,重启实例后会影响业务。您可根据下面的修复方案修复以下类型的hostname。
    hostname类型 是否受影响 何时受影响 是否继续阅读文档
    在控制台或通过API创建实例时,hostname中有大写字母 第一次重启实例
    在控制台或通过API创建实例时,hostname中全是小写字母 不适用
    hostname中有大写字母,您登录实例后自行修改了hostname 不适用
  • 修复方案:如果重启实例后需要保留带大写字母的hostname时,可按如下步骤操作:
    1. 远程连接实例。
    2. 查看现有的hostname。
      [root@izbp193*****3i161uynzzx ~]# hostname
      izbp193*****3i161uynzzx
    3. 运行以下命令固化hostname。
      hostnamectl set-hostname --static iZbp193*****3i161uynzzX
    4. 运行以下命令查看更新后的hostname。
      [root@izbp193*****3i161uynzzx ~]# hostname
      iZbp193*****3i161uynzzX
  • 下一步:如果您使用的是自定义镜像,请更新cloud-init软件至最新版本后,再次创建自定义镜像。避免使用存在该问题的自定义镜像创建新实例后发生同样的问题。更多详情,请参见安装cloud-init使用实例创建自定义镜像

Linux:pip操作时的超时问题

  • 问题描述:pip请求偶有超时或失败现象。
  • 涉及镜像:CentOS、Debian、Ubuntu、SUSE、OpenSUSE、Aliyun Linux
  • 原因分析:阿里云提供了以下三个pip源地址。其中,默认访问地址为mirrors.aliyun.com,访问该地址的实例需能访问公网。当您的实例未分配公网IP时,会出现pip请求超时故障。
    • (默认)公网:mirrors.aliyun.com
    • 专有网络VPC内网:mirrors.cloud.aliyuncs.com
    • 经典网络内网:mirrors.aliyuncs.com
  • 修复方案:您可采用以下任一方法解决该问题。
    • 方法一

      为您的实例分配公网IP,即为实例绑定一个弹性公网IP(EIP),详情请参见绑定弹性网卡

      预付费实例还可通过升降配重新分配公网IP,详情请参见预付费实例升级配置

    • 方法二
      一旦出现pip响应延迟的情况,您可在ECS实例中运行脚本 fix_pypi.sh,然后再重试pip操作。具体步骤如下:
      1. 远程连接实例。详情请参见使用管理终端连接Linux实例
      2. 运行以下命令获取脚本文件。
        wget http://image-offline.oss-cn-hangzhou.aliyuncs.com/fix/fix_pypi.sh
      3. 运行脚本。
        • 专有网络VPC实例:运行命令bash fix_pypi.sh "mirrors.cloud.aliyuncs.com"
        • 经典网络实例:运行命令bash fix_pypi.sh "mirrors.aliyuncs.com"
      4. 重试pip操作。
      fix_pypi.sh脚本内容如下:
      #!/bin/bash
      function config_pip() {
          pypi_source=$1
          if [[ ! -f ~/.pydistutils.cfg ]]; then
      cat > ~/.pydistutils.cfg << EOF
      [easy_install]
      index-url=http://$pypi_source/pypi/simple/
      EOF
          else
              sed -i “s#index-url.#index-url=http://$pypi_source/pypi/simple/#“ ~/.pydistutils.cfg
          fi
          if [[ ! -f ~/.pip/pip.conf ]]; then
          mkdir -p ~/.pip
      cat > ~/.pip/pip.conf << EOF
      [global]
      index-url=http://$pypi_source/pypi/simple/
      [install]
      trusted-host=$pypi_source
      EOF
          else
              sed -i “s#index-url.#index-url=http://$pypi_source/pypi/simple/#“ ~/.pip/pip.conf
              sed -i “s#trusted-host.*#trusted-host=$pypi_source#” ~/.pip/pip.conf
          fi
      }
      config_pip $1

Aliyun Linux 2:开启内核选项CONFIG_PARAVIRT_SPINLOCK可能导致性能问题

  • 问题描述:开启内核选项CONFIG_PARAVIRT_SPINLOCK后,当ECS实例vCPU数量较多,且应用中有大量锁竞争操作时,应用性能会受到较大影响(例如, Nginx应用的短连接处理能力会因此大幅下降),您可能会在应用中观察到性能下降的问题。
  • 涉及镜像:Aliyun Linux 2
  • 修复方案:内核选项CONFIG_PARAVIRT_SPINLOCK在Aliyun Linux 2上默认处于关闭状态。如果您不确定如何处理内核问题,请勿开启CONFIG_PARAVIRT_SPINLOCK

Aliyun Linux 2:内核特性透明大页THP开关置为always可能会导致系统不稳定或性能下降

  • 问题描述:在您的生产环境系统中,将透明大页THP(Transparent Hugepage)开关置为always,可能会引发系统不稳定和性能下降等问题。
  • 涉及镜像:Aliyun Linux 2
  • 修复方案:在Aliyun Linux2中,内核特性透明大页(Transparent Hugepage, THP)开关已默认置为madvise。虽然在某些特殊场景下,例如运行一些性能基准测试套件时,开关置为madvise时,相对开关置为always时性能表现较差。但此类性能基准测试场景的测试结果不具备通用参考性。因此,除非您对THP有较为深入的理解,为了避免对系统造成其他竞争影响,建议您保持madvise选项不变。

Aliyun Linux 2:NFS v4.0版本中委托(Delegation)功能可能存在问题

  • 问题描述:NFS委托(Delegation)功能在v4.0版本中可能存在问题。详情请参见NFS委托功能v4.0版本
  • 涉及镜像:Aliyun Linux 2
  • 修复方案:使用NFS v4.0版本时,建议您不要开启Delegation功能。如需从服务器端关闭该功能,请参见社区文档

Aliyun Linux 2:NFS v4.1/4.2版本中存在缺陷可能导致应用程序无法退出

  • 问题描述:在NFS的v4.1和v4.2版本中,如果您在程序中使用异步I/O(AIO)方式下发请求,且在所有I/O返回之前关闭对应的文件描述符,有一定几率触发活锁,导致对应进程无法退出。
  • 涉及镜像:Aliyun Linux 2
  • 修复方案:该问题已在内核4.19.30-10.al7及以上版本中修复。由于该问题出现概率极低,您可根据实际需要决定是否升级内核修复该问题。如需修复,请在终端执行sudo yum update kernel -y命令,升级完成后重启系统即可。
    注意
    • 升级内核版本可能会导致系统无法开机等风险,请谨慎操作。
    • 升级内核前,请确保您已创建快照或自定义镜像备份数据。详情请参见创建快照使用实例创建自定义镜像

Aliyun Linux 2:Meltdown/Spectre漏洞修复会影响系统性能

  • 问题描述:Aliyun Linux 2内核中,默认打开了针对处理器硬件高危安全漏洞Meltdown和Spectre的修复功能。由于此修复功能会影响系统性能,因此在常见的性能基准套件测试中,可能会观察到不同程度的性能下降现象。
  • 涉及镜像:Aliyun Linux 2
  • 修复方案:Meltdown和Spectre是英特尔芯片中发现的两个高危漏洞,攻击者可通过这两个漏洞来访问核心内存,从而窃取应用程序中的敏感信息,因此,建议您不要在系统中关闭此类高危漏洞的修复功能。但如果您对系统性能有极高要求,可运行以下命令关闭该修复功能:
    #追加nopti nospectre_v2到内核启动参数中
    sudo sed -i 's/\(GRUB_CMDLINE_LINUX=".*\)"/\1 nopti nospectre_v2"/' /etc/default/grub
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
    #重启系统
    sudo reboot