Azure 将 VM 大小调整为高级存储

Azure 将 VM 大小调整为高级存储

我在 Azure 上有一个经典的 D 系列 VM,其磁盘负载增加到需要比常规磁盘 blob 支持的更多 IOPS 的程度。

我尝试将其调整为 DS 系列,但是无法做到,因为不支持调整大小:

在此处输入图片描述

好的,然后我尝试删除机器,并使用相同的 VHD 重新创建它,但使用新的规模。不幸的是,新的门户不支持从现有磁盘创建虚拟机(或者至少我不知道该怎么做)。好的,然后我想我会用旧门户来做,只是旧门户不支持创建 v DS 机器:

在此处输入图片描述

有人可以建议一种调整我的机器大小的方法吗?

答案1

基本上:

  • 创建高级存储
  • 使用 Azcopy 或存储资源管理器将 VHD 复制到新的高级存储
  • 使用模板部署让您的虚拟机恢复活力

没有 GUI 功能可以帮助您完成这项工作。使用模板部署或 Powershell/Cli 重新创建 VM。我假设您在删除代理之前先从操作系统中对代理进行 sysprep(Windows)或取消配置(Linux)。

这是一个易于使用的 json 脚本,可以从用户图像进行部署:

{
  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/VM_IP.json",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "type": "string"
    },
    "vmSize": {
      "type": "string",
      "defaultValue": "<$size_of_vm>"
    },
    "adminUserName": {
      "type": "string"
    },
    "adminPassword": {
      "type": "securestring"
    },
    "networkInterfaceId": {
      "type": "string"
    }
  },
  "resources": [
    {
      "apiVersion": "2016-03-30",
      "properties": {
        "hardwareProfile": {
          "vmSize": "[parameters('vmSize')]"
        },
        "storageProfile": {
          "osDisk": {
            "osType": "<$Windows/Linux>",
            "name": "<$name_of_your_os_disk>",
            "createOption": "FromImage",
            "image": {
              "uri": "<$path_to_vhd_image>"
            },
            "vhd": {
              "uri": "<$path_to_storage_new_disk>"
            },
            "caching": "ReadWrite"
          },
          "dataDisks": [
            {
              "lun": 0,
              "name": "<$name_of_your_data_disk>",
              "createOption": "FromImage",
              "image": {
                "uri": "<$path_to_vhd_image>"
              },
              "vhd": {
                "uri": "<$path_to_storage_new_disk>"
              },
              "caching": "ReadOnly"
            }
          ]
        },
        "osProfile": {
          "computerName": "[parameters('vmName')]",
          "adminUsername": "[parameters('adminUsername')]",
          "adminPassword": "[parameters('adminPassword')]"
        },
        "networkProfile": {"networkInterfaces":[{"id":"[parameters('networkInterfaceId')]"}]},
        "diagnosticsProfile": {
          "bootDiagnostics": {
            "enabled": true,
            "storageUri": "<$path_to_diag_storage>"
          }
        },
        "provisioningState": 0
      },
      "name": "[parameters('vmName')]",
      "type": "Microsoft.Compute/virtualMachines",
      "location": "<$datacenter_region>"
    }
  ]
}

确保"<$...>"相应地更改变量。此外,在使用此特定模板进行部署之前,请确保创建网络接口。如果您没有附加数据磁盘,请删除整个“数据磁盘”部分。

答案2

我还没试过布鲁诺·弗里亚 回答,所以我不能确定它是否有效。不过,我确实设法自己找到了一个相当简单的解决方案,只需使用门户即可。

我只是使用 Azure 的捕获功能创建了虚拟机的映像特征,可从门户访问。然后我基于此映像创建了一个新的 DS 系列 VM。创建机器后,我删除了该映像及其关联的 vhd。

答案3

更新 Azure 的最新更改:

现在,您可以将虚拟机的大小调整为“s”大小,以获得理论上的高级存储支持(存储必须单独升级),但有一个警告:虚拟机必须完全停止,门户网站的“大小”页面中才会显示“s”大小。如果机器未停止,则在大小过滤器中选择 SSD 存储时,列表为空。

相关内容