3.6. 为 Azure 部署准备虚拟机


为确保虚拟机兼容且可以在 Azure 环境中运行,请在部署自定义基础镜像之前执行配置更改。

先决条件

流程

  1. 登录并注册虚拟机,以启用 Red Hat Enterprise Linux (RHEL)存储库:

    # subscription-manager register --auto-attach
    Installed Product Current Status:
    Product Name: Red Hat Enterprise Linux for x86_64
    Status: Subscribed
    Copy to Clipboard Toggle word wrap
  2. 安装 cloud-inithyperv-daemons 软件包:

    # dnf install cloud-init hyperv-daemons -y
    Copy to Clipboard Toggle word wrap
  3. 创建 cloud-init 配置文件,并编辑它们以提供与 Azure 服务的集成:

    1. 要能够登录到 Hyper-V Data Exchange Service (KVP),请编辑 /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg 文件并附加以下行:

      reporting:
          logging:
              type: log
          telemetry:
              type: hyperv
      Copy to Clipboard Toggle word wrap
    2. 要添加 Azure 数据源,请编辑 /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg 文件并附加以下行:

      datasource_list: [ Azure ]
      datasource:
          Azure:
              apply_network_config: False
      Copy to Clipboard Toggle word wrap
  4. 要阻止自动加载特定内核模块,请编辑 /etc/modprobe.d/blocklist.conf 文件并附加以下行:

    blacklist nouveau
    blacklist lbm-nouveau
    blacklist floppy
    blacklist amdgpu
    blacklist skx_edac
    blacklist intel_cstate
    Copy to Clipboard Toggle word wrap
  5. 修改 udev 网络设备规则:

    1. 如果存在,请删除以下持久性网络设备规则:

      # rm -f /etc/udev/rules.d/70-persistent-net.rules
      # rm -f /etc/udev/rules.d/75-persistent-net-generator.rules
      # rm -f /etc/udev/rules.d/80-net-name-slot-rules
      Copy to Clipboard Toggle word wrap
    2. 要确保加速网络在 Azure 上正常工作,请编辑 /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules 新网络设备规则,并附加以下行:

      SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
      Copy to Clipboard Toggle word wrap
  6. sshd 服务设置为自动启动:

    # systemctl enable sshd
    # systemctl is-enabled sshd
    Copy to Clipboard Toggle word wrap
  7. 修改内核引导参数:

    1. 更新 /etc/default/grub 文件中的 GRUB_TIMEOUT 参数值:

      GRUB_TIMEOUT=10
      Copy to Clipboard Toggle word wrap
    2. GRUB_CMDLINE_LINUX 行的末尾删除以下选项(如果存在的话):

      rhgb quiet
      Copy to Clipboard Toggle word wrap
    3. 使用以下配置详情更新 /etc/default/grub 文件:

      GRUB_CMDLINE_LINUX="loglevel=3 crashkernel=auto console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"
      GRUB_TIMEOUT_STYLE=countdown
      GRUB_TERMINAL="serial console"
      GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
      Copy to Clipboard Toggle word wrap
      注意

      通过在 GRUB_CMDLINE_LINUX 行的末尾添加 elevator=none 选项来完全禁用 I/O 调度程序。这个选项根据执行的顺序处理 I/O 请求,而无需优化磁盘性能。对以下磁盘使用 elevator=none :

      • HDD :性能和吞吐量会降低,因此不适合运行工作负载。
      • SSD:高性能和低延迟,因此适合运行工作负载。
    4. 重新生成 grub.cfg 文件:

      • 在基于 BIOS 的机器上:

        # grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
        Copy to Clipboard Toggle word wrap
      • 在基于 UEFI 的机器上:

        # grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
        Copy to Clipboard Toggle word wrap
        警告

        对于基于 BIOS 和 UEFI 的机器,重建 grub.cfg 的路径是一样的。原始 grub.cfg 只在 BIOS 路径上存在。UEFI 路径有一个 stub 文件,不能使用 grub2-mkconfig 命令进行修改或重新创建。

        如果您的系统对 grub.cfg 使用非默认位置,请相应地调整命令。

  8. 配置 Windows Azure Linux 代理(WALinuxAgent):

    1. 安装并启用 WALinuxAgent 软件包:

      # dnf install WALinuxAgent -y
      # systemctl enable waagent
      Copy to Clipboard Toggle word wrap
    2. 要防止在置备的虚拟机中使用 swap 分区,请在 /etc/waagent.conf 文件中编辑以下行:

      Provisioning.DeleteRootPassword=y
      ResourceDisk.Format=n
      ResourceDisk.EnableSwap=n
      Copy to Clipboard Toggle word wrap
  9. 为 Azure 置备准备虚拟机:

    1. 从 Red Hat Subscription Manager 中取消虚拟机的注册:

      # subscription-manager unregister
      Copy to Clipboard Toggle word wrap
    2. 清理现有的置备详情:

      # waagent -force -deprovision
      Copy to Clipboard Toggle word wrap
      注意

      此命令生成警告,因为 Azure 会自动处理虚拟机置备。

    3. 清除 shell 历史记录并关闭虚拟机:

      # export HISTSIZE=0
      # poweroff
      Copy to Clipboard Toggle word wrap

后续步骤

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat