ClusterControl 1.5では、MySQL NDBCluster7.5のサポートを追加しました。このブログ投稿では、ClusterControlをMySQLNDBクラスターを管理するための優れたツールにするいくつかの機能について説明します。何よりもまず、名前に「クラスター」が含まれる製品が多数あるため、MySQLNDBクラスター自体と他のソリューションとの違いについて簡単に説明します。
MySQLNDBクラスター
MySQL NDBクラスターは、NDBエンジンに基づく、MySQLのシェアードナッシング同期クラスターです。これは独自の機能リストを備えた製品であり、GaleraClusterやMySQLInnoDBClusterとはまったく異なります。主な違いの1つは、MySQLのデフォルトエンジンであるInnoDBではなく、NDBエンジンを使用することです。 NDBクラスターでは、データは複数のデータノードに分割されますが、GaleraClusterまたはMySQLInnoDBClusterには各ノードの完全なデータセットが含まれます。これは、MySQLNDBクラスターがJOINとデータセットの大きなチャンクを使用するクエリを処理する方法に深刻な影響を及ぼします。
アーキテクチャに関しては、MySQLNDBクラスターは3つの異なるノードタイプで構成されています。データノードは、NDBエンジンを使用してデータを保存します。データは冗長性のためにミラーリングされ、最大4つのデータのレプリカがあります。これは最もテストされた安定した構成であるため、ClusterControlはノードグループごとに2つのレプリカを展開することに注意してください。管理ノードは、クラスターを制御することを目的としています。高可用性の理由から、通常、このようなノードは2つあります。 SQLノードは、クラスターへのエントリポイントとして使用されます。 SQLを解析し、データノードからデータを要求し、必要に応じて結果セットを集約します。
MySQLNDBクラスターのClusterControl機能
展開

ClusterControl 1.5は、MySQL NDBCluster7.5のデプロイメントをサポートします。これは、残りのクラスタータイプと同様に、同じ展開ウィザードを介して実行されます。

最初のステップでは、ClusterControlがSSH経由でホストにログインする方法を構成する必要があります-これはClusterControlの標準要件です-エージェントレスであるため、直接、rootアカウント、または(パスワードまたはパスワードなし)を介してrootSSHアクセスが必要ですsudo。

次のステップでは、クラスターの管理ノードを定義します。

ここで、必要なデータノードの数を決定する必要があります。前に述べたように、2つのノードごとにノードグループの一部になるため、これは偶数である必要があります。

最後に、クラスターにデプロイするSQLノードの数を決定する必要があります。 [デプロイ]をクリックすると、ClusterControlがホストに接続し、ソフトウェアをインストールして、すべてのサービスを構成します。しばらくすると、クラスターがデプロイされていることがわかります。

MySQLNDBクラスターのスケーリング
MySQL NDBクラスターの場合、ClusterControl1.5.0はSQLノードのスケーリングをサポートします。 [クラスタージョブ]ドロップダウンからジョブにアクセスできます。

ここで、追加するノードのホスト名を入力できます。必要なのはそれだけです。残りはClusterControlが処理します。
MySQLNDBクラスターの管理
ClusterControlは、MySQLNDBクラスターの管理に役立ちます。このセクションでは、私たちが持っている管理機能のいくつかを見ていきたいと思います。
バックアップ
バックアップは、あらゆる実稼働環境にとって非常に重要です。災害が発生した場合、適切なバックアップのみがデータ損失を最小限に抑え、問題から迅速に回復するのに役立ちます。レプリケーションが常に機能するソリューションであるとは限りません。DROPTABLEは、トポロジ内のすべてのホストにテーブルをドロップします。遅れた奴隷でさえ、避けられないことをそれほど遅らせることができます。

ClusterControlは、MySQLNDBクラスターのndbバックアップをサポートしています。

ClusterControlによって実行されるバックアップスケジュールを簡単に作成できます。
プロキシレイヤー
ClusterControlを使用すると、MySQLNDBクラスターの上に完全な高可用性スタックをデプロイできます。プロキシレイヤーについては、HAProxyとMaxScaleのデプロイをサポートしています。

上のスクリーンショットに示されているように、展開は他のクラスタータイプと非常によく似ています。既存のHAProxyを使用するか、新しいHAProxyをデプロイするかを決定する必要があります。次に、インストール方法を選択する必要があります。ノードで利用可能なリポジトリのパッケージを使用するか、最新リリースのソースコードからコンパイルします。
HAProxyを使用する場合は、Keepalivedと仮想IPを使用して高可用性を構成することができます。

プロセスは次のとおりです。仮想IPとそれを起動するインターフェイスを定義します。次に、インストールしたすべてのHAProxyにデプロイできます。キープアライブプロセスの1つが「マスター」として決定され、そのノードでVIPが有効になります。次に、アプリケーションはこの特定のIPに接続します。現在アクティブなHAProxyが利用できない場合、VIPは別の利用可能なHAProxyに移動され、接続が復元されます。
リカバリ管理
MySQL NDB Clusterは個々のノードの障害に耐えることができますが、これらに迅速に対応することが重要です。 ClusterControlは、クラスターのすべてのコンポーネントの自動回復を提供します。何が失敗しても(管理ノード、データノード、SQLノード)、ClusterControlは自動的にそれらを再起動します。
MySQLNDBクラスターの監視
実稼働に対応した環境を監視する必要があります。 ClusterControlは、監視するさまざまなメトリックを提供します。 「概要」ページには、クラスターの最も重要なメトリックに基づいたグラフが表示されます。独自のダッシュボードを作成して、環境で役立つ追加のデータを表示することもできます。


グラフに加えて、「概要」ページには、使用されているインデックスメモリ、データメモリ、一部のバッファの状態など、MySQLNDBクラスタのメトリックに基づいたクラスタの状態に関する洞察が表示されます。


また、CPU使用率、RAM、ディスク、またはネットワークの統計を含むホストメトリックの監視も提供します。これらのグラフは、クラスターの状態のビューを構築する上でも重要です。
ClusterControlは、トラフィックに関する統計を保持するクエリモニターへのアクセスを提供することにより、データベースのパフォーマンスを向上させるのにも役立ちます。

上のスクリーンショットに見られるように、クラスターに対して実行されているクエリの種類、特定のタイプのクエリの数、実行時間、合計実行時間を確認できます。これは、どのクエリが低速で、どのクエリがトラフィックの大部分を占めているかを特定するのに役立ちます。その後、最大のパフォーマンス向上をもたらすクエリに集中できます。