本文介绍如何使用 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 -CreateOption Empty -DiskSizeGB 128 $dataDisk1 = New-AzureRmDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName $vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName $vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1 Update-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 -CreateOption Empty -DiskSizeGB 128 -Zone 1 $dataDisk1 = New-AzureRmDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName $vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName $vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1 Update-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 ($disk in $disks) { $driveLetter = $letters[$count].ToString() $disk | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -UseMaximumSize -DriveLetter $driveLetter | Format-Volume -FileSystem NTFS -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 -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id Update-AzureRmVM -VM $vm -ResourceGroupName $rgName
后续步骤
创建快照。立即访问http://market.azure.cn