Azure VM 在同一物理集群中调整大小
Azure VM resize in same physical cluster
我正在尝试使用命令行调整 Azure VM 的大小。 VM 大小列在可将此 VM 调整到的大小列表中。但是当我尝试调整此 VM 的大小时,由于此错误
,我无法执行此操作
Unable to resize the VM 'XYZ' because the requested size Standard_F4s
is not available in the current hardware cluster.
有没有一种方法可以让我们事先获得此 VM 可以成功调整到的所有大小的信息?
您可以使用 Get-AzureRmVmSize
检查 VM 大小。下面的示例不仅检查硬件集群,还检查磁盘、区域可用性,以确保您可以调整 VM 的大小。
$rg = "azuredev-rg"
$vmName = "A0VM"
Get-AzureRmVMSize -ResourceGroupName $rg -VMName $vmName
请注意,输出 取决于 VM 状态 运行。您可以在现有 VM 大小为 运行 时更改它。但是,如果该 VM 是 运行,不会列出所有可用大小。这意味着某些指定大小需要先停止 VM 才能重新分配(由于不同的硬件集群)
对于防御性编程,可以考虑使用以下示例在执行调整大小之前检查 VM 状态
$vm = (Get-AzureRmVM -ResourceGroupName $rg -Name $vmName -Status).Statuses
$vm.DisplayStatus
输出显示你
Provisioning succeeded
VM running
下面是示例 PowerShell 脚本,用于检查 VM 状态然后执行调整大小
$rg = "azuredev-rg"
$vmName = "A0VM"
$newSize = "Standard_B1s"
$vm = Get-AzureRmVM -ResourceGroupName $rg -Name $vmName
$vmS = Get-AzureRmVMSize -ResourceGroupName $rg -VMName $vmName
if ($vmS.Name -contains $newSize)
{
Write-Output "This size is supported"
$vm.HardwareProfile.VmSize = $newSize
Update-AzureRmVM -VM $vm -ResourceGroupName $rg
Write-Output "The VM size is being updated"
}
else
{
while($vmStatus.DisplayStatus -contains "VM running")
{
$vmStatus = (Get-AzureRmVM -ResourceGroupName $rg -Name $vmName -Status).Statuses
Write-Output $vmStatus
Write-Output "VM is being stopped"
Start-Sleep -Seconds 3
}
Stop-AzureRmVM -Name $vmName -ResourceGroupName $rg -Force
$vm.HardwareProfile.VmSize = $newSize
Update-AzureRmVM -VM $vm -ResourceGroupName $rg
}
同意Thuan Ng。
如果您的 VM 是使用资源管理器 (ARM) 部署模型部署的,并且您需要更改为需要不同硬件的大小,那么您可以通过首先停止[=27]来调整 VM 的大小=] 您的 VM,选择新的 VM 大小,然后 重新启动 VM。
Is there a way we can get the information beforehand to which all
sizes this VM can be resized to successfully?
您的意思是您想要获得当前硬件中的所有尺寸都可用吗?
据我所知,不可能。
调整大小操作是一个简单的重启操作,也许我们可以先停止它并调整大小,然后重新启动虚拟机。
如果命令行是指 azure-cli,您可以随时使用:
az vm list-vm-resize-options -g test-resourcegroup -n test-vm -o table
因此,您将看到可以在 az vm resize
中使用的 vm 大小,而不需要 deallocate
。如果您想检查您感兴趣的位置有什么可用的,您可以使用类似的东西:
az vm list-sizes -l westeurope -o table
当您 az vm deallocate
此 VM 时,您可以使用上面命令的输出中列出的任何大小。如果您对更多细节感兴趣,可以查看 this article.
我正在尝试使用命令行调整 Azure VM 的大小。 VM 大小列在可将此 VM 调整到的大小列表中。但是当我尝试调整此 VM 的大小时,由于此错误
,我无法执行此操作Unable to resize the VM 'XYZ' because the requested size Standard_F4s is not available in the current hardware cluster.
有没有一种方法可以让我们事先获得此 VM 可以成功调整到的所有大小的信息?
您可以使用 Get-AzureRmVmSize
检查 VM 大小。下面的示例不仅检查硬件集群,还检查磁盘、区域可用性,以确保您可以调整 VM 的大小。
$rg = "azuredev-rg"
$vmName = "A0VM"
Get-AzureRmVMSize -ResourceGroupName $rg -VMName $vmName
请注意,输出 取决于 VM 状态 运行。您可以在现有 VM 大小为 运行 时更改它。但是,如果该 VM 是 运行,不会列出所有可用大小。这意味着某些指定大小需要先停止 VM 才能重新分配(由于不同的硬件集群)
对于防御性编程,可以考虑使用以下示例在执行调整大小之前检查 VM 状态
$vm = (Get-AzureRmVM -ResourceGroupName $rg -Name $vmName -Status).Statuses
$vm.DisplayStatus
输出显示你
Provisioning succeeded
VM running
下面是示例 PowerShell 脚本,用于检查 VM 状态然后执行调整大小
$rg = "azuredev-rg"
$vmName = "A0VM"
$newSize = "Standard_B1s"
$vm = Get-AzureRmVM -ResourceGroupName $rg -Name $vmName
$vmS = Get-AzureRmVMSize -ResourceGroupName $rg -VMName $vmName
if ($vmS.Name -contains $newSize)
{
Write-Output "This size is supported"
$vm.HardwareProfile.VmSize = $newSize
Update-AzureRmVM -VM $vm -ResourceGroupName $rg
Write-Output "The VM size is being updated"
}
else
{
while($vmStatus.DisplayStatus -contains "VM running")
{
$vmStatus = (Get-AzureRmVM -ResourceGroupName $rg -Name $vmName -Status).Statuses
Write-Output $vmStatus
Write-Output "VM is being stopped"
Start-Sleep -Seconds 3
}
Stop-AzureRmVM -Name $vmName -ResourceGroupName $rg -Force
$vm.HardwareProfile.VmSize = $newSize
Update-AzureRmVM -VM $vm -ResourceGroupName $rg
}
同意Thuan Ng。
如果您的 VM 是使用资源管理器 (ARM) 部署模型部署的,并且您需要更改为需要不同硬件的大小,那么您可以通过首先停止[=27]来调整 VM 的大小=] 您的 VM,选择新的 VM 大小,然后 重新启动 VM。
Is there a way we can get the information beforehand to which all sizes this VM can be resized to successfully?
您的意思是您想要获得当前硬件中的所有尺寸都可用吗?
据我所知,不可能。
调整大小操作是一个简单的重启操作,也许我们可以先停止它并调整大小,然后重新启动虚拟机。
如果命令行是指 azure-cli,您可以随时使用:
az vm list-vm-resize-options -g test-resourcegroup -n test-vm -o table
因此,您将看到可以在 az vm resize
中使用的 vm 大小,而不需要 deallocate
。如果您想检查您感兴趣的位置有什么可用的,您可以使用类似的东西:
az vm list-sizes -l westeurope -o table
当您 az vm deallocate
此 VM 时,您可以使用上面命令的输出中列出的任何大小。如果您对更多细节感兴趣,可以查看 this article.