管理 Azure Linux VM

已完成

若要优化 Azure Linux VM 的可管理性,必须了解 Azure 平台与 VM 操作系统 (OS) 之间的交互。 在 VM 预配期间,这种交互尤其重要。

平台支持的管理代理

VM 预配是创建可在启动或引导过程供操作系统使用的 Azure VM 配置参数值(例如主机名、用户名和密码)的过程。 预配代理使用这些值,配置操作系统,并在完成后报告结果。

Azure 支持 cloud-init 预配代理和 Azure Linux 代理 (WALA)。

  • cloud-init 预配代理是一种广泛使用的方法,用于在初始启动期间自定义 Linux。 可使用 cloud-init 来安装程序包和写入文件,或者配置用户和安全性。 由于在初始启动过程中调用 cloud-init,因此无需其他的步骤和代理即可应用配置。 有关详细信息,请参阅 Cloud-init 文档

    注意

    Microsoft 正在加强 VM 配置进程,以使用 cloud-init 取代 Linux 代理。 现有 cloud-init 客户可以使用现有的 cloud-init 脚本,使新客户可以使用丰富的 cloud-init 配置功能。

  • WALA。 WALA 是特定于 Azure 平台的代理,可用于预配和配置 Azure VM。 还可以使用 WALA 来实现对 Azure 扩展的支持。

启动诊断和串行控制台

若要优化启动过程的管理和故障排除,可以启用启动诊断并使用串行控制台。

启用启动诊断

启动诊断通过收集串行日志信息和屏幕截图来帮助你分析启动失败。 可以在创建 VM 期间或之后启用启动诊断。 若要加快预配过程,请选择托管存储帐户选项以存储启动诊断数据。

使用 Azure VM 串行控制台

使用 Azure VM 串行控制台访问对启动失败进行故障排除。 串行控制台通过 Linux VM 的 ttyS0 串行端口提供基于文本的控制台。 此访问权限与网络连接或操作系统状态无关。

至少具有参与者级别权限的用户可以使用 Azure 门户或 Azure CLI 访问串行控制台。 必须先启用启动诊断才能使用串行控制台。

串行控制台可帮助在以下情况中将 VM 还原到操作状态:

  • 文件系统表 fstab 文件损坏

  • 防火墙规则配置错误

  • 文件系统损坏

  • SSH 配置问题

  • 常见的启动加载程序问题:

    • 第 2 代 Azure VM 上的 GRUB 菜单倒计时。 由于第 2 代 Azure VM 的仿真中删除了旧硬件,导致 Grand Unified Bootloader (GRUB) 菜单倒计时计时器的倒计时速度太快,以致于无法显示默认条目的实时加载。 若要解决此问题,请将默认条目替换为 /boot/grub/grub.conf 或 /etc/default/grub 或等效条目"timeout=5""timeout=100000"

    • kdump 中的内核崩溃启动错误。 如果故障转储捕获在启动时出现内核崩溃的情况,应为内核预留更多内存。 例如,在 Ubuntu GRUB 配置中,将参数 crashkernel=384M-:128M 更改为 crashkernel=384M-:256M