管理 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
。