<第1の実施形態>
以下、本発明の第1の実施形態について、図面を参照して説明する。
図1は、本発明の第1の実施形態におけるディザスタリカバリシステム1の概要を示す構成図である。同図に示すようにディザスタリカバリシステム1は、複数のデータセンタDCがIPネットワークであるネットワーク5を介して接続されてなる。このデータセンタDCには、リカバリ元データセンタDC−A、および第1リカバリ先データセンタDC−B〜第nリカバリ先データセンタDC−n(nは自然数。)が含まれる。なお、これら第1リカバリ先データセンタDC−B、および第1リカバリ先データセンタDC−B〜第nリカバリ先データセンタDC−nの構成は同一であるため、以下、これらを区別しない場合には、リカバリ先データセンタDCと総称して説明する。一般にディザスタリカバリシステムとは、当該ディザスタリカバリシステムに含まれるデータセンタDCのうちの、1つまたは複数のデータセンタDCが災害等の障害により使用できなくなった場合に、使用可能な他のデータセンタDCを使用することにより、当該ディザスタリカバリシステムを利用するアプリケーションシステムを継続的に動作させる仕組みである。ここで、アプリケーションシステムとは、コンピュータの利用者がコンピュータ上で実現したい機能を、当該利用者に提供するソフトウエアを動作させるコンピュータシステムである。
このディザスタリカバリシステム1の概要について説明する。ディザスタリカバリシステム1は、リカバリ元データセンタDC−Aにおいて動作するアプリケーションシステムが利用するリソースを、他のデータセンタDC(例えば、リカバリ先データセンタDC−B)に確保する。ここでリソースとは、アプリケーションシステムが使用するデータを記憶させる記憶装置(例えば、半導体メモリやハードディスク)や、アプリケーションシステムを構成するソフトウエアを動作させるCPU(Central Processing Unit)など、アプリケーションシステムの動作に必要なコンピュータ資源である。ディザスタリカバリシステム1は、リカバリ元データセンタDC−Aにおいてアプリケーションシステムが生成したデータをリカバリ元データセンタDC−Aのデータ記憶部に記憶させる。また、ディザスタリカバリシステム1は、リカバリ先データセンタDC−Bに確保したリソースを利用して、リカバリ元データセンタDC−Aのデータ記憶部に記憶させたデータと同一のデータを、ネットワーク5を介して送信し、リカバリ先データセンタDC−Bのデータ記憶部に記憶させる。つまり、ディザスタリカバリシステム1は、アプリケーションシステムが生成したデータを、リカバリ元データセンタDC−Aのデータ記憶部と、リカバリ先データセンタDC−Bのデータ記憶部とに記憶させる。これにより、ディザスタリカバリシステム1は、リカバリ元データセンタDC−Aにアプリケーションシステムを動作させることができない障害が発生した場合に、リカバリ先データセンタDC−Bにおいてアプリケーションシステムを動作させることができる。このようにして、ディザスタリカバリシステム1は、リカバリ元データセンタDC−Aが使用できなくなった場合においても、アプリケーションシステムを継続的に動作させる。すなわち、ディザスタリカバリシステム1は、ネットワーク5を介して接続される複数のデータセンタDCが備えるデータ記憶装置にデータを記憶させて、当該データを利用するアプリケーションシステムの障害復旧を可能にする。
このディザスタリカバリシステム1の各データセンタDCに対するアプリケーションシステム2の配置の一例について、図2を参照して説明する。
図2は、本実施形態におけるアプリケーションシステム2の配置の一例を示す模式図である。同図に示すように、各リカバリ先データセンタDCは、1または複数の物理サーバを備えている。例えば、第1リカバリ先データセンタDC−Bは、物理サーバ210A、物理サーバ210Bおよび物理サーバ210Cを備えている。同様に、第2リカバリ先データセンタDC−Cは、物理サーバ220A、物理サーバ220Bおよび物理サーバ220Cを備えている。ディザスタリカバリシステム1のリカバリ対象のアプリケーションシステム2は、これらの物理サーバのうち、いずれか1つまたは複数の物理サーバをリカバリ先にして配置される。また、ディザスタリカバリシステム1のリカバリ対象のアプリケーションシステム2には、一例として、アプリケーションシステム2Aと、アプリケーションシステム2Bとが含まれている。リカバリ元データセンタDC−Aは、アプリケーションシステム2Aと、アプリケーションシステム2Bとを動作させて、利用者に各アプリケーションシステムを提供する。ディザスタリカバリシステム1は、アプリケーションシステム2Aと、アプリケーションシステム2Bとのリカバリ先データセンタDCとして、第1リカバリ先データセンタDC−Bを選択する。このうち、アプリケーションシステム2Aは、第1リカバリ先データセンタDC−Bの物理サーバ210AおよびCに配置される。また、アプリケーションシステム2Bは、第1リカバリ先データセンタDC−Bの物理サーバ210Bに配置される。以下、ディザスタリカバリシステム1が各アプリケーションシステム2の配置先にするリカバリ先データセンタDCを選択する仕組みについて説明する。
図3は、本実施形態におけるディザスタリカバリシステム1の構成の一例を示す構成図である。ディザスタリカバリシステム1は、上述したようにリカバリ元データセンタDC−Aと、リカバリ先データセンタDCとを備えている。まず、このうちリカバリ先データセンタDCの構成について説明する。リカバリ先データセンタDCには、上述したように第1リカバリ先データセンタDC−Bと、第2リカバリ先データセンタDC−Cとが含まれる。
第1リカバリ先データセンタDC−Bは、複数の物理サーバ210と、通信部211と、第1リソース管理部215とを備えている。
通信部211は、リカバリ元データセンタDC−Aからネットワーク5を介して供給されるデータを受信するとともに、ネットワーク5を介してリカバリ元データセンタDC−Aにデータを送信する。このリカバリ元データセンタDC−Aからネットワーク5を介して供給されるデータには、後述する同期情報が含まれている。また、ネットワーク5を介してリカバリ元データセンタDC−Aに送信されるデータには、第1リソース管理部215が管理する第1リカバリ先データセンタDC−Bが提供可能なリソースを示す提供可能リソース情報が含まれている。
物理サーバ210は、アプリケーションシステム2が生成するデータを記憶する。具体的には、物理サーバ210は、アプリケーションシステム2によって生成されたデータであって、リカバリ元データセンタDC−Aからネットワーク5および通信部211を介して第1リカバリ先データセンタDC−Bに供給されるデータを記憶する。第1リカバリ先データセンタDC−Bは、複数の物理サーバ210として、物理サーバ210A、物理サーバ210B、および物理サーバ210Cを備えている。これら物理サーバ210A、物理サーバ210B、および物理サーバ210Cの構成は同一であるため、以下、これらを区別しない場合には、物理サーバ210と総称して説明する。物理サーバ210は、不図示のCPUと、メモリと、ハードディスクとを備えている。物理サーバ210は、通信部211から供給されるデータをCPUによって取得し、取得したデータをメモリおよびハードディスクに書き込む。また、物理サーバ210は、メモリおよびハードディスクに書き込まれているデータをCPUによって読み出し、読み出したデータを通信部211に供給する。
第1リソース管理部215は、第1リカバリ先データセンタDC−Bが提供可能なリソースを管理するとともに、管理した結果に基づいて、当該提供可能なリソースを示す提供可能リソース情報を生成する。具体的には、第1リソース管理部215は、複数の物理サーバ210のそれぞれが備えるCPU、メモリ、およびハードディスクのリソースのうち、未使用のリソースを管理する。より具体的には、第1リソース管理部215は、各物理サーバ210が備えるCPUコア数のうち、使用されていないCPUコア数を、自身が備える記憶部の残リソーステーブルに記憶する。また、第1リソース管理部215は、各物理サーバ210が備えるメモリの記憶量のうち、使用されていないメモリ記憶量を、自身が備える記憶部の残リソーステーブルに記憶する。また、第1リソース管理部215は、各物理サーバ210が備えるハードディスクの記憶量のうち、使用されていない記憶量を、自身が備える記憶部の残リソーステーブルに記憶する。この残リソーステーブルについては、後述する。
第1リカバリ先データセンタDC−Bと同様にして、第2リカバリ先データセンタDC−Cは、複数の物理サーバ220と、通信部221と、第2リソース管理部225とを備えている。また、第2リカバリ先データセンタDC−Cは、複数の物理サーバ220として、物理サーバ220A、物理サーバ220B、および物理サーバ220Cを備えている。これら物理サーバ220A、物理サーバ220B、および物理サーバ220Cの構成は同一であるため、以下、これらを区別しない場合には、物理サーバ220と総称して説明する。また、通信部221、および第2リソース管理部225は、それぞれ通信部211および第1リソース管理部215と同様の構成であるため、説明を省略する。
次に、リカバリ元データセンタDC−Aの構成について説明する。リカバリ元データセンタDC−Aは、アプリケーションシステム2と、リカバリ元データ記憶部3と、リソース管理装置100と、同期情報取得部106とを備えている。このリカバリ元データ記憶部3には、アプリケーションシステム2が生成したデータが記憶される。
アプリケーションシステム2とは、ディザスタリカバリシステム1がリカバリ対象とする、例えば、アプリケーションシステム2Aおよびアプリケーションシステム2Bである。アプリケーションシステム2は、自身が動作させるソフトウエアによって生成したデータを、リカバリ元データ記憶部3に記憶させる。また、アプリケーションシステム2は、アプリケーションシステム2が要求するリソースを示す、要求リソース情報を出力する。この要求リソース情報については、後述する。
同期情報取得部106は、アプリケーションシステム2がリカバリ元データ記憶部3に記憶させる同期情報を取得する。ここで、同期情報とは、アプリケーションシステム2が生成したデータであり、ディザスタリカバリシステム1がリカバリ対象とするデータである。
リソース管理装置100は、要求リソース情報取得部101と、提供可能リソース情報取得部102と、遅延情報取得部103と、選択部104と、通信部(送信部)105とを備えている。
要求リソース情報取得部101は、アプリケーションシステム2の障害復旧に必要なリソースを示す要求リソース情報を取得する。具体的には、要求リソース情報取得部101は、アプリケーションシステム2が出力する要求リソース情報を取得する。
提供可能リソース情報取得部102は、リカバリ先データセンタDC(データ記憶装置)の物理サーバ210が提供可能なリソースを示す提供可能リソース情報を取得する。具体的には、提供可能リソース情報取得部102は、第1リカバリ先データセンタDC−Bの第1リソース管理部215が生成する提供可能リソース情報を、通信部211、ネットワーク5および通信部105を介して取得する。また、提供可能リソース情報取得部102は、第2リカバリ先データセンタDC−Cの第2リソース管理部225が生成する提供可能リソース情報を、通信部221、ネットワーク5および通信部105を介して取得する。このようにして、提供可能リソース情報取得部102は、各リカバリ先データセンタDCから提供可能リソース情報を取得する。
遅延情報取得部103は、リカバリ先データセンタDC(データ記憶装置)の物理サーバ210との通信を行うネットワーク5の遅延状況を示す遅延情報を取得する。具体的には、遅延情報取得部103は、リカバリ元データセンタDC−Aの通信部105と、第1リカバリ先データセンタDC−Bの通信部211との間のネットワーク5の遅延時間を算出し、算出した遅延時間を遅延情報として取得する。例えば、遅延情報取得部103は、所定の間隔(例えば、1時間毎)により、リカバリ元データセンタDC−Aの通信部105から、各リカバリ先データセンタDCに対して、ネットワーク5を介した情報の到達性を確認する通信(例えば、ping)を行うことにより、遅延時間を算出し、算出した遅延時間を遅延情報として取得する。なお、第1リカバリ先データセンタDC−Bとの間の遅延時間の算出について、遅延情報取得部103は、リカバリ元データセンタDC−Aの通信部105がネットワーク5に情報(例えば、同期情報)を送信してから、第1リカバリ先データセンタDC−Bの通信部211から当該同期情報の書込み完了を示す情報を受信するまでの時間を計測して、ネットワーク5の遅延時間を算出してもよい。この場合には、第1リカバリ先データセンタDC−Bの通信部211は、第1リカバリ先データセンタDC−Bからネットワーク5を介して受信した同期情報が物理サーバ210に書き込まれたことを示す情報(例えば、同期情報の書込み完了を示す情報)を、物理サーバ210から取得する。次に、通信部211は、取得した同期情報の書込み完了を示す情報を、ネットワーク5を介してリカバリ元データセンタDC−Aに送信する。遅延情報取得部103は、このようにして取得した同期情報の書込み完了を示す情報に基づいて、ネットワーク5の遅延状況を示す遅延情報を取得する。
また、遅延情報取得部103は、第1リカバリ先データセンタDC−Bの場合と同様にして、第2リカバリ先データセンタDC−Cの通信部211との間のネットワーク5の遅延時間に基づく遅延情報を取得する。すなわち、リカバリ元データセンタDC−Aの通信部105と、第2リカバリ先データセンタDC−Cの通信部211との間のネットワーク5の遅延時間を算出し、算出した遅延時間を遅延情報として取得する。
選択部104は、取得された要求リソース情報と、提供可能リソース情報と、遅延情報とに基づいて、複数のリカバリ先データセンタDC(データ記憶装置)の中からアプリケーションシステム2が利用するデータ(例えば、同期情報)を記憶させるリカバリ先データセンタDC(データ記憶装置)を選択する。具体的には、選択部104は、取得された要求リソース情報が示すリソースと、取得された提供可能リソース情報が示すリソースとを比較した結果に基づいて、複数のリカバリ先データセンタDCの中から、アプリケーションシステム2が利用する同期情報を記憶させるリカバリ先データセンタDCの候補を抽出する。このとき選択部104は、要求リソース情報が示すリソースに比して、提供可能リソース情報が示すリソースが大きいリカバリ先データセンタDCを、アプリケーションシステム2が利用する同期情報を記憶させるリカバリ先データセンタDCの候補として抽出する。次に、選択部104は、要求リソース情報と、取得された遅延情報とを比較した結果に基づいて、抽出したリカバリ先データセンタDCの候補の中から、アプリケーションシステム2が利用する同期情報を記憶させるリカバリ先データセンタDCを選択する。ここで、要求リソース情報には、リカバリ先データセンタDCに対するデータ(例えば、同期情報)の書き込み遅延の程度を示す書込遅延情報(例えば、ディスク書き込み待ち率)が含まれている。このディスク書き込み待ち率とは、アプリケーションシステム2が同期情報を生成した回数に対する、生成した同期情報の転送が待たされた回数の割合である。ここでいう同期情報の転送とは、同期情報をリカバリ元データセンタDC−Aからリカバリ先データセンタDCに送信して、送信した同期情報をリカバリ先データセンタDCにおいて記憶させることである。このディスク書き込み待ち率の算出は、アプリケーションシステム2において行われる。アプリケーションシステム2は、前回生成した同期情報の転送動作が完了する前に、同期情報を新たに生成したことにより、新たに生成した同期情報の転送動作が待たされたか否かに基づいて、ディスク書き込み待ち率を算出する。そしてアプリケーションシステム2は、算出したディスク書き込み率を、不図示の記憶部が有するディスク書き込み待ち率テーブルに記憶させる。アプリケーションシステム2は、ディスク書き込み待ち率テーブルに記憶させたディスク書き込み待ち率を、要求リソース情報に含めて選択部104に出力する。このディスク書き込み待ち率テーブルの詳細については後述する。
次に、選択部104は、要求リソース情報に含まれるディスク書き込み待ち率の大きさを、各アプリケーションシステム間(例えば、アプリケーションシステム2A、およびアプリケーションシステム2B)において比較する。次に、選択部104は、比較した結果と、取得した遅延情報とに基づいて、アプリケーションシステム2のリカバリ先データセンタDCを選択する。より具体的には、選択部104は、ディスク書き込み待ち率が相対的に大きいアプリケーションシステム2(例えば、アプリケーション2A)のリカバリ先データセンタDCとして、遅延情報が示すネットワーク5の遅延時間が相対的に短いリカバリ先データセンタDC(例えば、第1リカバリ先データセンタDC−B)を選択する。すなわち、選択部104は、取得された要求リソース情報が示すリソースと、取得された提供可能リソース情報が示すリソースとを比較した結果と、要求リソース情報に含まれる書込遅延情報と、取得された遅延情報とを比較した結果とに基づいて、複数のリカバリ先データセンタDCの中からアプリケーションシステムが利用するデータを記憶させるリカバリ先データセンタDCを選択する。なお、ここでは、アプリケーションシステム2は、ディスク書き込み待ち率を実測によって算出しているが、これに限られない。例えば、アプリケーションシステム2は、アプリケーションシステム2の規模や、アプリケーションシステム2の利用者数、アプリケーションシステム2が利用者に利用される頻度(例えば、単位時間当たりのページビュー)に基づいて、ディスク書き込み待ち率を推定してもよい。また、例えば、アプリケーションシステム2は、ディスク書き込み待ち率をOS(Operating System)から取得してもよい。ここで、例えば、OSがLinux(登録商標)である場合には、アプリケーションシステム2は、iostatやvmstatといったコマンドのiowaitをディスク書き込み待ち率として使用してもよい。
通信部(送信部)105は、選択部104が選択したリカバリ先データセンタDC(データ記憶装置)に、アプリケーションシステム2が利用するデータ(例えば、同期情報)を送信する。このようにして、ディザスタリカバリシステム1は、アプリケーションシステム2が生成したデータ(例えば、同期情報)を、リカバリ元データ記憶部3に記憶させるとともに、選択部104が選択したリカバリ先データセンタDC(データ記憶装置)に記憶させる。
次に、図4を参照して、ディザスタリカバリシステム1の動作について説明する。
図4は、本実施形態におけるディザスタリカバリシステム1の動作の一例を示すフローチャートである。ここでは、一例として、アプリケーションシステム2Bのリカバリ先データセンタを選択する動作について説明する。
まず、アプリケーションシステム2Bは、リソース管理装置100に対してリソース確保通知を出力する(ステップS2−10)。ここで、リソース確保通知とは、アプリケーションシステム2Bが要求するリソースをリカバリ先データセンタDCに確保するためにアプリケーションシステム2Bからリソース管理装置100に対して出力される情報である。このリソース確保通知には、アプリケーションシステム2Bが要求するリソースを示す要求リソース情報が含まれている。具体的には、アプリケーションシステム2Bは、リソース管理装置100に対してアプリケーションシステム2Bのリソース確保通知を出力する。このアプリケーションシステム2Bのリソース確保通知には、アプリケーションシステム2Bが要求するリソースの一例として、CPU”2core”、メモリ(Mem)”4GB”、ハードディスク(Disc)”100GB”を示す要求リソース情報が含まれている。
次に、リソース管理装置100の要求リソース情報取得部101は、アプリケーションシステム2Bから出力されるリソース確保通知を取得する(ステップS100−10)。上述したように、このリソース確保通知には、要求リソース情報が含まれている。要求リソース情報取得部101は、取得した要求リソース情報を不図示の記憶部に記憶させる。この要求リソース情報取得部101が取得する要求リソース情報について図5を参照して説明する。
図5は、本実施形態の要求リソース情報取得部101が記憶させる要求リソース情報の一例を示す図である。要求リソース情報とは、アプリケーションシステム2の名称を示すアプリケーションシステム名と、当該アプリケーションシステム2が要求するリソースの量を示す情報とが関連付けられている情報である。具体的には、要求リソース情報を記憶する記憶部には、アプリケーションシステム名”アプリケーションシステム2A”と、要求するリソースの量としてのCPU”4core”と、メモリ(Mem)”16GB”と、ハードディスク(Disc)”30GB”とが関連付けられて記憶されている。また、アプリケーションシステム名”アプリケーションシステム2A”と、要求するリソースの量としてのCPU”1core”と、メモリ(Mem)”8GB”と、ハードディスク(Disc)”60GB”とが関連付けられて記憶されている。また、アプリケーションシステム名”アプリケーションシステム2B”と、要求するリソースの量としてのCPU”1core”と、メモリ(Mem)”2GB”と、ハードディスク(Disc)”50GB”とが関連付けられて記憶されている。
再び、図4を参照してディザスタリカバリシステム1の動作について説明する。リソース管理装置100は、各リカバリ先データセンタDCに対して、提供可能リソース情報送信要求を送信する(ステップS100−20)。ここで、提供可能リソース情報送信要求とは、リカバリ先データセンタDCがアプリケーションシステム2に提供することが可能なリソースを示す情報を、リソース管理装置100に対して送信することをリカバリ先データセンタDCに対して要求する情報である。
次に、各リカバリ先データセンタDCは、提供可能リソース情報送信要求を受信すると、提供可能リソース情報を送信する。具体的には、第1リカバリ先データセンタDC−Bは、リソース管理装置100から提供可能リソース情報送信要求を受信すると、第1リソース管理部215が生成する提供可能リソース情報を、リソース管理装置100に対して送信する(ステップS21−10)。また、第2リカバリ先データセンタDC−Cは、リソース管理装置100から提供可能リソース情報送信要求を受信すると、第2リソース管理部225が生成する提供可能リソース情報を、リソース管理装置100に対して送信する(ステップS22−10)。ここで、一例として、第1リソース管理部215が提供可能リソース情報を生成する仕組みについて、図6から図8を参照して説明する。
図6は、本実施形態の第1リソース管理部215が記憶する残リソーステーブルの一例を示す図である。第1リソース管理部215は、各物理サーバ210が備えるリソースのうち、使用されていないCPUコア数と、メモリの記憶量と、ハードディスクの記憶量とを不図示の記憶部が有する残リソーステーブルに記憶させる。具体的には、第1リソース管理部215は、物理サーバ名”物理サーバ210A”と、CPUコア数”12core”と、メモリ(Mem)の記憶量”20GB”と、ハードディスク(Disc)の記憶量”100GB”とを関連付けて、不図示の記憶部が有する残リソーステーブルに記憶させる。また、第1リソース管理部215は、物理サーバ210Bの残リソースとして、物理サーバ名”物理サーバB”と、CPUコア数”2core”と、メモリ(Mem)の記憶量”3GB”と、ハードディスク(Disc)の記憶量”60GB”とを関連付けて、不図示の記憶部が有する残リソーステーブルに記憶させる。同様に、第1リソース管理部215は、物理サーバ名”物理サーバ210C”と、CPUコア数”4core”と、メモリ(Mem)の記憶量”16GB”と、ハードディスク(Disc)の記憶量”90GB”とを関連付けて、不図示の記憶部が有する残リソーステーブルに記憶させる。
次に、図7を参照して本実施形態の第1リソース管理部215が記憶するリカバリ先登録済みリソーステーブルの一例について説明する。
図7は、本実施形態の第1リソース管理部215が記憶するリカバリ先登録済みリソーステーブルの一例を示す図である。第1リソース管理部215は、物理サーバ名と、アプリケーションシステム名と、各物理サーバ210が備えるリソースのうちアプリケーションシステム2がリカバリ先として登録しているCPUコア数と、メモリの記憶量と、ハードディスクの記憶量とを関連付けて、不図示の記憶部が有するリカバリ先登録済みリソーステーブルに記憶させる。具体的には、第1リソース管理部215は、物理サーバ名”物理サーバ210A”と、アプリケーションシステム名“アプリケーションシステム2A”と、CPUコア数”1core”と、メモリ(Mem)の記憶量”2GB”と、ハードディスク(Disc)の記憶量”10GB”とを関連付けて、不図示の記憶部が有するリカバリ先登録済みリソーステーブルに記憶させる。また、第1リソース管理部215は、物理サーバ名”物理サーバB”と、アプリケーションシステム名“登録なし”と、CPUコア数”0core”と、メモリ(Mem)の記憶量”0GB”と、ハードディスク(Disc)の記憶量”0GB”とを関連付けて、不図示の記憶部が有するリカバリ先登録済みリソーステーブルに記憶させる。ここで、アプリケーションシステム名“登録なし”とは、物理サーバ210Bに登録されているアプリケーションシステム2が存在していないことを示す。同様に、第1リソース管理部215は、物理サーバ名”物理サーバ210C”と、アプリケーションシステム名“アプリケーションシステム2A”と、CPUコア数”2core”と、メモリ(Mem)の記憶量”4GB”と、ハードディスク(Disc)の記憶量”30GB”とを関連付けて、不図示の記憶部が有するリカバリ先登録済みリソーステーブルに記憶させる。
次に、図8を参照して本実施形態の第1リソース管理部215が記憶するバッファリソーステーブルの一例について説明する。
図8は、本実施形態の第1リソース管理部215が記憶するバッファリソーステーブルの一例を示す図である。ここで、バッファリソースとは、残リソーステーブルに記憶されている未使用リソースのうち、アプリケーションシステム2に使用させないリソースである。このバッファリソースによって、仮に、一時的に要求リソース情報が示すリソースの大きさ(例えば、リソース量)を上回るリソースをアプリケーションシステム2が使用した場合であっても、アプリケーションシステム2が生成する情報を記憶させることができる。つまり、バッファリソースとは、要求されるリソースに対して余分に確保されるリソースである。このバッファリソースの大きさは、物理サーバ210の規模や、物理サーバ210への登録が予定されるアプリケーションシステム2の規模に基づいて、予め設定されている。具体的には、第1リソース管理部215は、CPUコア数”1core”と、メモリ(Mem)の記憶量”1GB”と、ハードディスク(Disc)の記憶量”10GB”とを関連付けて、不図示の記憶部が有するバッファリソーステーブルに記憶させる。
次に、図9を参照して本実施形態の第1リソース管理部215が記憶する提供可能リソーステーブルの一例について説明する。
図9は、本実施形態の第1リソース管理部215が記憶する提供可能リソーステーブルの一例を示す図である。ここで、提供可能リソーステーブルとは、提供可能リソース情報を記憶させるテーブルである。また、提供可能リソース情報とは、物理サーバ210がアプリケーションシステム2に提供することができるリソースの大きさの上限値を示す情報である。第1リソース管理部215は、各物理サーバ210について、上述した残リソーステーブルが示すリソースの大きさから、リカバリ先登録済みテーブルが示すリソースの大きさと、バッファリソーステーブルが示すリソースの大きさとの和を減算したリソースの大きさを、提供可能リソースとして算出する。そして、第1リソース管理部215は、各物理サーバ210について算出したリソースの大きさを提供可能リソース情報として、不図示の記憶部が有する提供可能リソーステーブルに記憶させる。具体的には、第1リソース管理部215は、物理サーバ名”物理サーバ210A”と、CPUコア数”10core”と、メモリ(Mem)の記憶量”17GB”と、ハードディスク(Disc)の記憶量”80GB”とを関連付けて、不図示の記憶部が有する提供可能リソーステーブルに記憶させる。また、第1リソース管理部215は、物理サーバ名”物理サーバB”と、CPUコア数”1core”と、メモリ(Mem)の記憶量”2GB”と、ハードディスク(Disc)の記憶量”50GB”とを関連付けて、不図示の記憶部が有する提供可能リソーステーブルに記憶させる。同様に、第1リソース管理部215は、物理サーバ名”物理サーバ210C”と、CPUコア数”1core”と、メモリ(Mem)の記憶量”11GB”と、ハードディスク(Disc)の記憶量”50GB”とを関連付けて、不図示の記憶部が有する提供可能リソーステーブルに記憶させる。このようにして、第1リソース管理部215は、提供可能リソース情報を生成する。なお、第2リソース管理部225が生成する提供可能リソース情報については、第1リソース管理部215が生成する提供可能リソース情報と同様であるため、説明を省略する。
再び、図4を参照してディザスタリカバリシステム1の動作について説明する。リソース管理装置100の提供可能リソース情報取得部102は、各リカバリ先データセンタDCから送信された提供可能リソース情報を取得する。具体的には、提供可能リソース情報取得部102は、第1リカバリ先データセンタDC−Bから送信された提供可能リソース情報を取得するとともに、第2リカバリ先データセンタDC−Cから送信された提供可能リソース情報を取得する(ステップS100−30)。
次に、リソース管理装置100の遅延情報取得部103は、ネットワーク5の遅延状況を示す遅延情報を取得する(ステップS100−40)。ここで、遅延情報取得部103は、例えば、ネットワーク5の遅延状況を推定して得られた遅延時間に基づく遅延情報を取得する。
次に、リソース管理装置100の選択部104は、リカバリ先データセンタDCの中から、アプリケーションシステム2が利用するリカバリ先データセンタDCを選択する(ステップS100−50)。ここで、選択部104は、ステップS100−10において取得された要求リソース情報と、ステップS100−30において取得された提供可能リソース情報と、ステップS100−40において取得された遅延情報とに基づいて、リカバリ先データセンタDCを選択して、リカバリ先データセンタDCの選択処理を終了する。具体的には、選択部104は、取得された要求リソース情報が示すリソースと、取得された提供可能リソース情報が示すリソースとを比較した結果に基づいて、複数のリカバリ先データセンタDCの中から、アプリケーションシステム2が利用する同期情報を記憶させるリカバリ先データセンタDCの候補を抽出する。次に、選択部104は、要求リソース情報と、取得された遅延情報とを比較した結果に基づいて、抽出したリカバリ先データセンタDCの候補の中から、アプリケーションシステム2が利用する同期情報を記憶させるリカバリ先データセンタDCを選択する。
次に、図10を参照して、ディザスタリカバリシステム1の同期情報の転送動作について説明する。
図10は、本実施形態におけるディザスタリカバリシステム1の同期情報の転送動作の一例を示すフローチャートである。
まず、アプリケーションシステム2は、同期情報を生成して、生成した同期情報をリカバリ元データ記憶部3に記憶させる(ステップS2−20)。
同期情報取得部106は、アプリケーションシステム2が同期情報をリカバリ元データ記憶部3に記憶させたことを検出すると、記憶させた同期情報を取得する(ステップS100−60)。
次に、リソース管理装置100の通信部105は、ステップS100−60において同期情報取得部106が取得した同期情報を、第1リカバリ先データセンタDC−Bに送信する(ステップS100−80)。
次に、第1リカバリ先データセンタDC−Bの通信部211は、リソース管理装置100の通信部105から送信された同期情報を受信すると、物理サーバ210に受信した同期情報を書き込んで記憶させる(ステップS21−20)。さらに、第1リカバリ先データセンタDC−Bの通信部211は、受信した同期情報の書き込みが完了すると、同期情報の書込み完了を示す情報をリソース管理装置100に送信する。
次に、リソース管理装置100は、同期情報の書き込み完了を示す情報をアプリケーションシステム2に出力して、同期情報の転送動作1回あたりの処理を終了する(ステップS100−100)。アプリケーションシステム2は、リソース管理装置100が出力する同期情報の書き込み完了を示す情報を取得すると、同期情報の転送動作を終了して、新たに生成した同期情報の転送動作に移行する。すなわち、ディザスタリカバリシステム1は、上述したステップSS−20からステップS100−100までの動作を繰り返し行うことにより、アプリケーションシステム2が生成する同期情報を転送する。
次に、遅延情報取得部103が遅延情報を取得する動作について説明する。遅延情報取得部103は、所定の間隔(例えば、1時間毎)により、リカバリ元データセンタDC−Aの通信部105から、各リカバリ先データセンタDCに対して、ネットワーク5を介した情報の到達性を確認する通信(例えば、ping)を行うことにより、遅延時間を算出する。次に、遅延情報取得部103は、算出した遅延時間を不図示の記憶部が有するネットワーク遅延テーブルに記憶させる。このネットワーク遅延テーブルについて、図11を参照して説明する。
図11は、本実施形態におけるネットワーク遅延テーブルの一例を示す図である。ネットワーク遅延テーブルとは、リカバリ元データセンタDC−Aと、各リカバリ先データDCとの間のネットワーク5の遅延時間の履歴を示す情報である。具体的には、リソース管理装置100は、データセンタ名“DC−B”と、時間軸(例えば、日付ごと)に並べられているネットワーク遅延時間“10ms”、“7ms”、“9ms”とを関連付けて、リソース管理装置100が備える不図示の記憶部が有するネットワーク遅延テーブルに記憶させる。同様にして、リソース管理装置100は、データセンタ名“DC−C”と、ネットワーク遅延時間“20ms”、“18ms”、“20ms”とを関連付けて、ネットワーク遅延テーブルに記憶させる。
次に、アプリケーションシステム2が、ディスク書き込み待ち率を算出する動作について説明する。アプリケーションシステム2は、前回生成した同期情報の転送動作が完了する前に、同期情報を新たに生成したことにより、新たに生成した同期情報の転送動作が待たされたか否かに基づいて、ディスク書き込み待ち率を算出する。そしてアプリケーションシステム2は、算出したディスク書き込み率を、不図示の記憶部が有するディスク書き込み待ち率テーブルに記憶させる。ここで、ディスク書き込み待ち率とは、同期情報を生成した回数に対する、生成した同期情報の転送が待たされた回数の割合である。このディスク書き込み待ち率について、図12を参照して説明する。
図12は、本実施形態におけるディスク書き込み待ち率の一例を示す図である。具体的には、アプリケーションシステム2は、物理サーバ名“物理サーバA”と、アプリケーションシステム名“アプリケーションシステム2A”と、時系列(例えば、日付ごと)に並べられているディスク書き込み率“1”、“0.9”、“0.8”とを関連付けて不図示の記憶部が有するディスク書き込み待ち率テーブルに記憶させる。また、アプリケーションシステム2は、物理サーバ名“物理サーバB”と、アプリケーションシステム名“アプリケーションシステム2B”と、時系列(例えば、日付ごと)に並べられているディスク書き込み率“0.2”、“0.11”、“0.1”とを関連付けて不図示の記憶部が有するディスク書き込み待ち率テーブルに記憶させる。同様に、アプリケーションシステム2は、物理サーバ名“物理サーバC”と、アプリケーションシステム名“アプリケーションシステム2A”と、時系列(例えば、日付ごと)に並べられているディスク書き込み率“0.1”、“0.01”、“0.1”とを関連付けて不図示の記憶部が有するディスク書き込み待ち率テーブルに記憶させる。
次に、図13を参照して、ディザスタリカバリシステム1のリソース監視動作について説明する。
図13は、本実施形態におけるディザスタリカバリシステム1のリソース監視動作の一例を示すフローチャートである。
アプリケーションシステム2は、要求リソースに変更がある場合には、リソース管理装置100に対してリソース確保通知を出力する(ステップS2−30)。また、アプリケーションシステム2は、要求リソースに変更がない場合には、リソース確保通知を出力しない。なお、アプリケーションシステム2は、要求リソースに変更がない場合には、リソース管理装置100に対して、変更がない要求リソース情報を含むリソース確保通知を出力してもよい。
リソース管理装置100は、アプリケーションシステム2からリソース確保通知が出力された場合には、要求リソースの変更の有無を確認する(ステップS100−110)。また、リソース管理装置100は、アプリケーションシステム2からリソース確保通知が出力されない場合には、所定の時間(例えば、1日)ごとに要求リソースの変更の有無を確認する。リソース管理装置100は、要求リソースの変更がある場合には、要求リソーステーブルを更新する。
次に、リソース管理装置100、第1リカバリ先データセンタDC−B、および第2リカバリ先データセンタDC−Cは、上述したステップS100−20からステップS100−40までと同様にして、提供可能リソース情報と、遅延情報とを取得する(ステップS100−120からステップS100−140まで)。
次に、リソース管理装置100の選択部104は、取得した提供可能リソース情報と、遅延情報とに基づいて、リカバリ先データセンタDCの選択の要否を判定する(ステップS100−150)。具体的には、選択部104は、提供可能リソース情報と、遅延情報とに基づく所定の条件が成立した場合に、リカバリ先データセンタDCの選択が必要と判定し(ステップS100−150:YES)、処理をステップS100−160に進める。一方、選択部104は、提供可能リソース情報と、遅延情報とに基づく所定の条件が成立しなかった場合には、リカバリ先データセンタDCの選択が不要と判定し(ステップS100−150:NO)、リソース監視動作を終了する。
ここで、所定の条件とは、要求リソース情報、提供可能リソース情報、または遅延情報のうち、少なくともいずれかの情報に変化が生じたことを含む条件である。この所定の条件には、一例として、提供可能リソースの大きさが要求リソースの大きさよりも小さくなったこと、および要求リソースの大きさが大きくなったことが含まれる。また、この所定の条件には、ディスク書き込み待ち率の順にアプリケーションシステム2を並べた場合にアプリケーションシステム2の順序が変化したこと、およびネットワーク遅延時間の順にリカバリ先データセンタDCを並べた場合に、リカバリ先データセンタDCの順序が変化したことが含まれる。さらに、この所定の条件には、アプリケーションシステム2が追加、変更、削除されたこと、およびリカバリ先データセンタDCが追加、変更、削除されたことが含まれる。また、この所定の条件には、ディザスタリカバリが実行されたことが含まれる。
以上説明したように、本実施形態のディザスタリカバリシステム1は、リソース管理装置100を備えている。このリソース管理装置100は、要求リソース情報取得部101と、提供可能リソース情報取得部102と、遅延情報取得部103と、選択部104と、通信部(送信部)105とを備えている。
これにより、ディザスタリカバリシステム1は、アプリケーションシステム2が要求するリソースと、リカバリ先データセンタDCが提供可能なリソースとを比較して、リカバリ先データセンタDCを選択する。また、ディザスタリカバリシステム1は、アプリケーションシステム2の動作状況(例えば、ディスク書き込み待ち率)と、ネットワーク5を介した通信の遅延時間とに基づいて、リカバリ先データセンタDCを選択する。つまり、ディザスタリカバリシステム1は、リカバリ先データセンタDCの動作状況およびネットワーク5の通信遅延状況に基づいてリカバリ先データセンタDCを選択するため、アプリケーションシステム2の性能が低下する程度を低減させることができる。
また、ディザスタリカバリシステム1は、要求リソース情報、提供可能リソース情報、または遅延情報の少なくともいずれかの情報に変化が生じた場合に、リカバリ先データセンタDCを選択の判定を開始する。したがって、ディザスタリカバリシステム1は、アプリケーションシステム2から要求されるリソースが変化した場合、リカバリ先データセンタDCの提供可能リソースが変化した場合、またはネットワーク5の遅延時間が変化した場合に、リカバリ先データセンタDCを再度選択することができる。すなわち、ディザスタリカバリシステム1は、ディザスタリカバリシステム1は、要求されるリソースが変化した場合、提供可能リソースが変化した場合、またはネットワーク5の遅延時間が変化した場合であっても、リカバリ先データセンタDCを再度選択することにより、アプリケーションシステム2の性能が低下する程度を低減させることができる。
<第2の実施形態>
以下、本発明の第2の実施形態について、図面を参照して説明する。なお、第1の実施形態と同一の構成については、同一の符号を付してその説明を省略する。
図15は、本発明の第2の実施形態におけるディザスタリカバリシステム1aの構成の一例を示す構成図である。ディザスタリカバリシステム1aは、第1の実施形態において説明したリソース管理装置100が備える通信部105に代えて、データ送信装置300を備える点が、第1の実施形態と異なる。
ディザスタリカバリシステム1aは、リソース管理装置100aと、データ送信装置300を備える。リソース管理装置100aは、要求リソース情報取得部101と、提供可能リソース情報取得部102と、遅延情報取得部103と、選択部104とを備えている。データ送信装置300は、通信部(送信部)301と、切換部302と、検出部303とを備えている。
通信部(送信部)301は、リカバリ先データセンタDC(データ記憶装置)のうちの第1リカバリ先データセンタDC−B(第1のデータ記憶装置)と、第2リカバリ先データセンタDC−C(第2のデータ記憶装置)との、いずれかのリカバリ先データセンタDCにアプリケーションシステム2の障害復旧に用いられるデータを送信する。具体的には、通信部301は、同期情報取得部106がアプリケーションシステム2から取得した同期情報を、第1リカバリ先データセンタDC−Bに送信する。この通信部301は、アプリケーションシステム2が同期情報を生成するごとに、同期情報取得部106が取得した同期情報を、第1リカバリ先データセンタDC−Bに送信する。
検出部303は、通信部(送信部)301が第1リカバリ先データセンタDC−B(第1のデータ記憶装置)に送信したデータについて、第1リカバリ先データセンタDC−Bから第2リカバリ先データセンタDC−C(第2のデータ記憶装置)への転送が完了したことを検出する。ここで、第1リカバリ先データセンタDC−Bから第2リカバリ先データセンタDC−Cにリカバリ先データセンタDCの変更を行う場合について説明する。第1リカバリ先データセンタDC−Bから第2リカバリ先データセンタDC−Cに対する同期情報の転送が完了すると、第1リカバリ先データセンタDC−Bの通信部211は、リカバリ元データセンタDC−Aに対して、転送完了を示す情報を送信する。リカバリ元データセンタDC−Aが備えるデータ送信装置300の通信部301は、この転送完了を示す情報を受信する。検出部303は、通信部301が受信した転送完了を示す情報を取得することにより、第1リカバリ先データセンタDC−Bから第2リカバリ先データセンタDC−Cへの転送が完了したことを検出する。
切換部302は、検出部303が転送完了を検出した場合に、通信部(送信部)301の送信先を第1リカバリ先データセンタDC−B(第1のデータ記憶装置)から第2リカバリ先データセンタDC−Cに切り換える。具体的には、切換部302は、検出部303が転送完了を検出すると、選択部104から切り換え後のリカバリ先データセンタDCを示す情報を取得する。例えば、切換部302は、選択部104から切り換え後のリカバリ先データセンタDCを示す情報として、第2リカバリ先データセンタDC−Cを示す情報を取得する。次に、切換部302は、取得した第2リカバリ先データセンタDC−Cを示す情報に基づいて、通信部301の送信先を第2リカバリ先データセンタDC−Cに切り換える。ここで、リカバリ先データセンタDCを示す情報とは、例えば、リカバリ先データセンタDCの宛先を示すIPアドレスである。
次に、図15を参照して、ディザスタリカバリシステム1aのリカバリ先データセンタDCの変更動作について説明する。
図15は、本実施形態におけるディザスタリカバリシステム1aのリカバリ先データセンタDCの変更動作の一例を示すフローチャートである。
まず、データ送信装置300は、第1リカバリ先データセンタDC−Bに対してリカバリ先の変更通知を送信する(ステップS100−190)。ここで、リカバリ先の変更通知とは、第1リカバリ先データセンタDC−Bとして選択されているリカバリ先データセンタDCに対して、リカバリ先の変更を通知する情報である。このリカバリ先の変更通知には、変更先のリカバリ先データセンタDCを示す情報が含まれている。例えば、リカバリ先の変更通知には、変更先の第2リカバリ先データセンタDC−Cを示すIPアドレスが含まれている。
次に、第1リカバリ先データセンタDC−Bは、リカバリ先の変更通知を受信すると、第1リカバリ先データセンタDC−Bが備える各物理サーバ210に記憶されている同期情報について、リカバリ先の変更通知が示すリカバリ先データセンタDCへの転送を開始する(ステップS21−40)。具体的には、第1リカバリ先データセンタDC−Bは、リカバリ先の変更通知を受信すると、物理サーバ210に記憶されている同期情報について、第2リカバリ先データセンタDC−Cへの転送を開始する。
一方、アプリケーションシステム2は、生成した同期情報をデータ送信装置300に出力する(ステップS2−40)。データ送信装置300は、アプリケーションシステム2が出力する同期情報を取得する(ステップS100−200)。
次に、データ送信装置300の通信部301は、アプリケーションシステム2から取得した同期情報をリカバリ先の変更前のリカバリ先データセンタDCである、第1リカバリ先データセンタDC−Bに送信する(ステップS100−210)。
次に、第1リカバリ先データセンタDC−Bの通信部211は、同期情報を受信すると、物理サーバ210に受信した同期情報を書き込んで記憶させる(ステップS21−50)。さらに、第1リカバリ先データセンタDC−Bの通信部211は、受信した同期情報の書き込みが完了すると、同期情報の書込み完了を示す情報をデータ送信装置300に送信する。
次に、データ送信装置300は、同期情報の書き込み完了を示す情報をアプリケーションシステム2に出力する(ステップS100−220)。ディザスタリカバリシステム1aが備える各部は、上述した、ステップS2−40からステップS100−220まで、すなわち、図15の破線SQ1によって示されるシーケンスを、アプリケーションシステム2が同期情報を生成する毎に繰り返し実行する。
一方、第1リカバリ先データセンタDC−Bの通信部211(転送部)は、ステップS21−50において記憶させた同期情報を読み出して、読み出した同期情報を第2リカバリ先データセンタDC−Cに転送する(ステップS21−60)。なお、この通信部211(転送部)は、ステップS21−50において受信した同期情報を、物理サーバ210に記憶させる前に、第2リカバリ先データセンタDC−Cに転送してもよい。これにより、通信部211は、同期情報を受信してから転送するまでの時間を低減することができる。
ここで、第1リカバリ先データセンタDC−Bは、ステップS21−40において開始した同期情報の転送が、物理サーバ210に記憶されているすべての同期情報について完了すると、リカバリ先変更完了通知をデータ送信装置300、および第2リカバリ先データセンタDC−Cに送信する(ステップS21−70)。ここで、リカバリ先変更完了通知とは、物理サーバ210に記憶されているすべての同期情報について転送が完了したことを示す情報である。
次に、データ送信装置300は、第1リカバリ先データセンタDC−Bからリカバリ先変更完了通知を受信すると、リカバリ先データセンタDCを変更する(ステップS100−230)。具体的には、データ送信装置300の通信部301は、第1リカバリ先データセンタDC−Bからリカバリ先変更完了通知を受信する。次に、検出部303は、通信部301がリカバリ先変更完了通知を受信したことにより、第1リカバリ先データセンタDC−Bから第2リカバリ先データセンタDC−Cへの同期情報の転送が完了したことを検出する。次に、切換部302は、検出部303が転送完了を検出した場合に、通信部(送信部)301の送信先を第1リカバリ先データセンタDC−B(第1のデータ記憶装置)から第2リカバリ先データセンタDC−Cに切り換える。このようにしてデータ送信装置300は、リカバリ先変更完了通知を受信した後にアプリケーションシステム2から取得した同期情報を、変更後のリカバリ先データセンタDCに送信する。
また、第2リカバリ先データセンタDC−Cは、第1リカバリ先データセンタDC−Bからリカバリ先変更完了通知を受信すると、リカバリ先データセンタDCを変更する(ステップS22−40)。具体的には、第2リカバリ先データセンタDC−Cは、データ送信装置300から同期情報を受信できるように、同期情報の送信元を示す情報を変更する。
次に、アプリケーションシステム2は、生成した同期情報をデータ送信装置300に出力する(ステップS2−50)。データ送信装置300は、アプリケーションシステム2が出力する同期情報を取得する(ステップS100−240)。
次に、データ送信装置300の通信部301は、アプリケーションシステム2から取得した同期情報をリカバリ先の変更後のリカバリ先データセンタDCである、第2リカバリ先データセンタDC−Cに送信する(ステップS100−250)。
次に、第2リカバリ先データセンタDC−Cの通信部221は、同期情報を受信すると、受信した同期情報を物理サーバ220に書き込んで記憶させる(ステップS22−50)。さらに、第2リカバリ先データセンタDC−Cの通信部221は、受信した同期情報の書き込みが完了すると、同期情報の書込み完了を示す情報をデータ送信装置300に送信する。
次に、データ送信装置300は、同期情報の書き込み完了を示す情報をアプリケーションシステム2に出力する(ステップS100−260)。ディザスタリカバリシステム1aが備える各部は、上述した、ステップS2−50からステップS100−260まで、すなわち、図15の破線SQ2によって示されるシーケンスを、アプリケーションシステム2が同期情報を生成する毎に繰り返し実行する。そして、ディザスタリカバリシステム1aが備える各部は、アプリケーションシステム2による同期情報の生成が終了すると、処理を終了する。
以上説明したように、本実施形態のディザスタリカバリシステム1aは、データ送信装置300を備えている。このデータ送信装置300は、通信部(送信部)301、切換部302と、検出部303とを備えている。
これにより、ディザスタリカバリシステム1aは、リカバリ先データセンタDCの切り換え中に、アプリケーションシステム2が生成した同期情報について、切り換え前のリカバリ先データセンタDCに送信する。したがって、ディザスタリカバリシステム1aは、リカバリ先データセンタDCの切り換え中に生成された同期情報について、切り換え後のリカバリ先データセンタDCのみならず、切り換え前のリカバリ先データセンタDCに記憶させることができる。仮に、リカバリ先データセンタDCの切り換え中に生成された同期情報について、切り換え後のリカバリ先データセンタDCにのみ送信する場合には、切り換え中にリカバリ元データセンタDC−Aに障害が発生した場合には次のような問題が生じる。すなわち、切り換え中にリカバリ元データセンタDC−Aに障害が発生した場合、アプリケーションが生成したすべての同期情報を記憶しているリカバリ先データセンタDCが存在しないという状況が発生しうる。このように、アプリケーションが生成したすべての同期情報を記憶しているリカバリ先データセンタDCが存在しない場合には、アプリケーションシステムを継続的に動作させることができないことがある。一方、ディザスタリカバリシステム1aは、少なくとも切り換え前のリカバリ先データセンタDCには、アプリケーションが生成したすべての同期情報が記憶されているため、切り換え中にリカバリ元データセンタDC−Aに障害が発生した場合であっても、アプリケーションシステムを継続的に動作させることができる。つまり、ディザスタリカバリシステム1aは、リカバリ先データセンタDCの切り換え中に、リカバリ元データセンタDC−Aに障害が発生する状況に対して、ディザスタリカバリシステムの頑強性を向上させることができる。
なお、本発明における各処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより帳票処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。