本节描述了规划、安装、配置和运行 NDB 集群的基础知识。虽然 第 25.4 节“NDB 集群配置” 中的示例提供了更多关于集群选项和配置的信息,但遵循这里的指南和过程应该可以创建一个满足最低可用性和数据安全要求的 NDB 集群。
有关升级或降级 NDB 集群之间的版本,请参阅 第 25.3.7 节“升级和降级 NDB 集群”。
本节涵盖了硬件和软件要求;网络问题;NDB 集群的安装;基本配置问题;集群的启动、停止和重启;加载示例数据库;和执行查询。
假设. 接下来的几节假设了集群的物理和网络配置。这些假设将在下面的几段中讨论。
集群节点和主机计算机. 集群由四个节点组成,每个节点在单独的主机计算机上,每个都有固定的网络地址,在典型的以太网网络中,如下所示:
这也显示在以下图表中:
网络寻址. 为了简单起见(和可靠性),本《如何》使用了数字 IP 地址。但是,如果网络上有 DNS 解析可用,可以在集群配置中使用主机名代替 IP 地址。或者,可以使用 hosts
文件(通常是 /etc/hosts
对于 Linux 和其他 Unix-like 操作系统,C:\WINDOWS\system32\drivers\etc\hosts
对于 Windows,或者操作系统的等效文件)来提供主机查找的方式,如果可用。
NDB
8.3 支持 IPv6 用于 NDB 集群节点之间的连接。
Linux平台上运行早期版本的 NDB
时的一个已知问题是,操作系统内核总是需要提供IPv6支持,即使不使用IPv6地址。在NDB 8.1及更高版本中,这个限制不再适用,您可以安全地禁用系统的IPv6支持,如果您不需要使用IPv6寻址。
潜在的hosts文件问题。 试图使用集群节点的主机名时,可能会出现问题,因为一些操作系统(包括一些Linux发行版)在安装时会在 /etc/hosts
文件中设置系统自己的主机名。考虑两个主机名为 ndb1
和 ndb2
的机器,均在 cluster
网络域中。Red Hat Linux(包括一些衍生版本,如CentOS和Fedora)将以下条目添加到这些机器的 /etc/hosts
文件中:
# ndb1 /etc/hosts:
127.0.0.1 ndb1.cluster ndb1 localhost.localdomain localhost
# ndb2 /etc/hosts:
127.0.0.1 ndb2.cluster ndb2 localhost.localdomain localhost
SUSE Linux(包括OpenSUSE)将以下条目添加到机器的 /etc/hosts
文件中:
# ndb1 /etc/hosts:
127.0.0.1 localhost
127.0.0.2 ndb1.cluster ndb1
# ndb2 /etc/hosts:
127.0.0.1 localhost
127.0.0.2 ndb2.cluster ndb2
在这两种情况下, ndb1
将 ndb1.cluster
路由到环回IP地址,但从DNS获取 ndb2.cluster
的公共IP地址,而 ndb2
将 ndb2.cluster
路由到环回地址,并从DNS获取 ndb1.cluster
的公共地址。结果是每个数据节点连接到管理服务器,但无法确定其他数据节点是否已连接,从而导致数据节点在启动时挂起。
您不能在 config.ini
文件中混合使用 localhost
和其他主机名或IP地址。因此,在这种情况下(除了使用IP地址为 所有 config.ini
HostName
条目外),解决方案是从 /etc/hosts
文件中删除完全限定主机名,并在 config.ini
文件中使用这些主机名 для所有集群主机。
主机计算机类型。 我们安装场景中的每台主机计算机都是Intel基于台式机,运行支持的操作系统,安装在标准配置的磁盘上,并且不运行任何不必要的服务。核心操作系统具有标准的TCP/IP网络功能应该足够。为了简单起见,我们还假设所有主机的文件系统设置相同。如果它们不同,您应该根据需要进行调整。
网络硬件。 每台机器上安装了标准的100 Mbps或1 Gbps以太网卡,配备了适当的驱动程序,并且所有四台主机都通过标准的以太网网络设备(如交换机)连接。(所有机器都应该使用相同的网络卡吞吐量,即所有四台机器都应该使用100 Mbps卡 或 所有四台机器都应该使用1 Gbps卡。)NDB Cluster在100 Mbps网络中工作;然而,千兆以太网提供了更好的性能。
NDB Cluster 不旨在用于网络吞吐量小于100 Mbps或延迟很高的网络中。因此,尝试在广域网(如Internet)上运行NDB Cluster是不可能成功的,也不支持生产环境中使用。
示例数据。 我们使用了从MySQL网站下载的 world
数据库(见 https://dev.mysql.com/doc/index-other.html)。我们假设每台机器都有足够的内存来运行操作系统、所需的NDB Cluster进程和(在数据节点上)存储数据库。
有关安装MySQL的常规信息,请参阅 第2章 安装MySQL。有关在Linux和其他类Unix操作系统上安装NDB Cluster的信息,请参阅 第25.3.1节,“在Linux上安装NDB Cluster”。有关在Windows操作系统上安装NDB Cluster的信息,请参阅 第25.3.2节,“在Windows上安装NDB Cluster”。
有关NDB Cluster硬件、软件和网络要求的常规信息,请参阅 第25.2.3节,“NDB Cluster硬件、软件和网络要求”。