可以在azure vm上保持两个vhd同步

时间:2014-08-27 17:05:03

标签: azure azure-storage azure-virtual-machine

这是一个场景,而不是一个特定的技术问题。 我有两个azure vm在负载平衡模式下运行Web应用程序。 根据这篇文章http://asheej.blogspot.in/2014/03/load-balancing-using-windows-azure.html

两个虚拟机都附加了一个附加磁盘,该磁盘存储从vm IIS中托管的Web应用程序引用的映像。

现在,将两个虚拟机硬盘上的内容保持同步的最佳方法是什么。 例如,如果我删除,则从第一个vm的vhd添加数据,然后在第二个vm上也应该受到影响。

是否有可能,可能使用两台机器的通用vhd,这将使同步无法解决。

2 个答案:

答案 0 :(得分:3)

在进入解决方案之前,让我简要介绍一下VM和磁盘的关系。

通常,VM包含3个连接到它们的磁盘1.操作系统磁盘2.临时磁盘和3.Data磁盘。 VM将在所有这些磁盘上租用,写入数据磁盘的唯一方法是通过VM。

C:磁盘是持久的,这意味着当VM重新启动时,磁盘中的数据将被保留。但是D:\是非持久的,当你重启磁盘时会完全擦干净。因此,在任何时间点D:\都不应该用于存储任何用户数据。

因此,编写一个在两个VM之间进行同步的过程只是为了保持图片同步不是很理想。您可能已经知道这一点,但想为下面提供的选项选择设置上下文。

您的潜在选项如下

  1. 您可以使用新的Azure文件服务(预览版)http://blogs.technet.com/b/uspartner_ts2team/archive/2014/06/09/setting-up-a-file-share-for-the-new-azure-file-service.aspx设置文件共享。这将是您所有图片的单一来源,您不必担心同步文件。
  2. 2.存储Azure Blob中的图像,并从VM http://blogs.msdn.com/b/yaohuang1/archive/2012/07/02/asp-net-web-api-and-azure-blob-storage.aspxhttp://www.nickharris.net/2012/11/how-to-upload-an-image-to-windows-azure-storage-using-mobile-services/

    中运行的应用程序访问它们

    3.将另一个VM作为Web服务器并从那里托管您的图像。然后两个VM可以参考图像。这里的成本将是托管VM。

    所有3个潜在选项的关键点都不需要在两个不同的地方同步文件,一切都在一个地方。

    根据新资料编辑: -

    在您将文件托管到VM的方案中,这不是正确的方法。如果使用Azure LB,即使是短期解决方案,也应考虑以下因素。

    Azure负载均衡器使用5元组(源IP,源端口,目标IP,目标端口,协议类型)来计算哈希并将流量映射到可用服务器,并且分发也相当随机。因此,如果您对VM进行负载平衡,则无法控制访问映像的VM。

    在这种情况下无法进行手动更新。

答案 1 :(得分:1)

您需要设置虚拟网络以允许您创建和共享Windows文件共享,或者您应该调查使用Azure文件服务来创建两个VM连接的共享(请参阅:http://blogs.technet.com/b/uspartner_ts2team/archive/2014/06/09/setting-up-a-file-share-for-the-new-azure-file-service.aspx