为什么可以';我是否在Azure计算实例中存储数据?

为什么可以';我是否在Azure计算实例中存储数据?,azure,azure-storage,azure-worker-roles,Azure,Azure Storage,Azure Worker Roles,我已将工作者角色部署到启用远程访问的Azure实例 当我远程访问服务器时,我在服务器上看到磁盘C:和D: 我被告知Azure不能保证存储在计算实例中的数据的持久性。但是,当我重新启动/升级服务时,仍然可以在磁盘C:和D:上看到以前的数据 磁盘C:和D:上的数据什么时候会丢失?通常在重新启动后会丢失,但我见过一种情况,我重新启动时出现了问题,因此实例被重置为干净状态。您不能依赖数据。我想升级后也会发生同样的事情 停止和启动实例也可能会丢失数据,但我没有检查 这里有一句话: 计算虚拟机(无论是Web

我已将工作者角色部署到启用远程访问的Azure实例

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

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

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

通常在重新启动后会丢失,但我见过一种情况,我重新启动时出现了问题,因此实例被重置为干净状态。您不能依赖数据。我想升级后也会发生同样的事情

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

这里有一句话:

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


因为Azure是一个云服务,所以您的实例运行的硬件在任何给定的时间点都不能保证相同。因此,您不应该依赖现有的数据。即使它可能在重新启动/升级过程中持续存在,也不能保证

请参阅中有关本地存储的第二段。委员会提出以下建议:

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


本地磁盘是非持久磁盘。换句话说,不是复制的。它们可能会在任何时候失败,并且无法为您提供恢复此数据的方法

在角色回收(重新启动)期间,数据通常会存活,但您不能指望它存活

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