【问题标题】:Turning off ServiceFabric clusters overnight一夜之间关闭 ServiceFabric 集群
【发布时间】:2017-01-31 03:13:42
【问题描述】:

我们正在开发一个处理 excel 文件并输出输出的应用程序。可用性不是很大的要求。

我们可以在晚上关闭虚拟机设置,然后在早上再次打开它们吗?这种设置是否适用于服务结构?如果是这样,有没有办法安排它?

【问题讨论】:

  • 你看到这个类似的问题了吗? stackoverflow.com/questions/34365409/…
  • 感谢您的资源。但这并不能解释我是否可以暂停/停止-重新启动集群以节省资金。
  • 你不能。您只能停用整个集合,因为成本仅基于底层资源,如虚拟机和负载均衡器。所以删除实际上是你的答案。

标签: azure azure-service-fabric azure-vm-scale-set


【解决方案1】:

谢谢大家的回复。我有机会与 Microsoft Azure 代表交谈,并在此处记录了对话以供社区使用。

对初始问题的回答

Service Fabric 群集必须维护最少数量的主节点类型,系统服务才能维持仲裁并确保群集的运行状况。您可以在https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-cluster-capacity/ 上查看有关可靠性级别和实例数的更多信息。因此,停止所有 VM 将导致 Service Fabric 群集进入仲裁丢失状态。通常可以使节点恢复正常,Service Fabric 会自动从仲裁丢失中恢复,但这并不能保证,并且集群可能永远无法恢复。

但是,如果您不需要在集群中保存状态,那么每天删除并重新创建整个集群(整个 Azure 资源组)可能会更容易。通过部署新资源组从头开始创建新集群通常需要不到半小时,这可以通过使用 Powershell 部署 ARM 模板来自动化。 https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-creation-via-arm/ 展示了如何设置 ARM 模板并使用 Powershell 进行部署。您还可以使用固定域名或静态 IP 地址,以便客户端无需重新配置即可连接到集群。如果您需要维护存储帐户等其他资源,您还可以将 ARM 模板配置为仅删除 VM Scale Set 和 SF Cluster 资源,同时保留网络、负载均衡器、存储帐户等。

问)有没有比直接从规模集中停止/启动 VM 更好的方法?

如果您想停止 VM 以节省成本,那么直接从规模集启动/停止 VM 是唯一的选择。

Q) 我们能否用我们能找到的最便宜的虚拟机做一个主要设置,并添加一个带有我们可以打开和关闭的强大虚拟机的辅助设置?

是的,绝对可以创建两种节点类型——一种是小型/廉价的主节点,另一种是更大尺寸的“工人”——并在您的应用程序上设置放置限制以仅部署到那些较大尺寸的虚拟机上。但是,如果您的 Service Fabric 服务正在存储状态,那么您仍然会遇到类似的问题,即一旦您失去工作虚拟机的仲裁(低于 3 个副本/节点),则无法保证您的 SF 服务本身会全部恢复的状态保持。在这种情况下,您的集群本身仍然可以正常运行,因为主节点正在运行,但您的服务状态可能处于未知复制状态。

我认为您有几个选择:

  1. 不是将状态存储在 Service Fabric 的可靠集合中,而是将您的状态从外部存储到 Azure 存储或 SQL Azure 之类的东西中。您可以选择使用 Redis 缓存或 Service Fabric 的可靠集合之类的东西,以保持更快的读取缓存,只需确保所有写入都保存到外部存储。这样您就可以随时随意删除和重新创建集群。
  2. 使用 Service Fabric 备份/恢复来维护您的状态,并在一夜之间删除整个资源组或群集,然后重新创建它并在早上恢复状态。备份/恢复持续时间将完全取决于您存储的数据量以及导出备份的位置。
  3. 使用诸如 Azure Batch 之类的东西。 Service Fabric 并不是真正设计为可以定期启动和停止的临时大容量计算平台,因此如果这是您的目标,您可能需要查看诸如 Azure Batch 之类的 HPC 平台,它提供了快速爆发计算的本机功能容量。

【讨论】:

    【解决方案2】:

    没有。您必须在早上删除集群并重新创建集群并部署应用程序。

    【讨论】:

      【解决方案3】:

      正如托德所说,关闭集群不是一种选择。但是,您可以缩减集群中 VM 的数量。

      白天您将运行所需数量的虚拟机。在晚上,您可以缩减到最少 5 个。查看此页面了解如何扩展 VM 集:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-scale-up-down/

      【讨论】:

      • 实际上,如果选择了“Bronze”持久性计划,最小可以是3个节点。
      • 使用 3 个节点被认为是一个测试集群。从 5 个(甚至可能是 4 个)节点开始,它被认为是一个生产集群。选择 3 个节点时,portal.azure 会向您发出此警告。
      • 绝对。但是,OP 仍然要求选择最小化成本的选项。这是一个不需要您删除集群的方法,显然,在夜间的这段时间内不需要稳定性。
      【解决方案4】:

      出于开发目的,您可以创建一个Dev/Test Lab Service Fabric cluster,您可以随意启动和停止。

      我还能够通过启动和停止与这些集群关联的 VM 规模集来启动和停止 Azure 上的 SF 集群。但是在重新启动后,您的所有应用程序(以及它们的状态)都消失了,必须重新部署。

      【讨论】:

        猜你喜欢
        • 2018-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-10-16
        • 2019-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多