如何创建具有较小存储的Azure虚拟机

4
创建Azure虚拟机时,默认磁盘大小为30GB,而我只使用了大约3GB。现在,Azure提供了一个4GB的磁盘,价格是原来的1/16。但他们决定让它变得非常复杂,以便将其设置为4GB或8GB,而不是在创建虚拟机时提供选项。
我只需要创建一个新的4GB托管磁盘。enter image description here 如何获取Ubuntu的VHD文件,以便我最终可以制作磁盘?我已经到处寻找答案,但找不到。

在虚拟机提供后,您可以调整磁盘大小。 - mmking
@mmking,它说我不能这样做,因为可能会有“数据丢失”。 - Lainad
2个回答

2

编辑:

如评论中所述,您需要的是Ubuntu桌面版而不是服务器版。除了Ubuntu不提供任何Azure兼容的Ubuntu桌面版本外,Azure 仅支持以下Ubuntu版本

Ubuntu Server和Pro. 16.x、18.x、20.x 有关Ubuntu 12.04和14.04的扩展支持信息,请参见此处:Ubuntu Extended Security Maintenance。

此处还有其他发行版支持信息

对于下面的图像,您正确指出(对于疏忽表示歉意),在转换后它仍将为您提供30GB的映像。

此外,因为Ubuntu服务器和桌面版本共享相同的内核,所以您应该可以按照非认可发行版所概述的相同准备步骤来下载和创建自定义映像,将其转换为VHD,然后上传。即使成功,也可能会导致Azure底层服务出现其他问题。
我想到的最后一个选择是使用Azure迁移将现有的本地Ubuntu VM移动到Azure。当我们尝试时,此选项失败了,但我应该披露我们的VM运行的是一个更旧的CentOS版本。在使用Azure迁移时,Azure将分析您的机器并告诉您是否支持您的VM。
你只能使用存储在 Azure 存储帐户中的图像。尽管你似乎已经经历了很多事情,但我恐怕这并不容易,但通常可以清楚地了解如何完成以下步骤:
1 - 获取图像
有关此主题的 Azure 文档 实际上建议从官方 Ubuntu 云存储库下载它。
注意
在尝试为 Azure 创建自己的自定义 Ubuntu 映像之前,请考虑改用来自https://cloud-images.ubuntu.com/ 的预构建和测试映像。
你也可以只下载文档中列出的两个版本之一,这将为你提供一个.VHDX文件。

enter image description here

2 - 将VHDX转换为VHD

Azure不支持.VHDX格式。请参见:

VHDX格式在Azure中不受支持,仅支持固定VHD。您可以使用Hyper-V Manager或Convert-VHD cmdlet将磁盘转换为VHD格式。

这里有一篇文章介绍了如何使用这两个选项进行转换。

3 - 将VHD上传到Blob

一旦您将文件转换为VHD格式,就可以将其上传到Azure。

  1. 您可以使用AzCopy,与直接上传相比较而言可能会更加复杂,但是请注意这也是一种可行的方式。Azure似乎也推荐使用此方法。

  2. 最简单的方法是通过门户手动上传。请参阅此文章以了解详细信息-选择与您相关的内容。

    (a) 选择存储帐户,创建/选择要上传到的容器

    (b) 单击“上传”并选择要上传的Ubuntu VHD文件。

确保Blob类型设置为Page Blob。

4- 创建托管磁盘和VM

  1. 上传Ubuntu VHD后,转到其属性页面并获取Blob URI。
  2. 在创建磁盘时使用该URI。
  3. 从托管磁盘创建VM。
那就是全部了 - 非常痛苦但是可行。

我有一些问题:
  1. 我需要一个桌面云映像。这些都是服务器云映像。
  2. 从官方云映像下载的VHD文件似乎是32GB。这是因为它不是Ubuntu桌面VHD文件吗?(我是否从正确的地方下载?http://cloud-images.ubuntu.com/bionic/current/的vhd.tar.gz文件)
  3. vhdx文件的链接实际上是vmdk文件。这些都是Ubuntu服务器文件,所以我认为无论转换后是什么格式,大小都是32GB。
- Lainad
啊!是的,你说得对。我的错,我完全忽略了那个。首先,我们不能考虑任何云镜像,因为它们都是Ubuntu服务器 - 正如你所提到的,它们应该扩展到30GB(这是Azure操作系统磁盘的新默认大小)。请查看此处支持的版本https://learn.microsoft.com/en-us/azure/virtual-machines/linux/endorsed-distros#supported-distributions-and-versions Ubuntu桌面版没有官方支持。 - Ked Mardemootoo
这意味着您需要在本地自己创建VHD,安装所有预备的Azure扩展/工具,然后上传。因为服务器和桌面版共享相同的内核,您可能不会遇到任何安装所有工具的问题 - 但是,仅仅因为Azure不认为它是受支持的发行版,成功部署虚拟机后可能会遇到其他问题。例如,Azure可能不支持与Hyper-V或其他底层服务的某些集成,您将发现自己没有支持,因为我找不到任何尝试此操作的文章。我希望我错了! - Ked Mardemootoo
我会编辑我的答案以反映这一点,以便更清晰明了。 - Ked Mardemootoo

1

我成功地将存储降至仅3 GB,并在Azure虚拟机上运行Ubuntu 20.04 LTS(Focal Fossa)。

enter image description here

以下是下载自 https://cloud-images.ubuntu.com/focal/current/ 的图像、将VMDK转换为VHD的工具(例如2Tware Convert VHD)以及安装/启用本地Windows功能下的Hyper-V Manager所需的前提条件。
1. 当使用专用的 focal-server-cloudimg-amd64-azure.vhd.zip 时,我无法降低其容量。解压后,文件 livecd.ubuntu-cpc.azure.vhd 大约为 30-31GB。我没有成功地将其缩小(只能扩展),因此结果会比来自 Azure Marketplace 的原始(30GB)Ubuntu VM 更糟糕。

enter image description here


我下载了 focal-server-cloudimg-amd64.vmdk。这里需要使用 2Tware Convert VHD 进行转换为 VHD 格式。但是,如果上传到 Azure,由于它是动态 VHD,这个镜像将无法被接受。
我必须使用 Hyper-V Manager 将其转换为固定大小的 VHD。然而,在进行 Edit Disks…->Browse…->Convert->VHD->Fixed 时,我遇到了另一个问题。我得到的文件大小为 10 GB(虽然有所改善,但仍比最终的 3 GB 大)。
我放弃了通过 Edit Disks… 的方式,选择使用 Quick Create… 来创建新的虚拟机。我选择了 Local installation source 并选择了从 VMDK 转换成的 VHD 文件。最后,我点击了 Create Virtual Machine
虚拟机已经创建好了,但是没有必要连接到它。实际上,它可以立即删除,因为真正需要的是存储在 C:\Users\Public\Documents\Hyper-V\Virtual hard disks\ 下的名为 New Virtual Machine.vhdx 的文件。
这一次,我使用 Hyper-V Manager 成功地将文件转换为固定大小的 VHD,并将其缩小到 3 GB。

enter image description here

稍后的过程如@Ked Mardemootoo回答中所述(IBM的指导)。需要在Azure中创建一个新的存储帐户。然后在存储帐户中创建一个新的Blob容器。将VHD文件上传到容器中。稍后需要从此存储区块创建一个新的映像,并从此映像成功创建一个新的小型VM。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接