Cassandraのクラスター、データセンター、ラック、ノード
1. 序章
このチュートリアルでは、Cassandraのアーキテクチャを詳しく見ていきます。 分散アーキテクチャでのデータ格納について説明し、基本的なアーキテクチャコンポーネントについて説明します。
2. カサンドラの概要
Apache Cassandra は、NoSQLの分散データベース管理システムです。
すべてのデータにはパーティションキーがあります。 すべての行のパーティションキーがハッシュされます。 その結果、すべてのデータに対して一意のトークンを取得します。 ノードごとに、トークンの範囲が割り当てられています。 したがって、同じトークンを持つデータは同じノードに保存されます。 ノードのリングアーキテクチャを以下に示します。
3. カサンドラコンポーネント
3.1. ノード
ノードは、Cassandraの基本的なインフラストラクチャコンポーネントです。 これは、高度な内部ネットワークを介してクラスター内の他のノードに接続する、完全に機能するマシンです。
このネットワークの名前はGossipProtocolです。 明確にするために、マシンは物理サーバー、 EC2 インスタンス、または仮想マシンにすることができます。 すべてのノードは、リングネットワークトポロジで編成されています。 重要なのは、すべてのノードが独立しており、リング内で同じ役割を果たしていることです。 Cassandraは、ノードをピアツーピア構造で配置します。ノードには実際のデータが含まれています。
クラスタ内の各ノードは、読み取りおよび書き込み要求を受け入れることができます。 したがって、データが実際にクラスター内のどこにあるかは問題ではありません。 常に最新バージョンのデータを取得します。
3.2. 仮想ノード
Cassandraの新しいバージョンは、仮想ノードまたは略してvnodesを使用します。 仮想ノードはサーバー内のデータストレージレイヤーです。
デフォルトでは、サーバーごとに256の仮想ノードがあります。 前の段落で説明したように、各ノードには一連のトークンが割り当てられています。 すべての仮想ノードは、それらが属するノードからのトークンのサブ範囲を使用します。
これらの仮想ノードは、システムの柔軟性を高めます。 したがって、Cassandraは、必要なときにクラスターに新しいノードを追加する方が簡単です。 データにノード間でトークンが不均等に分散されている場合、仮想ノードをより負荷の高いノードに拡張することで、ストレージ容量を簡単に拡張できます。
3.4. サーバ
サーバーという用語を使用する場合、Cassandraソフトウェアがインストールされた マシンを意味します。すべてのノードには、技術的にはサーバーであるCassandraの単一インスタンスがあります。 前に述べたように、Cassandraの各インスタンスは256の仮想ノードを含むように進化しました。 Cassandraサーバーはコアプロセスを実行します。 たとえば、ノードの周りにレプリカを拡散したり、リクエストをルーティングしたりするようなプロセス。
3.5. ラック
Cassandraラックは、リング内のノードの論理グループです。 つまり、ラックはサーバーの集合です。 データベースはラックを使用するため、レプリカが異なる論理グループに確実に分散されます。 その結果、1つのノードだけでなく操作を送信できます。 それぞれが別々のラックにある複数のノードは、より優れたフォールトトレランスと可用性を提供できます。
3.6. データセンター
3.7. 集まる
クラスターは、1つ以上のデータセンターを含むコンポーネントです。データベース内で最も外部のストレージコンテナーです。 1つのデータベースには1つ以上のクラスターが含まれます。 Cassandraクラスターの要素の階層は次のとおりです。
まず、データセンターで構成されるクラスターがあります。 データセンター内には、デフォルトで256の仮想ノードを含むノードがあります。
4. データレプリケーション
さて、カサンドラの基本的なコンポーネントを知ったとき。 Cassandraがその構造に沿ってデータを管理する方法について話しましょう。 一部のシステムでは、データの損失やデータ配信の中断を許容できません。 解決策は、問題が発生したときにバックアップを提供することです。 たとえば、ハードウェアの問題である可能性があります。または、データ処理中はいつでもリンクがダウンしている可能性があります。 Cassandraは、信頼性とフォールトトレランスを確保するために、データレプリカを複数のノードに保存します。
5.1. レプリケーションファクター
レプリカの数とその場所は、レプリケーションファクターとレプリケーション戦略によって決定できます。レプリケーションファクターは、クラスター全体のレプリカの総数です。 この係数を1に設定すると、各行のコピーが1つだけクラスターに存在することを意味します。この係数は、データセンターレベルとラックレベルで設定できます。
5.1. レプリケーション戦略
レプリケーション戦略は、レプリカの選択方法を制御します。 レプリカの重要性は同じです。 Cassandraには、複製されたデータが含まれているノードを判別するための2つの戦略があります。 最初のものはSimpleStrategy、と呼ばれ、データセンターとラックのノードの論理的な分割を認識していません。 2つ目は、 NetworkTopologyStrategy がより複雑で、ラック対応とデータセンター対応の両方です。 NetworkTopologyStrategy を使用して、さまざまなデータセンターに配置されるレプリカの数を定義できます。 さらに、2つのレプリカが同じラックに配置される[X25X]状況を
5. 結論
このチュートリアルでは、Cassandraのアーキテクチャの基本的なコンポーネントを紹介します。 このデータベースの高可用性とパーティション化の許容範囲を保証する主要な概念について説明しました。 また、データの分割とデータの複製についても話しました。