此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
MSDN Library

在 Windows Azure 中使用 Windows Azure VM 角色

更新时间: 2011年3月

[Windows Azure 的“VM 角色”功能将于 2013 年 5 月 15 日停用。在该停用日期之后,将删除 VM 角色部署。 要继续使用现有应用程序,你可以使用 Windows Azure 虚拟机。 有关为应用程序使用虚拟机的详细信息,请参阅 Moving from VM Role to Windows Azure Virtual Machines(从 VM 角色转移到 Windows Azure 虚拟机)

在 Windows Azure 中,可以通过两种不同的方式使用虚拟机。即使用 VM 角色或使用虚拟机。

  • VM 角色 – VM 角色发布于 PDC10,至今仍在试用。收到大量客户反馈,在 Windows Azure 中构建新的虚拟机时参考了大部分这些反馈。VM 角色本质上是无状态的,对客户方案而言非常有用,如安装需要很长安装时间或安装时易出错的应用程序,以及支持扩展部署云模式。我们继续通过以前的管理门户接受客户加入 VM 角色试用版程序。由于 VM 角色仍在测试,其功能可能会更改,Windows Azure 不建议将 VM 角色用于生产部署。我们鼓励您继续使用 VM 角色进行概念证明或非生产服务,我们也将继续收集反馈来帮助定位 Windows Azure 的未来。

  • 虚拟机 - 从 VM 角色测试版发布收集的客户反馈为新 Windows Azure 虚拟机的规划提供了很多信息。虚拟机本质上是持久性的,允许客户在 Windows Azure 上运行 SQL Server 和 SharePoint 等应用程序。虚拟机还支持 Windows Server 和 Linux 操作系统。虚拟机已作为预览版发布,并且受条款和条件的约束。该服务预计将在日历年年底公开上市,但公布日期未定。有关此新功能的更多信息,请访问 www.windowsazure.com 的功能区。

利用 VM 角色,可以将自定义 Windows Server 2008 R2 映像部署到 Windows Azure。利用 VM 角色,可以在熟悉的环境中工作,使用标准的 Windows 技术创建映像,向其安装软件,进行准备以便上载到 Windows Azure,上载后对其进行管理。

可以安装以下操作系统:

  • Windows Server 2008 R2 Enterprise(仅限英文版)

  • Windows Server 2008 R2 Standard(仅限英文版)

note注释
不支持 Windows Web Server 2008 R2。

VM 角色提供对虚拟机的更高级别的控制,同时还提供在 Windows Azure 环境中运行的优点:直接可伸缩,服务不停机就地升级,与服务的其他组件集成,以及负载平衡的流量。VM 角色由一个操作系统组成,该系统是用基本虚拟硬盘 (VHD) 和可选的差异 VHD 构成的。VM 角色的使用还涉及服务定义文件和服务配置文件。

VM 角色与 Web 角色和辅助角色不同,对于后两者,主要是在 Windows Azure 托管的操作系统中创建和运行代码;而对于 VM 角色,您提供一个预配置的操作系统映像。开发人员可以完全控制操作系统映像。管理员可以远程连接到所有角色的虚拟机以执行维护和故障排除任务。

note注释
计算模拟器 不支持运行 VM 角色实例。

因为您在 VM 角色实例中控制操作系统以及操作系统的任意更新,所以对于在 Windows Azure 云服务中运行的其他类型的角色实例,它是唯一的。如果在操作系统中进行长时间的复杂安装或遇到无法自动进行的安装过程,则应使用这种角色。

与操作系统的本地安装相比,Windows Azure 中运行的 VM 角色实例受到某些限制。某些与网络有关的功能受到限制;例如,要使用 UDP 协议,还必须使用 Windows Azure Connect。此外,Windows Azure 中运行的 VM 角色实例不保持状态。建议使用 Windows Azure 存储服务保持状态,可以通过写入 Blob 或 Windows Azure 驱动器进行。有关如何执行此操作的示例,请参见在 Windows Azure 中开发 VM 角色的适配器。当服务器实例映像重置时,写入本地存储资源目录的数据将保持;但是,当 Windows Azure 中出现需要将 VM 角色移至其他硬件的暂时故障时,这些数据可能会丢失。

下图简要介绍 VM 角色开发过程中涉及的步骤:

VMRoleOverview

Windows Azure 管理 VM 角色实例的可用性,方法是部署映像,使 VM 角色实例联机,应用滚动升级,根据请求或在临时故障需要时重置 VM 角色实例映像,使用负载平衡器定向网络流量。为使 Windows Azure 能够最优管理 VM 角色实例,需要准确评估实例状态。Windows Azure 通过轮询 VM 角色实例的状态来评估其是否就绪。

当 VM 角色实例联机时(即首次启动并使用专用化传递配置操作系统时,以及后来每次启动配置为自动启动的 Windows 服务时),VM 角色实例都会在轮询时返回 Busy 作为其状态。所有自动启动服务都启动后,VM 角色实例会返回 Ready。此时,Windows Azure 假设 VM 角色实例确实就绪,可以接收流量,您负责确定是否如此。然后,Windows Azure 将流量定位到该实例,直到它由于 VM 角色实例中运行的代码将其状态设置为 Busy 或启动了其关闭状态而离开负载平衡器循环。

在 VM 角色实例联机的任何时候,您的代码都可以通过向 StatusCheck 事件添加一个事件处理程序来将其状态显式设置为 Busy。该事件激发时,可以对事件参数对象调用 SetBusy 方法。当 Windows Azure 轮询 VM 角色实例并发现它为 Busy 时,会停止将流量定位到该实例,直至它再次返回 Ready 状态。当 VM 角色实例由于重新启动或重置映像开始关闭时,它再次返回 Busy。在它重新联机并再次完成启动序列前,它不会再次接收来自负载平衡器的流量。

为确保您的云服务可维护任意服务级别协议,建议采用以下策略:

  • 始终将云服务配置为部署至少两个 VM 角色实例。如果一个实例由于故障或升级而脱机,另一个实例可以继续处理流量,直到两个实例都再次联机。

  • 如果适配器是自动启动服务,请确保配置 VM 角色实例的任务在 OnStart 方法返回前完成。OnStart 方法完成后,云服务应处于 Ready 状态,并在其显式退出循环前或任意关闭序列开始前保持 Ready 状态。

  • 避免自发重新启动云服务。应答文件配置 Windows,使 Windows Update 默认关闭;请不要修改此设置。

  • 避免从 VM 角色实例中关闭 Windows。

Windows Azure 中运行的任何 VM 角色实例都是按计算小时定价的。VM 角色的许可包含在计算小时定价中,与用于创建基本 VHD 的安装介质的许可状态无关。

note注释
部署到 Windows Azure 的应用程序受与应用程序相关的许可条款的限制。

使用 Hyper-V 管理器在运行 Windows Server 2008 操作系统的服务器上创建一个 VHD。在本文档中,此服务器称作源服务器。开始部署 VM 角色前,必须在源服务器上执行以下操作:

  • 安装一个 Windows Server 2008 版本(建议使用 Windows Server 2008 R2)操作系统并安装所有必要的更新。

  • 安装 Hyper-V 服务器角色。有关更多信息,请参见将 Hyper-V 角色安装在完整安装的 Windows Server 2008 上

  • 安装 Windows Azure SDK 及其必备组件。安装最新版本前,请确保卸载所有旧版本。要下载最新版本,请访问 Windows Azure 下载页

  • 确保有 Windows Server 2008 R2 安装介质或之前创建的 VHD。典型的安装介质形式为 ISO 文件。

  • (可选)安装 Visual Studio 2010 以帮助创建服务模型和部署包。

可以使用差异 VHD 对已上载到 Windows Azure 的服务器映像进行更改。有关更多信息,请参见在 Windows Azure 中更改 VM 角色的服务器映像

另请参阅

社区附加资源

显示:
© 2015 Microsoft