本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
公共鏡像可能存在一些已知的安全漏洞或配置問題。通過查看公共鏡像的已知問題,可以幫助您了解這些問題的潛在安全風險,并采取相應的措施來快速定位和解決問題。
Windows操作系統已知問題
Linux操作系統已知問題
CentOS問題
Debian問題
Fedora CoreOS問題
OpenSUSE問題
Red Hat Enterprise Linux問題
SUSE Linux Enterprise Server問題
其他問題
Windows操作系統已知問題
Windows系統在512 MB內存規格上部分功能異常
問題描述
Windows Server Version 2004 數據中心版 64位中文版(不含圖形化桌面)系統在內存為512 MB的實例規格上使用時,出現創建實例時設置的密碼不生效,運行時無法修改密碼、執行命令失敗等問題。
問題原因
未開啟頁面文件導致虛擬內存無法分配,從而在執行程序時概率性出現異常。
解決方案
此類規格由于內存太小導致無法掛載PE,又因為實例創建時設置的密碼不生效而導致無法正常登錄,所以只能借助云助手來設置頁面文件。
您可以通過以下方式使用云助手來執行命令。
通過會話管理器免密登錄實例執行命令。具體操作,請參見通過會話管理連接實例。
通過云助手發送命令。具體操作,請參見發送遠程命令。
通過以下命令開啟頁面文件自動管理。
Wmic ComputerSystem set AutomaticManagedPagefile=True
說明該命令在執行時會概率性失敗,請您多嘗試幾次直至命令執行成功。
您也可以通過
Wmic ComputerSystem get AutomaticManagedPagefile
命令查詢頁面文件是否開啟成功。如果顯示如下回顯信息,表示開啟成功。AutomaticManagedPagefile TRUE
重啟實例使配置生效。
Windows Server 2016運行軟件安裝包沒有反應
問題描述
Windows Server 2016在系統內部運行下載的軟件安裝包時,沒有任何反應。
問題原因
出于安全考慮,Windows系統會在啟動過程中的sysprep階段開啟一個ProtectYourPC安全配置,此配置會使系統啟動后攜帶SmartScreen系統進程,主要用于保護您免受惡意網站和不安全下載的侵害。
當您嘗試從Internet下載或運行軟件包時,軟件包會帶有Web網絡標志,會觸發系統的SmartScreen進程,SmartScreen識別到該軟件來源于互聯網,且可能缺乏足夠的信譽信息因此會被攔截。
解決方案
您可以通過以下任意一種方式來解決:
解除軟件包鎖定
在軟件包的屬性中選中解除鎖定。
再次運行軟件包。
關閉SmartScreen篩選器
進入
C:\Windows\System32
目錄。雙擊打開
SmartScreenSettings.exe
文件。在Windows SmartScreen對話框中選擇不執行任何操作(關閉Windows SmartScreen篩選器),然后單擊確定。
再次運行軟件包。
修改組策略配置
打開運行窗口,輸入
gpedit.msc
。在本地組策略編輯器中,依次選擇計算機配置 > Windows設置 > 安全設置 > 本地策略 > 安全選項。
找到用戶帳戶控制:用于內置管理員帳戶的管理員批準模式選項,然后單擊右鍵選擇屬性。
在本地安全設置頁簽選擇已啟用選項,然后單擊確定。
重啟系統使配置生效。
再次運行軟件包。
Windows Server 2022安裝KB5034439補丁失敗問題
問題描述
在Windows Server 2022系統上安裝KB5034439失敗。
問題原因
KB5034439是微軟官方2024年01月恢復環境的更新,如果您配置使用的更新源是微軟官方的Windows Update(鏡像默認使用阿里云的WSUS更新服務器,不會更新到這個補丁)進行更新時會搜索安裝到這個補丁,會出現安裝失敗的情況。這種現象符合預期,不影響正常使用。更多信息,請參見微軟官方文檔KB5034439: Windows Recovery Environment update for Windows Server 2022: January 9, 2024。
2022年06月補丁導致Windows服務器網卡NAT、RRAS異常等問題
問題描述:根據微軟官方2022年06月23日的公告,Windows終端在安裝微軟官方2022年06月的安全補丁后,會出現網絡接口上啟用了NAT、RRAS服務器可能會失去連接、連接到服務器的設備也可能無法連接到Internet等風險。
影響范圍:
Windows Server 2022
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012
Windows Server 2012 R2和Windows Server 2012版本檢查系統更新時,請務必選擇①處的檢查更新。①處連接的更新源為阿里云內部的Windows WSUS更新服務器,②處連接的更新源為微軟官方的Internet Windows Update服務器。因為在特殊情況下,安全更新可能會帶來潛在問題,為了預防發生此類情況,我們會檢查收到的微軟Windows安全更新,將通過檢查的更新發布到內部WSUS更新服務器中。
解決方案:阿里云官方提供的WSUS服務中,已經將相關問題補丁剔除。為了確保您的操作系統不會受到相關影響,請您在Windows終端中檢測是否已經安裝了相關問題補丁。檢測補丁的CMD命令如下,您需要根據不同的Windows Server版本運行匹配的檢測命令。
Windows Server 2012 R2: wmic qfe get hotfixid | find "5014738" Windows Server 2019: wmic qfe get hotfixid | find "5014692" Windows Server 2016: wmic qfe get hotfixid | find "5014702" Windows Server 2012: wmic qfe get hotfixid | find "5014747" Windows Server 2022: wmic qfe get hotfixid | find "5014678"
如果檢測結果中顯示您已經安裝了問題補丁,并且您的Windows服務器出現網卡NAT、RRAS異常等問題。建議您卸載相關問題補丁,以恢復終端至正常狀態。卸載補丁的CMD命令如下,您需要根據不同的Windows Server版本運行匹配的卸載命令。
Windows Server 2012 R2: wusa /uninstall /kb:5014738 Windows Server 2019: wusa /uninstall /kb:5014692 Windows Server 2016: wusa /uninstall /kb:5014702 Windows Server 2012: wusa /uninstall /kb:5014747 Windows Server 2022: wusa /uninstall /kb:5014678
說明關于該問題的進一步更新以及操作指導,請以微軟官方說明為準。更多信息,請參見RRAS Servers can lose connectivity if NAT is enabled on the public interface。
2022年01月補丁導致Windows域控服務器異常問題
問題描述:根據微軟官方2022年01月13日的公告,Windows終端在安裝微軟官方2022年01月的安全補丁后,會出現域控服務器無法重啟(或無限重啟)問題、Hyper-V中的虛擬機(VM)可能無法啟動、IPSec VPN連接可能失敗等風險。
影響范圍:
Windows Server 2022
Windows Server, version 20H2
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012
Windows Server 2012 R2和Windows Server 2012版本檢查系統更新時,請務必選擇①處的檢查更新。①處連接的更新源為阿里云內部的Windows WSUS更新服務器,②處連接的更新源為微軟官方的Internet Windows Update服務器。因為在特殊情況下,安全更新可能會帶來潛在問題,為了預防發生此類情況,我們會檢查收到的微軟Windows安全更新,將通過檢查的更新發布到內部WSUS更新服務器中。
解決方案:阿里云官方提供的WSUS服務中,已經將相關問題補丁剔除。為了確保您的操作系統不會受到相關影響,請您在Windows終端中檢測是否已經安裝了相關問題補丁。檢測補丁的CMD命令如下,您需要根據不同的Windows Server版本運行匹配的檢測命令。
Windows Server 2012 R2: wmic qfe get hotfixid | find "5009624" Windows Server 2019: wmic qfe get hotfixid | find "5009557" Windows Server 2016: wmic qfe get hotfixid | find "5009546" Windows Server 2012: wmic qfe get hotfixid | find "5009586" Windows Server 2022: wmic qfe get hotfixid | find "5009555"
如果檢測結果中顯示您已經安裝了問題補丁,并且您的Windows終端出現域控服務器無法使用或者虛擬機無法啟動的問題。建議您卸載相關問題補丁,以恢復終端至正常狀態。卸載補丁的CMD命令如下,您需要根據不同的Windows Server版本運行匹配的卸載命令。
Windows Server 2012 R2: wusa /uninstall /kb:5009624 Windows Server 2019: wusa /uninstall /kb:5009557 Windows Server 2016: wusa /uninstall /kb:5009546 Windows Server 2012: wusa /uninstall /kb:5009586 Windows Server 2022: wusa /uninstall /kb:5009555
說明關于該問題的進一步更新以及操作指導,請以微軟官方說明為準。更多信息,請參見RRAS Servers can lose connectivity if NAT is enabled on the public interface。
經典網絡中Windows Server 2022鏡像的實例無法自動激活問題
目前經典網絡類型的Windows Server 2022鏡像的實例無法實現自動激活,您需要按照如下操作完成激活。
遠程登錄Windows實例。
具體操作,請參見通過密碼或密鑰認證登錄Windows實例。
在Windows Server桌面,單擊
,輸入cmd,然后按回車鍵后進入命令行窗口。運行以下命令,配置KMS(Key Management Service)域名。
slmgr -skms kms.aliyuncs.com
系統顯示類似如下,表示配置成功,然后單擊確定。
運行以下命令,激活KMS服務。
slmgr /ato
系統顯示類似如下,表示激活成功,然后單擊確定。
Windows Server 2012 R2安裝.NET 3.5失敗的問題
問題描述:Windows Server 2012 R2系統使用以下版本的鏡像默認已安裝2023年06月補丁KB5027141、7月補丁KB5028872、8月份補丁KB5028970或者9月份補丁KB5029915,再安裝.NET 3.5會出現失敗的情況。
解決方案:
在控制面板找到KB5027141、KB5028872、KB5028970或者KB5029915補丁,單擊右鍵選擇卸載,手動卸載補丁。例如在如下圖所示的路徑下,卸載KB5029915補丁。
重啟ECS實例。
具體操作,請參見重啟實例。
通過以下任意一種方式,安裝.NET Framework 3.5。
服務器管理器UI界面安裝
在服務管理器中單擊添加角色和功能。
按照向導默認配置進行操作,在功能欄中選中.NET Framework 3.5功能。
繼續按照向導確認結果,直至安裝完成。
執行PowerShell命令安裝
您可以運行以下任意一條命令:
Dism /Online /Enable-Feature /FeatureName:NetFX3 /All
Install-WindowsFeature -Name NET-Framework-Features
Linux操作系統已知問題
CentOS問題
CentOS 8.0公共鏡像命名問題
問題描述:使用centos_8_0_x64_20G_alibase_20200218.vhd公共鏡像創建了CentOS系統實例,遠程連接實例后檢查系統版本,您發現實際為CentOS 8.1。
testuser@ecshost:~$ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 8.1.1911 (Core) Release: 8.1.1911 Codename: Core
問題原因:該鏡像出現在公共鏡像列表中,已更新最新社區更新包,同時也升級了版本到8.1,所以實際版本是8.1。
涉及鏡像ID:centos_8_0_x64_20G_alibase_20200218.vhd。
修復方案:如果您需要使用CentOS 8.0的系統版本,可以通過RunInstances等接口,設置
ImageId=centos_8_0_x64_20G_alibase_20191225.vhd
創建ECS實例。
CentOS 7部分鏡像ID變更可能引發的問題說明
問題描述:部分CentOS 7公共鏡像更新了鏡像ID,可能會影響到您自動化運維過程中獲取鏡像ID的策略。
涉及鏡像:CentOS 7.5、CentOS 7.6
原因分析:CentOS 7.5和CentOS 7.6公共鏡像在最新版本中使用的鏡像ID格式為
%OS類型%_%大版本號%_%小版本號%_%特殊字段%_alibase_%日期%.%格式%
。例如,CentOS 7.5的鏡像ID前綴由原centos_7_05_64
更新為centos_7_5_x64
。您需要根據鏡像ID的變更自行調整可能受影響的自動化運維策略。關于鏡像ID的更多信息,請參見2023年。
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時,可按如下步驟操作。
遠程連接實例。
具體操作,請參見連接實例概述。
查看現有的hostname。
[testuser@izbp193*****3i161uynzzx ~]# hostname izbp193*****3i161uynzzx
運行以下命令固化hostname。
hostnamectl set-hostname --static iZbp193*****3i161uynzzX
運行以下命令查看更新后的hostname。
[testuser@izbp193*****3i161uynzzx ~]# hostname iZbp193*****3i161uynzzX
下一步:如果您使用的是自定義鏡像,請更新cloud-init軟件至最新版本后,再次創建自定義鏡像。避免使用存在該問題的自定義鏡像創建新實例后發生同樣的問題。更多信息,請參見安裝cloud-init和使用實例創建自定義鏡像。
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。
修復方案:您可以運行yum update命令升級系統內核至2.6.32-696.11及以上版本。
重要操作實例時,請確保您已經提前創建了快照備份數據。具體操作,請參見創建快照。
Debian問題
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
Fedora CoreOS問題
通過Fedora CoreOS自定義鏡像創建的ECS實例中主機名不生效問題
問題描述:當您選擇Fedora CoreOS鏡像創建了一臺ECS實例A,通過實例A創建了一個自定義鏡像,然后通過該自定義鏡像新建了一臺ECS實例B時,您為實例B設置的主機名不生效(登錄實例B查看實例B的主機名與實例A的主機名相同)。
例如,您有一臺Fedora CoreOS操作系統的ECS實例(
實例A
),主機名為test001
,然后您使用該實例對應的自定義鏡像新建了一臺ECS實例(實例B
),并且在創建實例的過程中,將實例B
的主機名設置為了test002
。當您成功創建并遠程連接實例B
后,實例B
的主機名仍然為test001
。問題原因:阿里云公共鏡像提供的Fedora CoreOS鏡像采用操作系統官方的Ignition服務進行實例初始化配置。Ignition服務是指Fedora CoreOS與Red Hat Enterprise Linux CoreOS在系統啟動時進入initramfs期間用來操作磁盤的程序。ECS實例在首次啟動時,Ignition中的
coreos-ignition-firstboot-complete.service
會根據/boot/ignition.firstboot文件(該文件為空文件)是否存在,判斷是否進行實例的初始化配置。如果文件存在,則進行初始化配置(其中包括配置主機名),并刪除/boot/ignition.firstboot文件。由于創建Fedora CoreOS實例后至少啟動了一次,則對應自定義鏡像中的/boot/ignition.firstboot文件已被刪除。當您使用該自定義鏡像新建ECS實例時,實例首次啟動并不會進行初始化配置,對應的主機名稱也不會發生變化。
修復方案:
說明為確保實例中數據安全,建議您在操作前先為實例創建快照。如果實例發生數據異常,可通過快照將云盤回滾至正常狀態。具體操作,請參見創建快照。
當您基于Fedora CoreOS實例創建自定義鏡像前,先使用
root
權限(管理員權限)在/boot目錄下創建/ignition.firstboot文件。命令行操作說明如下:以讀寫方式重新掛載/boot。
sudo mount /boot -o rw,remount
創建/ignition.firstboot文件。
sudo touch /boot/ignition.firstboot
以只讀方式重新掛載/boot。
sudo mount /boot -o ro,remount
關于Ignition相關的配置說明,請參見Ignition配置說明參考。
OpenSUSE問題
OpenSUSE 15內核升級可能導致啟動hang的問題
問題描述:OpenSUSE內核版本升級到
4.12.14-lp151.28.52-default
后,實例可能在某些CPU規格上啟動hang,現已知的CPU規格為Intel? Xeon? CPU E5-2682 v4 @ 2.50GHz
。對應的calltrace調試結果如下:[ 0.901281] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.901281] CR2: ffffc90000d68000 CR3: 000000000200a001 CR4: 00000000003606e0 [ 0.901281] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 0.901281] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 0.901281] Call Trace: [ 0.901281] cpuidle_enter_state+0x6f/0x2e0 [ 0.901281] do_idle+0x183/0x1e0 [ 0.901281] cpu_startup_entry+0x5d/0x60 [ 0.901281] start_secondary+0x1b0/0x200 [ 0.901281] secondary_startup_64+0xa5/0xb0 [ 0.901281] Code: 6c 01 00 0f ae 38 0f ae f0 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 90 31 d2 65 48 8b 34 25 40 6c 01 00 48 89 d1 48 89 f0 <0f> 01 c8 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ** **
問題原因:新內核版本與CPU Microcode不兼容,更多信息,請參見啟動hang問題。
涉及鏡像:opensuse_15_1_x64_20G_alibase_20200520.vhd。
修復方案:在/boot/grub2/grub.cfg文件中,以
linux
開頭一行中增加內核參數idle=nomwait
。文件修改的示例內容如下:menuentry 'openSUSE Leap 15.1' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-20f5f35a-fbab-4c9c-8532-bb6c66ce****' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 20f5f35a-fbab-4c9c-8532-bb6c66ce**** else search --no-floppy --fs-uuid --set=root 20f5f35a-fbab-4c9c-8532-bb6c66ce**** fi echo 'Loading Linux 4.12.14-lp151.28.52-default ...' linux /boot/vmlinuz-4.12.14-lp151.28.52-default root=UUID=20f5f35a-fbab-4c9c-8532-bb6c66ce**** net.ifnames=0 console=tty0 console=ttyS0,115200n8 splash=silent mitigations=auto quiet idle=nomwait echo 'Loading initial ramdisk ...' initrd /boot/initrd-4.12.14-lp151.28.52-default }
Red Hat Enterprise Linux問題
Red Hat Enterprise Linux 8 64位通過yum update命令更新內核版本不生效問題
問題描述:在Red Hat Enterprise Linux 8 64位操作系統的ECS實例中,運行yum update更新內核版本并重啟實例后,發現內核版本仍為舊的內核版本。
問題原因:RHEL 8 64位操作系統中存儲GRUB2環境變量的文件/boot/grub2/grubenv大小異常,該文件大小不是標準的1024字節,從而導致更新內核版本失敗。
修復方案:您需要在更新內核版本后,將新的內核版本設置為默認啟動版本。完整的操作說明如下所述:
運行以下命令,更新內核版本。
yum update kernel -y
運行以下命令,獲取當前操作系統的內核啟動參數。
grub2-editenv list | grep kernelopts
運行以下命令,備份舊的/grubenv文件。
mv /boot/grub2/grubenv /home/grubenv.bak
運行以下命令,生成一個新的/grubenv文件。
grub2-editenv /boot/grub2/grubenv create
運行以下命令,把新的內核版本設置為默認啟動版本。
本示例中,更新后的新內核版本以
/boot/vmlinuz-4.18.0-305.19.1.el8_4.x86_64
為例。grubby --set-default /boot/vmlinuz-4.18.0-305.19.1.el8_4.x86_64
運行以下命令,設置內核啟動參數。
其中,參數
- set kernelopts
需要手動設置,取值為步驟2中獲取到的當前操作系統內核啟動參數信息。grub2-editenv - set kernelopts="root=UUID=0dd6268d-9bde-40e1-b010-0d3574b4**** ro crashkernel=auto net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8 noibrs nosmt"
運行以下命令,重啟ECS實例至新的內核版本。
reboot
警告重啟實例會造成您的實例停止工作,可能導致業務中斷,建議您在非業務高峰期時執行該操作。
SUSE Linux Enterprise Server問題
SUSE Linux Enterprise Server SMT Server連接失敗問題
問題描述:您購買并使用阿里云付費鏡像SUSE Linux Enterprise Server或SUSE Linux Enterprise Server for SAP時,會遇到SMT Server連接超時或異常的情況。當您嘗試下載或更新組件時,返回類似于如下所示的報錯信息:
Registration server returned 'This server could not verify that you are authorized to access this service.' (500)
Problem retrieving the respository index file for service 'SMT-http_mirrors_cloud_aliyuncs_com' location ****
涉及鏡像:SUSE Linux Enterprise Server、SUSE Linux Enterprise Server for SAP
解決方案:您需要重新注冊并激活SMT服務。
依次運行以下命令,重新注冊并激活SMT服務。
SUSEConnect -d SUSEConnect --cleanup systemctl restart guestregister
運行以下命令,驗證SMT服務的激活狀態。
SUSEConnect -s
命令行返回示例如下,表示成功激活SMT服務。
[{"identifier":"SLES_SAP","version":"12.5","arch":"x86_64","status":"Registered"}]
SUSE Linux Enterprise Server 12 SP5 內核升級可能導致啟動hang的問題
問題描述:SLES(SUSE Linux Enterprise Server)12 SP5之前的內核版本在升級至SLES 12 SP5,或SLES 12 SP5內部內核版本升級后,實例可能在某些CPU規格上啟動hang。現已知的CPU規格為
Intel? Xeon? CPU E5-2682 v4 @ 2.50GHz
與Intel? Xeon? CPU E7-8880 v4 @ 2.20GHz
。對應的calltrace調試結果如下:[ 0.901281] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.901281] CR2: ffffc90000d68000 CR3: 000000000200a001 CR4: 00000000003606e0 [ 0.901281] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 0.901281] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 0.901281] Call Trace: [ 0.901281] cpuidle_enter_state+0x6f/0x2e0 [ 0.901281] do_idle+0x183/0x1e0 [ 0.901281] cpu_startup_entry+0x5d/0x60 [ 0.901281] start_secondary+0x1b0/0x200 [ 0.901281] secondary_startup_64+0xa5/0xb0 [ 0.901281] Code: 6c 01 00 0f ae 38 0f ae f0 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 90 31 d2 65 48 8b 34 25 40 6c 01 00 48 89 d1 48 89 f0 <0f> 01 c8 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ** **
問題原因:新內核版本與CPU Microcode不兼容。
修復方案:在
/boot/grub2/grub.cfg
文件中,以linux
開頭一行中增加內核參數idle=nomwait
。文件修改的示例內容如下:menuentry 'SLES 12-SP5' --class sles --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-fd7bda55-42d3-4fe9-a2b0-45efdced****' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' fd7bda55-42d3-4fe9-a2b0-45efdced**** else search --no-floppy --fs-uuid --set=root fd7bda55-42d3-4fe9-a2b0-45efdced**** fi echo 'Loading Linux 4.12.14-122.26-default ...' linux /boot/vmlinuz-4.12.14-122.26-default root=UUID=fd7bda55-42d3-4fe9-a2b0-45efdced**** net.ifnames=0 console=tty0 console=ttyS0,115200n8 mitigations=auto splash=silent quiet showopts idle=nomwait echo 'Loading initial ramdisk ...' initrd /boot/initrd-4.12.14-122.26-default }
其他問題
部分高版本內核系統在部分實例規格上啟動時可能出現Call Trace
問題描述:部分高版本內核系統(例如
4.18.0-240.1.1.el8_3.x86_64
內核版本的RHEL 8.3、CentOS 8.3系統等),在部分實例規格(例如ecs.i2.4xlarge)上啟動時可能出現如下所示的Call Trace:Dec 28 17:43:45 localhost SELinux: Initializing. Dec 28 17:43:45 localhost kernel: Dentry cache hash table entries: 8388608 (order: 14, 67108864 bytes) Dec 28 17:43:45 localhost kernel: Inode-cache hash table entries: 4194304 (order: 13, 33554432 bytes) Dec 28 17:43:45 localhost kernel: Mount-cache hash table entries: 131072 (order: 8, 1048576 bytes) Dec 28 17:43:45 localhost kernel: Mountpoint-cache hash table entries: 131072 (order: 8, 1048576 bytes) Dec 28 17:43:45 localhost kernel: unchecked MSR access error: WRMSR to 0x3a (tried to write 0x000000000000****) at rIP: 0xffffffff8f26**** (native_write_msr+0x4/0x20) Dec 28 17:43:45 localhost kernel: Call Trace: Dec 28 17:43:45 localhost kernel: init_ia32_feat_ctl+0x73/0x28b Dec 28 17:43:45 localhost kernel: init_intel+0xdf/0x400 Dec 28 17:43:45 localhost kernel: identify_cpu+0x1f1/0x510 Dec 28 17:43:45 localhost kernel: identify_boot_cpu+0xc/0x77 Dec 28 17:43:45 localhost kernel: check_bugs+0x28/0xa9a Dec 28 17:43:45 localhost kernel: ? __slab_alloc+0x29/0x30 Dec 28 17:43:45 localhost kernel: ? kmem_cache_alloc+0x1aa/0x1b0 Dec 28 17:43:45 localhost kernel: start_kernel+0x4fa/0x53e Dec 28 17:43:45 localhost kernel: secondary_startup_64+0xb7/0xc0 Dec 28 17:43:45 localhost kernel: Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8 Dec 28 17:43:45 localhost kernel: Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4 Dec 28 17:43:45 localhost kernel: FEATURE SPEC_CTRL Present Dec 28 17:43:45 localhost kernel: FEATURE IBPB_SUPPORT Present
問題原因:這部分內核版本社區更新合入了嘗試Write MSR的PATCH,但部分實例規格(例如ecs.i2.4xlarge)由于虛擬化版本不支持Write MSR,導致出現該Call Trace。
修復方案:該Call Trace不影響系統正常使用及穩定性,您可以忽略該報錯。
高主頻通用型實例規格族hfg6與部分Linux內核版本存在兼容性問題導致panic
問題描述:目前Linux社區的部分系統,例如CentOS 8、SUSE Linux Enterprise Server 15 SP2、OpenSUSE 15.2等系統。在高主頻通用型實例規格族hfg6的實例中升級新版本內核可能出現內核錯誤(Kernel panic)。calltrace調試示例如下:
問題原因:高主頻通用型實例規格族hfg6與部分Linux內核版本存在兼容性問題。
修復方案:
SUSE Linux Enterprise Server 15 SP2和OpenSUSE 15.2系統目前最新版內核已經修復。變更提交(commit)內容如下,如果您升級的最新版內核包含此內容,則已兼容實例規格族hfg6。
commit 1e33d5975b49472e286bd7002ad0f689af33fab8 Author: Giovanni Gherdovich <ggherdovich@suse.cz> Date: Thu Sep 24 16:51:09 2020 +0200 x86, sched: Bail out of frequency invariance if turbo_freq/base_freq gives 0 (bsc#1176925). suse-commit: a66109f44265ff3f3278fb34646152bc2b3224a5 commit dafb858aa4c0e6b0ce6a7ebec5e206f4b3cfc11c Author: Giovanni Gherdovich <ggherdovich@suse.cz> Date: Thu Sep 24 16:16:50 2020 +0200 x86, sched: Bail out of frequency invariance if turbo frequency is unknown (bsc#1176925). suse-commit: 53cd83ab2b10e7a524cb5a287cd61f38ce06aab7 commit 22d60a7b159c7851c33c45ada126be8139d68b87 Author: Giovanni Gherdovich <ggherdovich@suse.cz> Date: Thu Sep 24 16:10:30 2020 +0200 x86, sched: check for counters overflow in frequency invariant accounting (bsc#1176925).
CentOS 8系統如果使用命令yum update升級到最新內核版本
kernel-4.18.0-240
及以上,在高主頻通用型實例規格族hfg6的實例中,可能出現Kernel panic。如果發生該問題,請回退至上一個內核版本。
pip操作時的超時問題
問題描述:pip請求偶有超時或失敗現象。
涉及鏡像:CentOS、Debian、Ubuntu、SUSE、OpenSUSE、Alibaba Cloud Linux。
原因分析:阿里云提供了以下三個pip源地址。其中,默認訪問地址為mirrors.aliyun.com,訪問該地址的實例需能訪問公網。當您的實例未分配公網IP時,會出現pip請求超時故障。
(默認)公網:mirrors.aliyun.com
專有網絡VPC內網:mirrors.cloud.aliyuncs.com
經典網絡內網:mirrors.aliyuncs.com
修復方案:您可采用以下任一方法解決該問題。
方法一
為您的實例分配公網IP,即為實例綁定一個彈性公網IP(EIP)。具體操作,請參見將EIP綁定至ECS實例。
包年包月實例還可通過升降配重新分配公網IP。具體操作,請參見包年包月實例升配規格。
方法二
一旦出現pip響應延遲的情況,您可在ECS實例中運行腳本fix_pypi.sh,然后再重試pip操作。具體步驟如下:
遠程連接實例。
具體操作,請參見使用VNC登錄實例。
運行以下命令獲取腳本文件。
wget http://image-offline.oss-cn-hangzhou.aliyuncs.com/fix/fix_pypi.sh
運行腳本。
專有網絡VPC實例:運行命令
bash fix_pypi.sh "mirrors.cloud.aliyuncs.com"
。經典網絡實例:運行命令
bash fix_pypi.sh "mirrors.aliyuncs.com"
。
重試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