• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • NDB群集的硬件,软件和网络要求

    NDB Cluster的优点之一是它可以在商用硬件上运行,并且在这方面没有特殊要求(除了需要大量RAM之外),原因是所有实时数据存储都在内存中完成。(可以使用磁盘数据表来减少此要求,有关这些的更多信息,请参见“ NDB群集磁盘数据表”。)自然,多个更快的CPU可以提高性能。其他NDB群集进程的内存需求相对较小。

    NDB Cluster的软件要求也不高。主机操作系统不需要任何异常的模块,服务,应用程序或配置即可支持NDB群集。对于受支持的操作系统,标准安装应该足够了。MySQL软件的要求很简单:所需的只是NDB Cluster的生产版本。并非仅仅为了能够使用NDB Cluster就必须自己编译MySQL。我们假定您使用的是适合您平台的二进制文件,可从NDB Cluster软件下载页面( https://dev.mysql.com/downloads/cluster/)获得。

    对于节点之间的通信,NDB Cluster在任何标准拓扑中均支持TCP / IP网络,并且每个主机的最低要求是标准100 Mbps以太网卡,以及为整个群集提供网络连接的交换机,集线器或路由器。。出于以下原因,我们强烈建议NDB群集在其自己的子网中运行,该子网不能与不属于该群集一部分的计算机共享。

    • 安全。 NDB群集节点之间的通信不会以任何方式加密或屏蔽。保护NDB群集内的传输的唯一方法是在受保护的网络上运行NDB群集。如果打算将NDB群集用于Web应用程序,则该群集一定应该位于防火墙之后,而不是位于网络的非军事区(DMZ)或其他地方。

      有关更多信息,请参见“ NDB群集安全性和网络问题”。

    • 效率。在专用或受保护的网络上设置NDB群集使群集可以独占使用群集主机之间的带宽。为NDB群集使用单独的交换机不仅可以防止未经授权访问NDB群集数据,而且还可以确保NDB群集节点免受网络上其他计算机之间的传输所造成的干扰。为了提高可靠性,您可以使用双交换机和双卡来将网络作为单点故障进行移除。许多设备驱动程序都支持此类通信链接的故障转移。

    网络通信和延迟。 NDB Cluster需要数据节点和API节点(包括SQL节点)之间以及数据节点和其他数据节点之间的通信,以执行查询和更新。这些进程之间的通信延迟会直接影响观察到的性能和用户查询的延迟。另外,为了在节点无提示故障的情况下保持一致性和服务,NDB Cluster使用心跳和超时机制,将来自节点的扩展通信丢失视为节点故障。这可能导致冗余减少。回想一下,为了保持数据一致性,当节点组中的最后一个节点发生故障时,NDB群集将关闭。因此,为避免增加强制关机的风险,

    数据或API节点的故障会导致涉及该故障节点的所有未提交的事务中止。数据节点恢复需要在数据节点恢复服务之前,同步来自尚存数据节点的故障节点的数据,并重新建立基于磁盘的重做和检查点日志。此恢复可能需要一些时间,在此期间群集将以减少的冗余度运行。

    心跳依赖于所有节点及时生成心跳信号。如果节点过载,由于与其他程序共享而导致机器CPU不足或由于交换而出现延迟,则可能无法实现。如果心跳生成已充分延迟,则其他节点会将响应较慢的节点视为失败。

    在某些情况下,将慢速节点视为故障节点可能不理想,这取决于节点的慢速操作对集群其余部分的影响。在为NDB群集设置超时值(例如HeartbeatIntervalDbDb和)时HeartbeatIntervalDbApi,必须注意实现快速检测,故障转移和恢复服务,同时避免潜在的昂贵误报。

    如果数据节点之间的通信等待时间预计会比LAN环境中的通信等待时间长(大约100 µs),则必须增加超时参数,以确保任何允许的等待时间段都在配置的超时范围内。以这种方式增加超时将对最坏情况下检测故障的时间和服务恢复时间产生相应的影响。

    LAN环境通常可以配置为具有稳定的低延迟,并且可以通过快速故障转移提供冗余。可以在TCP级别(NDB群集正常运行的地方)以最小且受控制的延迟从单个链路故障中恢复。WAN环境可能会提供一系列延迟,以及具有较慢故障转移时间的冗余。在恢复端到端连接之前,个别链路故障可能需要传播路由更改。在TCP级别,这可能会在各个通道上显示为较大的延迟。在这些情况下观察到的最坏情况下的TCP延迟与IP层在故障周围重新路由的最坏情况时间有关。