我已将一个辅助工具角色部署到启用了远程访问的Azure实例。
当我远程访问服务器时,我在服务器上看到磁盘C:和D :.
我被告知Azure不保证计算实例中存储的数据的持久性。但是,当我重新启动/升级服务时,我仍然会在磁盘C:和D:。
上看到以前的数据磁盘C:和D:上的数据什么时候会丢失?
答案 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磁盘文件并返回到部署映像。这种情况发生只是时间问题。这是云计算计算实例的正常行为。