本文介绍如何使用 PowerShell 将新磁盘和现有磁盘附加到 Windows 虚拟机。
在开始之前,请查看以下提示:
虚拟机的大小决定了可以附加多少个磁盘。 有关详细信息,请参阅虚拟机大小。
若要使用高级存储,需要支持高级存储的 VM 大小,如 DS 系列或 GS 系列虚拟机。 有关详细信息,请参阅高级存储:适用于 Azure 虚拟机工作负荷的高性能存储。
如果选择在本地安装并使用 PowerShell,则本教程需要 Azure PowerShell 模块版本 3.6 或更高版本。 运行Get-Module -ListAvailable AzureRM即可查找版本。 如果需要进行升级,请参阅Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行Login-AzureRmAccount -EnvironmentName AzureChinaCloud以创建与 Azure 的连接。
将空数据磁盘添加到虚拟机
此示例演示了如何将空数据磁盘添加到现有的虚拟机。
使用托管磁盘
PowerShell复制
$rgName='myResourceGroup'$vmName='myVM'$location='China North'$storageType='PremiumLRS'$dataDiskName=$vmName+'_datadisk1'$diskConfig=New-AzureRmDiskConfig-AccountType$storageType-Location$location-CreateOptionEmpty-DiskSizeGB128$dataDisk1=New-AzureRmDisk-DiskName$dataDiskName-Disk$diskConfig-ResourceGroupName$rgName$vm=Get-AzureRmVM-Name$vmName-ResourceGroupName$rgName$vm=Add-AzureRmVMDataDisk-VM$vm-Name$dataDiskName-CreateOptionAttach-ManagedDiskId$dataDisk1.Id-Lun1Update-AzureRmVM-VM$vm-ResourceGroupName$rgName
在可用性区域中使用托管磁盘
若要在可用性区域中创建磁盘,请将New-AzureRmDiskConfig与-Zone参数一起使用。 以下示例在区域1中创建一个磁盘。
PowerShell复制
$rgName='myResourceGroup'$vmName='myVM'$location='China East 2'$storageType='PremiumLRS'$dataDiskName=$vmName+'_datadisk1'$diskConfig=New-AzureRmDiskConfig-AccountType$storageType-Location$location-CreateOptionEmpty-DiskSizeGB128-Zone1$dataDisk1=New-AzureRmDisk-DiskName$dataDiskName-Disk$diskConfig-ResourceGroupName$rgName$vm=Get-AzureRmVM-Name$vmName-ResourceGroupName$rgName$vm=Add-AzureRmVMDataDisk-VM$vm-Name$dataDiskName-CreateOptionAttach-ManagedDiskId$dataDisk1.Id-Lun1Update-AzureRmVM-VM$vm-ResourceGroupName$rgName
初始化磁盘
添加空磁盘后,需要对其进行初始化。 如果要初始化磁盘,可以登录到 VM,并使用磁盘管理进行初始化。 如果在创建 VM 时在其上启用了 WinRM 和证书,则可以通过远程 PowerShell 初始化该磁盘。 还可以使用自定义脚本扩展:
PowerShell复制
$location="location-name"$scriptName="script-name"$fileName="script-file-name"Set-AzureRmVMCustomScriptExtension-ResourceGroupName$rgName-Location$locName-VMName$vmName-Name$scriptName-TypeHandlerVersion"1.4"-StorageAccountName"mystore1"-StorageAccountKey"primary-key"-FileName$fileName-ContainerName"scripts"
脚本文件可以包含类似如下所示代码初始化磁盘:
PowerShell复制
$disks=Get-Disk| Where partitionstyle-eq'raw'| sort number$letters=70..89|ForEach-Object{ [char]$_}$count=0$labels="data1","data2"foreach($diskin$disks) {$driveLetter=$letters[$count].ToString()$disk|Initialize-Disk-PartitionStyleMBR-PassThru|New-Partition-UseMaximumSize-DriveLetter$driveLetter|Format-Volume-FileSystemNTFS-NewFileSystemLabel$labels[$count]-Confirm:$false-Force$count++}
将现有数据磁盘附加到 VM
可以将现有托管磁盘作为数据磁盘附加到 VM。
Azure PowerShell复制试用
$rgName="myResourceGroup"$vmName="myVM"$location="China East"$dataDiskName="myDisk"$disk=Get-AzureRmDisk-ResourceGroupName$rgName-DiskName$dataDiskName$vm=Get-AzureRmVM-Name$vmName-ResourceGroupName$rgName$vm=Add-AzureRmVMDataDisk-CreateOptionAttach-Lun0-VM$vm-ManagedDiskId$disk.IdUpdate-AzureRmVM-VM$vm-ResourceGroupName$rgName
后续步骤
创建快照。立即访问http://market.azure.cn