共用方式為

了解 Azure-VM-Utils

适用对象:✔️ Linux VM ✔️ 灵活规模集

azure-vm-utils 包提供基本实用程序和 udev 规则来优化 Azure 虚拟机上的 Linux 体验。 此包整合了小型计算机系统接口(SCSI)、非易失性内存 Express(NVMe)、Microsoft Azure 网络适配器(MANA)和 Mellanox 设备的设备管理工具,使磁盘标识和管理在不同的 VM 配置中更加可靠且一致。

NVMe udev 规则

Azure 上的较新的虚拟机(VM)SKU 使用 NVMe 接口进行磁盘管理。 具有 NVMe 接口的 VM 解释和呈现磁盘与使用 SCSI 接口的 VM 不同。 有关详细信息,请参阅 SCSI 到 NVMe 转换

此包中的 NVMe udev 规则合并了关键工具和 udev 规则,为 Azure 磁盘创建稳定的可预测符号链接。 此包提供了一种简单可靠的方法来识别磁盘,使自动化、故障排除和管理更简单。

WALinuxAgent 目前包含 udev 规则,用于为 SCSI 磁盘提供多个符号链接:

  • /dev/disk/azure/resource
  • /dev/disk/azure/root
  • /dev/disk/azure/scsi0/lun<lun>
  • /dev/disk/azure/scsi1/lun<lun>

WALinuxAgent 中找到的规则通过 azure-vm-utils 进行扩展,以添加 NVMe 设备的标识支持。

为具有 NVMe 磁盘的所有实例提供以下符号链接:

  • /dev/disk/azure/data/by-lun/<lun>
  • /dev/disk/azure/local/by-serial/<serial>
  • /dev/disk/azure/os

对于支持命名空间标识符的本地 NVMe 磁盘的 v6 和较新的 VM 大小,还可以使用以下链接:

  • /dev/disk/azure/local/by-index/<index>
  • /dev/disk/azure/local/by-name/<name>

SCSI 兼容性

为了确保使用 SCSI 控制器的磁盘向后兼容性,azure-vm-utils 支持以下链接:

  • /dev/disk/azure/os
  • /dev/disk/azure/resource

注释

除了 SCSI 临时磁盘外,某些 VM 大小还附带 NVMe 临时磁盘。

Linux 发行版支持

以下Linux发行版和版本当前在其默认镜像中包含 az-vm-utils:

分销 版本
Fedora 41
平板车 4152.2.3
Azure Linux 2.0

Installation

如果包不在默认平台映像中,请通过包管理器或 GitHub 存储库安装它。

手动安装

对于未预安装 azure-vm-utils 的分发版,请手动生成并安装它:

# Clone the repository
git clone https://github.com/Azure/azure-vm-utils.git
cd azure-vm-utils

# Build the package
cmake .
make

# Install (requires root privileges)
sudo make install

Utilities

azure-nvme-id

azure-nvme-id 实用工具可帮助识别 Azure NVMe 设备及其属性。 此实用工具可用于故障排除和脚本编写。

运行实用工具:

sudo azure-nvme-id

若要在 udev 模式下运行(通常由 udev 规则使用):

DEVNAME=/dev/nvme0n1 azure-nvme-id --udev

安装 azure-vm-utils 后,可以使用可预测的符号链接执行磁盘操作,而不是依赖于可能在重启时更改的设备名称。

例子

列出所有 Azure 磁盘符号链接:

find /dev/disk/azure/ -type l

访问 OS 磁盘:

ls -la /dev/disk/azure/os

请通过 LUN 访问数据磁盘:

ls -la /dev/disk/azure/data/by-lun/

按序列号访问本地 NVMe 磁盘:

ls -la /dev/disk/azure/local/by-serial/

验证

若要验证 azure-vm-utils 是否在 VM 上正常工作,请执行以下作:

  1. 检查包是否已安装:

    # For RPM-based systems
    rpm -qa azure-vm-utils
    
    # For DEB-based systems
    dpkg -l azure-vm-utils
    
  2. 验证 udev 规则是否已到位:

    ls -al /usr/lib/udev/rules.d/10-azure-unmanaged-sriov.rules
    ls -al /usr/lib/udev/rules.d/80-azure-disk.rules
    
  3. 检查 Azure 磁盘符号链接:

    find /dev/disk/azure -type l