AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 977952
Accepted
ShieldOfSalvation
ShieldOfSalvation
Asked: 2019-08-05 20:05:21 +0800 CST2019-08-05 20:05:21 +0800 CST 2019-08-05 20:05:21 +0800 CST

是否可以升级 Azure VM 使用的托管磁盘而无需重新部署 VM?

  • 772

我正在尝试将添加到 Windows 2019 Server VM 的单独托管磁盘从标准 SSD 转换为高级 SSD。根据https://docs.microsoft.com/bs-latn-ba/Azure/virtual-machines/windows/convert-disk-storage上的步骤,我必须停止 VM 才能执行此操作——但我'恐怕如果我停止它,将会产生连锁反应,这将延迟我的团队重新上线并立即继续工作的能力。我试图避免的一种特定情况是强制重新部署 VM。

请看,我在此 Azure VM 上运行了第三方软件,如果重新部署 VM,可能需要重置/重新初始化其软件许可模块 (SLM)。重新初始化可能是一个漫长的过程,因为我必须打电话给技术支持,请求帮助,重新路由谁知道多少次,等待重新颁发的许可证,申请新的许可证,然后测试一切恢复正常。这是我试图避免的事情,因为在我让软件制造商重新发布/重新配置我的 SLM 时,它可能会让我的团队失去一天的工作。SLM 依赖于其主机的 CPUID 和 MAC ID。由于重新部署意味着虚拟机可能会部署在不同的物理硬件上,因此我很可能需要重置 SLM。我不

所以我的问题是,

  • 如果我关闭 VM 进行维护(例如,将外部托管磁盘从标准 SSD 升级到高级 SSD),是否会强制重新部署?

  • 关闭是否与在 Azure 门户上为该 VM 按停止有效?

  • 我听说有一个停止和一个单独的停止/重新部署选项,但如果是这样,我不会立即看到。这是我点击停止后会看到的重新部署选项吗?

azure
  • 1 1 个回答
  • 3864 Views

1 个回答

  • Voted
  1. Best Answer
    ShieldOfSalvation
    2019-08-05T22:16:41+08:002019-08-05T22:16:41+08:00

    尤里卡!我设法升级了我的托管数据磁盘,而无需重新部署 VM!根据 Azure 门户网站,“只有在磁盘未附加或所有者 VM 被解除分配时,才能调整磁盘大小或更改帐户类型。” 看来,如果我可以取消附加/分离有问题的托管磁盘,我就可以自由回家,而无需停止和释放 VM!事实上,事情就是这样。

    我了解到,“您可以使用 PowerShell热删除数据磁盘,但在将其与 VM 分离之前,请确保没有任何东西正在使用该磁盘。” (来源:请参阅本文底部的超链接 #3。)因此,我继续并停止了依赖于该磁盘的第三方服务,让 VM 继续运行,并从我自己的本地 PC 上执行了所有步骤记录在这里。

    我将在下面详细介绍我执行的自定义 PowerShell 命令(从我的 Windows PowerShell ISE 用户界面记录,嵌入结果,我称之为阶段 1、2 和 4)。我还需要使用 Azure Web 门户(我称之为第 3 阶段)。

    这一切都奏效了!再次注意,我分四个阶段执行我的解决方案。简而言之,它们是:

    阶段 1:这是使用 PowerShell 完成的。最初,直到 Connect-AzAccount 命令,您将看到安装必要的 Azure PowerShell 模块并将我的 PC 设置为允许执行脚本的准备步骤。我必须单击 Yes 或 Yes To All 几次才能完成模块安装

    阶段 2:仍在使用 PowerShell。这是我在运行 Connect-AzAccount 时必须输入 Azure 门户凭据的地方。基本上,然后我在 VM 仍在运行时分离磁盘。这发生在 Remove-AzVMDataDisk 命令和紧随其后的 Update-AzVM 中。

    阶段 3:那时,我回到了 Azure 门户网站,将托管数据磁盘从标准 SSD 更改为高级 SSD。

    阶段 4:最后,我回到我的 PowerShell 屏幕并继续执行导致 Add-AzVMDataDisk 命令将我的磁盘重新附加到 VM 的步骤 - 以及随后启动它的 Update-AzVM。这使升级后的托管磁盘驱动器在我的 VM 上重新焕发生机!

    更棒的是,所有数据都完好无损,我之前分配的驱动器号被保留了,甚至我给它的网络共享名称仍然可以通过我的虚拟网络被其他虚拟机访问!

    (请注意,在第 4 阶段,我还执行了一个额外的步骤,希望通过读/写缓存获得最佳的 Premium SSD 性能:这就是命令,'Set-AzVMDataDisk -VM $VM -Lun "0" -Caching ReadWrite'。)

    现在,请注意我在 PowerShell 中执行的所有详细步骤以及我在 Azure 门户网站中所做的事情:

    阶段1

    PS C:\WINDOWS\system32> Install-Module -Name Az -AllowClobber
    
    PS C:\WINDOWS\system32> Get-ExecutionPolicy -List
    
            Scope ExecutionPolicy
            ----- ---------------
    MachinePolicy       Undefined
       UserPolicy       Undefined
          Process       Undefined
      CurrentUser       Undefined
     LocalMachine       Undefined
    
    
    
    PS C:\WINDOWS\system32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
    PS C:\WINDOWS\system32> Get-ExecutionPolicy -List
    
            Scope ExecutionPolicy
            ----- ---------------
    MachinePolicy       Undefined
       UserPolicy       Undefined
          Process       Undefined
      CurrentUser    RemoteSigned
     LocalMachine       Undefined
    

    阶段2

    PS C:\WINDOWS\system32> Connect-AzAccount
    
    Account                         SubscriptionName                      TenantId 
    -------                         ----------------                      -------- 
    [email protected] Microsoft Azure (MYCOMPANY): #0000000 ffffff...
    
    
    
    PS C:\WINDOWS\system32> $VirtualMachine = Get-AzVM -ResourceGroupName "MYFILESERVERRESOURCES" -Name "MyFileServer"
    
    
    PS C:\WINDOWS\system32> Remove-AzVMDataDisk -VM $VirtualMachine -Name "MyStorageDrive"
    
    
    
    ResourceGroupName  : MYFILESERVERRESOURCES
    Id                 : /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resour
    ceGroups/MYFILESERVERRESOURCES/providers/Microsoft.Compute/virtualMachines/MY
    FileServer
    VmId               : eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee
    Name               : MyFileServer
    Type               : Microsoft.Compute/virtualMachines
    Location           : eastus
    Tags               : {}
    DiagnosticsProfile : {BootDiagnostics}
    Extensions         : {AzureDiskEncryption, AzurePerformanceDiagnostics, 
    MicrosoftMonitoringAgent}
    HardwareProfile    : {VmSize}
    NetworkProfile     : {NetworkInterfaces}
    OSProfile          : {ComputerName, AdminUsername, WindowsConfiguration, 
    Secrets, AllowExtensionOperations}
    ProvisioningState  : Succeeded
    StorageProfile     : {ImageReference, OsDisk, DataDisks}
    
    
    
    
    PS C:\WINDOWS\system32> Update-AzVM -ResourceGroupName "MYFILESERVERRESOURCES" -VM $VirtualMachine
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK          
    

    第三阶段

    这是我回到 Azure 门户并将驱动器从标准 SSD 更改为高级 SSD 并保存更改的地方!为此,我,

    1. 登录到 Azure 门户。
    2. 从门户中的虚拟机列表中选择 MyFileServer。
    3. 我注意到我的虚拟机状态显示它仍然是“正在运行”。
    4. 在 VM 的窗格中,我从菜单中选择了磁盘。
    5. 我选择了要转换的磁盘 MyStorageDrive。
    6. 我从菜单中选择了配置。
    7. 我将帐户类型从标准 HDD 更改为高级 SSD(之前这是不可能的,因为在我分离磁盘之前它被禁用)。
    8. 我单击了保存,然后关闭了磁盘窗格。

    磁盘转换实际上是瞬间完成的。

    第 4 阶段

    PS C:\WINDOWS\system32> $rgName = "MYFILESERVERRESOURCES"
    $vmName = "MyFileServer"
    $location = "East US" 
    $dataDiskName = "MyStorageDrive"
    $disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName 
    
    
    PS C:\WINDOWS\system32> $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName 
    
    
    PS C:\WINDOWS\system32> $vm = Add-AzVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id
    
    
    PS C:\WINDOWS\system32> Update-AzVM -VM $vm -ResourceGroupName $rgName
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK          
    
    
    
    PS C:\WINDOWS\system32> $VM.StorageProfile.OsDisk.Caching
    ReadWrite
    
    PS C:\WINDOWS\system32> $vm.StorageProfile.DataDisks
    
    
    Name            : 
    DiskSizeGB      : 
    Lun             : 0
    Caching         : None
    CreateOption    : Attach
    SourceImage     : 
    VirtualHardDisk : 
    
    
    
    
    PS C:\WINDOWS\system32> Set-AzVMDataDisk -VM $VM -Lun "0" -Caching ReadWrite
    
    
    ResourceGroupName  : MYFILESERVERRESOURCES
    Id                 : /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/MYFILESERVERRESOURCES/providers
    /Microsoft.Compute/virtualMachines/MyFileServer
    VmId               : eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee
    Name               : MyFileServer
    Type               : Microsoft.Compute/virtualMachines
    Location           : eastus
    Tags               : {}
    DiagnosticsProfile : {BootDiagnostics}
    Extensions         : {AzureDiskEncryption, AzurePerformanceDiagnostics, MicrosoftMonitoringAgent}
    HardwareProfile    : {VmSize}
    NetworkProfile     : {NetworkInterfaces}
    OSProfile          : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations}
    ProvisioningState  : Succeeded
    StorageProfile     : {ImageReference, OsDisk, DataDisks}
    
    
    
    
    PS C:\WINDOWS\system32> Update-AzVM -VM $vm -ResourceGroupName $rgName
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK          
    
    
    
    PS C:\WINDOWS\system32>  
    

    这些是帮助我找到此解决方案的网站:

    1 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6

    2 https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-2.5.0

    3 https://docs.microsoft.com/en-us/azure/virtual-machines/windows/detach-disk

    4 https://docs.microsoft.com/bs-latn-ba/Azure/virtual-machines/windows/convert-disk-storage

    5 https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps

    6 https://docs.microsoft.com/en-us/learn/modules/caching-and-performance-azure-storage-and-disks/6-exercise-manage-cache-settings-with-powershell

    • 6

相关问题

  • 防火墙更改后失去对 VM azure 的 RDP 访问权限

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve