Compartir a través de

Azure 虚拟机规模集和附加数据磁盘

为了扩展可用存储,Azure 虚拟机规模集支持包含附加数据磁盘的 VM 实例。 可以在创建规模集时附加数据磁盘,也可以将数据磁盘附加到现有规模集。

在规模集中创建和管理磁盘

有关如何创建包含附加数据磁盘的规模集、准备和格式化或添加和删除数据磁盘的详细信息,请参阅以下教程之一:

本文的余下内容概述具体的用例,例如,需要数据磁盘的 Service Fabric 群集,或者将包含内容的现有数据磁盘附加到规模集。

使用附加的数据磁盘创建 Service Fabric 群集

在 Azure 中运行的 Service Fabric 群集中的每个节点类型都受虚拟机规模集的支持。 可以使用 Azure 资源管理器模板将数据磁盘附加到组成 Service Fabric 群集的规模集。 可以使用现有模板作为起点。 在模板中包括 Microsoft.Compute/virtualMachineScaleSets 资源的 storageProfile 中的 dataDisks 节,然后部署模板。 以下示例附加一个 128 GB 的数据磁盘:

"dataDisks": [
    {
    "diskSizeGB": 128,
    "lun": 0,
    "createOption": "Empty"
    }
]

可以在部署群集时自动对数据磁盘执行分区、格式化和装载操作。 向规模集的 virtualMachineProfileextensionProfile 添加自定义脚本扩展。

若要自动准备 Windows 群集中的数据磁盘,请添加以下代码:

{
    "name": "customScript",
    "properties": {
        "publisher": "Microsoft.Compute",
        "type": "CustomScriptExtension",
        "typeHandlerVersion": "1.8",
        "autoUpgradeMinorVersion": true,
        "settings": {
        "fileUris": [
            "https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.ps1"
        ],
        "commandToExecute": "powershell -ExecutionPolicy Unrestricted -File prepare_vm_disks.ps1"
        }
    }
}

若要自动准备 Linux 群集中的数据磁盘,请添加以下代码:

{
    "name": "lapextension",
    "properties": {
        "publisher": "Microsoft.Azure.Extensions",
        "type": "CustomScript",
        "typeHandlerVersion": "2.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
        "fileUris": [
            "https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"
        ],
        "commandToExecute": "bash prepare_vm_disks.sh"
        }
    }
}

将预先填充的数据磁盘添加到现有规模集

规模集模型中指定的数据磁盘始终为空。 但是,可以将现有数据磁盘附加到规模集中的特定 VM。 如果想要在规模集中的所有 VM 上传播数据,可以复制数据磁盘并将其附加到规模集中的每个 VM 上,或者创建包含数据的自定义映像,并通过此自定义映像预配规模集,或者也可以使用 Azure 文件或类似的数据存储产品/服务。

附加说明

Microsoft.Compute API 2016-04-30-preview 或更高版本中提供了对 Azure 托管磁盘和规模集附加数据磁盘的支持。

Azure 门户对规模集中附加数据磁盘的支持是受限的。 可以根据需要使用 Azure 模板、CLI、PowerShell、SDK 和 REST API 管理附加磁盘。