スマートスタイル TECH BLOG|データベース&クラウドの最新技術情報を配信

Couchbase Serverのサーバグループについて

この記事では、Couchbase Severが提供する、クラスタ機能「サーバグループ」についてご説明します。

Couchbase Severの可用性

Couchbase Serverでは、いくつかのレベルで高可用性を実現しています。

1.クラスタのサーバ間での可用性

クラスタを構成するサーバ間でのレプリケーションをベースとします。サーバ障害が発生すると、フェィルオーバが動作します。

2.クラスタ内のサーバのサブセット(サーバグループ)間での可用性

クラスタを構成するサーバのサブセットを「サーバグループ」として定義します。これによりサーバグループレベルのフェイルオーバーが可能となります。

3.異なるデータセンター内にあるクラスタ間での可用性

ディザスタリカバリ対策のための可用性となります。遠隔地にあるデータセンター内のクラスタを前提として、そのクラスタ間でのレプリ―ションをベースとします。

今回は、このうちのサーバグループについてご説明します。

Couchbase Serverのサーバグループ

サーバグループは、Data/Index/Queryサービスが稼働している複数のサーバを1つのグループとしてまとめたものです。グループはサーバの物理的な配置に応じて作成する必要があります。例えば、電源やネットワークを共有するサーバラック単位でのグループの作成、もしくは、クラウド環境であればアベイラビリティゾーン単位でのグループの作成となります。

そして、複数のグループを組み込み、1つのクラスタとして管理します。この結果、単一の物理障害が複数のグループに影響を与えることなく、グループ間でデータの分散管理が可能となります。

例えば、電源障害によりあるグループが利用できない場合でも、他の正常に稼働しているグループにフェイルオーバすることで可用性を実現します。

サーバグループの作成

この記事では、Oracle Cloud Infrastructure(略称名OCI、以後OCIを利用)が提供するフォルト・ドメインを利用してサーバグループを作成します。

OCIには、アベイラビリティゾーンに相当する可用性ドメインがあります。そして、その可用性ドメインは、複数のフォルト・ドメインで構成されています。フォルト・ドメインは、1つのフォルト・ドメイン内で発生したハードウェア障害やメンテナンス停止などが、他のフォルト・ドメイン内のインスタンス(サーバ)に影響しない構成となっています。このため、今回のサーバグループの作成単位として利用します。

フォルト・ドメインの環境を利用するため、クラスタ作成時に利用したサーバのフォルト・ドメインとは、異なるフォルト・ドメイン内のサーバを利用しサーバグループに登録します。

・サーバグループの作成手順(例)

サーバグループの構成は、クラスタ作成時のData/Index/Queryサービスの構成を基にします。今回、クラスタ構築時、3つのサーバを使い各サービスを配置しています。この環境を基に、グループ内に同じ構成の環境を作ります。

1.CouchbaseのWebコンソールを起動しクラスタサーバへ管理者としてとログインします。以下の画面のように、クラスタサーバから「ADD GROUPS」を選択しグループを追加します。※サーバグループの作成には、RESET APIやCLIを利用することができます。


2.クラスタ内でサーバグループの各グループを区別しやすいように、この手順では、グループ名を「Group2」とします。※グループ名は変更ができます。

3.次に、「Group2」のサーバグループへサーバを登録します。「ADD SERVER」を選択後、Assign Group から「group2」を選択し追加します。

4.リバランスを実行しクラスタ内のデータ再配置を行います。



「Rebalance Completed suceessfully」がでれば完了です。

5.これで、登録したサーバはサーバグループ名「Group2」の基に管理されます。

続けて、2つのサーバを上記の手順を基に、サーバグループ「Group2」へ追加し、下の図のように、サーバグループ「Group2」内に3つのサーバがGroup1と同じ構成となり、クラスタ内で各グループ間でデータを共有するデータ分散環境が出来上がります。

補足事項

サーバ障害を検知すると、フェィルオーバが働きます。切り替わったサーバには、障害が発生したサーバのデータをレプリカバケットで管理しています。そのため、バケット作成時には、レプリカ(複製)バケットを作成します。

デフォルトでは、以下のように、バケット作成時、「Replicas」の項目、「Enable」にマークがあり、1つのレプリカを作成します。

クラスタ内に、Data/Indexサービスが稼働しているサーバが1つしか無い環境では動作しません。Data/Indexサービスが稼働しているサーバを3つ以上用意します。

クラスタ作成時のデフォルトグループ「Group1」が管理する(Data/Index/Query)のサービスとサーバの構成を基に、全てのグループを同一構成にします。

まとめ

クラスタ内のサーバに障害が発生した時、フェイルオーバが働き、可用性を継続することができます。しかし、ラック、クラウド環境の障害では、可用性を継続するこができまません。

しかし、サーバグループを利用したクラスタ環境は、ラック、クラウド環境に障害が起きても、可用性が維持されます。障害発生時のクラスタのトポロジーの変更はアプリケーションにも通知されるため継続した運用を提供します。

特に、クラウド環境では、「サーバグループ」をクラスタに組み込むことを推奨します。クラウド環境上の予期しないハードウェア障害や、メンテナンスによる計画停止に対して継続した運用を行うことができます。

ディザスタリカバリに対応したクラスタ構成については、今後、この記事で取り上げる予定です。

Return Top