8. メンテナンス
8.4 セルドメインデータベースのメンテナンス
セルドメインISの多重化構成をとった際、多重化した資源情報データベースの内容を 相互比較することができます。
データベースを比較するコマンドは以下の書式で実行します。
% cddiff.sh DB名 比較CIMクラス名 ホスト1 ホスト2
本コマンド実行の前提として環境変数INFOSERVICE_HOME、PGSQL_HOMEが設定 されている必要があります。
実行時、DB名にはmcdもしくはscdが指定可能です。
また、前もってホスト 1 及びホスト 2 においてはコマンド実行ホストの~/.postgresql/
以下に配置された証明書による PostgreSQL への接続を可能とする設定を行う必要があ ります。
以下に実行例を示します。(例では mcd1.naregi.orgとmcd2.naregi.orgのmcdデータベ ースにあるCIM_Processorのレコードを比較します)
% ${INFOSERVICE_HOME}/admintool/cddiff.sh mcd CIM_Processor mcd1.naregi.org mcd2.naregi.org
NAREGI Middleware使用手引書(管理者編)
61 8.4.2 セルドメインデータベースの複製 (1) データベース単位での複製
セルドメインデータベースの内容を別ホストのセルドメインデータベースに複製する ことができます。データベースを複製するコマンドは以下の書式で実行します。
% cdreplicate.sh DB名 複製元ホスト 複製先ホスト
本コマンド実行の前提として環境変数INFOSERVICE_HOME、PGSQL_HOMEが設定 されている必要があります。
実行時、DB名にはmcdもしくはscdが指定可能です。
また、前もって複製元ホスト及び複製先ホストにおいてはコマンド実行ホストの
~/.postgresql/以下に配置された証明書によるPostgreSQLへの接続を可能とする設定を行
う必要があります。
以下に実行例を示します。(例では scd1.naregi.org の scd データベースの内容を scd2.naregi.orgのscdデータベースに複製します)
% ${INFOSERVICE_HOME}/admintool/cdreplicate.sh scd scd1.naregi.org scd2.naregi.or g
(2) CIMクラスごとの複製
指定した複数のCIMクラスについて、別ホストのセルドメインデータベースに複製す ることができます。CIMクラスごとにレコードを複製するコマンドは以下の書式で実行 します。
% cim_class_replicate.sh DB名 複製CIMクラス列挙ファイル 複製元ホスト 複製先ホス
ト
本コマンド実行の前提として、
${INFOSERVICE_HOME}/admintool/cim_class_replicate.sh を 編 集 し て 環 境 変 数
INFOSERVICE_HOME、PGSQL_HOMEの内容を記述しておきます。
当該スクリプトのうち、以下の網掛けで示した箇所にそれぞれ記述します。(先頭 10 行を抜粋)
#!/bin/sh
INFOSERVICE_HOME=/PATH/TO/INFOSERVICE_HOME PGSQL_HOME=/PATH/TO/PGSQL_HOME
INFOSERVICE_TMP=${INFOSERVICE_HOME}/tmp DUMP_FILE=${INFOSERVICE_TMP}/part_dump.txt
NAREGI Middleware使用手引書(管理者編)
62
USAGE="Usage: `basename $0` db_name [-a|-f filename] source target"
export INFOSERVICE_HOME
実行時、DB名にはmcdもしくはscdが指定可能です。
複 製 CIM ク ラ ス 列 挙 フ ァ イ ル は 以 下 の 例 の よ う に 記 述 し ま す 。(こ の 例 は NRG_FileSystemとNRG_GridServiceを指定する場合)
NRG_FileSystem NRG_GridService
また、前もって複製元ホスト及び複製先ホストにおいてはコマンド実行ホストの
~/.postgresql/以下に配置された証明書によるPostgreSQLへの接続を可能とする設定を行
います。
以下に実行例を示します。(例では scd1.naregi.org の scd データベースの内容のうち classrep.lstに列挙されたクラスのレコードをscd2.naregi.orgのscdデータベースに複製し ます)
% ${INFOSERVICE_HOME}/admintool/cim_class_replicate.sh classrep.lst scd scd1.naregi.org scd2.naregi.org
このコマンドはバックアップなどの目的のために cron による定期実行を設定するこ とが可能です。以下に1日1回(午前0時)/naregi-v1/IS/replicate.lstに列挙されたクラス をmcd1.naregi.orgからmcd2.naregi.orgに複製するcrontabの設定例を示します。
0 0 * * * /naregi-v1/IS/infoservice/admintool/cim_class_replicate.sh mcd /naregi-v1/IS/replicate.lst mcd1.naregi .org mcd2.naregi.org
なお、コマンド(cim_class_replicate.sh)や複製クラス列挙ファイルはそれぞれ絶対パス で記述します。
8.4.3 セルドメインデータベースのマージ
セルドメインISの多重化構成をとった際、多重化した資源情報データベースの内容を マージすることができます。
データベースをマージするコマンドは以下の書式で実行します。
% cdmerge.sh DB名 比較CIMクラス列挙ファイル ホスト1 ホスト2
本コマンド実行の前提として環境変数INFOSERVICE_HOME、PGSQL_HOMEの設定 を行います。実行時、DB名にはmcdもしくはscdが指定可能です。
比 較 CIM ク ラ ス 列 挙 フ ァ イ ル は 以 下 の 例 の よ う に 記 述 し ま す 。(こ の 例 は NRG_OperatingSystemとCIM_Processorを指定する場合)
NRG_OperatinsSystem
NAREGI Middleware使用手引書(管理者編)
63 CIM_Processor
また、前もってホスト 1 及びホスト 2 においてはコマンド実行ホストの~/.postgresql/
以下に配置された証明書によるPostgreSQLへの接続を可能とする設定を行います。
以下に実行例を示します。(例では mcd1.naregi.orgとmcd2.naregi.orgのmcdデータベ ースにあるテーブルのうち、merge_class.lstに列挙されたクラスのレコードをマージしま す)
% ${INFOSERVICE_HOME}/admintool/cdmerge.sh mcd merge_class.lst mcd1.naregi.or g mcd2.naregi.org
8.4.4 セルドメインデータベースにおけるデータの削除
時系列情報蓄積DBを設置したセルドメインデータベースにおいては、不要になった 古いデータは適宜削除します。以下に、1日1回(午前0時)一週間以上古いデータを
削除するcrontabの設定例を示します。
0 0 * * * /naregi-v1/pgsql/bin/psql scd -c "DELETE FROM db_root WHERE time_stamp <
(CURRENT_TIMESTAMP-INTERVAL'7 day');"
なお、「/naregi-v1/pgsql」は環境変数PGSQL_HOMEの値であり、これは環境変数では なくその値を直接書きます。
8.4.5 資源利用記録およびSBC関連情報におけるデータの削除
資源利用記録及びSBC関連情報はMCD DBに蓄積されてゆくため、不要になった古 い情報を適宜削除します。以下に1日1 回、1ヶ月以上前に終了したジョブに関するデ ータを削除するcrontabの設定例を示します。
0 0 * * * /naregi-v1/pgsql/bin/psql mcd -c 'delete from
"NRG_ConcreteJobReservationLog" where "GlobalJobID" in (select "GlobalJobID"
from "NRG_UsageRecordEndTime");'
10 0 * * * /naregi-v1/pgsql/bin/psql mcd -c 'delete from
"NRG_ConcreteJobReservationLogRecord" where "GlobalJobID" in (select
"GlobalJobID" from "NRG_UsageRecordEndTime");' 20 0 * * * /naregi-v1/pgsql/bin/psql mcd -c "delete from
¥"NRG_JobProcessingStatistics¥" where ¥"GlobalJobID¥" in (select
¥"GlobalJobID¥" from ¥"NRG_UsageRecordEndTime¥" where ¥"EndTime¥" <
(current_timestamp - interval '1 month' ) );"