gpt4 book ai didi

在同一物理集群中调整 Azure VM 大小

转载 作者:行者123 更新时间:2023-12-02 07:48:17 27 4
gpt4 key购买 nike

我正在尝试使用命令行调整 Azure VM 的大小。 VM 大小列在该 VM 可调整大小的大小列表中。但是,当我尝试调整此虚拟机的大小时,由于此错误,我无法执行此操作

Unable to resize the VM 'XYZ' because the requested size Standard_F4s is not available in the current hardware cluster.

有没有一种方法可以让我们事先获取此虚拟机的所有大小都可以成功调整到的信息?

最佳答案

您可以使用Get-AzureRmVmSize来检查VM大小。下面的示例不仅检查硬件集群,还检查磁盘、区域可用性,以确保您可以调整虚拟机的大小。

$rg = "azuredev-rg"
$vmName = "A0VM"
Get-AzureRmVMSize -ResourceGroupName $rg -VMName $vmName

请注意,输出取决于虚拟机的运行状态。您可以在现有 VM 运行时更改其大小。但是,如果该 VM 正在运行,则不会列出所有可用大小。这意味着某些指定大小需要先停止VM才能释放(由于硬件集群不同)

对于防御性编程,下面的示例将考虑在执行调整大小之前检查虚拟机状态

$vm = (Get-AzureRmVM -ResourceGroupName $rg -Name $vmName -Status).Statuses
$vm.DisplayStatus

输出显示了您

Provisioning succeeded
VM running

下面是用于检查虚拟机状态然后执行调整大小的示例 PowerShell 脚本

$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
}

关于在同一物理集群中调整 Azure VM 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49073856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com