グレースフルフェイルオーバーとデルタリカバリーによるCouchbase Serverのローリングアップグレード完全ガイド
マルチノード構成のCouchbase® Serverクラスタをアップグレードする方法はいくつかあります。本記事では、グレースフルフェイルオーバー(graceful failover)とデルタリカバリー(delta recovery)を組み合わせたローリングオンラインアップグレードの手順を詳しく解説します。
はじめに
本記事で紹介する手法は、オンラインアップグレードの中でも最も推奨される方法の一つです。最大の特徴は、アップグレードのためにクラスタへ新たなノードを追加する必要がない点にあります。
さらに、この方法には以下のようなメリットがあります。
- 高速かつ低リソース消費: ノード復旧時にフルリバランスではなく差分(デルタ)データのみを同期するため、処理が速くリソース負荷も軽減されます。
- グローバルセカンダリインデックス(GSI)が保持される: インデックスの再構築が不要になるため、大幅な時間短縮につながります。
一方で、唯一のデメリットとして、アップグレード作業中は高可用性(HA)が一時的に低下することが挙げられます。
前提条件
アップグレード作業は、ビジネスへの影響を最小限に抑えるため、オフピーク時間帯に実施することを強く推奨します。
また、グレースフルフェイルオーバーを使用する際には、いくつかの要件と考慮事項があります。本記事の手順に進む前に、必ず公式のセットアップドキュメントを確認してください。
環境の詳細
本記事の例では、以下の環境を使用しています。
- 2ノード構成のクラスタ:
Prashant 2-Node London Cluster - Couchbase Enterprise Edition バージョン5.1.0(ビルド5552)から、Couchbase Enterprise Edition バージョン5.5.0(ビルド2473・IPv4)へのアップグレード
- ほとんどの手順では、Couchbase管理用Webコンソールを使用
アップグレード手順
以下のステップに従ってアップグレードを実行します。
ステップ1:クラスタの両ノードにCouchbase 5.5をダウンロードする
まず、クラスタの最初のノード上で、Couchbase バージョン5.5のバイナリ実行ファイルをダウンロードします。
下記の画像では、WGETユーティリティを使って必要なRPMパッケージファイルをサーバーからダウンロードしています。
ダウンロード完了後、カレントディレクトリにバージョン5.5のバイナリが保存されていることを確認できます。
同じダウンロード作業を、クラスタのもう一方のノードでも繰り返し実行します。
ステップ2:クラスタのnode-1にログインする
Couchbase Webコンソールを使用して、Administratorアカウントでクラスタのnode-1にログインします。
ステップ3:サーバーの一覧を確認する
Serversタブをクリックすると、クラスタを構成するサーバーの一覧が表示されます。この例では、2台のサーバーノードがクラスタに参加していることがわかります。
ステップ4:サーバーの詳細情報を確認する
各サーバーをクリックすると、現在のバージョンを含む詳細情報が表示されます。
node-1からログインしているため、まずはもう一方のnode-2からアップグレードを行います。こうすることで、アップグレード中にCouchbaseがシャットダウンしても、Webコンソールのセッションが維持されます。
ステップ5:node-2のグレースフルフェイルオーバーを実行する
node-2のセクションを展開し、Failoverをクリックします。
Graceful Failoverを選択して、Failover Serverをクリックします。
グレースフルフェイルオーバーにかかる時間は、生存ノードへアクティブ化・同期が必要なvBucketの数に比例します。Hard Failoverを選択してしまうとvBucketが同期されず、アップグレード後の復旧時にDelta RecoveryではなくFull Recoveryを使わざるを得なくなるので注意してください。
下記の画像はフェイルオーバーの進行状況を示しています。
次の画像は、フェイルオーバー完了後のCouchbase Webコンソールの様子です。
ステップ6:node-2上のCouchbaseをシャットダウンする
node-2上のCouchbaseをシャットダウンします。
シャットダウン後、Couchbase Webコンソール上で該当ノードのステータスがNode unresponsiveに変化します。
ステップ7:アップグレードを実行する
ステップ1でダウンロードしたバイナリを適用して、既存のバージョン5.1.0を5.5.0へアップグレードします。今回は新規インストールではないため、RPMコマンドに--upgradeオプションを指定して実行します。
なお、--upgradeオプションを使わずに、バージョン5.1.0をアンインストールしてから5.5.0を新規インストールする方式を選んだ場合、アップグレード後の復旧でDelta RecoveryではなくFull Recoveryを使用する必要がある点にご注意ください。
アップグレード自体は数分で完了し、終了後は自動的にCouchbase Serverプロセスが起動します。
この時点で、Couchbase Webコンソールにはアップグレード後のバージョン情報が表示され、Full RecoveryまたはDelta Recoveryのいずれかを使ってノードをクラスタに復帰させるオプションが選択できるようになります。
ステップ8:Delta Recoveryを指定する
Add Back: Delta Recoveryをクリックします。
ステータスがDELTA RECOVERY pending rebalanceに変わります。この段階では、Couchbaseに対して「どのリカバリーモードを使用するか」を指定しているだけで、実際のリカバリー処理はまだ開始されていません。
ステップ9:リカバリーを開始する
Rebalanceをクリックして、アップグレード済みノードをクラスタに同期します。フルリカバリーではなくデルタリカバリーなので、処理は短時間で完了するはずです。
下記の画像はリカバリーの進行状況を示しています。
リバランスが完了すると、Couchbase Webコンソール上で該当ノードが緑色に変わり、クラスタとの同期が回復します。バージョンが5.5へアップグレードされていることも確認できます。
下記の画像を見ると、クラスタ内の片方のノードはバージョン5.1.0、もう片方はバージョン5.5.0になっていることがわかります。
ステップ10:node-1をアップグレードする
node-2のアップグレードに成功したら、続いてnode-1をアップグレードします。まず、node-2のCouchbase WebコンソールにAdministratorとしてログインし、ステップ5〜9をnode-1に対して同じように実行します。
下記の画像は、node-1のアップグレードとリカバリー完了後のCouchbase Webコンソールです。
なお、左側メニューに表示されている以下の2つの新しいオプションは、バージョン5.5.0で追加された機能です。
- Analytics: N1QL for Analyticsを使用して、使い慣れたSQLライクなクエリの実行を可能にします。
- Eventing: 「イベント・条件・アクション(Event-Condition-Action)」モデルによってトリガーされる、サーバーサイド関数の作成を可能にします。
まとめ
グレースフルフェイルオーバーとデルタリカバリーを組み合わせた手法は、Couchbaseのローリングアップグレードにおいて非常に優れた選択肢です。多数のノードにまたがる大規模データベースクラスタでは、アップグレードした各ノードをフルリカバリーで復旧させるのは大きな負担になります。グレースフルフェイルオーバーを利用すれば、アップグレード中に発生した変更分だけを同期してノードをクラスタへ復帰させられるため、所要時間を大幅に削減できます。
また、多数のグローバルセカンダリインデックス(GSI)を持つ対話型データベースアプリケーションにも適した方法です。GSIが保持され再構築が不要になるため、リソースを節約しながらアップグレード時間を短縮できます。
この手法の効果を最大化するには、アップグレードをオフピーク時間帯に実施しましょう。そうすることで、この手法の唯一の弱点である「一時的な高可用性の低下」を補え、しかもオフピーク時間帯は差分データが少なくなるため、アップグレード全体のスピードも向上します。
コメントやご質問がある場合は、フィードバックタブをご利用ください。
データベースサービスの詳細については、こちらをご覧ください。
-
【徹底解説】Microsoft SQL Serverのハイブリッドバッファプール ― PMEMを活用したパフォーマンス最適化ガイド
Microsoft®は、SQL Server® 2019(プレビュー)CTP 2.1において、「ハイブリッドバッファプール」という新機能を導入しました。この機能により、永続的メモリ(PMEM)デバイスに格納されたデータベースファイル内のデータページへ直接アクセスできるようになります。 PMEMとは? PMEM(Persistent Memory)は、メモリバス上に搭載されるソリッドステート型の高性能なバイトアドレス対応メモリデバイスです。他のストレージデバイスと比較して、多くの利点を持っています。 PMEMの主なメリットは以下の通りです。 フラッシュSSD(Solid State Drive
-
OGG jagentをOGG Monitor Agent 12.1.3にアップグレードする手順
Oracle GoldenGate(OGG)Monitor Agent(通称:jagent)は、GoldenGateインスタンスに関する情報を収集し、Oracle GoldenGate Monitor ServerやEnterprise Manager Plug-In for Oracle GoldenGateへ送信する重要なコンポーネントです。本記事では、OGG 12c環境のjagentを最新バージョンである12.1.3へアップグレードする具体的な手順を、スクリーンショット付きでわかりやすく解説します。 既存のOGG 12c jagentのインストールとアップグレード V44427-01.