RDS Custom实例因操作系统自动升级引发网络异常的处理方法与规避方案

RDS Custom实例配置双网卡(eth0eth1)时,可能会因操作系统自动升级而导致实例网络出现异常。本文介绍相关的处理方法及规避方案。

处理方法

如果您已遇到该问题,请执行/etc/rds_custom_init.sh脚本进行网络初始化。该初始化过程不会重启实例

  1. 连接RDS Custom实例。

    1. 登录RDS管理控制台,在左侧导航栏单击RDS Custom > Custom 实例列表,然后在上方选择地域。

    2. 单击实例ID,进入实例详情页。

    3. 单击右上角的远程连接,然后在弹出的页面中单击立即登录

      image

    4. VNC页面中,使用root用户和密码登录RDS Custom实例。

  2. 执行sudo /etc/rds_custom_init.sh脚本进行网络初始化。

规避方案

Ubuntu系统

Ubuntu系统的RDS Custom实例中,当实例配置双网卡(eth0eth1)时,APT(Advanced Package Tool)在自动升级systemd时,将触发系统的自动重启。这种重启可能导致网络服务的重启,从而引发路由丢失,进而导致网络异常。

通过禁用系统自动安装更新,可以有效防止因自动更新而引发的系统重启,从而避免网络异常的发生。以Ubuntu 24.04版的64位操作系统为例:

  1. 连接RDS Custom实例。

    1. 登录RDS管理控制台,在左侧导航栏单击RDS Custom > Custom 实例列表,然后在上方选择地域。

    2. 单击实例ID,进入实例详情页。

    3. 单击右上角的远程连接,然后在弹出的页面中单击立即登录

      image

    4. VNC页面中,使用root用户和密码登录RDS Custom实例。

  2. 禁用unattended-upgrades 服务。

    #停止当前运行的 unattended-upgrades 服务
    sudo systemctl stop unattended-upgrades
    #禁用开机自启
    sudo systemctl disable unattended-upgrades
  3. 修改自动更新的配置文件。

    1. 编辑自动更新配置文件/etc/apt/apt.conf.d/20auto-upgrades

      vi  /etc/apt/apt.conf.d/20auto-upgrades
    2. 请将配置文件修改为以下内容,以禁用所有自动更新功能。

      APT::Periodic::Update-Package-Lists "0";
      APT::Periodic::Unattended-Upgrade "0";
  4. 禁用systemd定时任务。

    1. 列出所有与APT相关的systemd定时器(timer)。

      systemctl list-timers | grep apt
      # 或者
      systemctl list-unit-files | grep apt

      返回结果:

      apt-daily-upgrade.service                  static          -
      apt-daily.service                          static          -
      apt-news.service                           static          -
      apt-daily-upgrade.timer                    enabled         enabled
      apt-daily.timer                            enabled         enabled
    2. 禁用并停止相关定时器运行。例如:

      sudo systemctl stop apt-daily.timer
      sudo systemctl disable apt-daily.timer
      sudo systemctl stop apt-daily-upgrade.timer
      sudo systemctl disable apt-daily-upgrade.timer
    3. 请执行以下命令,确认相关定时器已被停止并禁用。

      systemctl status apt-daily.timer
      systemctl status apt-daily-upgrade.timer
  5. 禁用cron定时任务。

    1. 执行以下命令,查看cron定时任务。

      sudo cat /etc/cron.daily/apt
      sudo cat /etc/cron.weekly/apt.update
    2. 如果存在cron定时任务,注释相关条目以禁用该任务。例如:

      # #!/bin/sh
      # apt-get -y update
      # apt-get -y upgrade

其他系统

CentOS 7.8为例,其他操作系统请根据各自的版本进行相应调整。

  1. 连接RDS Custom实例。

    1. 登录RDS管理控制台,在左侧导航栏单击RDS Custom > Custom 实例列表,然后在上方选择地域。

    2. 单击实例ID,进入实例详情页。

    3. 单击右上角的远程连接,然后在弹出的页面中单击立即登录

      image

    4. VNC页面中,使用root用户和密码登录RDS Custom实例。

  2. 执行以下命令以检查yum-cron服务是否已启用。

    sudo systemctl status yum-cron

    如果已启用,请执行以下命令以停止当前运行的yum-cron服务。

    # 停止当前运行的yum-cron服务
    sudo systemctl stop yum-cron
    # 禁用开机自启
    sudo systemctl disable yum-cron
  3. 检查并关闭cron服务。

    grep yum /etc/crontab /etc/cron.d/*

    如果存在cron任务,请注释相关条目以禁用该任务。例如:

    # 0 */4 * * * root /usr/sbin/yum-cron

相关文档

RDS Custom简介