你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 Azure Stack Edge Pro GPU 设备创建自定义 VM 映像
适用于:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
若要在 Azure Stack Edge Pro GPU 设备上部署 VM,你需要能够创建可用于在 Azure 中创建 VM 的自定义 VM 映像。 本文介绍了在 Azure 中为 Windows 和 Linux VM 创建自定义 VM 映像并将这些映像下载或复制到 Azure 存储帐户的步骤。
准备自定义 VM 映像需要一个工作流。 对于映像源,需要使用 Azure 支持的任意大小的固定 VHD。 有关 VM 大小选项,请参阅支持的 VM 大小。
先决条件
创建 VM 映像之前,请先完成以下先决条件:
- 下载 AzCopy。 AzCopy 提供了一种将 OS 磁盘复制到 Azure 存储帐户的快速方法。
创建自定义 VM 映像
为 Windows 或 Linux VM 准备自定义 VM 映像的步骤有所不同。
执行以下步骤以创建 Windows VM 映像:
在 Azure 中创建 Windows 虚拟机。 有关门户说明,请参阅在 Azure 门户中创建 Windows 虚拟机。 有关 PowerShell 说明,请参阅教程:使用 Azure PowerShell 创建和管理 Windows VM。
虚拟机可以是第 1 代或第 2 代 VM。 用于创建 VM 映像的 OS 磁盘必须是 Azure 支持的任意大小的固定大小的 VHD。 有关 VM 大小选项,请参阅支持的 VM 大小。
可以在 Azure 市场中使用具有固定大小的 VHD 的任何 Windows Gen1 或 Gen2 VM。 有关可用的 Azure 市场映像列表,请参阅 Azure Stack Edge 的常用 Azure 市场映像。
通用化虚拟机。 若要通用化 VM,请连接到虚拟机,打开命令提示符,并运行以下
sysprep
命令:c:\windows\system32\sysprep\sysprep.exe /oobe /generalize /shutdown /mode:vm
重要
在命令完成后,VM 将会关闭。 不要重新启动 VM。 重启 VM 将损坏刚准备的磁盘。
将 OS 磁盘下载到存储帐户
若要使用自定义 VM 映像在设备上部署 VM,必须将 OS 磁盘下载到 Azure 存储帐户。 建议使用与设备相同的存储帐户。
若要将 VM 的 OS 磁盘下载到 Azure 存储帐户,请执行以下步骤:
在门户中停止 VM。 即使 Windows VM 在你运行
sysprep
进行通用化后关闭,你也需要执行此操作来解除分配 OS 磁盘。为 OS 磁盘生成下载 URL,并记下 URL。 默认情况下,URL 在 3600 秒(1 小时)后过期。 如果需要,可以增加该时间。
使用以下方法之一将 VHD 下载到 Azure 存储帐户:
方法 1:若要加快传输速度,请使用 AzCopy 将 VHD 复制到 Azure 存储帐户。 有关说明,请参阅下面的使用 AzCopy 将 VM 映像复制到存储帐户。
方法 2:对于简单的一键式方法,你可以在生成下载 URL 时(在步骤 3b 中)选择“下载 VHD 文件”,从门户下载磁盘。 使用此方法时,磁盘复制可能需要很长时间,并且需要将 VHD 上传到 Azure 存储帐户才能使用门户创建 VM。
现在可以使用此 VHD 在 Azure Stack Edge Pro GPU 设备上创建和部署 VM。
使用 AzCopy 将 VHD 复制到存储帐户
以下过程介绍如何使用 AzCopy 将自定义 VM 映像复制到 Azure 存储帐户,以便可以使用该映像在 Azure Stack Edge Pro GPU 设备上部署 VM。 建议将自定义虚拟机映像存储在你所使用的任一现有存储帐户中,该帐户应与 Azure Stack Edge 位于同一区域/订阅中。
为容器创建目标 URI
AzCopy 需要一个目标 URI,该 URI 告诉你将新映像复制到存储帐户的哪个位置。 在运行 AzCopy 之前,将为你要将文件复制到的 blob 容器生成共享访问签名 (SAS) URL。 若要创建目标 URI,请将文件名添加到 SAS URL。
若要为已准备好的 VHD 创建目标 URI,请执行以下步骤:
为 Azure 存储帐户中的容器生成 SAS URL,请执行以下步骤:
在 Azure 门户中,打开存储帐户,然后选择“容器”。 选择并右键单击要使用的 blob 容器,然后选择“生成 SAS”。
在“生成 SAS”屏幕上,在“权限”中选择“读取”和“写入”。
选择“生成 SAS 令牌和 URL”,然后选择“复制”以复制“Blob SAS URL”。
若要为
azcopy
命令创建目标 URI,请将所需的文件名添加到 SAS URL。Blob SAS URL 采用以下格式。
在查询字符串开始的问号之前插入文件名,格式为
/<filename>.vhd
。 文件扩展名必须为 VHD。例如,以下 Blob SAS URL 会将 osdisk.vhd 文件复制到 mystorageaccount 中的 virtualmachines Blob 容器。
将 VHD 复制到 blob 容器
若要使用 AzCopy 将 VHD 复制到 blob 容器,请执行以下步骤:
下载 AZCopy(如果尚未这样做)。
在 PowerShell 中,导航到存储 azcopy.exe 的目录,并运行以下命令:
.\azcopy copy <source URI> <target URI> --recursive
其中:
<source URI>
是之前生成的下载 URL。<target URI>
告知要将新映像复制到 Azure 存储帐户中的哪个 blob 容器。 有关说明,请参阅使用 AzCopy 将 VM 映像复制到存储帐户。
例如,以下 URI 会将名为“windowsosdisk.vhd”的文件复制到 mystorageaccount 存储帐户中的“虚拟机”blob 容器:
.\azcopy copy "https://md-h1rvdq3wwtdp.z24.blob.storage.azure.net/gxs3kpbgjhkr/abcd?sv=2018-03-28&sr=b&si=f86003fc-a231-43b0-baf2-61dd51e3a05a&sig=abc123DEF456...%3D" "https://mystorageaccount.blob.core.windows.net/virtualmachines/osdisk.vhd?sp=rw&st=2021-05-21T16:52:24Z&se=2021-05-22T00:52:24Z&spr=https&sv=2020-02-10&sr=c&sig=abc123DEF456...%3D" --recursive
示例输出
对于上面的示例 AzCopy 命令,以下输出表明已成功完成复制。
PS C:\azcopy\azcopy_windows_amd64_10.10.0> .\azcopy copy "https://md-h1rvdq3wwtdp.z24.blob.storage.azure.net/gxs3kpbgjhkr/abcd?sv=2018-03-28&sr=b&si=f86003fc-a231-43b0-baf2-61dd51e3a05a&sig=abc123DEF456...%3D" "https://mystorageaccount.blob.core.windows.net/virtualmachines/osdisk.vhd?sp=rw&st=2021-05-21T16:52:24Z&se=2021-05-22T00:52:24Z&spr=https&sv=2020-02-10&sr=c&sig=abc123DEF456...%3D" --recursive
INFO: Scanning...
INFO: Failed to create one or more destination container(s). Your transfers may still succeed if the container already exists.
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
Job 783f2177-8317-3e4b-7d2f-697a8f1ab63c has started
Log file is located at: C:\Users\aseuser\.azcopy\783f2177-8317-3e4b-7d2f-697a8f1ab63c.log
INFO: Destination could not accommodate the tier P10. Going ahead with the default tier. In case of service to service transfer, consider setting the flag --s2s-preserve-access-tier=false.
100.0 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total,
Job 783f2177-8317-3e4b-7d2f-697a8f1ab63c summary
Elapsed Time (Minutes): 1.4671
Number of File Transfers: 1
Number of Folder Property Transfers: 0
Total Number of Transfers: 1
Number of Transfers Completed: 1
Number of Transfers Failed: 0
Number of Transfers Skipped: 0
TotalBytesTransferred: 136367309312
Final Job Status: Completed
PS C:\azcopy\azcopy_windows_amd64_10.10.0>