これまで、DEEの基本的な利用方法を説明してきました。今回は、IBMが提供している高可用性ソリューションと共にEEを使用する際の方法について説明します。IBMの高可用性ソリューションとしてDB2の高可用性災害時リカバリー(HADR)機能やPower HA for AIX and Linux(旧称HACMP)がありますので、それらを順に説明します。
DB2のHADRにより、災害などで本番機が故障した場合でも、遠隔地に待機しているDB2を使用して運用を続けることができます。本番機のDB2はトランザクションデータを待機しているDB2に送付することで同期をとり、災害などで本番機が故障した場合、待機しているDB2に引継ぎ(takeover)することで、運用を続けることができます。
本番のDB2と待機しているDB2のデータをEEで暗号化して保持する場合、その構成図は以下のようになります。
図1.EEとHADRの構成図
この構成図が示すように、DB2 HADRにおけるデータの同期はDB2のプロセス間で行われるため、本番機とスタンバイ機で、データを書き込む際の暗号化キーは同じものを使用する必要がありません。DEEの観点からは、まったく独立したシステムとして、それぞれ異なる暗号化キーを使用することができます。
Power HAはAIXおよびLinuxの高可用性ソリューションです。サービスを提供しているノード(AIXやLinux)で発生した障害を自動検知して、アプリケーションやデータなどのリソースを別のノードに移動(failover)することにより、運用を続けることができます。HADRとは異なり、データの冗長性を提供していないことに注意してください。
また、共有ストレージを利用可能ですので、ホーム・ノード(サービスを実行しているノード)での障害発生後、スタンバイ・ノードはホーム・ノードが利用していたボリューム(データ)を高速に引き継くことで、アプリケーションを引き続き利用可能となります。
ホーム・ノードのAIXと、スタンバイ・ノードのAIXによる、Power HAのスタンバイ構成で、共有ディスクのデータをDEEで暗号化して保持する場合、その構成図は以下のようになります。
図2.Power HAとDEEの構成図
この構成図のように、Power HAで共有ディスクのデータを同一のノードから利用するため、ホーム・ノードでサービス実行中の場合は、スタンバイ・ノードでは共有ディスク上のディレクトリはマウントされていません。ホーム・ノードの計画/無計画停止により、リソースが移動され、スタンバイ・ノードで共有ディスク上のディレクトリをマウントします。スタンバイ・ノード上のDEEのAgentはこのタイミングで始動される必要があります。
つまり、Power HAスタンバイ構成においてDEEを利用する場合には、以下の2点に注意する必要があります。
- それぞれのノードが利用する暗号化キーは同一にする必要がある
- スタンバイ・ノードはDEE Agentを停止し、ストレージをアンマウントした状態で待機する必要がある
以下、DEEをPower HAスタンバイ環境で利用する場合の構成例を示します。
以後、ホーム・ノードのAIXをserver1、スタンバイ・ノードのAIXをserver2として、Power HAのスタンバイ構成の作成がされている環境で、DEE Agentのインストール終了後の設定方法例を順番に解説していきます。構成は以下の流れになります。
- DEE Agent の自動起動の無効化と、起動・停止スクリプトの作成
- Power HAの構成におけるDEE Agentの起動・停止スクリプトの登録
- DEEにおける暗号化キーの作成
- DEEにおけるポリシーの作成
- DEEにおける暗号化の適用(ガードの実行)
また、本稿ではHACMPを利用して実行手順を確認している関係上、smitの高速パスや画面メッセージなどはHACMPとして記述しています。必要に応じてPower HAと読み替えてください。
DEE Agentを導入すると、DEE Agentの起動と停止を行うスクリプトが/etc/rc.d/rc2.dに置かれ、OSの起動・停止に連動して動作するように構成されます。
今回の環境では、DEEの起動と停止をPower HAがコントロールするので、連動して動作しないようにします。
そのために以下のように、server1とserver2でDEE Agent導入後、DEE Agentの起動スクリプトおよび停止スクリプトをリネームします。
# mv /etc/rc.d/rc2.d/S99secfs /etc/rc.d/rc2.d/_S99secfs # mv /etc/rc.d/rc2.d/K99secfs /etc/rc.d/rc2.d/_K99secfs |
Power HAによるフェールオーバー時に、DEE Agentの起動と停止を行うスクリプトを作成し登録します。共有ボリュームのマウントとアンマウントは、Power HAがリソース移動時に自動で行うので、DEE Agentの操作から記述します。先の手順でリネームしたスクリプトに以下のような引数をセットすることでDEE Agentを起動・停止させることができます。ちなみに、DEE1.1.3では、S99secfsおよびK99secfsは全く同じファイルですので、DEE Agentの停止もS99secfsで行うことが可能です。
DB2など、DEEでガードされたディレクトリに対して他のソフトウェアを利用する場合は、DEE Agent起動後に他ソフトウェアの起動処理、DEE Agent停止前に他ソフトウェアの停止処理を記述します。
start.sh
#!/bin/sh /etc/rc.d/rc2.d/_S99secfs start # DB2など他のソフトウェアの起動処理 |
stop.sh
#!/bin/sh # DB2など他のソフトウェアの停止処理 /etc/rc.d/rc2.d/_K99secfs stop |
また、DB2をHACMPで利用するときの起動・停止スクリプトは、インスタンス・ホーム/sqllib/samples/hacmp にサンプル・スクリプトがありますので、そちらを参考にしてください。
次に、リソース移動時に実行されるスクリプトをPower HAに設定します。
“smit hacmp” -> “初期化および標準構成” -> “高可用性を持つリソースの構成” -> “アプリケーション・サーバーの構成” -> “アプリケーション・サーバーの変更・表示” を開き、”始動スクリプト”および”停止スクリプト” に上記スクリプトを登録します。
2台のAIXで1つのディスクを共有する環境なので、ディスク配下のディレクトリを暗号化する対称キーは同一のものを利用します。
暗号化キー(対称キー)作成において、ホスト毎に一意のキーが作成される”Unique to Host” オプションを選択してはいけません。作成例は以下の図3を参照してください。
図3. :Power HAで利用するためのKey設定、“Unique to Host”にはチェックをしない
DEE Management Consoleのメニューから、”Policies” を選択し、オンラインポリシーを作成してください。通常の場合と操作は変わりません。詳細については、第3回を参照してください。
DEE Management Consoleから、通常のガードと同様の方法でserver1、server2に対してガードの設定を行います。ガードの設定をする際には、DEE Agentは各ホストで起動しておく必要があります。DEE Agentの起動は、リネームしたスクリプトを使用します。
# /etc/rc.d/rc2.d/_S99secfs start |
server1とserver2のDEE Agentを同時に起動して、ガードの設定を行うことができますが、その場合、待機サーバーであるserver2では共有ディスクをマウントしていないため、ローカルディレクトリをガードしていることになります。ガードの設定が終了したら、待機サーバーのDEE Agentは、Power HAによって起動がコントロールされるように、停止しておきます。DEE Agentの停止も、リネームしたスクリプトを使用します。
# /etc/rc.d/rc2.d/_K99secfs stop |
今回は初期導入からの設定として説明していますが、すでにデータがボリューム上にある場合には、DEEのdataxform機能や通常のファイル・コピー機能を利用してデータを暗号化する必要があります。これらの方法の詳細については第3回を参照してください。
Power HAでは計画停止を考慮して、手動でリソースの移動が行えます。今回は、単純なテキストファイルを作成してリソース移動が発生した際にも両方のホストから正常にデータが読み出せることを確認します。なお、DB2で共有ディスク上にデータベースを作成して利用する場合は、ユーザーIDを同一にするなどの設定を確実に行ってください。
現在、server1が共有ボリュームをマウントしていて、そのボリューム上のディレクトリに対してDEEによるガードがかかっています。
Power HAのリソースの状態を確認します。
(server1)# clRGinfo
-------------------------------------------------------------------------------
グループ名 状態 ノード
-------------------------------------------------------------------------------
deerg ONLINE server1
OFFLINE server2
|
server1でDEE Agentが正常に動作していることを確認します。
(server1)# mount | grep secfs secfs /opt/IBM/DB2TOOLS/LUWEncryptionExpert/agent/secfs/.sec secfs secfs /deeshare/ secfs (server1)# secfsd -status guard GuardPoint Policy Type ConfigState Status Reason ---------- ------ ---- ----------- ------ ------ /deeshare/ sharedPolicy local guarded guarded N/A |
このとき、server2ではDEE Agentは停止しています。
(server2)# mount | grep secfs (server2)# secfsd –status guard secfsd: Failed to query status |
ガードされているディレクトリ上にテキストファイルを作成します。
(server1)# echo “encrypted text”> /deeshare/tmp.txt |
リソースの移動を行います。“smit hacmp” -> “システム管理” -> ”” -> ”HACMP リソース・グループおよびアプリケーション管理” -> ”リソース・グループの別のノード/サイトへの移動” でserver2へリソースを移行します。
server2にリソースが移動したことを確認します。
(server2)# clRGinfo
-------------------------------------------------------------------------------
グループ名 状態 ノード
-------------------------------------------------------------------------------
deerg OFFLINE server1
ONLINE server2
|
server2でDEE Agentが正常に動作していることを確認します。
(server2)# mount | grep secfs secfs /opt/IBM/DB2TOOLS/LUWEncryptionExpert/agent/secfs/.sec secfs secfs /deeshare/ secfs (server2)# secfsd -status guard GuardPoint Policy Type ConfigState Status Reason ---------- ------ ---- ----------- ------ ------ /deeshare/ sharedPolicy local guarded guarded N/A |
このとき、server1ではDEE Agentが停止しています。
(server1)# mount | grep secfs (server1)# secfsd –status guard secfsd: Failed to query status |
server2で暗号化されたテキストファイルが正しく読み込めることを確認します。
(server2)# cat /deeshare/tmp.txt encrypted text |
第5回は、DEEを高可用性ソリューションであるHADRやPower HAと共に利用する方法について説明しました。HADRと共に使用する場合、DEEはHADRの存在を意識することなく構築することができます。Power HAの場合は、この記事で述べたとおり、比較的簡単な設定で利用することができます。是非一度お試しください。
- IBM Database Encryption Expertを利用してデータを保護する:第1回 主な機能とメカニズム
- IBM Database Encryption Expertを利用してデータを保護する:第2回 主なセットアップとメンテナンス
- IBM Database Encryption Expertを利用してデータを保護する:第3回 オンライン・データの保護
- IBM Database Encryption Expertを利用してデータを保護する:第4回 データベースのバックアップ・イメージの保護
- IBM Database Encryption Expertがサポートするプラットフォームやデータベースなどのシステム要件について述べられています。
- IBM Database Encryption ExpertのUser's Guideが入手できます。