本文介紹了不同發行平台的阿里雲鏡像的已知故障、故障涉及範圍以及解決方案。

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
    • Virtual Private Cloud內網:mirrors.cloud.aliyuncs.com
    • 傳統網路內網:mirrors.aliyuncs.com
  • 修複方案:您可採用以下任一方法解決該問題。
    • 方法一

      為您的執行個體分配公網IP,即為執行個體綁定一個Elastic IP Address(EIP),詳情請參見綁定彈性網卡

      預付費執行個體還可通過升降配重新分配公網IP,詳情請參見預付費執行個體升級配置

    • 方法二
      一旦出現pip響應延遲的情況,您可在ECS執行個體中運行指令碼fix_pypi.sh,然後再重試pip操作。具體步驟如下:
      1. 遠端連線執行個體。詳情請參見使用管理終端串連 ECS 執行個體
      2. 運行以下命令擷取指令檔。
        wget http://image-offline.oss-cn-hangzhou.aliyuncs.com/fix/fix_pypi.sh
      3. 運行指令碼。
        • Virtual Private Cloud執行個體:運行命令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