为什么我不能将数据存储在Azure计算实例中?

时间:2012-02-14 03:01:16

标签: azure azure-storage azure-worker-roles

我已将一个辅助工具角色部署到启用了远程访问的Azure实例。

当我远程访问服务器时,我在服务器上看到磁盘C:和D :.

我被告知Azure不保证计算实例中存储的数据的持久性。但是,当我重新启动/升级服务时,我仍然会在磁盘C:和D:。

上看到以前的数据

磁盘C:和D:上的数据什么时候会丢失?

3 个答案:

答案 0 :(得分:2)

本地磁盘是非持久磁盘。换句话说,没有复制。它们可能随时失败,并且无法恢复此数据。

在角色回收期间(重新启动),数据通常会存活,但你不能指望它能够幸存下来。

如果您的软件必须使用驱动器号,因为您无法更改代码库,则可以在页面Blob(基本上是云端驱动器)中安装NTFS卷。您可以从OnStart()执行此操作,然后将驱动器号传递给您的应用程序。 注意:云端驱动器可能只有一个编写器。所以......如果你有多个实例,每个实例都需要创建自己的云驱动器。

答案 1 :(得分:1)

由于Azure是一项云服务,因此在任何给定时间点运行您的实例的硬件都不能保证相同。因此,您不应该依赖于存在的数据。即使它可能会在重新启动/升级后持续存在,但它并非保证

this article查看有关本地存储的第二段。它提出了以下建议:

  

如果您需要可靠的数据持久性,希望在实例之间共享数据或访问Windows Azure之外的数据,请考虑使用Windows Azure存储帐户或SQL Azure数据库

答案 2 :(得分:0)

重启后通常会在那里,但我看到一个案例,我重新启动并出现问题,因此实例被重置为干净状态。您无法依赖数据存活。我想像升级会发生同样的事情。

停止和启动实例也可能会丢失数据,但我没有检查过。

这是引用from an MVP on the MSDN forums

  

计算VM的本地磁盘存储(无论是Web角色,辅助角色还是VM角色)不是持久的。它可以随时消失。数据中心有权在其认为必要时移动和重新创建VM。这可能是因为硬件故障或仅仅因为需要重新组织数据中心而发生的。发生这种情况时,您将丢失VM磁盘文件并返回到部署映像。这种情况发生只是时间问题。这是云计算计算实例的正常行为。