概述

在资源组中通过从 Azure 应用商店部署映像来创建新的虚拟机 (VM) 时,默认的 OS 驱动器空间为 127 GB。 尽管可以将数据磁盘添加到 VM(数量取决于所选择的 SKU),并且我们建议将应用程序和需要大量 CPU 的工作负荷安装在这些附加的磁盘上,但客户有时候还是需要扩展 OS 驱动器以支持特定的方案,例如:

  1. 支持将组件安装在 OS 驱动器上的传统应用程序。
  2. 从本地迁移具有较大 OS 驱动器的物理电脑或虚拟机。

Important

Azure 具有用于创建和处理资源的两个不同的部署模型:Resource Manager 和经典。 本文介绍如何使用 Resource Manager 模型。 Azure 建议大多数新部署使用 Resource Manager 模型。

调整 OS 驱动器的大小

本文将使用 Azure Powershell的 Resource Manager 模块,完成调整 OS 驱动器大小的任务。 在管理模式下打开 Powershell ISE 或 Powershell 窗口,并遵循以下步骤:

  1. 在资源管理模式下登录你的 Microsoft Azure 帐户,然后选择你的订阅,如下所示:

    Powershell复制
    Login-AzureRmAccount -EnvironmentName AzureChinaCloud
    Select-AzureRmSubscription -SubscriptionName 'my-subscription-name'
  2. 设置资源组名称和 VM 名称,如下所示:

    Powershell复制
    $rgName = 'my-resource-group-name'
    $vmName = 'my-vm-name'
  3. 获取对 VM 的引用,如下所示:

    Powershell复制
    $vm = Get-AzureRmVM -ResourceGroupName $rgName -Name $vmName
  4. 在调整磁盘大小之前停止 VM,如下所示:

    Powershell复制
    Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName
  5. 接下来就是我们期待已久的时刻! 将 OS 磁盘的大小设置为所需值,并更新 VM,如下所示:

    Powershell复制
    $vm.StorageProfile.OSDisk.DiskSizeGB = 1023
    Update-AzureRmVM -ResourceGroupName $rgName -VM $vm

    Warning

    新大小应该大于现有磁盘大小。 允许的最大值为 1023 GB。

  6. 更新 VM 可能需要几秒钟时间。 命令完成执行后,请重新启动 VM,如下所示:

    Powershell复制
    Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName

大功告成! 现在,请通过 RDP 访问 VM,打开“计算机管理”(或“磁盘管理”),然后使用刚刚分配的空间扩展驱动器。

摘要

在本文中,我们已使用 Powershell 的 Azure Resource Manager 模块扩展 IaaS 虚拟机的 OS 驱动器。 以下重现了完整的脚本供你参考:

Powershell复制
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
Select-AzureRmSubscription -SubscriptionName 'my-subscription-name'
$rgName = 'my-resource-group-name'
$vmName = 'my-vm-name'
$vm = Get-AzureRmVM -ResourceGroupName $rgName -Name $vmName
Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName
$vm.StorageProfile.OSDisk.DiskSizeGB = 1023
Update-AzureRmVM -ResourceGroupName $rgName -VM $vm
Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName

后续步骤

在本文中,我们着重于扩展 VM 的 OS 磁盘,但是,开发的脚本也可用于通过更改一行代码,来扩展附加到 VM 的数据磁盘。 例如,若要扩展附加到 VM 的第一个数据磁盘,请将 StorageProfile 的 OSDisk 对象替换为 DataDisks 数组,并使用数字索引获取对第一个附加数据磁盘的引用,如下所示:

Powershell复制
$vm.StorageProfile.DataDisks[0].DiskSizeGB = 1023

同样,你可以使用如上所示的索引,或如下所示的磁盘 Name 属性,引用附加到 VM 的其他数据磁盘:

Powershell复制
($vm.StorageProfile.DataDisks | Where {$_.Name -eq 'my-second-data-disk'})[0].DiskSizeGB = 1023

如果想要了解如何将磁盘附加到 Azure Resource Manager VM,请参阅此文。立即访问http://market.azure.cn

如何扩展 Azure 资源组中虚拟机的 OS 驱动器的更多相关文章

  1. Windows Azure 虚拟网络中虚拟机的网络隔离选项

     最近我们发布了一份<Windows网络安全白皮书>(单击此处下载),文中深入说明了客户可以如何利用该平台的本地功能,为他们的信息资产提供最好的保护. 由首席顾问Walter Myer ...

  2. Azure 经典模式中虚拟机证书指纹的生成和作用

    用户在使用经典虚拟机时,经常会有如下疑问:门户主板页面中的 SSH/RDP 证书指纹这项信息是怎么来的?用途是什么?为什么有的时候为空?有没有对虚拟机使用有什么影响?以下我们进行一些基本的介绍: 证书 ...

  3. 使用 Azure CLI 创建 Windows 虚拟机

    Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍如何使用 Azure CLI 部署运行 Windows Server 2016 的虚拟机. 部署完成后,我们连接到服 ...

  4. 使用 Azure 门户创建 Windows 虚拟机

    可以通过 Azure 门户创建 Azure 虚拟机. 此方法提供一个基于浏览器的用户界面,用于创建和配置虚拟机和所有相关的资源. 本快速入门介绍了如何创建虚拟机并在 VM 上安装 webserver. ...

  5. 使用 Azure 门户创建 Linux 虚拟机

    可以通过 Azure 门户创建 Azure 虚拟机. 此方法提供一个基于浏览器的用户界面,用于创建和配置虚拟机和所有相关的资源. 本快速入门介绍了如何创建虚拟机并在 VM 上安装 webserver. ...

  6. 使用 Azure CLI 创建 Linux 虚拟机

    Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍了如何使用 Azure CLI 部署运行 Ubuntu 服务器的虚拟机. 服务器部署以后,将创建 SSH 连接,并且 ...

  7. 部署AlwaysOn第三步:集群资源组的健康检测和故障转移

    资源组是由一个或多个资源组成的组,WSFC的故障转移是以资源组为单位的,资源组中的资源是相互依赖的.一个资源所依赖的其他资源必须和该资源处于同一个资源组,跨资源组的依赖关系是不存在的.在任何时刻,每个 ...

  8. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十三:从可用性组中移除副本然后重新添加

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  9. 将 Windows VM 移到其他 Azure 订阅或资源组

    本文逐步说明如何在资源组或订阅之间移动 Windows VM. 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便. Important 不可在 ...

随机推荐

  1. Android面试题(1)

    1.  Java语言基本数据类型有哪些?分别占用的内存空间是多少? 答: byte(1字节),boolean(1字节),char(2字节),short(2字节),int(4字节),float(4字节) ...

  2. rubymine debug需要安装依赖

    for ruby2.x gem install ruby-debug-ide --pre gem install debase --pregem install debugger2 --pre

  3. 世界上最短的bash脚本

    世界上最短的bash脚本长这样: #!/bin/bash 为啥呢?见下图: 推荐一篇文章,讲解为啥shell脚本开头总是"#!/bin/bash".文风太清奇,不好翻译,看原文吧: ...

  4. OpenStack 对接 Ceph

    [TOC]   1. Openstack 与 Ceph 1.1. Ceph 简介 Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(RBD).对象 ...

  5. redis学习(二) redis数据结构介绍以及常用命令

    redis数据结构介绍 我们已经知道redis是一个基于key-value数据存储的数据结构数据库,这里的key指的是string类型,而对应的value则可以是多样的数据结构.其中包括下面五种类型: ...

  6. 解压cpio.gz、zip类型文件

    aix上的oracle介质文件是10gr2_aix5l64_database.cpio.gz 解压方法: gunzip 10gr2_aix5l64_database.cpio.gz cpio -idm ...

  7. go程序性能测量和分析

    性能测量 在很多情况之下,通过分析代码是很难确定某个模块性能好坏的.请看下面的例子,你觉得哪一个函数性能最优? //斐波那契数 package fib import "math" ...

  8. JavaScript的3种继承方式

    JavaScript的继承方式有多种,这里列举3种,分别是原型继承.类继承以及混合继承. 1.原型继承 优点:既继承了父类的模板,又继承了父类的原型对象: 缺点:不是子类实例传参,而是需要通过父类实例 ...

  9. 网络之XML解析-原生

    Json和XML都属于字符串,用于跨平台,前面总结了下Json,下面看下XML. XML定义这些百度比我说的清,不再啰嗦,直接代码,我喜欢把东西都放进注释. 一.首先看下要解析的XML内容 <? ...

  10. Mybatis 的配置xml和properties放在jar包以外的一种方法

    1.问题 开发时候,将xml和properties放resources,直接可以访问到,然而打包后这两个文件也一同被打包到jar包里面,如果发布后想修改就会比较麻烦,所以希望将xml配置文件和prop ...