0

我正在尝试创建非托管存储磁盘并将其附加到 Azure。创建磁盘时无法指定存储帐户。

vm.update().defineUnmanagedDataDisk(diskLabel)
                    .withNewVhd(lun)
                    .withLun(lun)
                    .withCaching(CachingTypes.NONE)
                    .attach()
                    .apply();
4

2 回答 2

0

根本原因是Azure 不支持将非托管磁盘附加到使用托管磁盘的 VM。

如果您的 VM 使用托管磁盘,则只能附加其他托管数据磁盘。此外,您只能将非托管数据磁盘附加到在存储帐户中使用非托管磁盘的 VM。换句话说,Azure 不支持同时将托管磁盘和非托管磁盘附加到 VM。

于 2017-09-01T03:08:52.763 回答
0

如本官方文档所述:

在非托管磁盘中,您管理用于存储与您的 VM 磁盘对应的虚拟硬盘 (VHD) 文件的存储帐户。VHD 文件作为页 blob 存储在 Azure 存储帐户中。

您可以按照教程将 VHD 文件上传到您的存储帐户,然后使用 指定存储帐户。请参阅此处.storeAt(storageAccount.name(), "diskvhds", "datadisk1vhd.vhd")的源代码。

 VirtualMachine virtualMachine = computeManager.virtualMachines()
                .define(VMNAME)
                .withRegion(REGION)
                .withExistingResourceGroup(RG_NAME)
                .withNewPrimaryNetwork("10.0.0.0/28")
                .withPrimaryPrivateIPAddressDynamic()
                .withoutPrimaryPublicIPAddress()
                .withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
                .withRootUsername("Foo12")
                .withRootPassword("abc!@#F0orL")
                .withUnmanagedDisks()
                .defineUnmanagedDataDisk("disk1")
                    .withNewVhd(100)
                    .withLun(2)
                    .storeAt(storageAccount.name(), "diskvhds", "datadisk1vhd.vhd")
                    .attach()
                .defineUnmanagedDataDisk("disk2")
                    .withNewVhd(100)
                    .withLun(3)
                    .storeAt(storageAccount.name(), "diskvhds", "datadisk2vhd.vhd")
                    .attach()
                .withSize(VirtualMachineSizeTypes.STANDARD_DS2_V2)
                .withOSDiskCaching(CachingTypes.READ_WRITE)
                .create();

注意 .storeAt(storageAccount.name(), "diskvhds", "datadisk1vhd.vhd")

方法.storeAt(<your account name>, <container name>, <blob name>)

于 2017-09-01T04:22:01.897 回答