虚拟机经典版和 Azure 虚拟机有何区别?

51

在Azure中创建虚拟机有两个选项: A. 普通 VM B. 经典 VM

有人知道这两个选项的区别吗?我们什么时候使用其中一个而不是另一个呢?

4个回答

58

简短回答你的问题是,Normal VM 或 Virtual Machines 是部署虚拟机的新方法,而 Classic VM 或 Virtual Machines (Classic) 则是旧的部署方法。Azure 正在推进新的资源部署方式,因此建议使用它而不是旧的方式。但请记住,在新的方式中尚未移植到某些旧方式中可用的一些功能,因此您必须比较提供的功能,仅在新方式中无法获得所需内容时使用旧方式。

现在来看看详细情况 :)

基本上,有一个 REST API 与 Azure 基础架构进行交互。

Azure 开始时,该 API 被称为 Service Management API (SMAPI),在当时(甚至今天)很好地服务了其目的。然而随着 Azure 的发展,用户的需求也在增加,这就发现 SMAPI 受限。一个很好的例子是访问控制。在 SMAPI 中,有访问控制,但它更像是 全有或全无 类型的访问控制。它缺乏用户要求的细粒度。

Azure 团队决定重写整个 API,而不是修补 SMAPI 来满足用户的要求,这个 API 更简单、更健壮、更丰富。这个 API 被称为 Azure Resource Manager API (ARM)。ARM 有许多 SMAPI 中没有的功能(我个人最喜欢的是 基于角色的访问控制 - RBAC)。

如果您注意到今天有两个 Azure 门户网站 - https://manage.windowsazure.com(旧的)和 https://portal.azure.com(新的)。旧门户网站支持 SMAPI,而新门户网站支持 ARM。为了将通过旧门户网站创建的资源展示在新门户网站中(以便您可以获得统一的体验),Azure 团队最终创建了一个用于旧内容的资源提供程序,它们的名称将始终以 (Classic) 结尾,因此您将看到 Virtual Machines (Classic)Storage Accounts (Classic) 等。因此,您在旧门户网站中创建的资源可以在新门户网站中看到(前提是新门户网站支持它们),但是您使用 ARM 在新门户网站中创建的任何资源都不会显示在旧门户网站中。

谢谢这么详细的解释。我现在对Azure资源有了更好的理解。 还有一个基本问题...这些VM是永久的,也就是说它们不能自行消失吗?我们在其中存储的任何内容都稳定存在,直到我们自己删除VM。 - user1136425
1
您的理解是正确的。这些虚拟机是持久性的。实际上,虚拟机的数据存储在“Page Blobs”中,而“Page Blobs”本身是持久性存储。 - Gaurav Mantri
太棒了。我一直感到困惑,因为在任何 Azure 文档中都找不到相关信息。如果你有,请告诉我。 - user1136425
请查看此链接,看看是否对您有帮助:https://azure.microsoft.com/zh-cn/documentation/articles/virtual-machines-disks-vhds/。 - Gaurav Mantri
@user1136425 我只是想提醒你,不要依赖于单一故障点来保护你的数据。虽然 Azure 存储博客出问题的可能性极小,但如果没有客户数据备份,我会冒险吗?当然不会!我们都会犯错,Azure(我很喜欢)也曾经发生过许多重大故障(其中许多是由于简单的人为错误导致的),所以永远不要认为你的数据是安全的,仅仅因为它在云端。 - Maxim Gershkovich

5
Azure虚拟机(经典)基于旧的Azure服务管理模型(ASM)。ASM模型围绕云服务概念展开。所有内容都包含在云服务中,并且这是通往互联网的入口。尽管仍然被广泛使用,但Azure现在正在转向Azure资源管理模型(ARM)。
ARM使用声明性模板的概念来配置整个解决方案(而不是单独的组件),因此您可以创建整个Sharepoint堆栈,而不仅仅是一个单一的机器。
ARM还具有更加逻辑化的网络方法。而不是将单块VM放在晦涩难懂的云服务中,您可以连接一个网络卡到VM上,将网络卡放入VNet中并附加公共IP(如果需要)。
除非您有充分的理由使用ASM(经典),否则应该使用ARM创建您的解决方案。因为这是MS推荐的发展方向。它还意味着您可以为部署创建模板,从而可以获得可重复的解决方案。
消极的一面是,旧版门户manage.windowsazure.com无法管理使用ARM部署的任何内容,而ASM的某些部分尚未迁移到ARM。例如,您无法配置Azure VM备份,因为Azure备份是ASM,无法“查看”ARM VM。
但这在很大程度上取决于您的情况,以及您计划使用的部署方法。如果您只是想设置一台机器来完成单个任务,这没有什么区别。如果您希望在将来部署DevOps概念的环境中进行部署,则应选择ARM。

微软建议您在创建新资源时使用资源管理器。请参考以下链接:https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-deployment-model - mvark
Azure门户网站的可用性图表显示,现在“新”门户网站上有非常少的服务不受支持 - https://azure.microsoft.com/en-us/features/azure-portal/availability/ - mvark

3

其中一个显著的区别是资源管理。为此,新版本被称为Azure Resource Manager VM (ARM VM)。

在以下方面,ARM VM更好:

  • 经典VM必须与Cloud Service绑定,而Cloud Service消耗资源限制和不太灵活的网络配置。
  • ARM VM在Azure Resource Manager (ARM)下进行管理,可以与其他Azure服务有/无组织地组合。ARM就像Azure服务的文件夹,它提供了更精细的资源管理。

经典VM可以迁移到ARM VM版,但您必须承受服务停机时间。要从经典VM迁移,请阅读官方文章:Virtual Machines的注意事项


“经典 VM 应该与云服务绑定”,那么是否可能在没有云服务的情况下部署经典 VM 呢... ;) - Michael B
@MichaelB // 不,这是不可能的。(可能吗?我几乎不这么认为) - Youngjae
也许这更像是一个必须而不是应该。 - Michael B
别担心,这只是为了消除歧义 - 这是我六个月后读到会想知道如何做的事情。 - Michael B

1
Azure现在提供了两种部署模型:Azure资源管理器(标准版)和Azure服务管理(经典版),以及在使用虚拟机时需要注意的重要事项
  1. 采用经典部署模型部署的虚拟机无法包含在采用资源管理器部署的虚拟网络中。
  2. 采用资源管理器部署模型部署的虚拟机必须包含在虚拟网络中。
  3. 采用经典部署模型部署的虚拟机不需要包含在虚拟网络中。

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