计划大型群集

在计划将数据库群集扩展到需要使用大型群集的程度时,您应该考虑两个因素:

  • 数据库群集应该有多少个控制节点?

  • 这些控制节点应该如何分布?

确定控制节点的数量

当您手动启用大型群集或添加足够的节点触发 Vertica 自动启用大型群集时,一部分群集节点将成为控制节点。在少于 16 个节点的子群集中,所有节点都是控制节点。在许多情况下,可以将控制节点数设置为整个企业模式群集中或超过 16 个节点的 Eon 模式子群集中节点总数的平方根。但是,这个计算控制数量的公式不能保证总是能满足您的要求。

在选择数据库群集中控制节点的数量时,您必须平衡两个相互竞争的考虑因素:

  • 如果控制节点发生故障或关闭,所有依赖于它的节点都将从数据库中断开。它们也会一直关闭到控制节点重新加入数据库。您可以通过增加群集中控制节点的数量来减少控制节点故障所带来的影响。

  • 群集中的控制节点越多,spread 服务的负载就越大。在云环境中,网络环境广播越复杂,延迟时间越长。这种延迟可能会导致通过 spread 服务发送的消息需要更长的时间才能到达群集中的所有节点。

在云环境中,经验表明,16 个控制节点可以平衡可靠性和性能的需求。在 Eon 模式数据库中,每个子群集必须至少有一个控制节点。因此,如果您有 16 个以上子群集,则必须有 16 个以上控制节点。

在 Eon 模式数据库中,无论是内部部署数据库还是云中数据库,都要考虑向主子群集中添加比辅助子群集更多的控制节点。在 Eon 模式数据库中,只有主子群集中的节点才负责维护 K-Safety。因此,与辅助子群集中的控制节点故障相比,主子群集中的控制节点故障对数据库的影响可能更大。

在内部部署企业模式数据库中,在选择控制节点的数量时,请考虑运行数据库的主机的物理布局。如果您的主机分布在多个服务器机架上,则需要有足够的控制节点将它们分发到各个机架上。分发控制节点有助于确保在发生涉及整个机架的故障(如电源或网络交换机故障)时实现可靠性。您可以将数据库配置为没有节点依赖某个单独机架中的控制节点。将依赖性限制在机架内可防止在出现会影响整个机架的故障时,由于控制节点丢失而导致在机架外出现额外的节点丢失。

根据物理布局选择控制节点的数量还可以降低跨交换机的网络流量。通过将依赖节点放在与其控制节点相同的机架上,会使它们之间的通信保留在机架中,而不是通过网络交换机进行通信。

您可能需要增加控制节点的数量以将它们均匀地分布在各个机架上。例如,内部部署企业模式数据库共有 64 个节点,分布在三个机架上。对于此群集,对节点数求平方根将得到 8 个控制节点。但是,八个控制节点无法均匀地分布在三个机架中。相反,您可以有 9 个控制节点,并在每个机架上平均分布三个控制节点。

影响控制节点放置

在确定群集的节点数后,需要确定如何在群集节点之间分布它们。Vertica 选择哪些节点成为控制节点。您可以影响 Vertica 如何选择控制节点以及哪些节点成为其依赖项。您使用的确切过程取决于数据库的模式:

  • 企业模式内部部署数据库:定义容错组以影响控制节点的放置。依赖节点始终与其控制节点位于同一容错组中。您通常定义容错组来反映运行数据库的主机的物理布局。例如,您通常为单机架服务器中的节点定义一个或多个容错组。当容错组反映物理布局时,Vertica 会以可限制机架故障所带来影响的方式放置控制节点及其依赖项。有关详细信息,请参阅容错组

  • Eon 模式数据库:使用子群集对控制节点的放置进行控制。每个子群集必须至少有一个控制节点。依赖节点始终与其控制节点位于同一个子群集中。您可以设置每个子群集的控制节点数。这样做可以让您将更多控制节点分配给主子群集,在这些子群集中,将控制节点发生故障的影响降至最低至关重要。

Vertica 如何选择默认控制节点数

Vertica 可以自动选择整个群集(在企业模式下)或子群集(在 Eon 模式下)的控制节点数。它在以下情况下设置默认值:

  • 当您将 default 关键字传递给 install_vertica 脚本的 --large-cluster 选项时(请参阅安装 Vertica 时启用大型群集)。

  • 当数据库群集增长到 120 个或更多节点时,Vertica 会自动启用大型群集。

  • 如果您创建超过 16 个节点的 Eon 模式子群集,Vertica 会自动启用大型群集。请注意,对于通过扩展超过 16 节点限制的子群集,Vertica 不会启用大型群集。它仅在一开始便超过 16 个节点时启用大型群集。

Vertica 选择的控制节点数取决于触发 Vertica 设置该值的原因。

如果您将 --large-cluster default 选项传递给 install_vertica 脚本,Vertica 会将控制节点数设置为初始群集中节点数的平方根。

如果数据库群集达到 120 个节点,Vertica 会通过将任何新添加的节点设为依赖项来启用大型群集。默认的控制节点数限值为 120。当达到此限制时,任何新添加的节点都将添加为依赖项。例如,假设您有一个包含 115 个节点的企业模式数据库群集,但您没有针对该群集手动启用大型群集。如果您向此群集中添加 10 个节点,Vertica 会添加 5 个节点作为控制节点(使您达到 120 个节点的限制),另外 5 个节点作为依赖项。

在 Eon 模式数据库中,每个子群集都有自己的控制节点数设置。Vertica 仅在您最初创建超过 16 个节点的子群集时自动设置控制节点的数量。在发生这种情况时,Vertica 会将子群集的控制节点数设置为子群集中节点数的平方根。

例如,假设您添加一个包含 25 个节点的新子群集。此子群集的节点数一开始便超过 16 个节点数限制,因此 Vertica 将此子群集的控制节点数设置为 5(即 25 的平方根)。其中五个节点被添加为控制节点,其余 20 个被添加为这五个节点的依赖项。

尽管每个子群集都有自己的控制节点数设置,但 Eon 模式数据库群集的控制节点总数仍然有 120 个节点的限制。