Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


21.2.4 Azure環境でのHADBサーバの構築

ここでの説明は,新規導入を前提としています。 

〈この項の構成〉

(1) 仮想マシンの用意

HADBサーバをインストールする仮想マシンを用意してください。

ここでは,Standard_E8s_v4の仮想マシンを用意するとします。

(2) ファイルシステム,ディスク,およびコンテナーの用意

表21‒4 用意するファイルシステム,ディスク,およびコンテナー」に示すファイルシステム,ディスク,およびコンテナーを用意してください。

(3) HADBサーバおよびHADBオプションのインストール

HADBサーバをインストールし,そのあとにHADBオプションをインストールしてください。HADBサーバおよびHADBオプションのインストール方法については,「8.2 インストール」を参照してください。

(4) ネットワークセキュリティグループの設定

HADBサーバをインストールした仮想マシンのサブネットまたはNICに対して,TCPポート443でのアウトバウンドのHTTPS通信ができるようにネットワークセキュリティグループを設定してください。

また,HADBサーバをインストールした仮想マシンで次の環境変数を設定している場合は,プロキシサーバとして使用する仮想マシンのサブネットとNICに対しても,上記のネットワークセキュリティグループの設定をしてください。

重要

環境変数HTTP_PROXYを設定している場合,プロキシサーバへのアクセスに通信プロトコルHTTPが使用されるため,通信内容の盗聴や改ざんなどのセキュリティ上のリスクがあります。そのため,プロキシサーバを使用する場合は,環境変数HTTPS_PROXYを設定し,通信プロトコルとしてよりセキュアなHTTPSを使用することを推奨します。

(5) Azure CLIのインストール

HADBサーバをインストールした仮想マシンにAzure CLIをインストールしてください。Azure CLIのインストール方法および設定については,Azureのドキュメントを参照してください。

(6) Azure Blob Storageへのアクセスに必要な認証情報の設定

Azure Blob Storageへのアクセスに必要な認証情報の設定が必要です。HADBサーバがAzure Blob Storageにアクセスするには,Azure Blob Storageへのアクセスを許可するように設定したカスタムロールを割り当てたHADB専用のサービスプリンシパルか,またはマネージドIDが必要になります。「(a) サービスプリンシパルを使用する場合」または「(b) マネージドIDを使用する場合」のどちらかの方法で認証情報の設定を実施してください。

(a) サービスプリンシパルを使用する場合

カスタムロールの作成とサービスプリンシパルの作成を行い,そのサービスプリンシパルを使用して認証を行ってください。

カスタムロールの作成

サービスプリンシパルに割り当てるカスタムロールを作成してください。カスタムロールには,Azure Blob Storageへのアクセスを許可する次のアクションを設定します。

  • BLOBを取得,追加,および削除するときに必要となるアクション

    • Microsoft.Storage/storageAccounts/blobServices/containers/read

    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete

サービスプリンシパルの作成

HADB専用のサービスプリンシパルを作成し,■カスタムロールの作成で作成したカスタムロールを割り当ててください。

なお,サービスプリンシパルのログイン認証方式は,証明書またはアプリケーションパスワードのどちらかを使用してください。認証の有効期限は,業務の稼働期間(HADBサーバを使用する期間)より十分に長い期間を設定してください。有効期限が切れると,HADBサーバを開始できないなどの問題が発生するおそれがあります。

サービスプリンシパルの作成方法の詳細については,Azureのドキュメントを参照してください。

サービスプリンシパルを使用した認証

次のどちらかの方法で,■サービスプリンシパルの作成で作成したサービスプリンシパルによる認証を行ってください。

  • Azure CLIによる認証

  • 環境変数による認証

なお,上記の両方の認証を実施した場合,「環境変数による認証」が優先されます。そのため,「Azure CLIによる認証」を実施したい場合は,「環境変数による認証」を実施しないでください。

  • Azure CLIによる認証

    HADB管理者のOSユーザ(adbmanagerなど)で,次のAzure CLIのコマンドを実行してAzureにサインインしてください。

    $ az login --service-principal -u アプリケーションID -p 証明書のパスまたはアプリケーションパスワード --tenant テナントID

    アプリケーションID証明書のパスまたはアプリケーションパスワード,およびテナントIDには,■サービスプリンシパルの作成で作成した値を指定してください。

  • 環境変数による認証

    HADBサーバをインストールした仮想マシンで次の表に示す環境変数を設定してください。

    表21‒5 サービスプリンシパルの認証で使用する環境変数

    環境変数

    設定する内容※1

    AZURE_CLIENT_ID

    アプリケーションID

    AZURE_TENANT_ID

    テナントID

    AZURE_CLIENT_SECRET※2

    アプリケーションパスワード

    AZURE_CLIENT_CERTIFICATE_PATH※2

    証明書のパス

    注※1

    ■サービスプリンシパルの作成で作成した値を設定してください。

    注※2

    ■サービスプリンシパルの作成で選択したログイン認証方式に従って,どちらかの環境変数を設定してください。

(b) マネージドIDを使用する場合

カスタムロールの作成とマネージドIDの割り当てを行い,そのマネージドIDを使用して認証を行ってください。

カスタムロールの作成

カスタムロールを作成してください。カスタムロールには,Azure Blob Storageへのアクセスを許可する次のアクションを設定します。

  • BLOBを取得,追加,および削除するときに必要となるアクション

    • Microsoft.Storage/storageAccounts/blobServices/containers/read

    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete

マネージドIDの割り当て

HADBサーバをインストールした仮想マシンにマネージドIDを割り当ててください。そのあとに,マネージドIDのロールとして■カスタムロールの作成で作成したカスタムロールを割り当ててください。マネージドIDの割り当て方法については,Azureのドキュメントを参照してください。

マネージドIDを使用した認証

■マネージドIDの割り当てで割り当てたマネージドIDを使用して認証を行います。HADB管理者のOSユーザ(adbmanagerなど)で,次のAzure CLIのコマンドを実行してAzureにサインインしてください。

$ az login --identity

(7) HADBクライアントのインストール

HADBクライアントをインストールしてください。HADBクライアントのインストール方法については,マニュアルHADB AP開発ガイドHADBクライアントのインストールおよびアンインストールを参照してください。

(8) 環境変数の設定

HADBサーバをインストールした仮想マシンで環境変数を設定してください。HADBサーバで設定する環境変数については,「8.4 環境変数の設定」を参照してください。

また,HADBクライアントでも環境変数を設定してください。HADBクライアントで設定する環境変数については,マニュアルHADB AP開発ガイド環境変数の設定を参照してください。

(9) カーネルパラメタの設定

HADBサーバをインストールした仮想マシンでカーネルパラメタを設定してください。設定するカーネルパラメタについては,「6.2 カーネルパラメタの見積もり」を参照してください。

(10) ネットワークの設定

21.2.2 ネットワーク構成」を参照して,必要なネットワークを設定してください。

(11) サーバ定義の作成

HADBサーバをインストールした仮想マシンでサーバ定義を作成してください。サーバ定義の作成方法については,「8.5 サーバ定義の作成および変更方法」を参照してください。サーバ定義に指定するオペランドについては,「7. サーバ定義の設計」を参照してください。

なお,クラウドストレージ機能を使用するため,次のオペランドは必ず指定する必要があります。

上記のほかにもクラウドストレージ機能に関するオペランドがあります。詳細については,「7.2.16 クラウドストレージ機能に関するオペランド(set形式)」を参照してください。

<サーバ定義の指定例>

set adb_db_path = /HADB/db
set adb_rpc_port = 23650
set adb_sys_max_users = 10
set adb_sys_rthd_num = 40
set adb_sys_uthd_num = 128
set adb_sql_exe_max_rthd_num = 4
set adb_sys_memory_limit = 64000
set adb_sys_cld_az_storage_account = adbstorageaccount   ...1
set adb_sys_cld_az_container = adbcontainer              ...2
set adb_sys_cld_cache_path = /HADB/ADBCCH                ...3
adbbuff -g TBLBUF01 \
        -n ADBUTBL01 \
        -p 1000000 \
        -v 1024
adbbuff -g IDXBUF01 \
        -n ADBUIDX01 \
        -p 312500
adbcachegrp -g TBLGRP01 \                ...4
            -n ADBUTBL01,ADBUTBL02 \     ...5
            -s 256                       ...6
adbcachegrp -g IDXGRP01 \                ...7
            -n ADBUIDX01,ADBUIDX02 \
            -s 64
adbcachegrp -o \                         ...8
            -s 16
[説明]

下記の( )内は,指定値の例を示しています。

  1. Azure Blob Storageのストレージアカウント名(adbstorageaccount)を指定します。

    (13) データベースの初期設定」で作成する初期設定オプションのadb_sys_cld_az_storage_accountオペランドと同じストレージアカウント名を指定することを推奨します。

  2. BLOBの格納先コンテナー名(adbcontainer)を指定します。

    (13) データベースの初期設定」で作成する初期設定オプションのadb_sys_cld_az_containerオペランドと同じコンテナー名を指定することを推奨します。

  3. キャッシュファイルの格納先ディレクトリ名(/HADB/ADBCCH)を指定します。

  4. キャッシュグループを定義するためにadbcachegrpオペランドを指定します。-gオプションにはキャッシュグループ名を指定します。

  5. -nオプションには,4.で指定したキャッシュグループに割り当てるデータ用DBエリア名を指定します。

  6. キャッシュグループに格納するキャッシュファイルの容量の上限を指定します。

  7. 2つ目のキャッシュグループを定義するためにadbcachegrpオペランドを指定します。

  8. -oオプションを指定したadbcachegrpオペランドを指定して,既定のキャッシュグループを定義します。

(12) クライアント定義の作成

クライアント定義の作成方法については,マニュアルHADB AP開発ガイドHADBクライアントの環境設定(ODBCドライバおよびCLI関数を使用する場合)クライアント定義の作成を参照してください。

(13) データベースの初期設定

adbinitコマンドを実行して,データベースを初期設定してください。初期設定オプションの指定例を次に示します。

set adb_init_dbarea_initialize = Y
set adb_init_wrk_blk_path = /dev/dbarea_work/ADBWRK          ...1
set adb_sys_cld_az_storage_account = adbstorageaccount       ...2
set adb_sys_cld_az_container = adbcontainer                  ...3
set adb_init_cld_cache_path = /HADB/ADBCCH                   ...4
adbinitdbarea -n ADBUTBL01 -p 32 -s 32                       ...5
adbinitdbarea -n ADBUIDX01 -p 32 -s 32                       ...5
[説明]

下記の( )内は,指定値の例を示しています。

  1. 作業表用DBエリアファイルを割り当てるマネージドディスク上のブロックスペシャルファイル名(/dev/dbarea_work/ADBWRK)を指定します。

  2. Azure Blob Storageのストレージアカウント名(adbstorageaccount)を指定します。

  3. BLOBの格納先コンテナー名(adbcontainer)を指定します。

  4. キャッシュファイルの格納先ディレクトリ名(/HADB/ADBCCH)を指定します。

  5. データ用DBエリア(ADBUTBL01ADBUIDX01)の指定をします。DBエリアのページサイズには32キロバイトを,セグメントサイズには32メガバイトを指定してください。

    クラウドストレージ機能を使用する場合,作成されるデータ用DBエリアの容量は約1ペタバイトになります。

重要

データ用DBエリア数が増えると,HADBサーバの開始,adbdbstatusコマンド,およびチャンクの更新や削除などの処理時間が長くなることがあります。したがって,データ用DBエリアは必要な分だけ作成するようにしてください。データ用DBエリアを追加する必要性の判断については,「5.6 データ用DBエリアの設計」を参照してください。