10

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

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

4

4 回答 4

15

谢谢大家的回复。我有机会与 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/展示了如何使用 Powershell 设置 ARM 模板和部署。您还可以使用固定域名或静态 IP 地址,以便客户端无需重新配置即可连接到集群。如果您需要维护存储帐户等其他资源,您还可以将 ARM 模板配置为仅删除 VM Scale Set 和 SF Cluster 资源,同时保留网络、负载均衡器、存储帐户等。

问)有没有更好的方法来停止/启动 VM,而不是直接从规模集?

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

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

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

我认为你有几个选择:

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

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

于 2016-09-23T00:20:11.753 回答
2

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

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

于 2016-09-23T06:05:45.650 回答
0

出于开发目的,您可以创建一个可以随意启动和停止的开发/测试实验室 Service Fabric 集群。

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

于 2021-04-22T18:48:43.473 回答