你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Add-AzureRmVMDataDisk

将数据磁盘添加到虚拟机或 Vmss VM。

警告

截至 2024 年 2 月 29 日,AzureRM PowerShell 模块已正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可能正常运行,但它不再维护或受支持,但会根据用户的自由裁量权和风险继续使用任何继续使用模块。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

Add-AzureRmVMDataDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-DiskSizeInGB] <Int32>]
   [-Lun] <Int32>
   [-CreateOption] <String>
   [[-SourceImageUri] <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Add-AzureRmVMDataDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-Caching] <CachingTypes>]
   [[-DiskSizeInGB] <Int32>]
   [-Lun] <Int32>
   [-CreateOption] <String>
   [[-ManagedDiskId] <String>]
   [[-StorageAccountType] <String>]
   [-WriteAccelerator]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Add-AzureRmVMDataDisk
   [-VirtualMachineScaleSetVM] <PSVirtualMachineScaleSetVM>
   [[-Caching] <CachingTypes>]
   [[-DiskSizeInGB] <Int32>]
   [-Lun] <Int32>
   [-CreateOption] <String>
   [-ManagedDiskId] <String>
   [[-StorageAccountType] <String>]
   [-WriteAccelerator]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

说明

Add-AzureRmVMDataDisk cmdlet 向虚拟机或 Vmss VM 添加数据磁盘。 可以在创建虚拟机时添加数据磁盘,也可以向现有虚拟机添加数据磁盘。

示例

示例 1:向新虚拟机添加数据磁盘

PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1"
PS C:\> $DataDiskVhdUri01 = "https://contoso.blob.core.windows.net/test/data1.vhd"
PS C:\> $DataDiskVhdUri02 = "https://contoso.blob.core.windows.net/test/data2.vhd"
PS C:\> $DataDiskVhdUri03 = "https://contoso.blob.core.windows.net/test/data3.vhd"
PS C:\> $VirtualMachine = Add-AzureRmVMDataDisk -VM $VirtualMachine -Name 'DataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 -VhdUri $DataDiskVhdUri01 -CreateOption Empty
PS C:\> $VirtualMachine = Add-AzureRmVMDataDisk -VM $VirtualMachine -Name 'DataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 -VhdUri $DataDiskVhdUri02 -CreateOption Empty
PS C:\> $VirtualMachine = Add-AzureRmVMDataDisk -VM $VirtualMachine -Name 'DataDisk3' -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 -VhdUri $DataDiskVhdUri03 -CreateOption Empty

第一个命令创建虚拟机对象,然后将其存储在$VirtualMachine变量中。 该命令将名称和大小分配给虚拟机。 接下来的三个命令将三个数据磁盘的路径分配给 $DataDiskVhdUri 01、$DataDiskVhdUri 02 和 $DataDiskVhdUri 03 变量。 此方法仅适用于以下命令的可读性。 最后三个命令将一个数据磁盘添加到存储在$VirtualMachine中的虚拟机。 该命令指定磁盘的名称和位置,以及磁盘的其他属性。 每个磁盘的 URI 存储在 $DataDiskVhdUri 01、$DataDiskVhdUri 02 和 $DataDiskVhdUri 03 中。

示例 2:将数据磁盘添加到现有虚拟机

PS C:\> $VirtualMachine = Get-AzureRmVM -ResourceGroupName "ResourceGroup11" -Name "VirtualMachine07"
PS C:\> Add-AzureRmVMDataDisk -VM $VirtualMachine -Name "disk1" -VhdUri "https://contoso.blob.core.windows.net/vhds/diskstandard03.vhd" -LUN 0 -Caching ReadOnly -DiskSizeinGB 1 -CreateOption Empty
PS C:\> Update-AzureRmVM -ResourceGroupName "ResourceGroup11" -VM $VirtualMachine

第一个命令使用 Get-AzureRmVM cmdlet 获取名为 VirtualMachine07 的虚拟机。 该命令在 $VirtualMachine 变量中存储虚拟机。 第二个命令将数据磁盘添加到存储在$VirtualMachine中的虚拟机。 最后一个命令更新 ResourceGroup11 中$VirtualMachine中存储的虚拟机的状态。

示例 3:从通用用户映像向新虚拟机添加数据磁盘

PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1"
PS C:\> $DataImageUri = "https://contoso.blob.core.windows.net/system/Microsoft.Compute/Images/captured/dataimage.vhd"
PS C:\> $DataDiskUri = "https://contoso.blob.core.windows.net/test/datadisk.vhd"
PS C:\> $VirtualMachine = Add-AzureRmVMDataDisk -VM $VirtualMachine -Name "disk1" -SourceImageUri $DataImageUri -VhdUri $DataDiskUri -Lun 0 -DiskSizeinGB 10 -CreateOption FromImage

第一个命令创建虚拟机对象并将其存储在$VirtualMachine变量中。 该命令将名称和大小分配给虚拟机。 接下来的两个命令将数据映像和数据磁盘的路径分别分配给$DataImageUri和$DataDiskUri变量。 此方法用于提高以下命令的可读性。 最后一个命令会将数据磁盘添加到存储在$VirtualMachine中的虚拟机。 该命令指定磁盘的名称和位置以及磁盘的其他属性。

示例 4:从专用用户映像向新虚拟机添加数据磁盘

PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1"
PS C:\> $DataDiskUri = "https://contoso.blob.core.windows.net/test/datadisk.vhd"
PS C:\> $VirtualMachine = Add-AzureRmVMDataDisk -VM $VirtualMachine -Name "dd1" -VhdUri $DataDiskUri -Lun 0 -DiskSizeinGB 10 -CreateOption Attach

第一个命令创建虚拟机对象并将其存储在$VirtualMachine变量中。 该命令将名称和大小分配给虚拟机。 下一个命令将数据磁盘的路径分配给$DataDiskUri变量。 此方法用于提高以下命令的可读性。 最后一个命令将数据磁盘添加到存储在$VirtualMachine中的虚拟机。 该命令指定磁盘的名称和位置,以及磁盘的其他属性。

示例 5:将托管数据磁盘添加到 Vmss VM。

PS C:\> $disk = Get-AzureRmDisk -ResourceGroupName $rgname -DiskName $diskname0
PS C:\> $VmssVM = Get-AzureRmVmssVM -ResourceGroupName "myrg" -VMScaleSetName "myvmss" -InstanceId 0
PS C:\> $VmssVM = Add-AzureRmVMDataDisk -VirtualMachineScaleSetVM $VmssVM -Lun 0 -DiskSizeInGB 10 -CreateOption Attach -StorageAccountType Standard_LRS -ManagedDiskId $disk.Id
PS C:\> Update-AzureRmVmssVM -VirtualMachineScaleSetVM $VmssVM

第一个命令获取现有的托管磁盘。 下一个命令获取资源组名称、vmss 名称和实例 ID 提供的现有 Vmss VM。 下一个命令将托管磁盘添加到存储在本地$VmssVM中的 Vmss VM。 最后一个命令使用添加的数据磁盘更新 Vmss VM。

参数

-Caching

指定磁盘的缓存模式。 此参数的可接受值为:

  • ReadOnly
  • ReadWrite
  • 无 默认值为 ReadWrite。 更改此值会导致虚拟机重启。 此设置会影响磁盘的一致性和性能。
Type:CachingTypes
Accepted values:None, ReadOnly, ReadWrite
Position:3
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CreateOption

指定此 cmdlet 是否从平台或用户映像在虚拟机中创建磁盘、创建空磁盘或附加现有磁盘。 此参数的可接受值为:

  • 附加。 指定此选项以从专用磁盘创建虚拟机。 指定此选项时,请不要指定 SourceImageUri 参数。 VhdUri 是所需的一切,以便告知 Azure 平台虚拟硬盘(VHD)作为数据磁盘附加到虚拟机的位置。
  • 空白。 指定此项可创建空数据磁盘。
  • FromImage。 指定此选项可从通用化映像或磁盘创建虚拟机。 指定此选项时,还必须指定 SourceImageUri 参数,以便告知 Azure 平台要附加为数据磁盘的 VHD 的位置。 VhdUri 参数用作标识虚拟机使用数据磁盘 VHD 时存储的位置。
Type:String
Position:6
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DiskSizeInGB

指定要附加到虚拟机的空磁盘的大小(以 GB 为单位)。

Type:Nullable<T>[Int32]
Position:4
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Lun

指定数据磁盘的逻辑单位号(LUN)。

Type:Nullable<T>[Int32]
Position:5
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ManagedDiskId

指定托管磁盘的 ID。

Type:String
Position:8
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定要添加的数据磁盘的名称。

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SourceImageUri

指定此 cmdlet 附加的磁盘的源 URI。

Type:String
Aliases:SourceImage
Position:7
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-StorageAccountType

指定托管磁盘的存储帐户类型。

Type:String
Position:9
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VhdUri

指定使用平台映像或用户映像时要创建的虚拟硬盘(VHD)文件的统一资源标识符(URI)。 此 cmdlet 将映像二进制大型对象(blob)复制到此位置。 这是从中启动虚拟机的位置。

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VirtualMachineScaleSetVM

指定要向其添加数据磁盘的本地虚拟机规模集 VM 对象。 可以使用 Get-AzureRmVmssVM cmdlet 获取虚拟机规模集 VM 对象。

Type:PSVirtualMachineScaleSetVM
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VM

指定要向其添加数据磁盘的本地虚拟机对象。 可以使用 Get-AzureRmVM cmdlet 获取虚拟机对象。 可以使用 New-AzureRmVMConfig cmdlet 创建虚拟机对象。

Type:PSVirtualMachine
Aliases:VMProfile
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WriteAccelerator

指定是否应在托管数据磁盘上启用或禁用 WriteAccelerator。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

PSVirtualMachine

PSVirtualMachineScaleSetVM

String

CachingTypes

Nullable<T>[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

输出

PSVirtualMachine

PSVirtualMachineScaleSetVM