Windows Azure - 使用WebRoles时的操作系统设置的持久性

时间:2011-10-02 23:13:27

标签: windows azure azure-web-roles

我一直在观看构建会议的一些视频:Windows Azure等内部 我从其中一个中删除的是,除非我将预先配置的VHD加载到虚拟机角色中,否则我将丢失任何系统设置,如果实例被关闭或回收,我可能会丢失。

例如,我有一个帐户,其中2个Web角色运行多个(小)网站。为了实现这一点,我必须调整Hosts文件中的设置。我知道我的网站会在发生故障时继续运行,因为它们是在ServiceConfiguration.csfg中定义的,但是如果发生故障,我的主机文件设置是否会转移到一个新的实例?

即。具有网络角色的“模板”有多深/全面?

3 个答案:

答案 0 :(得分:2)

hosts文件将在任何完全重新部署或重新映像时重建。

通常,您应该避免依赖对操作系统创建的任何文件的更改。如果您的应用程序迁移到另一台服务器,它将在具有自己的Windows新副本的新虚拟机上运行,​​因此这些更改将突然消失。

如果您执行部署到Azure“登台”环境然后执行“交换VIP”,则会发生同样的情况:“登台”环境不会对操作系统文件进行更改。

Microsoft故意不发布Azure图像的内部细节,因为它们将来很可能会更改,但目前

  • 驱动器C:保存启动分区,日志,临时数据并且很小
  • 驱动器D:拥有Windows映像
  • 驱动器E:或F:保留您的应用程序

在完整部署或重新映像时,您会收到一个新虚拟机,因此会重新创建所有三个驱动器。在升级时,虚拟机将继续运行,但负载均衡器会在部署新版本的应用程序以驱动F:时迁移流量。驱动器E:然后被移除。

因此,直接回答您的问题,“模板”适用于驱动器E: - 其他任何事情都可能在您不知情的情况下发生变化,并且无法依赖。

答案 1 :(得分:1)

Azure提供启动脚本,以便您可以在实例启动时进行配置更改。这些通常用于安装其他操作系统组件或进行IIS配置更改(如禁用空闲超时)。

有关示例,请参阅http://blogs.msdn.com/b/lucascan/archive/2011/09/30/using-a-windows-azure-startup-script-to-prevent-your-site-from-being-shutdown.aspx

答案 2 :(得分:1)

现有答案在技术上是正确的并且回答了问题,但是在单个Web角色中托管多个网站根本不需要编辑hosts文件。只需在ServiceDefinition.csdef中定义多个网站(具有不同的主机头)。见http://msdn.microsoft.com/en-us/library/gg433110.aspx