Azure 中的虚拟机

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集

Azure 虚拟机是 Azure 提供的多种按需可缩放计算资源之一。 通常,如果你对于计算环境所需的控制权比其他选项可提供的还要多,则会选择虚拟机。 本文介绍创建虚拟机之前的注意事项,以及如何创建和管理虚拟机。

Azure 虚拟机让你能够灵活地进行虚拟化,而无需购买和维护运行虚拟机的物理硬件。 不过,仍然需要通过执行任务来维护虚拟机,例如,配置、修补和安装在虚拟机上运行的软件。

可通过多种方式使用 Azure 虚拟机。 下面是一些示例:

  • 开发和测试 - Azure 虚拟机提供了一种快速轻松的方法来创建具有特定配置的计算机,以便满足对应用程序进行编码和测试的需要。
  • 云中的应用程序 - 由于对应用程序的需求可能会波动,因此在 Azure 的虚拟机上运行应用程序可能会具有经济意义。 可在需要时使用额外的虚拟机并为其付费,并在不需要时将其关闭。
  • 扩展的数据中心 - Azure 虚拟网络中的虚拟机可以轻松连接到组织的网络。

应用程序使用的虚拟机数可根据需要纵向扩展和横向扩展为任意数目。

在创建虚拟机之前需要考虑什么?

在 Azure 中生成应用程序基础结构时,始终要考虑多种设计注意事项。 在开始之前,必须着重考虑虚拟机的以下方面:

  • 资源的名称
  • 资源的存储位置
  • 虚拟机的大小
  • 可以创建的最大虚拟机数
  • 虚拟机运行的操作系统
  • 虚拟机在启动后的配置
  • 虚拟机需要的相关资源

VM 的各个部分及其计费方式

创建虚拟机时,还会创建支持该虚拟机的资源。 这些资源自身也有成本,应该加以考虑。

下表详细介绍了支持虚拟机的默认资源及其计费方式:

资源 说明 成本
虚拟网络 用于让虚拟机能够与其他资源通信 虚拟网络定价
虚拟网络接口卡 (NIC) 用于连接到虚拟网络 NIC 不单独产生费用。 但是,根据 VM 的大小,可使用的 NIC 数量有限制。 请相应地调整 VM 大小,并参考虚拟机定价
专用 IP 地址,有时还有公共 IP 地址。 用于网络上与外部网络的通信和数据交换 IP 地址定价
网络安全组 (NSG) 用于管理进出 VM 的网络流量。 例如,可能需要打开端口 22 进行 SSH 访问,但可能需要阻止发到端口 80 的流量。 通过 NSG 来阻止和允许端口访问。 Azure 中的网络安全组不会产生额外费用。
OS 磁盘,可能还有单独的数据磁盘。 最佳做法是将数据保存在与操作系统分开的磁盘上,这样当 VM 发生故障时,你只需分离数据磁盘,并将其附加到新的 VM 即可。 所有新虚拟机都有一个操作系统磁盘和一个本地磁盘。
Azure 不收取本地磁盘存储费用。
操作系统磁盘通常为 127 GiB,但对于某些映像来说可能更小,该磁盘按磁盘常规费率收费。
可以在托管磁盘定价页上查看将高级(基于 SSD)和标准(基于 HDD)磁盘附加到虚拟机所产生的费用。
在某些情况下,需要 OS 的许可证 用于提供虚拟机运行来运行 OS 成本因 VM 上的核心数而异,因此请相应地调整 VM 的大小。 可以通过 Azure 混合权益来降低成本。

还可以选择让 Azure 创建和存储公钥和专用 SSH 密钥 - Azure 在 VM 中使用公钥,而你在通过 SSH 访问 VM 时使用私钥。 否则,需要用户名和密码。

默认情况下,这些资源是在 VM 所在的资源组中创建的。

位置

中国有多个地理区域,你可以在其中创建 Azure 资源。 创建虚拟机时,区域通常称为位置。 对于虚拟机,位置指定了虚拟硬盘的存储位置。

下表显示了获取可用位置列表的一些方法。

方法 说明
Azure 门户 创建虚拟机时,可从列表中选择位置。
Azure PowerShell 使用 Get-AzLocation 命令。
REST API 使用列出位置操作。
Azure CLI 使用 az account list-locations 操作。

可用性

有多个选项可用于管理 Azure 中虚拟机的可用性。

  • 可用性区域是 Azure 区域中物理上独立的区域。 可用性区域保证,当在同一 Azure 区域中的两个或更多可用性区域中部署了两个或更多实例时,可在至少 99.99% 的时间实现与至少一个实例的虚拟机连接。
  • 使用虚拟机规模集,可以创建并管理一组负载均衡的虚拟机。 可以根据需求或定义的计划自动增减虚拟机实例的数目。 规模集为应用程序提供高可用性,用于集中管理、配置和更新许多虚拟机。 规模集内的虚拟机还可部署到多个可用性区域、单个可用性区域或按地区进行部署。

有关详细信息,请参阅 Azure 虚拟机的可用性选项适用于 Azure 虚拟机的 SLA

大小和定价

所用虚拟机的大小由要运行的工作负载决定。 然后,所选大小又会影响多个因素,例如处理能力、内存、存储容量和网络带宽。 Azure 提供各种大小来支持多种类型的用途。

Azure 根据虚拟机的大小和操作系统按小时价格计费。 对于不足一小时的部分,Azure 仅根据使用的分钟数计费。 存储将另行定价和收费。

虚拟机核心总数限制

订阅附带默认的配额限制,在为项目部署大量虚拟机时,这些限制可能会造成影响。 每个订阅的当前限制是每区域总共 20 个虚拟机核心。 可以开具支持票证来请求提高限制

托管磁盘

托管磁盘在后台为你处理 Azure 存储帐户的创建和管理,确保你无需担心存储帐户的可伸缩性限制。 只需指定磁盘大小和性能层(标准或高级),Azure 就会自动创建和管理磁盘。 在添加磁盘或者纵向扩展和缩减虚拟机时,无需考虑所用的存储。 如果要创建新虚拟机,请使用 Azure CLI 或 Azure 门户,通过托管 OS 和数据磁盘创建虚拟机。 如果虚拟机具有非托管磁盘,可以将虚拟机转换为由托管磁盘支持

还可以按 Azure 区域在一个存储帐户中管理自定义映像,并使用这些映像在同一订阅中创建数百台虚拟机。 有关托管磁盘的详细信息,请参阅托管磁盘概述

分发

Azure 支持各种 Linux 和 Windows 发行版。 可以在市场、Azure 门户中查找可用的发行版,或者通过使用 CLI、PowerShell 和 REST API 查询结果来进行查找。

下表显示了查找映像信息的一些方法。

方法 说明
Azure 门户 选择要使用的映像时,系统会自动指定值。
Azure PowerShell Get-AzVMImagePublisher -Location location
Get-AzVMImageOffer -Location location -Publisher publisherName
Get-AzVMImageSku -Location location -Publisher publisherName -Offer offerName
REST API 列出映像发布者
列出映像产品
列出映像 SKU
Azure CLI az vm image list-publishers --location location
az vm image list-offers --location location --publisher publisherName
az vm image list-skus --location location --publisher publisherName --offer offerName

Azure 与合作伙伴紧密合作,以确保及时更新可用映像并针对 Azure 运行时进行优化。 有关 Azure 合作伙伴优惠的详细信息,请参阅 Azure 市场

Cloud-init

Azure 在支持它的大多数 Linux 发行版中支持 cloud-init。 我们正在积极与我们的 Linux 合作伙伴合作,以便在 Azure 市场中提供已启用 cloud-init 的映像。 这些映像可使 cloud-init 部署和配置无缝地应用于虚拟机和虚拟机规模集。

有关详细信息,请参阅在 Azure Linux 虚拟机上使用 cloud-init

存储

网络

服务中断

Azure 的同仁兢兢业业,只为确保在任何时候都能提供需要的服务。 但有时候会因为不可抗力的影响,造成服务意外中断。

Azure 为其服务提供服务级别协议 (SLA),作为运行时间和连接承诺。 可以在 Azure 服务级别协议中找到各种 Azure 服务的 SLA。

Azure 已在平台中内置多种功能,用于支持高度可用的应用程序。 有关这些服务的详细信息,请参阅 Azure 应用程序的灾难恢复和高可用性

本文介绍了当整个区域因重大自然灾难或大规模服务中断而发生中断时的真实灾难恢复方案。 这些都是极其罕见的情况,但你还是必须对整个区域发生中断的可能性有所准备。 如果整个区域的服务中断,会暂时无法使用数据的本地冗余副本。 如果启用了异地复制,则会在其他区域额外存储 Azure 存储 blob 和表的三个副本。 如果发生全面区域中断或发生主要区域无法恢复的灾难,Azure 会将所有 DNS 条目重新映射到异地复制区域。

为帮助你处理这些罕见事件,我们提供以下 Azure 虚拟机指导,以应对 Azure 虚拟机应用程序部署所在的整个区域发生服务中断的情况。

选项 1:使用 Azure Site Recovery 启动故障转移

可以为 VM 配置 Azure Site Recovery,只需单击一下,几分钟内即可恢复应用程序。 可以将虚拟机复制到所选的 Azure 区域,而不局限于配对区域。 可以通过复制虚拟机来启动。 可以创建恢复计划,以便可以对应用程序自动完成整个故障转移过程。 可以预先测试故障转移,这不会影响生成应用程序或正在进行的复制。 在主要区域中断的情况下,只需启动故障转移并在将应用程序移至目标区域。

选项 2:等待恢复

在此情况下,不需要采取任何操作。 但要知道,我们正在努力还原服务的可用性。 可在 Azure 服务运行状况仪表板上查看当前服务状态。

如果发生中断前尚未设置 Azure Site Recovery、读取访问权限异地冗余存储或异地冗余存储,这便是你的最佳选项。 如果存储 VM 虚拟硬盘 (VHD) 的存储帐户已设置异地冗余存储或读取访问权限异地冗余存储,可以指望恢复基本映像 VHD,并尝试用它预配新的 VM。 因为无法保证能够同步处理数据,所以这不是首选的选项。 因此,不保证此选项会有效。

注意

请注意,你对此过程没有任何控制权,并且此过程仅适用于区域范围的服务中断。 因此,还必须依靠应用程序特有的其他备份方法才能达到最高级别的可用性。 有关详细信息,请参阅灾难恢复的数据策略部分。

服务中断的资源

后续步骤

创建你的第一个虚拟机!