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

Add-AzVMDataDisk

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

语法

Add-AzVMDataDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-DiskSizeInGB] <Int32>]
   [-Lun] <Int32>
   [-CreateOption] <String>
   [[-SourceImageUri] <String>]
   [-DiskEncryptionSetId <String>]
   [-DeleteOption <String>]
   [-SourceResourceId <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Add-AzVMDataDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-Caching] <CachingTypes>]
   [[-DiskSizeInGB] <Int32>]
   [-Lun] <Int32>
   [-CreateOption] <String>
   [[-ManagedDiskId] <String>]
   [[-StorageAccountType] <String>]
   [-DiskEncryptionSetId <String>]
   [-WriteAccelerator]
   [-DeleteOption <String>]
   [-SourceResourceId <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

说明

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

示例

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

$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1"
$DataDiskVhdUri01 = "https://contoso.blob.core.windows.net/test/data1.vhd"
$DataDiskVhdUri02 = "https://contoso.blob.core.windows.net/test/data2.vhd"
$DataDiskVhdUri03 = "https://contoso.blob.core.windows.net/test/data3.vhd"
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 -VhdUri $DataDiskVhdUri01 -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 -VhdUri $DataDiskVhdUri02 -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -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:将数据磁盘添加到现有虚拟机

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

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

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

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

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

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

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

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

参数

-Caching

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

  • ReadOnly
  • ReadWrite
  • 无 默认值为 ReadWrite。 更改此值会导致虚拟机重启。 此设置会影响磁盘的一致性和性能。
类型:CachingTypes
接受的值:None, ReadOnly, ReadWrite
Position:3
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-CreateOption

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

  • 附加。 指定此选项以从专用磁盘创建虚拟机。 指定此选项时,请不要指定 SourceImageUri 参数。 VhdUri 是所需的一切,以便告知 Azure 平台虚拟硬盘(VHD)作为数据磁盘附加到虚拟机的位置。
  • 空白。 指定此项可创建空数据磁盘。
  • FromImage。 指定此选项可从通用化映像或磁盘创建虚拟机。 指定此选项时,还必须指定 SourceImageUri 参数,以便告知 Azure 平台要附加为数据磁盘的 VHD 的位置。 VhdUri 参数用作标识虚拟机使用数据磁盘 VHD 时存储的位置。
  • 空白。 创建空数据磁盘时使用此值。
  • 复制。 此值用于从快照或其他磁盘创建数据磁盘。 还原: 此值用于从磁盘还原点创建数据磁盘。
类型:String
Position:6
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-DefaultProfile

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

类型:IAzureContextContainer
别名:AzContext, AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DeleteOption

数据磁盘删除选项。 指定在删除 VM 后对磁盘执行的操作。 选项包括:分离、删除。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-DiskEncryptionSetId

指定客户托管磁盘加密集的资源 ID。 这只能为托管磁盘指定。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DiskSizeInGB

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

类型:Nullable<T>[Int32]
Position:4
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Lun

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

类型:Nullable<T>[Int32]
Position:5
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ManagedDiskId

指定托管磁盘的 ID。

类型:String
Position:8
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Name

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

类型:String
Position:1
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SourceImageUri

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

类型:String
别名:SourceImage
Position:7
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SourceResourceId

要从中创建磁盘的快照或磁盘还原点的 ARM ID。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-StorageAccountType

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

类型:String
Position:9
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-VhdUri

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

类型:String
Position:2
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-VM

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

类型:PSVirtualMachine
别名:VMProfile
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-WriteAccelerator

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

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

PSVirtualMachine

String

CachingTypes

Nullable<T>[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]

输出

PSVirtualMachine

PSVirtualMachineScaleSetVM