Nutanix Database Service(NDB)で、PostgreSQL の DB をプロビジョニングしてみます。NDB には、PostgreSQL のソフトウェアも同梱されているので、セットアップ直後の NDB Server ですぐに DB 作成を試せます。
今回の内容です。
構成のイメージです。
1. 今回の環境
NDB サーバは、あらかじめセットアップしてあります。
今回の DB への接続確認には、NDB とは関係しない Linux マシンを利用します。
[root@lab-linux-02 ~]# cat /etc/oracle-release Oracle Linux Server release 8.7
Linux マシンでは、接続確認する OS ユーザで SSH 鍵ペアを作成しておきます。これで生成されるファイル($HOME/.ssh/id_rsa.pub)は、DB サーバのプロビジョニングで利用します。
[root@lab-linux-02 ~]# ssh-keygen -t rsa -P '' -f $HOME/.ssh/id_rsa
2. PostgreSQL DB サーバと DB のプロビジョニング
はじめましょう
NDB Server の Web UI で、初期セットアップ直後の「はじめましょう」画面から作業をすすめます。
「PostgreSQL」のロゴをクリックします。
DB のプロビジョニングに必要な手順が UI に記載されていますが、「1. プロファイルの作成」の手順にはすでにチェックがついており、デフォルトで完了状態です。
そこで、いきなり「2. インスタンスのプロビジョニング」をクリックします。
1) データベース サーバー VM
データベース サーバー VM のパラメータは、「新しいサーバーの作成」を選択した状態で次のように入力して、すこし画面を下にスクロールします。
- データベース サーバー名: プロビジョニングする DB サーバーの仮想マシン名(とホスト名)
- ソフトウェア プロファイル: インストールする PostgreSQL ソフトウェアを指定するもの。デフォルトで用意されている PostgreSQL 10.4 のものを選択。
- コンピュート プロファイル: DB サーバー VM のスペックを指定するもの。vCPU とメモリを割り当ての指定となる。
- ネットワーク プロファイル: DB サーバー VM の接続されるネットワークを指定する。これも NDB Server の初期セットアップのなかで自動的に作成されたものを選択。
NDB ドライブ ユーザー(NDB Server から接続する OS ユーザー)のパスワードと、SSH 公開鍵(冒頭で作成したもの)を入力して、「次へ」をクリックします。
2) インスタンス
DB(DB インスタンス)のパラメータを入力します。
- PostgreSQL インスタンス名: NDB の登録で利用される名前です。
- 初期データベースの名前: PostgreSQL に追加作成される、デフォルト以外の DB です。NDB が作成したことが判別しやすい名前にしておきます。
- データベース パラメータのプロファイル: PostgreSQL DB のパラメータを指定するものです。これもデフォルトで作成されているものを利用します。
- POSTGRES のパスワード: DB の postgres ユーザに設定するパスワードを入力します。
3) タイムマシン
タイムマシン(Time Machine)は、NDB ならではのスナップショット取得やバックアップ / リストア機能で利用されるもので、NDB に登録される DB ごとに作成されます。
パラメータはデフォルトのまま、「次へ」をクリックします。
4) 自動パッチ適用(オプション)
NDB には DB サーバーと DB のパッチ適用を管理する機能がありますが、これは準備ができていないのでデフォルトのまま「プロビジョン」をクリックします。
これで、DB サーバーと DB のプロビジョニングが開始されます。赤枠のあたりのリンクをクリックすると、処理の進捗が確認できます。
数分待つと処理が完了します。
3. プロビジョニングされた DB サーバと DB の確認
3-1. Prism Element から見た様子
Nutanix Prism Element(Nutanix HCI の管理 Web UI)から確認すると、DB サーバーの仮想マシンが作成されてパワーオン状態になっています。
DB サーバーの「Update」をクリックして仮想マシンの構成を確認すると、仮想マシン用の仮想ディスク(scsi.0 ~ 1)とは別に、Nutanix Volumes Storage による Volume Group が 3つ(scsi.2 ~ 4)接続されています。
さり気なく追加された scsi.1 は、PostgreSQL のソフトウェアが配置されています。
Volume Group は、Prism の「ストレージ」→「テーブル」→「Volume Group」から確認できます。これらの仮想ディスク群は、データベース ファイルとトランザクションログの配置と、NDB からの管理で利用されます。
3-2. NDB から見た様子
NDB Server の Web UI で「データベース」画面を開くと、PostgreSQL データベースの「ソース インスタンス」が 1つ実行されていることがわかります。
「ソース インスタンス」のあたりをクリックしてみます。
DB インスタンスの名前をクリックします。
DB インスタンスや、DB サーバーの情報が確認できます。
そして、さりげなく用意されている「説明をご覧ください」リンクをクリックすると、DB への接続情報が表示されます。
4. 接続確認(psql)
NDB とは関係しないマシンから、プロビジョニングした DB に接続してみます。
まず、PostgreSQL のクライアント ツールである「psql」を利用したいので、postgresql をインストールしておきます。
[root@lab-linux-02 ~]# dnf install -y postgresql
今回の psql のバージョンです。
[root@lab-linux-02 ~]# rpm -q postgresql postgresql-10.21-2.module+el8.6.0+20673+e7bc7ac8.x86_64 [root@lab-linux-02 ~]# psql --version psql (PostgreSQL) 10.21
プロビジョニング中に入力した名前のデータベース(pgsql01)に接続してみます。
[root@lab-linux-02 ~]# psql --host=192.168.11.148 --port=5432 --username=postgres --password --dbname=pgsql01 ユーザー postgres のパスワード: psql (10.21、サーバー 10.4) "help" でヘルプを表示します。 pgsql01=#
これで、NDB における DB プロビジョニングの、もっともシンプルな体験ができたはずです。
以上。