本文介绍在使用云服务器ECS过程中,遇到的镜像相关问题及解决方案。
Windows实例问题
-
实例的操作系统为Windows Server,现在提示Windows副本不是正版怎么办?
-
频繁调用Windows系统API:timeBeginPeriod导致系统时间异常,如何解决?
-
Windows云服务器使用IE浏览器打开网站提示“增强安全配置正在阻止来自下列网站内容”如何处理?
-
如何手动更新Windows实例的virtio驱动?
-
Windows Server半年渠道镜像与实例管理
Linux实例问题
-
Red Hat和CentOS相关问题
-
如何处理CentOS DNS解析超时?
-
如何解决RedHat 8.1/8.2镜像在弹性裸金属服务器实例规格族的ECS实例下启动慢的问题?
-
如何检查与修复CentOS 7实例和Windows实例IP地址缺失问题?
-
如何从Red Hat Enterprise Linux(RHEL )7升级到RHEL 8?
-
CentOS/RedHat 7.x升级Systemd重启进入救援模式如何处理?
-
CentOS 7.9 ARM系统无法生成dump文件如何处理?
-
如何将CentOS 7转换为Red Hat Enterprise Linux(RHEL)7?
-
-
Ubuntu相关问题
为什么Ubuntu某些版本的ECS实例中启动安骑士进程后系统负载较高?
-
FreeBSD和Fedora CoreOS相关问题
-
为什么我无法使用ssh-rsa签名算法的SSH密钥对远程连接Fedora 33 64位系统的实例?
-
FreeBSD系统如何打补丁编译内核?
-
为什么使用Fedora CoreOS镜像创建部分实例后,CPU信息只有实例规格的一半?
-
FreeBSD系统在KVM环境无法找到系统盘,如何处理?
-
-
其他问题
-
基于弹性裸金属实例规格的ECS实例,系统生成crash dump文件失败如何解决?
-
Linux操作系统内核回写时出现softlockup异常如何解决?
-
在ECS实例内删除cgroup出现softlockup异常如何解决?
-
ECS实例宕机相关解决方案
-
公共镜像自带FTP上传吗?
-
为什么ECS默认没有启用虚拟内存或Swap说明?
-
如何在公共镜像中开启kdump?
-
如何设置Linux系统的ECS实例的静态IP地址?
-
如何在Linux实例中自定义配置DNS?
-
Linux操作系统配置IPv6地址后,安装了NTP服务的服务器时间无法同步,如何处理?
-
Linux自定义镜像如何适配NVMe系统盘?
-
如何为Linux服务器安装GRUB?
-
如何解决实例迁移后的宕机问题?
-
如何收集操作系统宕机后的内核转储信息?
-
如何解决使用RSA密钥无法登录ECS实例问题?
-
为什么使用自定义镜像创建的实例,热插拔云盘/网卡会失败?
-
操作系统内核错误后可能出现实例关机,如何处理?
-
实例的操作系统为Windows Server,现在提示Windows副本不是正版怎么办?
需要激活Windows。具体操作,请参见VPC环境下ECS Windows系统激活方法。如果在激活中遇到问题,请参见Windows系统ECS实例激活失败。
频繁调用Windows系统API:timeBeginPeriod导致系统时间异常,如何解决?
在Windows Server 2008上频繁调用系统API:timeBeginPeriod,导致Windows系统时间变慢或变快。您可以参考如下操作进行解决:
说明
可能会造成系统时间精度变化的系统函数,请参见微软官方文档。
-
远程登录ECS实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
-
下载工具。
-
解压CheckTimeBeginPeriod.zip。
-
解压bin.zip并进入bin目录,然后双击.exe文件。
-
64位操作系统,双击InjectDllx64.exe。
-
32位操作系统,双击InjectDllx86.exe。
打印的进程就是调用timeBeginPeriod的进程。
-
-
根据业务实际情况,停止或更新调用timeBeginPeriod的程序。
如果问题仍未解决,您可以直接提交工单寻求技术支持。
Windows云服务器使用IE浏览器打开网站提示“增强安全配置正在阻止来自下列网站内容”如何处理?
在Windows操作系统的云服务器ECS或者轻量应用服务器中,使用IE浏览器打开网站时,提示“增强安全配置正在阻止来自下列网站内容”报错,解决方法请参见Windows云服务器使用IE浏览器打开网站提示“增强安全配置正在阻止来自下列网站内容”如何处理?。
如何手动更新Windows实例的virtio驱动?
如果您需要手动更新Windows实例的virtio驱动,可以参考如何手动更新Windows实例的virtio驱动?完成驱动更新。
Windows Server半年渠道镜像与实例管理
Windows Server半年渠道镜像是一款纯Server Core模式运行的操作系统,不提供图形化用户界面,云服务器ECS提供Windows Server半年渠道镜像。更多信息,请参见Windows Server半年渠道镜像与实例管理。
基于弹性裸金属实例规格的ECS实例,系统生成crash dump文件失败如何解决?
问题原因及解决方案,请参见部分ECS实例生成crash dump文件失败如何解决?。
Linux操作系统内核回写时出现softlockup异常如何解决?
部分低版本的Linux操作系统内核在回写(writeback)文件缓存时,会出现softlockup异常。具体的解决方案,请参见Linux操作系统内核回写时出现softlockup异常的解决方案。
在ECS实例内删除cgroup出现softlockup异常如何解决?
具体的解决方案,请参见在ECS实例内删除cgroup出现softlockup异常的解决方案。
ECS实例宕机相关解决方案
-
ECS实例宕机并报错“Out of memory and no killable processes”如何处理?
-
ECS实例宕机并产生“Objects remaining in kmalloc”告警日志,如何处理?
-
ECS实例宕机并产生“RIP:get_target_pstate_use_performance”日志,如何处理?
-
ECS实例宕机并产生“VFS: Unable to mount root fs on unknown-block”日志,如何处理?
-
vSwitch中实例数量过多导致CentOS实例夯机或异常重启的问题
为什么我无法使用ssh-rsa签名算法的SSH密钥对远程连接Fedora 33 64位系统的实例?
当您使用Fedora 33 64位操作系统的ECS实例时,如果登录凭证设置的是ssh-rsa签名算法的SSH密钥对,可能无法顺利使用SSH远程连接实例。您可以通过以下任一方式解决该问题:
-
将ssh-rsa签名算法的SSH密钥对替换为ECDSA签名算法等其他签名算法的SSH密钥对。
-
在系统中运行update-crypto-policies –set LEGACY命令,将加密策略
POLICY
切换为LEGACY
,即可继续使用ssh-rsa签名算法的SSH密钥对。
FreeBSD系统如何打补丁编译内核?
阿里云的FreeBSD公共镜像已为内核添加了补丁,已满足系列V及以上的实例规格族的启动需求。具体的实例规格族可通过DescribeInstanceTypeFamilies接口的Generation
参数查询。
以下情况可能导致系统无法正常启动,您可以通过FreeBSD内核源码打补丁编译内核的方式,避免或解决系统无法启动的问题。
-
使用非阿里云提供的FreeBSD镜像及相关自定义镜像创建ECS实例时,系列V及以上实例规格族的ECS实例可能出现无法正常启动的情况。
-
使用FreeBSD公共镜像创建ECS实例,并使用了freebsd-update等更新内核补丁,可能会导致系列V及以上实例规格族的ECS实例无法正常启动。
FreeBSD 13及以上不需要打补丁。本示例以FreeBSD 12.3为例,介绍如何使用FreeBSD内核源码打补丁编译内核。
-
下载并解压FreeBSD内核源码。
wget https://mirrors.aliyun.com/freebsd/releases/amd64/12.3-RELEASE/src.txz -O /src.txz cd / tar -zxvf /src.txz
-
下载补丁包。
本示例中,为virtio驱动打补丁包
0001-virtio.patch
。cd /usr/src/sys/dev/virtio/ wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/0001-virtio.patch patch -p4 < 0001-virtio.patch
-
复制内核文件,并编译安装内核。
make -j
表示指定编译时的并行数,需要根据您执行编译的环境配置来决定。例如,1 vCPU环境建议设置-j2
,即vCPU核数与变量N的比值为1:2
。cd /usr/src/ cp ./sys/amd64/conf/GENERIC . make -j2 buildworld KERNCONF=GENERIC make -j2 buildkernel KERNCONF=GENERIC make -j2 installkernel KERNCONF=GENERIC
-
编译完成后,删除源码。
rm -rf /usr/src/* rm -rf /usr/src/.*
为什么Ubuntu某些版本的ECS实例中启动安骑士进程后系统负载较高?
Ubuntu某些版本(例如Ubuntu 18.04)的ECS实例中,启动安骑士进程(AliYunDun)后,系统平均负载较高。关闭安骑士进程后,系统平均负载恢复正常。
具体的原因和解决方案,请参见Ubuntu 18.04版本的ECS实例中启动安骑士进程后系统负载较高。
公共镜像自带FTP上传吗?
不自带,需要您自己安装配置。具体操作,请参见手动搭建FTP站点(Windows)和搭建FTP站点(CentOS 7)。
如何处理CentOS DNS解析超时?
问题原因
因CentOS 6和CentOS 7的DNS解析机制变动,导致2017年02月22日以前创建的ECS实例或使用2017年02月22日以前的自定义镜像创建的CentOS 6和CentOS 7实例可能出现DNS解析超时的情况。
解决方案
请按下列步骤操作修复此问题:
-
下载脚本fix_dns.sh。
-
将下载的脚本放至CentOS系统的/tmp目录下。
-
运行bash /tmp/fix_dns.sh命令,执行脚本。
脚本的作用和逻辑说明如下:
-
脚本作用
判断DNS解析文件/etc/resolv.conf中是否存在
options
>single-request-reopen
配置。更多信息,请参见resolv.conf文件说明。CentOS 6和CentOS 7的DNS解析机制,使用相同的网络五元组发送IPV4 DNS请求和IPV6 DNS请求,此时应开启
single-request-reopen
配置。开启该配置后,一旦需要处理同一socket发送的两次请求时,解析端会在发送第一次请求后关闭socket,并在发送第二次请求前打开新的socket。配置成功后,无需重启实例即可生效。 -
脚本逻辑
-
判断实例系统是否为CentOS。
-
如果实例为非CentOS系统(如Ubuntu和Debian):脚本停止工作。
-
如果实例为CentOS系统:脚本继续工作。
-
-
查询解析文件/etc/resolv.conf中
options
的配置情况。-
如果不存在
options
配置:默认使用阿里云
options
配置options timeout:2 attempts:3 rotate single-request-reopen
。 -
如果存在
options
配置:-
不存在
single-request-reopen
配置,则在options
配置中追加该项。 -
存在
single-request-reopen
配置,则脚本停止工作,不更改DNS nameserver的配置。
-
-
-
为什么ECS默认没有启用虚拟内存或Swap说明?
Swap分区或虚拟内存文件,是在系统物理内存不够用的时候,由系统内存管理程序将那些很长时间没有操作的内存数据,临时保存到Swap分区或虚拟内存文件中,以提高可用内存额度的一种机制。
但是,如果在内存使用率已经非常高,而同时I/O性能也不是很好的情况下,该机制其实会起到相反的效果。阿里云ECS云盘使用了分布式文件系统作为云服务器的存储,对每一份数据都进行了强一致的多份拷贝。该机制在保证用户数据安全的同时,由于3倍增涨的I/O操作,会降低本地磁盘的存储性能和I/O性能。
综上,为了避免当系统资源不足时进一步降低ECS云磁盘的I/O性能,所以Windows系统实例默认没有启用虚拟内存,Linux系统实例默认未配置Swap分区。
如何在公共镜像中开启kdump?
公共镜像中默认未开启kdump服务。若您需要实例在宕机时,生成core文件,并以此分析宕机原因,请参见以下步骤开启kdump服务。本步骤以公共镜像CentOS 7.2为例。实际操作时,请以您的操作系统为准。
-
设置core文件生成目录。
-
运行vim /etc/kdump.conf打开kdump配置文件。vim命令使用详情,请参见Vim教程。
-
设置path为core文件的生成目录。本示例中,在/var/crash目录下生成core文件,则path的设置如下。
path /var/crash
-
保存并关闭/etc/kdump.conf文件。
-
-
开启kdump服务。
根据操作系统对命令的支持情况,选择开启方式。
-
方法一: 依次运行以下命令开启kdump服务。
systemctl enable kdump.service
systemctlstartkdump.service
-
方法二: 依次运行以下命令开启kdump服务。
chkconfig kdump on
service kdump start
-
方法三:如果您的服务器已安装云助手,可参考如何解决实例迁移后的宕机问题?开启kdump服务。
-
如何解决RedHat 8.1/8.2镜像在弹性裸金属服务器实例规格族的ECS实例下启动慢的问题?
在弹性裸金属服务器实例规格族的ECS实例中,RedHat 8.1/8.2镜像相较于RedHat 7镜像启动时长多1~2分钟。为解决该问题,您可以在RedHat 8.1/8.2系统的/boot/grub2/grubenv文件中,将内核启动参数console=ttyS0 console=ttyS0,115200n8
修改为console=tty0 console=ttyS0,115200n8
,然后重启服务器使配置生效。
如何检查与修复CentOS 7实例和Windows实例IP地址缺失问题?
问题原因及解决方案,请参见如何检查与修复CentOS 7实例和Windows实例IP地址缺失问题。
如何从Red Hat Enterprise Linux(RHEL )7升级到RHEL 8?
具体操作,请参见Red Hat Enterprise Linux(RHEL)7升级为RHEL 8。
如何设置Linux系统的ECS实例的静态IP地址?
您需要远程连接ECS实例进行设置。具体操作,请参见如何在Linux实例中设置静态IP地址。
CentOS/RedHat 7.x升级Systemd重启进入救援模式如何处理?
CentOS 7或RedHat 7系列的系统在升级Systemd至systemd-219-71.el7版本后,重启实例会进入救援模式,这样会导致系统网络服务和一般的应用软件服务异常。具体解决方案请参见CentOS 7.X或RedHat 7.X升级Systemd并重启后会进入救援模式。
CentOS 7.9 ARM系统无法生成dump文件如何处理?
问题现象
CentOS 7.9 ARM系统宕机后,通过ls /var/crash
查询dump文件,没有生成vmcore
文件。
问题原因
CentOS 7.9 ARM系统带有CONFIG_ARM64_USER_VA_BITS_52=y
特性的内核,系统中原生自带的makedumpfile软件版本与内核版本不匹配,所以无法生成dump文件。
解决方案
重要
该方案仅适用于已正确开启kdump服务的系统。如果您没有开启kdump服务且按照本文操作修复问题,请在proc/cmdline
文件中手动配置crashkernel
参数。
-
运行以下命令,下载相应kexec-tools包。
wget http://mirrors.aliyun.com/centos-vault/7.9.2009/os/Source/SPackages/kexec-tools-2.0.15-51.el7.src.rpm
-
运行以下命令,安装RPM包。
rpm -ivh kexec-tools-2.0.15-51.el7.src.rpm
-
运行以下命令,下载patch补丁文件。
cd /root/rpmbuild/SOURCES wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/patch/rhelonly-kexec-tools-2.0.20-makedumpfile-arm64-Add-support-for-ARMv8.2-LVA-52-bi.patch
-
运行以下命令,修改kexec-tools.spec文件。
-
打开kexec-tools.spec文件。
cd /root/rpmbuild/SPECS/ vi kexec-tools.spec
-
按
i
键进入编辑模式,并在文件相应位置加入如下两行内容。Patch999: rhelonly-kexec-tools-2.0.20-makedumpfile-arm64-Add-support-for-ARMv8.2-LVA-52-bi.patch %patch999 -p1
添加位置如下:
-
按
Esc
键退出编辑模式,并输入:wq
保存退出。
-
-
运行以下命令,检查安装依赖。
yum-builddep kexec-tools.spec
-
运行以下命令,构建RPM包。
yum -y install rpm-build rpmbuild -ba kexec-tools.spec
-
运行以下命令,安装修改后RPM包。
cd /root/rpmbuild/RPMS/aarch64 rpm -ivh kexec-tools-2.0.15-51.el7.aarch64.rpm
如果再次发生宕机,通过ls -lh /var/crash
查询dump文件,可以正常生成vmcore
文件,表示问题解决。
如何将CentOS 7转换为Red Hat Enterprise Linux(RHEL)7?
CentOS 7将于2024年06月30日停止维护(EOL),阿里云将会同时停止对该操作系统的支持。为了避免操作系统停止维护带来的影响,您可以将CentOS 7转换为RHEL 7。以下是在阿里云上将CentOS 7转换成RHEL 7的简要步骤,您也可以参考Red Hat官方文档来进行转换。
重要
转换前,建议您停止重要的应用程序、数据库服务和存储数据等服务,并创建一个云盘快照备份重要数据,以避免误操作导致数据丢失或异常。
-
(条件必选)如果您是阿里云服务器并且安装了安骑士,需要先卸载安骑士。
具体操作,请参见卸载Agent。
说明
安骑士是CentOS默认的安全增强工具,而RHEL 7则使用Red Hat提供的安全增强工具。安骑士与RHEL 7中的工具可能存在不兼容性和冲突,因此在转换过程中需要卸载安骑士,以确保系统的稳定性和兼容性。
-
运行以下命令,将系统软件包升级到最新版本。
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo sudo wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
-
运行以下命令,更新系统软件包并重启系统。
sudo yum -y update sudo reboot
-
运行以下命令,从Red Hat官方网站下载并安装convert2rhel工具。
sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txt sudo curl --create-dirs -o /etc/rhsm/ca/redhat-uep.pem https://ftp.redhat.com/redhat/convert2rhel/redhat-uep.pem sudo curl -o /etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repo sudo yum -y install convert2rhel
-
在阿里云上购买RHEL订阅,并获取RHEL 7的repo rpm包地址。
具体操作,请提提交工单咨询。
-
运行以下命令,安装RHEL 7的repo源包。
sudo rpm -ivh --replacefiles sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/rh-cloud.repo
其中,
需替换为RHEL 7实际的repo rpm包地址,该地址请在购买RHEL订阅时获取。
-
运行以下命令,将CentOS 7转换为RHEL 7。
sudo convert2rhel -y --no-rhsm --enablerepo rhui-rhel-7-server-rhui-rpms --enablerepo rhui-rhel-7-server-rhui-extras-rpms --enablerepo rhui-rhel-7-server-rhui-optional-rpms
转换过程需要花费一定时间,请您耐心等待。类似出现如下回显信息时,表示转换完成。
-
运行以下命令,重启系统。
转换结束后会提示重启系统,重启系统可以引导新的RHEL内核,然后检查操作系统是否转换成功。
sudo reboot
说明
CentOS 7转换为RHEL 7之后,如果您有需求将RHEL 7升级为RHEL 8,请参见Red Hat Enterprise Linux(RHEL)7升级为RHEL 8。
如何在Linux实例中自定义配置DNS?
具体操作,请参见如何在Linux实例中自定义配置DNS。
为什么使用Fedora CoreOS镜像创建部分实例后,CPU信息只有实例规格的一半?
使用Fedora CoreOS镜像创建部分实例(例如,通用型实例规格族g5)后,执行lscpu命令查看CPU信息,On-line CPU(s) list
的总个数只有实例实际规格的一半。例如,创建实例时选择的CPU为2核,则On-line CPU(s) list
个数只有1个。示例如下图所示。
说明
On-line CPU(s) list
参数值代表CPU编号,图中示例表示只有0号CPU可用。
这是因为Fedora CoreOS镜像的内核默认配置了mitigations=auto,nosmt
启动参数,会自动为有漏洞的系统禁用同步多线程技术SMT(Simultaneous Multi-Threading ),导致可用CPU减半。mitigations=auto,nosmt
参数可以通过执行cat /proc/cmdline命令查看。
关于SMT的更多信息,请参见Automatically disable SMT when needed to address vulnerabilities和Policy for disabling SMT。
FreeBSD系统在KVM环境无法找到系统盘,如何处理?
问题现象
FreeBSD系统在KVM虚拟化环境上VNC登录时,无法找到系统盘,无法进入系统,如下图所示。
解决方案
-
在VNC中输入?,查看相关rootfs的ufsid。
-
继续输入
ufs:/dev/ufsid/5565b5a09045****
,按回车即可正常进入操作系统内部。 -
输入用户名和密码,登录系统。
-
运行以下命令,查看
/etc/fstab
配置。cat /etc/fstab
如下图所示,说明
/etc/fstab
配置是UUID的挂载方式。但是FreeBSD系统并不支持UUID的挂载方式,需要修改为ufsid方式。 -
将FreeBSD系统的挂载方式修改为ufsid。
-
运行以下命令,打开
/etc/fstab
。vi /etc/fstab
-
按i键进入编辑模式。
-
修改
UUID=5565b5a09045****
为/dev/ufsid/5565b5a09045****
。 -
修改完成后按Esc键,并输入
:wq
后按下回车键,保存并退出。
-
-
运行以下命令,重启系统使配置生效。
reboot
Linux操作系统配置IPv6地址后,安装了NTP服务的服务器时间无法同步,如何处理?
问题现象
在服务器上执行ntpq -p
同步时间时,返回超时,如下图所示。
解决方案
说明
本方法适用于CentOS 7及以下、Ubuntu 20.04及以下、Anolis OS(ANCK\RHCK)、Alibaba Cloud Linux、Debian等系列操作系统。
-
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
-
运行以下命令,修改/etc/ntp.conf配置文件。
vi /etc/ntp.conf
-
按i键进入编辑模式。
-
在文件中添加
restrict -6 ::1
内容,如下图所示。 -
修改完成后按Esc键,并输入
:wq
后按下回车键,保存并退出。 -
运行以下命令,重启NTP服务。
systemctl restart ntp
Linux自定义镜像如何适配NVMe系统盘?
部分实例规格族支持基于NVMe协议挂载云盘,如果您需要在该类实例规格族上使用自定义镜像启动ECS实例,且需要保证实例稳定运行,则您在创建自定义镜像前,需要在对应的操作系统中进行NVMe相关的配置操作。更多信息,请参见Linux自定义镜像如何适配NVMe系统盘?。
如何为Linux服务器安装GRUB?
通过服务器迁移中心SMC迁移Linux源服务器时,如果Linux源服务器存在未安装GRUB( GRand Unified Bootloader)、系统版本较低、自带的系统引导程序GRUB版本低于2.0等问题时,您需要安装GRUB的2.02及以上版本。具体操作,请参见如何为Linux服务器安装GRUB?。
如何解决实例迁移后的宕机问题?
因Xen环境裁撤项目、ECS过保迁移、经典网络迁移到VPC等涉及虚拟化环境迁移需求,可能会导致一部分实例系统在迁移后出现kernel panic宕机、蓝屏、找不到引导设备(INACCESSIBLE_BOOT_DEVICE)等问题,您可以参考如何解决实例迁移后的宕机问题?进行解决。
如何收集操作系统宕机后的内核转储信息?
ECS实例宕机后会生成一个转储信息文件,您可以参考如何收集操作系统宕机后的内核转储信息?收集并将转储信息提交给阿里云,便于阿里云技术支持人员定位分析问题。
如何解决使用RSA密钥无法登录ECS实例问题?
当您使用Ubuntu、CentOS Stream 9等操作系统的ECS实例,且通过RSA密钥在FinalShell、nuoshell等部分SSH客户端连接ECS实例时,可能出现登录失败的问题,您可以参考使用RSA密钥无法登录ECS实例问题进行解决。
为什么使用自定义镜像创建的实例,热插拔云盘/网卡会失败?
问题现象
热插拔云盘指实例处于运行中状态时挂载/卸载云盘;热插拔网卡指实例处于运行中状态时绑定/解绑弹性网卡。
阿里云支持热插拔云盘和网卡,但热插拔是否成功需要操作系统内核(Kernel)支持。如果操作系统内核不支持,则会出现以下问题:
-
挂载云盘或绑定弹性网卡后,在操作系统内部查看不到对应的设备。
-
卸载云盘或解绑弹性网卡失败。
解决方案
普通云服务器和裸金属服务器,热插拔需要内核支持的功能不同,建议内核都支持PCI(Peripheral Component Interconnect)、ACPI(Advanced Configuration and Power Management Interface)热插拔功能(除CentOS 5等低版本系统外,一般都默认开启)。您可以通过以下步骤查看内核是否开启PCI/ACPI热插拔功能。
-
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
-
执行如下命令,查看当前实例内核版本。
uname -r
返回信息如下所示,表示当前系统内核版本为
3.10.0-1127.19.1.el7.x86_64
。 -
执行如下命令,查看
/boot
目录下的文件。ll /boot
返回信息如下所示,
config-3.10.0-1127.19.1.el7.x86_64
即为系统内核的配置文件。 -
执行如下命令,查看系统内核配置文件。
cat /boot/config-3.10.0-1127.19.1.el7.x86_64
-
当以下配置项都是
y
,表示该功能已经编译进内核,操作系统支持对应的热插拔。CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y
-
当某个配置项是
is not set
,表示内核未编译该特性,需要重新编译内核以支持该特性。 -
当某个配置项是
m
,表示编译成module,例如以下CONFIG_HOTPLUG_PCI_ACPI
是编译成module的,需要加载对应的module。CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=m
以CentOS 5.x操作系统2.6的内核为例,
CONFIG_HOTPLUG_PCI_ACPI
对应的module为acpiphp.ko,如果需要加载,需要执行modprobe acpiphp
命令。如果加载失败,您可以升级高版本内核或停止实例后进行冷插拔。重要
不建议随意自行升级云服务器的内核和操作系统版本。如果需要升级内核,请参见避免Linux实例升级内核系统无法启动的方法。
-
操作系统内核错误后可能出现实例关机,如何处理?
问题现象
当操作系统内出现非预期内核错误(kernel panic),加载第二内核(捕获内核)进行内存转储生成Kdump日志。由于与裸金属实例规格存在兼容性问题,在第二内核启动过程中磁盘识别失败,导致Kdump日志采集失败并且第二内核启动失败,实例处于关机状态,后续需要在控制台重新启动实例。
更多关于裸金属实例规格的信息,请参见实例规格族。
问题原因
裸金属实例使用操作系统自带的Kdump服务生成dump文件时可能失败。
-
ebm*6代系列裸金属实例,在选用如下镜像时会出现该问题。
-
CentOS 8.3及以下CentOS版本
-
Ubuntu 16/18
-
Debian 10
-
Alibaba Cloud Linux 2的
4.19.91-24.al7
之前的内核版本(4.19.91-24.al7
版本已修复)
-
-
ebm*7代系列裸金属实例,在选用Debian 10镜像时会出现该问题。
解决方案
-
CentOS等镜像
建议更换更高版本的操作系统。具体操作,请参见更换操作系统(系统盘)。
-
Alibaba Cloud Linux 2镜像
建议按照以下操作,升级内核版本到
4.19.91-24.al7
及以上。-
远程登录ECS实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
-
运行以下命令,查询内核版本。
uname -r
-
运行以下命令,升级内核版本。
sudo yum update kernel
-
运行以下命令,重启ECS实例,以使新的内核版本生效。
sudo reboot
-
关于阿里云ecs服务器的内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/9987.html