【问题标题】:Azure VM availability, mirroringAzure VM 可用性、镜像
【发布时间】:2012-10-26 14:45:51
【问题描述】:

抱歉这个菜鸟问题,我以前从未处理过故障转移。

目前我们只有一个硬件服务器运行 Windows Server、SQL Server、ASP.NET 和一个(非常大的)Web 应用程序。我们正在考虑将其迁移到 Azure VM。

我在 SLA 中看到,如果我运行 多个实例 Azure VM,Microsoft 将仅保证 99.95% 的可用性,以允许失败和重新启动等。

这是否意味着我需要管理和维护两台服务器?例如,两个版本的 SQL,每个版本都有一个数据库,以及两组 ASP.NET 应用程序文件?如果正确,这会使价格大幅上涨。

我认为没有办法将一台服务器“镜像”到另一台服务器以减少这种工作量?

此外,我们的硬件服务器上有 25,000 个上传文件。我们是否需要将它们放在 VHD 上,然后将它们“链接”到正在运行的任何实时服务器,还是 Azure 会自动执行此操作?还是必须将它们从实时服务器镜像到故障转移服务器?

任何指针将不胜感激。我已经阅读了所有 Azure 文档,但并没有真正让事情变得更清楚......

【问题讨论】:

  • 请注意 - 具有多个实例的 SLA 99.95% 用于 Windows Azure 云服务(Web 角色/工作者角色)。如果您的目标是 Windows Azure VM,它是单独的 SLA - 99.9%,它涵盖单个实例。但它会在 Azure VM 成为 GA 后发生。目前 Azure VM 处于预览阶段。

标签: sql-server azure load-balancing failover windows-server


【解决方案1】:

您似乎有多个主题需要关注。

让我们从数据库开始。最简单的事情是,如果您可以将您的 sql 服务器迁移到 sql azure 中。比你不需要维护它和维护你应该使用的机器。 这会给您带来优势,即您的中心组件可以被一对多的应用程序使用。

第二个是你上传的文件。我假设您的应用程序允许上传文件以进行共享或其他。最好的办法是,如果您可以将这些文件写入 Windows azure blobstorage。通常这意味着您必须重写连接器,但这会集中另一个组件。 第一步,您可以使它们可用,客户可以通过链接下载它。如果没有,您可以从他们那里加载文件并将它们交付给客户。

如果您不想重写组件,则必须使用 VHD。一个 VHD 只能有一个租约。所以只能使用一个实例。我见过的一种常见方式是,如果应用程序正在启动,它会尝试“恢复”租约。 (试错之类的)

最后但并非最不重要的是您的 ASP.NET 应用程序。如果您有这样的应用程序,我会看看云实例。尽量不要考虑虚拟机,因为你必须做所有的管理。虚拟机是 IaaS。使用 .NET 应用程序应该能够轻松地对其进行转换和部署实例。 比你不必考虑故障转移等。只需部署 2 个实例,负载均衡器将完成其余工作。

如果您能够“外包”SQL 服务器,您可以为 ASP.net 应用程序最小化您的机器。尝试使用横向扩展而不是纵向扩展。这意味着使用更多的小节点,而不是一个大节点。 (如果可能)

如果您真的采用虚拟机方式,您必须自己管理所有东西,是的,您需要 2 个虚拟机。您还需要 3 个虚拟机,因为您没有自动负载均衡器,如果您只有 2 个,则只有一台机器可以导出端口 80。

HTH

【讨论】:

  • 绝对一流的解释。谢谢你。对我们来说主要的问题(这确实导致了一些问题)是 SQL 数据库依赖于 CLR UDF 的使用,而 SQL Azure 目前不支持这些 UDF。 Microsoft 建议我们选择允许 CLR 的 VM 方法。真的很遗憾,因为我对你的方法很感兴趣。今天我将研究 ASP.NET 中 Blob 存储的可访问性编码(例如,文件是否存在?如果存在,则创建一个指向它的超链接)...
  • 关于 VM 负载平衡器的评论。您可以将虚拟机添加到云服务,它们将自动进行负载平衡。这将允许您使用 2 个 VM 而不是 3 个。然后设置可用性集以防止硬件故障。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多