这是一个场景,而不是一个特定的技术问题。 我有两个azure vm在负载平衡模式下运行Web应用程序。 根据这篇文章http://asheej.blogspot.in/2014/03/load-balancing-using-windows-azure.html
两个虚拟机都附加了一个附加磁盘,该磁盘存储从vm IIS中托管的Web应用程序引用的映像。
现在,将两个虚拟机硬盘上的内容保持同步的最佳方法是什么。 例如,如果我删除,则从第一个vm的vhd添加数据,然后在第二个vm上也应该受到影响。
是否有可能,可能使用两台机器的通用vhd,这将使同步无法解决。
答案 0 :(得分:3)
在进入解决方案之前,让我简要介绍一下VM和磁盘的关系。
通常,VM包含3个连接到它们的磁盘1.操作系统磁盘2.临时磁盘和3.Data磁盘。 VM将在所有这些磁盘上租用,写入数据磁盘的唯一方法是通过VM。
C:磁盘是持久的,这意味着当VM重新启动时,磁盘中的数据将被保留。但是D:\是非持久的,当你重启磁盘时会完全擦干净。因此,在任何时间点D:\都不应该用于存储任何用户数据。
因此,编写一个在两个VM之间进行同步的过程只是为了保持图片同步不是很理想。您可能已经知道这一点,但想为下面提供的选项选择设置上下文。
您的潜在选项如下
2.存储Azure Blob中的图像,并从VM http://blogs.msdn.com/b/yaohuang1/archive/2012/07/02/asp-net-web-api-and-azure-blob-storage.aspx和http://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)