本文介绍如何使用 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