如果我将虚拟机映像部署到windows azure。 虚拟机是否能够保持状态还是有时会恢复到原始状态?
e.g。如果虚拟机托管sql server(例如,启用sql azure中不存在的全文搜索) 有时我有可能丢失我的数据吗?
答案 0 :(得分:5)
(编辑 - 此答案与Azure部署的PaaS风格相关;新的IaaS虚拟机确实具有持久存储。有关详细信息,请参阅http://michaelwasham.com/2012/06/08/understanding-windows-azure-virtual-machines/)
不,虚拟机根本不会保留任何状态。从理论上讲,可以创建一个新的虚拟机,并在您不知情的情况下将流量路由到该新实例,例如在更新补丁或其他任何事情之后。
因此,如果您想存储一些不会消失的内容,请使用AzureBlobDrive或表存储或SQL Azure。
但实际上,Azure实例目前有三个驱动器:
在全新部署或“重新映像”上,这三个驱动器都是从头开始创建的。
然而,在重新启动时,似乎C:和D:保持不变,但重置了应用程序的驱动器。
在升级部署中,事情变得有趣。驱动器C:和D:保持不变,但在负载均衡器使主机脱机后,将使用新版本的应用程序创建新驱动器F:。您的IIS实例重置为指向此新驱动器,然后删除旧驱动器E:,然后重新配置负载平衡器以使主机重新联机。在下一次升级时,您的应用程序将交换回驱动器E:。
这样做的好处是升级几乎不需要完全部署。缺点是IIS配置(例如端点,证书)的更改无法通过升级完成,而是需要完全部署。
因此在实践中,将数据临时存储在C:上是可行的,例如日志记录。但不要依赖它。
答案 1 :(得分:0)
VM角色上的磁盘不耐用。当实例转换(即操作系统从一台机器移动到另一台机器)时,您将回到原点。
您可以挂载VHD驱动器来保存数据,但只有一个实例可以写入驱动器。
顺便说一句,使用VM角色托管SQL Server是一个坏主意,请使用SQL Azure。