2023年7月26日水曜日

NDBで対応するデータベースと必要な用語について

NDBでデータベースを管理する前に、どのようデータベースやどのような構成のデータベースに対応出来るのかや、NDBで出てくる用語についておさえておきましょう。


プロビジョニングと登録

まず、NDBには、既存のデータベースを登録してNDBで管理する方法と、NDBからデータベースサーバーを展開・管理するという2つの方法があります。それぞれのデータベースによって、登録できるデータベースサーバーの種類、新規展開時のデータベースサーバーの対応している種類に違いがあります。この違いを認識しておく必要があります。こちらは、NDBのバージョンによって対応出来るデータベースの種類や構成によって異なるため、詳細はNDBのリリースノートを参照してください。

(参考)Nutanix Database Service Release Notes 2.5.2.1


対応しているデータベース

NDBは、全てのデータベースをサポートしているわけではありません。残念ながら、SynfowareやHiRDB、Btrieve、InformixやDB2などは対応していません。

NDB 2.5.2.1では、以下のデータベースをサポートしています。

  • Oracle DataBase 11.2.0.4 ~ 21.3.0.0.x(OSは、OEL/RHEL/SUSEのみ、RAC対応)
  • SQL Server 2012 ~ 2019(OSは、Windowsのみ)
    ※1 登録は、2008 R2にも対応
    ※2 Always On 高可用性グループ及びフェールオーバークラスタリングインスタンス(FCI)に対応
  • PostgreSQL 10.x ~ 14.x(OSは、CentOS/RHEL/Ubuntu/Debianのみ)
    ※1 EDB PostgreSQL Enterprise Editionのも対応
    ※2 クラスター構成の場合、Patroni/Etcd/HAProxy/Keepalivedが必要
  • MySQL 5.6 ~ 8.0 (OSは、CentOS/Ubuntu/Debian/RHELのみ)
  • MariaDB 5.5 ~ 10.3 (OSは、CentOS/RHELのみ)
  • MongoDB 5.x (OSは、CentOS/RHEL/Ubuntu/Debianのみ)


グリーンフィールドとブラウンフィールド

NDBのリリースノートを見ているとこの用語が至る所に出てきます。

グリーンフィールド
NDBを介して展開されたデータベースサーバーのこと。

ブラウンフィールド
NDBを介さず手動等で展開したデータベースサーバーのこと。この場合は、NDBへの登録で、NDB管理配下にすることができます。

注意点としては、まずWindows版のOracleは、管理不可であることをご認識下さい。
SQLServerは、Windows版のみサポートでLinux版は、対応していません。
各データベースソフトウェアが最も得意としているOSをNDBは、対応していることに注意してください。

また、対応しているデータべーソフトのOS対応情報とデータべーソフトのバージョンは必ず遵守してください。例えば、CentOSの代わりにRockyLinuxを用いてPostgreSQLを利用したり、PostgreSQLのバージョン15をCentOSに入れたりした場合、Compatibilityの範囲外となり、NDBへの登録・展開ができない場合があります。

また、グリーンフィールドの場合とブラウンフィールドの場合で、NDBの中で利用できる機能が一部異なる点も注意が必要です。

その他にもNDB専門の用語がありますが、順次作業を進める中で出てくるタイミングでお伝えします。NDBの用語は、Nutanixのドキュメントに記載がありますのでそちらを参考にして下さい。

(参考)NDB Terminology Reference


次回は、実際にNDBでデータベースの管理ができる手順を順を追って説明していきます。




2023年7月25日火曜日

NDBの展開(その2)

前回までに、NDBの管理コンソール画面にアクセスできるところまで設定しました。

今回から、NDB管理仮想アプライアンスの初期設定を行っていきます。

NDBクラスターの名称(任意の名称)と、NDBで管理するDB仮想マシンを展開するPrismElementの管理者情報を入力します。


続いてネットワークセグメンテーションの設定画面になります。Nutanixクラスター側でネットワークセグメンテーションが有効になっている場合は、iSCSIデーターサービスのVLAN選択を行う必要があります。(Nutanixクラスター側でネットワークセグメンテーションが有効でない場合、この設定はスキップできます)


続いて、DNSやNTPサーバー、タイムゾーンの設定を確認します。この情報は、Nutanixクラスター側から取得してきますのでほとんどのパラメーターが自動入力されています。
必要に応じて(特にSMTPサーバー)の設定を入力し、次に進みます。


続いて、NDBで展開するデータベースサーバーが利用するストレージコンテナを選択します。

最後に、展開するデータベースサーバーが利用するVLANの設定を行います。
IPAMの設定が行われている場合は、プールの設定をせずIPAMからのIP払い出しが可能です。IPAMを利用しない場合は、IPアドレスプールを設定します。このIPアドレスは、NDBから展開したDBサーバーに付与されるIPアドレスに利用されます。

次に進むと、設定情報が反映されます。しばらく時間がかかりますのでそのまま待ちます。


しばらく待つと、タスクが完了します。

「開始します」をクリックすると、初期の画面が表示されます。


次回は具体的なNDBの利用方法について1つずつ見ていきます。






2023年7月24日月曜日

NDBの展開(その1)

では早速NDBの展開を行っていきます。

NDBは、Nutanixプラットフォーム(NC2を含む)で、ハイパーバイザーが、AHVもしくはvSphereの環境に対応しています。

2023年7月現在、最新のNDBは、「2.5.2.1」となります。今回は、AHVバージョンを利用して作業を行います。

AHV用のqcow2を、Nutanixサポートポータルから取得します。


AHVのイメージサービスにダウンロードしたqcow2を登録します。


展開したqcow2を元に仮想マシンとして展開します。

NDBの仮想マシンは、以下のスペックをベースとして展開してください。

TimeZone : UTC
vCPU Core : 4
vCPU Socket : 1
RAM : 16GB
モード : Legacy BIOS
NIC : 任意のVLAN(マルチNICも対応)

※参考
Installing NDB on AHV

なお、IPアドレスの設定は、cloud-initを使って設定可能ですが、vSphereの場合は、設定方法が異なる事から、今回は、AHVでもvSphere寛容でもどちらでも適用可能な、仮想マシン起動後にコマンドでIPアドレスを設定する方法をご紹介します。

仮想マシンが構成できたらパワーオンを行います。コンソール画面を開き、以下のユーザー名とパスワードでシェルにログインします。

ユーザー名 : era
パスワード : Nutanix.1

IPアドレスを設定するため以下のコマンドを入力します。

era-server
era-server > era_server set ip=付与したいIP netmask=付与したいネットマスク gateway=付与したいデフォルトゲートウェイ nameserver=DNSサーバー ntp_server=NTPサーバー

注意すべき点は、era-serverコマンドで、NDBプロンプトに入ります。その次にIPアドレスを付与する際にコマンドは、era_servereraのあとがアンダースコア)であることに注意してください。また、NDBの仮想マシンはキーボードが101キーボード設定になっています。106/109キーボードの場合、アンダースコアー(_)は、「Shift+-(ハイフン)」、イコール(=)は、「^(ハット)」になりますのでこちらも注意してください。

NTPサーバーとDNSサーバーは、任意入力となりますが、NTPは特に設定しておくことを強くお勧めします。(タイムマシン機能時の時間ずれを防止するため)


このコマンドが実行完了するまで、しばらく時間がかかります。

設定が完了したら、ブラウザで指定したIPアドレスにアクセスします。
EULAが表示されたら、同意し、adminユーザーの新しいパスワードを設定します。もし、EULAが表示されない場合、以下のデフォルトユーザーでログインを行います。


デフォルトのadminユーザーのログイン情報
ユーザー名 : admin
パスワード : Nutanix/4u

ログインに成功すると、以下のような設定画面が表示されます。


次回は、ウィザードの内容に従って、初期設定を行います。




2023年7月23日日曜日

NDBで管理するデーターベースのメリット

NDBは、Nutanix Database Serviceの略称です。
NDBは、その昔Nutanix ERAと呼ばれていた、データーベースの管理ソフトウェアになります。

世の中で稼動するアプリケーションにおいて、データベースの存在は欠かせません。一方データベースはどんどん肥大化しかつミッションクリティカルになってきています。データベースの管理を怠るとデータベース障害の発生リスクを呼び、アプリケーションの稼動に影響を及ぼす可能性があります。

一方、データベースの管理は、データベーソフトウェアに応じた独特の管理方法が必要で、その習得には時間を要する課題があります。

NDBは、そんなデータベースの管理を楽にするツールです。

NDBは、以下の特徴を持った機能を有しています。


1.数クリックでデータベースサーバーを展開

シングルインスタンスのSQLServer データーベースや、SQL Server AllwaysOn 高可用性グループやOracle RACなど、構築が難しいデータベースサーバーもマウスの数クリックだけでデータベースサーバーを構築可能です。


2.データベースサーバーへのパッチの一括適用

データベースサーバーは塩漬け運用という形で、1度稼動すると基本パッチを適用しない運用が多く続けられてきました。昨今では、脆弱性を突いた攻撃なども増えていることから、高いった塩漬け運用は古の悪しき運用となり、昨今では、積極的なパッチ適用が運用の現場でも求められています。しかし、OracleのOPatchのように、パッチ適用にはそれなりのスキルナレッジがないと作業が難しいケースが多くあります。
NDBは、稼動しているデータベースサーバーに対して、パッチ適用のオペレーションをマウスクリック数回の作業だけで適用できる機能を持っています。
沢山のデータベースサーバーを管理している場合においては、パッチ適用の時間を大幅に短縮することもできますし、データベースの高度なスキルを持った人月度対応する事も無くなります。


3.タイムマシンによるデーターベースのロールバック

データベース運用においてノウハウを必要とする機能の1つがアーカイブログ(トランザクションログ)の運用ではないかと思います。アプリケーションのバグや何らかの形でデータベースのデーターに不具合が生じたり、データベースの障害が発生した場合、なるべく最新の状態までデーターを復旧させる必要があります。レガシーな運用では、毎日夜間にDMPファイルの出力でバックアップ対応しているケースが多く見受けられますが、DMP出力後に変更されたデーターはリカバリの対象とはならないので、より新しいデーターのバックアップという観点に置いて、DMPでのバックアップ運用は限界があります。また、DMPは差分出力ができないので、データベースのサイズが大きくなればなるほど時間がかかることから本番運用のデータベースに置いてDMPでのバックアップは限界があります。
NDBは、アーカイブログを管理を行う機能を持っています。定期的なログファイルの取得は、もちろんデータベースサーバーの障害発生時には、面倒なコマンドを使うことなく、マウス操作だけで任意の時間(1秒単位)でデータベースの内容を戻すことができます。


4.データベースのクローン

パッケージソフトウェアの開発など、開発の現場では、運用中のデータベースを元にカスタマイズプログラムを作成したり、運用中で障害が発生すると、そのデータベースのデーターを元にバグの調査をするなど、1つのデータベースから派生するデータベースは、開発の現場で多く存在しているケースがあります。
従来は、元となるデータベースのデーターをエクスポートして取得したDMPを、別のスキーマーや別のインスタンスにインポートするなどを行っていたため、エクスポートとインポートに大幅な時間を要することと、データベースを稼働させるストレージも大量に消費するため、無駄なことが多い運用でした。
NDBを利用すると、Nutanixの持っているストレージの機能を利用し、ストレージベースのポインターとアーカイブログ管理機能を用いて、クローン元のデータベースの任意の時間をベースに、高速なクローンが可能です。



NDBは、今までのデータベースの運用に置いて、DBの構築やアーカイブ運用といったスキルを必要とする部分をデータベースに詳しい一部のエンジニアに負荷が集中するを避け、より可視化された形で、チーム全体で運用ができるように支援するツールです。

次回からは、NDBの展開方法と使い方をご紹介します。