このセクションでは、NDB Cluster の計画、インストール、構成、および実行の基本について説明します。 セクション23.3「NDB Cluster の構成」 の例ではさまざまなクラスタ化オプションおよび構成に関する詳細な情報が提供されていますが、ここで説明するガイドラインおよび手順に従った結果は、データの可用性および保護のための最小要件を満たす使用可能な NDB Cluster であるべきです。
NDB Cluster をリリースバージョン間でアップグレードまたはダウングレードする方法については、セクション23.2.7「NDB Cluster のアップグレードおよびダウングレード」 を参照してください。
このセクションでは、ハードウェアとソフトウェアの要件、ネットワークの問題、NDB Cluster のインストール、基本的な構成の問題、クラスタの起動、停止、および再起動、サンプルデータベースのロード、およびクエリーの実行について説明します。
NDB Cluster は、NDB Cluster ディストリビューションの一部として、web ベースのグラフィカルインストーラである NDB Cluster Auto-Installer (現在は非推奨) も提供します。 Auto-Installer を使用すると、1 台以上のホストコンピュータで NDB Cluster の基本的なインストールとセットアップを実行できます。 詳しくはセクション23.2.8「NDB Cluster Auto-Installer (サポートされなくなりました)」,をご覧ください。
仮定. 以降のセクションでは、クラスタの物理的構成とネットワーク構成に関していくつかの仮定を立てています。 これらの仮定については、次のいくつかの段落で説明します。
クラスタノードとホストコンピュータ. このクラスタは、ここに示す 4 つのノードで構成されます。各ノードは別個のホストコンピュータ上に配置され、一般的な Ethernet ネットワーク上に固定のネットワークアドレスを持っています。
表 23.5 クラスタ例のノードのネットワークアドレス
ノード | IP アドレス |
---|---|
管理ノード (mgmd) | 198.51.100.10 |
SQL ノード (mysqld) | 198.51.100.20 |
データノード "A" (ndbd) | 198.51.100.30 |
データノード "B" (ndbd) | 198.51.100.40 |
この設定は、次の図にも示されています:
ネットワークアドレス設定.
この How-To では、簡略化 (および信頼性) のために数値 IP アドレスのみが使用されます。 ただし、ネットワーク上で DNS 解決が利用可能な場合は、クラスタ構成時に IP アドレスの代わりにホスト名を使用できます。 また、hosts
ファイル (通常、Linux およびその他の Unix 系オペレーティングシステムでは /etc/hosts
、Windows では C:\WINDOWS\system32\drivers\etc\hosts
、または使用しているオペレーティングシステムの同等のファイル) が使用可能な場合は、ホスト検索を行う手段として使用することもできます。
NDB 8.0.22 より前では、データおよび管理ノードとの接続に使用されるすべてのネットワークアドレスは、IPv4 を使用して使用または解決できる必要があります。 これには、SQL ノードが他のノードに接続するために使用するアドレスが含まれます。 NDB 8.0.22 以降では、NDB Cluster は任意のクラスタノードとすべてのクラスタノード間の接続のために IPv6 をサポートしています。
hosts ファイルの潜在的な問題.
クラスタノードにホスト名を使用しようとしたときによくある問題は、一部のオペレーティングシステム (一部の Linux 配布を含む) がインストール中にシステム独自のホスト名を /etc/hosts
に設定する方法が原因で発生します。 ndb1
および ndb2
というホスト名を持つ 2 台のマシンがどちらも 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
をループバックアドレスにルーティングし、ndb1.cluster
のパブリックアドレスを取得します。 その結果、各データノードは管理サーバーに接続しますが、ほかのデータノードが接続したことを検出できないため、データノードが起動中にハングアップしたように見えます。
config.ini
では localhost
とほかのホスト名または IP アドレスを混在できません。 これらの理由により、このようなケースの (config.ini
のすべての HostName
エントリで IP アドレスを使用する以外の) 解決策は、すべてのクラスタホストの /etc/hosts
から完全修飾ホスト名を削除し、config.ini
で使用することです。
ホストコンピュータのタイプ. このインストールシナリオに含まれる各ホストコンピュータは、標準的な構成でディスクにインストールされたサポート対象のオペレーティングシステムを実行し、不要なサービスを実行していない Intel ベースのデスクトップ PC です。 標準の TCP/IP ネットワーク機能を含む中核的なオペレーティングシステムで十分です。 また、簡略化のため、すべてのホストのファイルシステムが完全に同じように設定されていると仮定します。 そうでない場合は、状況に応じてこれらの手順を適用してください。
ネットワークハードウェア. 各マシンには標準の 100M ビット/秒または 1 ギガビット Ethernet カードが (カードに対応するドライバとともに) 取り付けられ、4 台のホストすべてがスイッチなどの標準仕様の Ethernet ネットワークアプライアンスを介して接続されています。 (すべてのマシンで、同じスループットのネットワークカードを使用する必要があります。 つまり、クラスタ内の 4 台のマシンで 100M ビット/秒カードを使用するか、または 4 台のマシンで 1 ギガビットカードを使用してください。) NDB Cluster は 100 Mbps ネットワークで動作しますが、ギガビットイーサネットを使用するとパフォーマンスが向上します。
NDB Cluster は、スループットが 100 Mbps 未満のネットワーク、または待機時間が非常に長いネットワークでの使用を目的としていません。 このため (特に)、インターネットなどの広域ネットワーク上で NDB Cluster を実行しようとしても成功しない可能性が高く、本番ではサポートされません。
サンプルデータ.
MySQL の web サイトからダウンロードできる world
データベースを使用します (https://dev.mysql.com/doc/index-other.html を参照)。 各マシンには、オペレーティングシステム、必要な NDB Cluster プロセス、および (データノード上の) データベースを格納するための十分なメモリーがあることを前提としています。
MySQL のインストールに関する一般的な情報は、第2章「MySQL のインストールとアップグレード」を参照してください。 Linux およびその他の Unix に似たオペレーティングシステムへの NDB Cluster のインストールについては、セクション23.2.1「Linux での NDB Cluster のインストール」 を参照してください。 Windows オペレーティングシステムへの NDB Cluster のインストールについては、セクション23.2.2「Windows への NDB Cluster のインストール」 を参照してください。
NDB Cluster のハードウェア、ソフトウェア、およびネットワーク要件に関する一般的な情報については、セクション23.1.3「NDB Cluster のハードウェア、ソフトウェア、およびネットワーク要件」 を参照してください。