我了解到,要拥有最可用的 Windows Azure VM 设置,最好创建可用性集。
我的设置是为 2 个 web-VM 设置一个可用性集,为 2-sql-VM 设置一个设置
SQL Server VM 的数据库存储在高级存储磁盘上,但是,我显然只想为我的数据库提供 1 个数据源。如何在我的 2 个 SQL 服务器 VM 中“共享”这个包含磁盘的数据库?
我在 web-VM 上遇到了同样的问题,用户可以将图像上传到网站,然后将它们存储在存储帐户中。但是 web-availability-set 中的两个 VM 都应该可以访问这些图像。所有 VHD 都存储在 Azure blob 中。
这不是一个真正的 Azure 问题,它是一个“我如何做 SQL 集群问题”。
您不能只在两个 VM 之间共享一个 SQL 数据库并且它可以神奇地工作,您需要在集群中设置您的 VM 以在它们之间共享 SQL 工作负载。Azure 中的集群与本地集群略有不同,因为您不能将共享磁盘存储用于集群(您可以将 Azure 文件用于共享 SMB 存储),请查看 Microsoft 关于Azure 中 SQL 的 HA 和 DR的文章。我还建议您可能希望将 Azure Web Apps 用于您的 Web 应用程序,而不是 VM。使用这些 PaaS 服务意味着您可以显着降低管理开销。
也就是说,我会问一个问题,你需要 SQL VM 吗?可以使用 SQL Azure 吗?如果您可以在 VM 上使用 SQL Azure 而不是完整的 SQL,那么 Microsoft 将为您处理所有集群和可用性,您不必担心任何这些。SQL Azure 和真正的 SQL 之间存在一些差异,请查看此文档以了解这些是否对您有影响。
在 Web 数据的存储上,这是不同的,在这里你可以让两个服务器与一些共享的 blob 存储通信以获取图像,你只需要配置你的应用程序来执行此操作。但请记住,如果 Azure 存储出现故障(不太可能但确实发生),您确实会遇到单点故障,因此如果 HA 对您来说很重要,您可能需要将应用配置为使用 2 个帐户.