web-dev-qa-db-ja.com

MySQLまたはMariaDBの垂直/水平スケーリングディスクサイズ

私はしばらくこれを調査していて、適切な解決策を見つけることができないので、ここの誰かが助けてくれるかどうか知りたいです。

分析を支援するデータベースのバックエンドをセットアップしようとしています。これは現在すべてのプロジェクトとクエリで使用されているため、MySQLまたはMariaDBを使用する必要があります。

私の問題は、いくつかの仮想マシンにアクセスできることです。それらのほとんどはかなりまともですが、すべての範囲と容量が1〜2 TBです。プロビジョニングされ、他の目的にも使用されているため、ディスクサイズを増やすことはできません。

それらはまれにしか使用されず、長時間アイドル状態になるため、データベースのクラスターとしてセットアップしようとしています。

さて、私が知りたいのは、これらのマシンをスケーリングして、ハードドライブのスペースを合計として使用できるようにする方法です。

つまりサーバー1(1.5 TB)、サーバー2(1.0 TB)、サーバー3(1.8 TB)、サーバー4(1.5 TB)、サーバー5(1.2 TB)があります。合計7TBを利用できるように、それらをすべてシャーディング/クラスター化して、すべてのスペースを追加します。

これは、分析対象のデータが、一般に1台のサーバーが保持できるデータよりも大きいためです。レプリケーション/一貫性とシステムのダウンを心配する必要はありません(ビジネスクリティカルではないため、失われたデータは簡単に回復して再インポートできるため)。必要に応じて、マスター/スレーブの配置を使用できます(何か問題が発生した場合)。

私は以下を調べましたが、私の質問に答えるものが1つも見つかりません...

  • MaxScale
  • Percona XtraDBクラスター
  • ガレラクラスター

上記のパッケージを試してみましたが、見つけることができるリソースのほとんどは、マルチマスターシステムまたはマスタースレーブシステムについてのみ話しがちです。または、最大の読み取り/書き込みアクセスのための水平スケーリング。

複数のマシンを一緒に追加して垂直方向にスケーリングするためのソリューションが必要です。ほとんどの場合、合計ディスク容量、CPUにとってはそれほど重要ではありません、RAMなど。

1
GrimR7529

あなたが探しているものは通常shared-dataアーキテクチャと呼ばれ、複数のデータベースノードが同じデータベースファイル(データベース)のセットにアクセスしますノード間で分散、およびデータベース容量は、すべてのノードのディスク容量とCPU容量の合計(大体以下)です。

あなたが参照しているMySQLクラスタソリューションは、shared-nothingアーキテクチャを実装します。ここで、データベースコピーはreplicatedノード間、および各データベースノードは独自の「コピー」で動作するため、個々のノードのディスクとプロセッサの容量によって制限されます。

MySQLの共有データクラスターソリューションは存在しないと思います。実装は簡単なことではないので、Oracle RAC担当者に聞いてください。

ワークロードが許容する場合、 CephFS または GlusterFS などのクラスターファイルシステムを検討できます。これにより、すべてのサーバーのディスクボリュームの合計が単一のファイルシステムとして表示されます。単一のデータベースノード。これにより、少なくともディスク容量の要件に対処できます。

3
mustaccio
  • データウェアハウスの状況での分析では、「要約テーブル」の構築と保守が非常に効果的であることがわかります。データのサイズの1/10、クエリの10倍のスピードアップです。

  • データと分析に関する情報を共有したいと思いますか。さらにアイデアがあるかもしれません。

  • MySQLがディスク領域を利用できるようにするため-これはOSのテクニックです。ただし、いずれかのマシンに収まるサイズのテーブルがないことが必要な場合があります。また、MySQLが稼働するためには5つのサーバーすべてが稼働している必要があるため、MySQLは多少脆弱になります。

  • Clustrixには解決策があるかもしれません。クモは別の可能性です。 MariaDBに含まれています。

0
Rick James