K2HDKC DBaaS with Trove 環境構築
Trove(Trove is Database as a Service for OpenStack)と連携するK2HDKC DBaaS with Trove (Database as a Service for K2HDKC)の環境構築について説明します。 この K2HDKC DBaaS with Trove は、Trove にDatabaseのひとつとして 分散KVSである K2HDKC を組み込んだシステムです。
必要となる周辺システム
K2HDKC DBaaS の環境を構築するためには、OpenStack が動作している環境が必要になります。
また、OpenStack は、Trove を組み込み利用します。
必要となる周辺のシステムを以下に示します。
Trove 環境
OpenStack の環境を準備し、これに Trove を組み込んだ環境が必要となります。
Trove は、K2HDKC DBaaS Trove リポジトリのパッチを適用した状態で起動します。
そして、K2HDKC DBaaS Trove リポジトリで提供するTroveのゲストOSイメージを作成し、K2HDKCサーバーノード用のOSイメージとして登録しておく必要があります。
また、OpenStack と Trove の stable/2024.1
バージョン以降のために、K2HDKC Trove Dockerイメージも作成し、アクセス可能なDockerレジストリに登録しておく必要があります。
K2HR3 システム
K2HDKC DBaaS は、バックエンドとしてK2HR3 システムと連携します。
このK2HR3 システムは、OpenStackのコンポーネントおよびインスタンス(Virtual Machine
)からアクセスできるネットワーク環境に準備してください。
動作環境条件
私たちは、K2HDKC DBaaS TroveをRockyLinix 9.xを使い、確認しています。
また、K2HDKC DBaaS Troveは、OpenStack stable/2024.1 以降を使います。
これ以外の環境をお使いの場合、動作しない可能性があります。
不具合などを見つけた場合は、Issueを送ってください。
試用環境の構築
K2HDKC DBaaS Trove は、OpenStackのDevStack をベースとして、K2HDKC DBaaS Troveの提供するツールを使って、簡単に試用環境を構築できます。
Trove は、そのバージョンに対応した DevStack を使うように設計されており、K2HDKC DBaaS Troveも対応したバージョンのDevStack で試用環境を構築します。
K2HDKC DBaaS Troveの提供するツールは、Troveに独自のコードを組み込み、その試用環境を構築します。
また、試用環境に必要とされる K2HR3 バックエンドシステムの構築します。
このツールは、試用環境に必要とされる専用のゲストOSイメージ、K2HDKC Trove Dockerイメージの作成、登録もできます。
試用環境に必要なシステム
K2HDKC DBaaS Trove 試用環境には、16GB程度のメモリ、120GB程度のディスクサイズの環境を準備してください。
試用環境を構築するためには、DevStackが動作する環境を準備してください。
準備する環境が、OpenStackで作成されたVirtual Machineなどの場合は、Nested Virtualizationなどを参考にして環境を整えてください。
試用環境の構築
以下に示す手順で、K2HDKC DBaaS Trove の環境の構築ができます。
(1) 試用環境用ホスト設定
K2HDKC DBaaS Trove の試用環境を構築するホストの環境を整えてください。
DevStackが動作するための準備をします。
K2HDKC DBaaS Trove の試用環境がPROXYを必要とする場合は、以降の作業を行う前にHTTP(S)_PROXY
やNO_PROXY
環境変数を設定してください。
(2) K2HDKC DBaaS Trove リポジトリの展開
試用環境を構築するために、1台のHOST(もしくはVirtual Machine
)を準備します。
(以降の説明で<hostname or ip address>
と記述された分は、すべてこのHOSTを意味します。)
試用環境を構築するHOSTに、K2HDKC DBaaS Trove リポジトリ を展開します。
$ git clone https://github.com/yahoojapan/k2hdkc_dbaas_trove.git
(3) k2hdkcstack.sh 実行
k2hdkcstack.sh ツールは、K2HDKC DBaaS Trove の試用環境を構築するツールです。
このツールのみを実行することで、K2HDKC DBaaS Trove の試用環境を構築できます。
以下にこのツールを使って、初期化(クリーンアップ)、構築の例を示します。
(3-1) 初期化(クリーンアップ)
すでに試用環境が起動している場合、もしくは構築した試用環境を破棄する場合は、この初期化(クリーンアップ)を実行します。
$ cd buildutils
$ ./k2hdkcstack.sh clean -r -pr
(3-2) 試用環境構築
以下のコマンドを使って、試用環境を構築します。
$ cd buildutils
$ ./k2hdkcstack.sh start --password <password> --without-docker-image
この実行により、K2HDKC DBaaS Trove を含む OpenStack + Trove環境が構築されます。
また、K2HR3 バックエンドシステムもこの環境内に構築されます。
K2HDKC DBaaS TroveによるK2HDKCクラスター(サーバーノード)を起動するための、ゲストOSイメージも作成、登録されます。
これにより、K2HDKC DBaaS Troveとしての必要な環境、コンポーネントが構築できます。
(4) 確認
試用環境が正常に起動された場合、以下のように表示されます。
---------------------------------------------------------------------
[TITLE] Summary : K2HDKC DBaaS Trove
---------------------------------------------------------------------
[SUCCESS] Started devstack (2024-XX-XX-XX:XX:XX)
You can access the DevStack(OpenStack) console from the URL:
http://devstack.localhost/
Initial administrator users log in with admin : ********.
K2HDKC Trove docker image: .../k2hdkc-trove:1.0.2-alpine
K2HDKC Trove backup docker image: .../k2hdkc-trove-backup:1.0.2-alpine
[SUCCESS] Finished k2hr3setup.sh process without error. (2024-XX-XX-XX:XX:XX)
Base host(openstack trove) :
K2HR3 System(instance name) : k2hdkc-dbaas-k2hr3
APP local port : 28080
API local port : 18080
K2HR3 Web appliction : http://XX.XX.XX.XX:8080/
K2HR3 REST API : http://XX.XX.XX.XX:18080/
動作確認をするために、DevStack(OpenStack) console from the URL
および K2HR3 Web appliction
にアクセスし、ログインできるか確認してください。
ログイン時のユーザ名は、admin
、trove
、demo
のいずれかで試します。
補足
ツール
ツールは、buildutils
ディレクトリ以下にあります。
それぞれのツールの目的と、簡単な使い方を説明します。
k2hdkcstack.sh
K2HDKC DBaaS Trove 試用環境を構築することを目的としたツールです。
このツールは、構築と同時に k2hdkcdockerimage.sh
と k2hr3setup.sh
を呼び出し、K2HDKC DBaaS Trove Dockerイメージの作成・登録と K2HR3 バックエンドシステムの構築も行います。
ツールのオプションおよび利用方法は、こちらを参照してください。
k2hdkcdockerimage.sh
K2HDKC DBaaS Trove Dockerイメージの作成と登録をするツールです。
K2HDKC DBaaS Trove は、K2HDKC クラスターのサーバーノード用と、そのノードのバックアップ用のDockerイメージが必要です。
このツールは、これらの2つのDockerイメージ(k2hdkc-trove
、k2hdkc-trove-backup
)を作成・登録します。
このツールは、k2hdkcstack.sh
から呼び出されます。
また、直接利用することもできます。
ツールのオプションおよび利用方法は、こちらを参照してください。
k2hr3setup.sh
試用環境のために最小構成のK2HR3 バックエンドシステムを構築するツールです。
このツールはk2hdkcstack.sh
から呼び出されることを想定していますので、直接利用する必要はありません。
ツールのオプションおよび利用方法は、こちらを参照してください。
K2HDKC DBaaS Troveイメージ
K2HDKC DBaaS Trove は、K2HDKC クラスターのサーバーノード用と、そのノードのバックアップ用のDockerイメージが必要です。
私たちは、これらのDockerイメージを DockerHub から頒布しています。
このDockerイメージを利用する場合は、k2hdkcstack.sh
ツールを起動するときに、--without-docker-image(-nd)
オプションを指定し、Dockerイメージの作成・登録をスキップできます。
独自のDockerイメージを利用する場合には、--with-docker-image(-d)
オプションを指定してください。