web-dev-qa-db-ja.com

MySQL Clusterは正しい選択ですか?

私はMySQLのMySQLデュアルマスターレプリケーションを行っています。各サーバーには21 GBのメモリがあり、現在このプロジェクトのクラスタリングソリューションを探しています。6つのサーバーを持つことができます。そのうちの2つに20 GBのRAMおよび10 GBのRAMを備えたその他。MySQLClusterのドキュメントには、合計メモリと各ノードのRAMの式が下に記載されています。さらに多くのRAM私の既存のレプリケーションの、そして私の会社にこの種のRAM=要件に同意させるのは難しいです。クラスタリングの目的は、大きなサーバーを(リソース内で)小さくする代わりに)サーバーは相互に接続されていますが、この式では、クラスタリングの各ノードが既存のサーバーよりもはるかに大きくなっています。

完全に新しいデータベースを設計する場合は、次の計算を使用して、データノードのおおよそのメモリサイズ要件を決定できます。

•(メモリ内)データサイズ*レプリカ* 1.25 =合計データベースメモリ要件例:50 GB * 2 * 1.25 = 125 GB

•(データサイズ*レプリカ* 1.25)/ノード= RAM Per Node例:(2 GB * 2 * 1.25)/ 4 = 31.25 GB

この状況では、いくつか質問があります。

  • これらの公式に従う必要がありますか?より少ないRAM=ノードに使用できますか?
4
amir jj

クラスタ化されたソリューションを評価するときは、アプリケーションの読み取り/書き込みプロファイルを検討し、それを利用可能なソリューションと照合する必要があります。

アプリケーションの読み取りベースのプロファイルが多い場合、MySQLマスター-マスターレプリケーションセットアップから複数のMySQLレプリカを作成することで、読み取りをスケールアップできます。

プロファイルの書き込みが多い場合は、マスターとマスターのレプリケーションで明らかな選択肢のいくつかを実装しています。

クラスター化されたMySQLオプションから選択する場合、2つのテクノロジーオプションがあります。Percona(XtraDBクラスター)とMariaDB(MariaDBクラスター)のNDBベースのOracle MySQLクラスターとGaleraベースのオプション、およびGalera Cluster for MySQLです。それらは異なる方法で設計され、異なる長所と短所があります。

区別に関する優れたウェビナーはここにあります:

http://severalnines.com/blog/galera-cluster-mysql-vs-mysql-ndb-cluster-high-level-comparison-webinar-replay-slides

前述の式は、主にNDBクラスターのノードごとの予測要件を測定する際に使用されます。もともとMySQL Cluster(以前のNDB Cluster)はメモリのみのデータベースであり、すべてのデータを使用可能なノードのメモリに常駐させる必要がありました。すべてのデータをメモリに保持する必要がある場合、RAMですべてのデータを保持するのに十分ではなかった場合は、ハードウェアに関してプロビジョニングが不十分です。

現在、MySQLクラスタの各ノード、つまりデータノードは、MySQLインスタンスです。最適なパフォーマンスのためにデータをメモリに保持する必要がありますが、それは必須ではありません。したがって、基本的には、式に「従わない」場合、最終的にディスクにドロップダウンし、ノードで使用可能な特定のハードウェアのすべてのIOパフォーマンスを処理する必要があります。

6
Lee Parayno