(57)【要約】【課題】  複数の計算機間でのデータの共有を計算機やネットワークへの負荷を押さえつつ実現する。【解決手段】  記憶装置サブシステム３は、アプリケーションプログラム１４の通常処理によるディスク３１のデータの更新に対し、その更新内容をディスク３２にコピーする。ディスク３１の内容をホスト２ａから利用できるようにする際、アプリケーションプログラム１４は、ディスク３２へのコピー処理を中断させる。ホスト２ａのアプリケーションプログラム２４は、ディスク３２とディスク３３を交換して、ディスク３３に替えてディスク３２を利用できるようにする。その後、アプリケーションプログラム２４は、入れ替えられたディスクを用いて処理を行う。【選択図】  図１
2006185454.tif 000002
【特許請求の範囲】
【請求項１】
第１の計算機と、第２の計算機と、前記第１及び第２の計算機に接続する記憶装置サブシステムとを備える計算機システムにおけるデータの共有方法において、
前記第１の計算機により利用されるデータを格納した第１の記憶装置と第２の記憶装置とにより、前記第１の記憶装置の内容と前記第２の記憶装置の内容とが同一となるように制御されるペア状態を形成し、
前記第１の記憶装置と前記第２の記憶装置とのペア状態を解除して、前記第１の記憶装置への更新が前記第２の記憶装置へ反映されないように制御し、前記第２の計算機が利用している第３の記憶装置と前記第２の記憶装置とをスワップして、前記第２の計算機による前記第３の記憶装置へのアクセスが前記第２の記憶装置に対して行われるように制御することを特徴とするデータ共有方法。
【請求項２】
第１の計算機と第２の計算機とを含む計算機システムと、第１の記憶装置と第２の記憶装置と第３の記憶装置と第４の記憶装置と前記第１、第２、第３および第４の記憶装置を制御する制御部とを有する記憶装置システムとを含むシステムのデータ共有方法であって、
前記第１の計算機が、前記第１の記憶装置のデータが前記第２の記憶装置に完全にコピーされた状態である第１のデュプレックス状態を形成することを前記制御部へ指示する第１のステップと、
前記制御部が、前記第１の記憶装置のデータを前記第２の記憶装置へコピーすることで前記第１のデュプレックス状態を形成する第２のステップと、
前記第１のデュプレックス状態が形成された後、前記第１の計算機が、前記制御部に、前記第１の計算機からの書込みが前記第１の記憶装置に対してのみ行われるシンプレックス状態を形成させる第３のステップと、
前記シンプレックス状態を形成後、前記第１の計算機が、前記シンプレックス状態が形成されたことを示す第１のメッセージを、前記第１の計算機から前記第２の計算機へ送信する第４のステップと、
前記第１のメッセージを受信した前記第２の計算機が、前記第２の記憶装置からデータを読み出し、読み出したデータを変換して、変換したデータを前記第３の記憶装置へ格納する第５のステップと、
前記第１のメッセージを受信した前記第２の計算機が、前記第３の記憶装置を前記変換データの格納対象であった記憶装置から前記第２の計算機のアプリケーションによるアクセス対象へ変更し、かつ、前記第４の記憶装置を前記第２の計算機のアプリケーションによるアクセス対象から前記変換データの格納対象の記憶装置へ変更するマッピング変更を行うように、前記制御部へ指示する第６のステップと、
前記制御部が、前記マッピング変更を実行する第７のステップと、
前記第２の計算機が、前記マッピング変更処理を終了したことを示す第２のメッセージを前記第２の計算機から前記第１の計算機へ送信する第８のステップと、
前記第２のメッセージを受信した前記第１の計算機が、前記第１の記憶装置のデータが前記第２の記憶装置に完全にコピーされた状態である第２のデュプレックス状態を作成することを、前記制御部へ指示する第８のステップと、および、
前記制御部が、前記第１の記憶装置のデータを前記第２の記憶装置へコピーすることで、前記第２のデュプレックス状態を形成する第９のステップとを有し、
ここで、
前記第１のデュプレックス状態では、前記第１の計算機からの書込み動作は前記第１の記憶装置と前記第２の記憶装置との両方に対して行われ、また、前記第２の計算機からの書込み動作は前記マッピング変更前の前記第４の記憶装置に対して行われ、
前記シンプレックス状態では、前記第２の計算機からの書込み動作は、前記マッピング変更前ではマッピング変更前の前記第４の記憶装置に対して行われ、前記マッピング変更後ではマッピング変更後の前記第３の記憶装置に対して行われ、
前記第２のデュプレックス状態では、前記第１の計算機からの書込み動作は前記第１の記憶装置と前記第２の記憶装置との両方に対して行われ、前記第２の計算機からの書込み動作はマッピング変更後の前記第３の記憶装置に対して行われることを特徴とするシステムのデータ共用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムなどにおける記憶装置システムのデータ共有方法に係り、特に、複数のインタフェースを有する記憶装置サブシステムを備えた計算機システムにおいて、データを共有する方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（パソコン）やワークステーションなどのオープンシステムで、従来、メインフレームで行われてきた業務を行う「ダウンサイジング」が盛んに行われている。メインフレームには、従来から行われてきた業務により大量の情報が蓄積されており、メインフレームによる業務処理で蓄積されてきた情報をパソコンなどの小型のコンピュータからもアクセスしたいという要求がある。
【０００３】
例えば、非特許文献１には、企業内の計算機システムにおいて、メインフレームとオープンシステムとの複合構成の事例が紹介されている。ここに紹介される計算機システムでは、メインフレームにより売り上げ情報の処理が行われ、この結果として蓄積されたデータは、集計されて１日１回オープンシステム側のコンピュータにネットワークを経由して転送される。ユーザは、オープンシステム側のコンピュータ上でデータを参照することができる。このような形態をとることで、メインフレームで扱われる基幹業務のデータを、オープンシステムからアクセスすることが可能になる。このような方式では、メインフレームで扱われる基幹業務が一時的に停止され、全てのデータがネットワークを経由してコピーされる。扱われるデータ量が多ければ、それだけコピーの時間も多くかかる。このため、ホストコンピュータやネットワークの負荷が大きくなり、さらには、長時間にわたって業務を止めなければならないといった問題が生じる恐れがある。
【０００４】
このような問題の解決策の１つとして、複数のホストコンピュータから１つのディスク装置（ボリューム）にアクセスできるようにすることが考えられる。例えば、特許文献１には、複数のインタフェースを持つ記憶装置と、その複数のインタフェースに接続されたそれぞれのホストコンピュータか
ら、そのディスク装置にアクセスする方法が開示されている。この技術によれば、システム間でのデータのコピーが不要となりホストコンピュータの負荷を軽減することができる。
【０００５】
【特許文献１】特開平９−２５８９０８号公報
【非特許文献１】日経コンピュータ別冊「メインフレーム'９８」(日経ＢＰ社)２１４ページ
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１に開示された技術によれば、複数のホストコンピュータから共通のディスク装置にアクセスすることができる。ただし、実際にデータを使用するには、そのデータが論理的に整合性のとれたものでなければならない。例えば、メインフレームからあるファイルのデータの更新が行われているときに、オープンシステムからそのファイルのデータを読み込むと、一貫性のないデータが読み込まれる恐れがある。このため、オープンシステムからのファイルデータの読み込みは、メインフレーム側で行われている処理（トランザクション）が一旦途切れて、ディスク装置に書かれたデータの内容の一貫性が保たれている間に行われる必要がある。しかし、データの内容が一貫性のある状態となるのは、あるトランザクションが完了し、次のトランザクションが始まるまでのごく短い時間でしかない。したがって、特許文献１に開示される技術においても、メインフレーム側の処理をオフライン状態にしてデータの内容に一貫性のある状態をある程度の時間保つようにしなければ、別のホストコンピュータから共通のディスク装置に格納されているデータを読み出して利用することは事実上不可能である。
【０００７】
本発明の目的は、異なるホストコンピュータ間で、アプリケーションソフトの実行を極力中断することなく、共通のファイルにアクセスできるようにすることにある。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するために、第１の計算機と、第２の計算機と、第１及び第２の計算機に接続する記憶装置サブシステムとを備える計算機システムにおいて、第１の計算機が使用する第１の記憶装置の内容と同一の内容を持つ第２の記憶装置を作成し、第２の記憶装置の内容を第２の計算機から使用できるようにする。
【０００９】
好ましくは、第２の記憶装置は、第１の計算機による通常の処理において、第１の記憶装置に対する第１の計算機からの更新が反映されるように制御される。第２の記憶装置の内容を第２の計算機から利用できるようにする際には、第１の記憶装置への更新が第２の記憶装置に反映されないように制御される。
【００１０】
本発明の一つの態様では、第２の記憶装置を、第２の計算機が使用していた第３の記憶装置と入れ替え、第２の計算機から第２の記憶装置を使用できるようにする。
【００１１】
また、本発明の他の態様においては、第２の記憶装置の内容を第３の記憶装置にコピーし、第３の記憶装置を第２の計算機が使用していた第４の計算機と入れ替える。
【００１２】
本発明のさらに他の態様によれば、第２の記憶装置に、ある時点における第１の記憶装置の内容の写しを保持しておく。第１の記憶装置の内容が更新されたとき、その更新の内容を第３の記憶装置に記録する。第１の記憶装置の内容を第２の計算機から使用できるようにするために、第３の記憶装置に記録された更新の内容に基づいて、第２の記憶装置の内容を書き換え、第１の記憶装置と同一の内容を第２の記憶装置に作成する。このように作成した第２の記憶装置を第２の計算機が使用していた第４の記憶装置と入れ替えることで、その内容を第２の記憶装置から使用できるようにする。
【００１３】
以上のような構成を採ることにより、第１の計算機がアクセスしていたデータを第２の計算機で使用することができるようになる。
【発明の効果】
【００１４】
本発明によれば、ネットワークや計算機の負荷を極力抑えつつ２つのホスト間でデータを相互利用することができる。
【発明を実施するための最良の形態】
【００１５】
−第１の実施形態−
図１は、本発明が適用された計算機システムの一実施形態における構成例を示す機能ブロック図である。
【００１６】
本実施形態における計算機システムは、ホストコンピュータ（以下、ホストと略す）１ａ、ホスト２ａ、ホスト１ａとホスト２ａに接続される記憶装置サブシステム３ａ、及び、ネットワーク５を含んで構成される。
【００１７】
ホスト１ａは、記憶装置サブシステム３ａとの間のインタフェース１１、ネットワークインタフェース１２、オペレーティングシステム１３、及び、アプリケーションプログラム１４が存在する。ホスト１ａは、物理的には、ＣＰＵ、メモリなどのハードウェアを有して構成されるが、本実施形態の説明において、これらのハードウェアは、特に従来の計算機システムと変わるものではなく、本明細書では説明を省略する。このことは、本実施形態における他の装置についても同様である。オペレーティングシステム１３、アプリケーションプログラム１４は、実際には、図示しないメモリに格納され、やはり図示されていないＣＰＵによって実行されることで種々の機能を実現する。
【００１８】
ホスト２ａは、記憶装置サブシステム３ａとの間のインタフェース２１、ネットワークインタフェース２２、オペレーティングシステム２３、及びアプリケーションプログラム２４を有する。オペレーティングシステム２３、及びアプリケーションプログラム２４は、オペレーティングシステム１３、アプリケーションプログラム１４と同様に、図示しないメモリに格納され、やはり図示されていないＣＰＵによって実行される。
【００１９】
記憶装置サブシステム３ａは、複数のディスク３１、３２、３３、ホスト１ａと接続するインタフェース４１、ホスト２ａと接続するインタフェース４２、ディスク制御装置４３、及びコンソール４４を有する。ディスク３１、３２、３３は、それぞれ単体の磁気ディスク装置、あるいは、ディスクアレイのように、複数の物理的な磁気ディスク装置（ドライブ）をまとめて、ホストから見て１または複数の論理的なディスク装置（論理ボリューム）として見えるものでも良い。後者の場合、ディスク３１、３２、３３は、それぞれ論理ボリュームである。本実施形態では、ホスト１ａからはディスク３１に、またホスト２ａからはディスク３２、３３にアクセスできるものとする。
【００２０】
ディスク制御装置４３は、その機能として、ディスクのミラーリング機能と、ディスクマッピング変更機能を有する。
【００２１】
ミラーリング機能は、ある時点のディスクの内容をそのまま別ディスクにコピーとして残すことのできる機能である。ミラーリング機能の具体的な例として、ディスク３１のコピーをディスク３２にとる場合について考える。ここでは、コピー元となるディスク３１を正ディスク、コピー先となるディスク３２を副ディスクと呼ぶ。
【００２２】
ユーザは、記憶装置サブシステム３ａに対して、ディスク３１、３２をそれぞれ正／副ディスクとして関連付け、コピー開始を指示する。この処理をペア形成と呼ぶ。ここでの指示は、例えば、ホスト１ａからインタフェース１１を介して、あるいは、コンソール４４から出される。コンソール４４から指示を与える場合には、ユーザが直接コンソール４４を操作して指示を出す他、ホスト１ａからネットワーク経由でコンソール４４に指示を出し、これを受けてコンソール４４が記憶装置サブシステム３ａに指示を出すようにしてもよい。本実施形態ではホスト１ａからネットワーク経由でコンソール４４に対して指示が出され、コンソールからの指示に基づいてコピーが開始されるものとして説明するが、いずれの方法をとっても本発明のおける機能は実現できる。
【００２３】
ペア形成が指示されると、ディスク制御装置４３がディスク３１からディスク３２へのコピーを実施する。コピー開始時点では、ディスク３１、３２のデータ内容は一致していない。この状態を「ペア形成中」と呼ぶ。ペア形成中状態では、記憶装置サブシステム３ａは、ディスク３１からディスク３２へのデータのコピーを実施する。ディスク制御装置４３は、この間も、ホスト１ａからディスク３１へのリード／ライトアクセスがあれば、これを受け付ける。ホスト１ａからライトアクセスがあってディスク３１の内容を更新したとき、ディスク制御装置４３は、その更新内容をディスク３２にも反映する。
【００２４】
コピー処理が実施されて、ディスク３１の内容がディスク３２に完全にコピーされた状態を「duplex状態」と呼ぶ。duplex状態のとき、ホスト１ａからディスク３１へライトアクセスがあると、ディスク制御装置４３は、その内容をディスク３２へも反映させる。
【００２５】
記憶装置サブシステム３ａがduplex状態で動作中、ディスク３１のある時点の状態をディスク３２に保存したい時、ユーザは、記憶装置サブシステム３ａに対して「ペア解除」の指示を送る。記憶装置サブシステム３は、ペア解除の指示を受けると、ディスク３２をその時点の状態で保存する。すなわち、「ペア解除」の指示を受けると、ディスク制御装置４３は、これ以降、ホスト１ａからディスク３１へライトアクセスによりディスク３１の内容を更新しても、ディスク３２へはその更新を反映しない。この状態を「simplex状態」と呼ぶ。
【００２６】
simplex状態になった後、再度ディスク３１とディスク３２をduplex状態にしたい時、ユーザは、記憶装置サブシステム３ａに対して、ディスク３１、３２間でのコピー開始を指示する。この場合、ディスク３１とディスク３２の多くのデータは同じ内容であり、コピー量は少なく、比較的短時間でduplex状態へと移行できる。
【００２７】
ミラーリング機能では、あるディスクに対してもう１台ディスクを用意してペアを形成ておき、duplex状態からsimplex状態に変えることで、任意時点でのディスクのコピーを作成することができる。
【００２８】
例えば、ディスクがＳＣＳＩ（Small Computer System Interface）ディスクの場合、各ディスクにはターゲットＩＤ、ＬＵＮ（Logical Unit Number）が付与されている。各ホストは、これらの識別子によりインタフェースから見える複数のディスクを識別し、アクセス対象のディスクを選定する。記憶装置サブシステム３ａは、ディスクマッピング変更機能により、ホスト１ａ、２ａに認識させるこれらの識別子を自由に変更できる。例えば、最初、ディスク３２はターゲットＩＤが０、ＬＵＮが０であり、ディスク３３はターゲットＩＤが１、ＬＵＮが０である場合に、記憶装置サブシステム３ａは、ある時点でこれを逆にすることができる。すなわち、ディスク３２のターゲットＩＤが１、ＬＵＮが０であり、ディスク３３のターゲットＩＤが０、ＬＵＮが０であるように切り替えることができる。
【００２９】
あるいは、ディスク３３には最初ターゲットＩＤ、ＬＵＮを付与せず、ホストからは見えないようにしておき、ある時点でディスク３３にターゲットＩＤとして１、ＬＵＮとして０を付与し、ホストから見えるようにすることもできる。各ホストはターゲットＩＤ、ＬＵＮでアクセス対象とするディスクを識別している。したがって、マッピング変更機能を用いることで、ホストに意識させることなく、任意の時点で、アクセス先のディスクを切り替えることが可能となる。
【００３０】
図２は、ディスク３１に格納されたホスト１ａのデータをホスト２ａで使用するときに行われる処理の流れを示すフローチャートである。ここでは、以下の点を想定して説明を行う。
【００３１】
ディスク３１とディスク３２がduplex状態にされており、ホスト１ａからは少なくともディスク３１が、ホスト２ａからは少なくともディスク３３が見えるように制御されているものとする。ディスク３２は、ホスト１ａ、２ａから見えていても見えていなくても良いが、ここではホスト１ａ、２ａからは見えない状態にあるものとする。
【００３２】
ホスト１ａ上のアプリケーションプログラム１４は、データベースなどのＯＬＴＰ（OnLine Transaction Processing）処理を行い、ディスク３１への更新を頻繁に行うプログラム、ホスト２のアプリケーションプログラム２４はディスク３３へのライトアクセスは行われないプログラムである。アプリケーションプログラム２４が扱えるデータのフォーマットは、アプリケーションプログラム１４と同じであり、最初の状態において、ディスク３３にはディスク３１のある時点でのデータのコピーが格納されている。アプリケーションプログラム１４と、アプリケーションプログラム２４には、ネットワーク５を介したアプリケーション間通信機構１４１、２４１、及びインタフェース１１、２１を介してディスクのミラーリングの機能やマッピング変更の機能の実行を指示するディスク制御機構１４２、２４２が含まれる。
【００３３】
以上のような想定の下で、本実施形態における処理は、以下のように実施される。
【００３４】
アプリケーションプログラム１４は、まず、現在実行されているトランザクション処理を完了させる(ステップ１００１)。これにより、ディスク３１の内容が無矛盾な状態となる。次に、ディスク制御機構１４２を使用して記憶装置サブシステム３にペア解除を指示し、ディスク３１、３２をsimplex状態にする（ステップ１００２）。ペア解除の後、アプリケーションプログラム１４は、トランザクション処理を再開する（ステップ１００３）。
【００３５】
ステップ１００４でアプリケーションプログラム１４は、アプリケーション間通信機構１４１を使用し、ホスト２ａに対してアプリケーションプログラム１４での処理、すなわち、ディスクのsimplex状態への移行が完了したことを通知する。アプリケーションプログラム２４は、この通知を受けて、ディスク３３へのアクセス処理を一旦終了する（ステップ１１０１）。それから、アプリケーションプログラム２４は、ディスク制御機構２４２を使用して、ディスク３２、ディスク３３とのマッピングを変更する（ステップ１１０２）。アプリケーションプログラム２４のディスクアクセス処理は、必ずしも終了する必要はなく、例えば、データベースなどの検索処理を行っている場合、１つの処理が完了した時点であれば良い。
【００３６】
ステップ１１０３で、アプリケーションプログラム２４は処理を再開し、ステップ１１０４では、アプリケーション間通信機構２４１を使用して、ホスト１にアプリケーションプログラム２４での処理が完了したことを通知する。
【００３７】
アプリケーションプログラム２４からの通知を受けると、アプリケーションプログラム１４は、再びディスク３１、３２をペア状態にする（ステップ１００５）。
【００３８】
以上の処理により、アプリケーションプログラム１４により使用されていたディスク３１のデータをアプリケーションプログラム２４で使用することができるようになる。この処理を繰り返すことにより、アプリケーションプログラム２４は、アプリケーションプログラム１４が使用する最新のデータを使用できる。
【００３９】
本実施形態では、ステップ１１０２でのディスク３２、３３のマッピング変更は、記憶装置サブシステム３ａのディスク制御装置４３が行うが、記憶装置サブシステム３ａがマッピング変更機能を持たない場合には、あらかじめホスト２ａからディスク３２、３３を見えるようにしておき、ホスト２ａ側で、ディスク３３をアンマウント、その後ディスク３２をディスク３３がマウントされていたディレクトリに対してマウントすることで、マッピング変更と同じ処理を実現できる。
【００４０】
このように２つのシステムで同一のデータを使用するアプリケーションとしては、データマイニング、ＯＬＡＰ(Online Analytical Processing)などが挙げられる。
【００４１】
本実施形態によれば、例えば、ホスト１ａにおいて、アプリケーションプログラム１４として、トランザクション型のデータベース処理を行うＤＢＭＳを適用して会計処理などを行い、ホスト２ａにおいて、アプリケーションプログラム２４として、ＯＬＡＰサーバプログラムを動作させ、ホスト１での処理内容を利用するような場合、ホスト１ａのＤＢＭＳによる会計処理をほとんど止めることなく、ホスト２ａのＯＬＡＰサーバプログラムで会計処理の結果であるデータを利用することが可能となる。
−第２の実施形態−
図３は、本発明の第２の実施形態における計算機システムの構成を示すブロック図である。
【００４２】
本実施形態の計算機システムは、ホスト１ｂ、ホスト２ｂ、ホスト１ｂとホスト２ｂに接続される記憶装置サブシステム３ｂ、及びホスト１ｂと２ｂとを接続するネットワーク５を含んで構成される。
【００４３】
ホスト１ｂは、記憶装置サブシステム３ｂとの間のインタフェース１１、ネットワークインタフェース１２、オペレーティングシステム１３、及びアプリケーションプログラム１６を備える。
【００４４】
ホスト２ｂは、記憶装置サブシステム３ｂとの間のインタフェース２１、ネットワークインタフェース２２を有し、オペレーティングシステム２３、アプリケーションプログラム２６、及び変換プログラム２５を備える。
【００４５】
記憶装置サブシステム３ｂは、ディスク３１〜３３に加え、さらに、第４のディスク３４を備えており、第１の実施形態における記憶装置サブシステム３ａと同様の機能を有する。
【００４６】
本実施形態では、ホスト１ｂのアプリケーションプログラム１６が扱うデータのフォーマットと、ホスト２ｂのアプリケーションプログラム２６が扱うデータのフォーマットは異なる。変換プログラム２５は、アプリケーションプログラム１６により扱われるデータのフォーマットをアプリケーション２６が扱うデータのフォーマットに変換するプログラムである。
【００４７】
本実施形態では、ディスク３１のデータをホスト２ｂで使用できるようにするために、ディスク３１、３２はduplex状態にしておく。ディスク制御装置４３は、ホスト１ｂからは少なくともディスク３１が見え、ホスト２ｂからはディスク３２、３３、３４が見えるよう記憶装置サブシステム３ｂを制御する。アプリケーションプログラム２６は、ディスク３４を使用して処理を行う。最初の時点でディスク３４には、変換プログラム２５により変換されたディスク３１のある時点のデータが格納されている。
【００４８】
図４は、ディスク３１のデータをホストｂ側で処理できるようにする際に行われる処理のフローチャートである。
【００４９】
本処理において、ホスト１ｂにより行われる処理は、第１の実施形態におけるホスト１ａの処理と同じである。ステップ１００１から１００４で、ディスク３１と３２のペア状態を解除し、ディスク３２をホスト２ｂから利用できる状態とする。
【００５０】
ホスト２ｂは、ホスト１のアプリケーションプログラム１６から通知を受けると変換プログラム２５によりディスク３２の内容を読み出し、アプリケーションプログラム２６によりアクセスできる形式に変換してディスク３３に格納する（ステップ１２０１）。アプリケーションプログラム２６は、ディスク３４に格納されているデータを使用して処理を行うため、変換プログラム２５の処理中も通常の処理を継続することが可能である。
【００５１】
変換プログラム２５による変換処理が完了すると、ホスト２ｂは、アプリケーションプログラム２６によるディスクアクセス処理を一旦終了する（ステップ１１０１）。そして、ディスク３３、ディスク３４とのマッピングを変更し、アプリケーションプログラム２６がデータアクセスを行うディスクをディスク３４からディスク３３に変更する（ステップ１１０２ｂ）。
【００５２】
ディスク３３と３４をスワップした後、アプリケーションプログラム２６によるディスクアクセス処理を再開し（ステップ１１０３）、ホスト１ｂにアプリケーションプログラム２６によるディスクのスワップ処理が完了したことを通知する（ステップ１１０４）。
【００５３】
アプリケーションプログラム１６は、ホスト２ｂからの通知を受けて、再びディスク３１、３２をペア状態にする。以上の処理により、アプリケーションプログラム１６で使用していたディスク３１と同じ内容のデータをアプリケーションプログラム２６が使用することができるようになる（ステップ１００５）。
−第３の実施形態−
図５は、本発明の第３の実施形態における計算機システムの構成例を示すブロック図である。
【００５４】
本実施形態の計算機システムは、ホスト１ｃ、ホスト２ｃ、そしてホスト１ｂとホスト２ｃに接続される記憶装置サブシステム３ｃ、各ホストを相互に接続するネットワーク５、及び、記憶装置サブシステム３ｃに付随したプロセッサ６を含んで構成される。
【００５５】
ホスト１ｃは、記憶装置サブシステム３ｃとの間のインタフェースとして、チャネルインタフェースのような、カウントキーデータ形式（以下、ＣＫＤ形式と呼ぶ）に従うデータを扱う可変長インタフェース１１、ネットワークインタフェース１２、オペレーティングシステム１３、及びアプリケーションプログラム１６を有する。
【００５６】
ホスト２ｃは、記憶装置サブシステム３ｃとの間のインタフェースとして例えば、ＳＣＳＩインタフェースのような固定長データ形式を扱う固定長インタフェース２１、ネットワークインタフェース２２、オペレーティングシステム２３、及びアプリケーションプログラム２６を有する。
【００５７】
記憶装置サブシステム３ｃは、複数のディスク３１、３２、３３、３４、ホスト１ｃと接続する可変長インタフェース４１、ホスト２ｃと接続する固定長インタフェース４２、ディスク制御装置４３、プロセッサ６と接続する固定長インタフェース４５を含んで構成される。ディスク制御装置４３は、ホスト１ｃからは、少なくともディスク３１に、ホスト２ｃからは少なくともディスク３４に、プロセッサ６からは少なくともディスク３２、３３にアクセスできるよう記憶装置サブシステム３ｃを制御する。
【００５８】
プロセッサ６は、記憶装置サブシステム３ｃとの間の固定長インタフェース６１、ネットワークインタフェース６２を有する。プロセッサ６は、また、そのメモリ上に、オペレーティングシステム６３、変換プログラム６４を保持している。
【００５９】
本実施形態では、第２の実施の形態と同様、アプリケーションプログラム２６が扱えるデータフォーマットは、アプリケーション１６のものとは異なる。さらに、ホスト１ｃは、ＣＫＤ形式に従ってディスク３１にデータを格納する。プロセッサ６の変換プログラム６４は、ＣＫＤ形式に従って記憶装置サブシステム３ｃに格納されたデータを固定長形式に従った形で読み出し、それをアプリケーションプログラム１６により扱われるデータの形式からアプリケーションプログラム２６により扱われるデータの形式に変換する。
【００６０】
変換プログラム６４が記憶装置サブシステム３ｃからＣＫＤ形式に従って格納されたデータを読み出すには、例えば、特開平９-２５８９０８号公報に開示された技術を適用することができる。すなわち、変換プログラム６４は、ホスト１ｃ上で動作するアプリケーションプログラム１６からデータの格納位置を表す情報をネットワーク５を介して受け取る。そして、その情報に基づき、固定長形式での格納位置を求めて記憶装置サブシステム３ｃからデータを読み出す。
【００６１】
図６は、ディスク３１のデータをホスト２ｃで使用できるようにする処理のフローチャートである。
【００６２】
本実施形態においても、処理の開始前の状態として、ディスク３１、３２は基本的にduplex状態にしておく。ディスク制御装置４３は、ホスト１ｃからディスク３１が、ホスト２ｃからディスク３４が、プロセッサ６からはディスク３２、３３、３４が見えるように記憶装置サブシステム３ｃを制御する。
【００６３】
本実施形態において、ステップ１００１〜１００４においてホスト１ｃにより第１あるいは第２の実施形態におけるステップ１００１〜１００４と同様の処理が行われる。なお、ホスト１ｃからプロセッサ６へのデータの格納場所に関する情報の転送は、この処理の開始前に予め通知しておき、プロセッサ６で保持しておくか、あるいは、ステップ１００４においてホスト１ｃ側でのペア状態の解除処理完了を通知の際に転送するようにすることができる。
【００６４】
変換プログラム６４は、ホスト１ｃからの通知を受けて、ディスク３２の内容を読み出し、アプリケーションプログラム２６からアクセスできる形式に変換してディスク３３に書き込む。この処理の間、アプリケーションプログラム１６は、ディスク３１を使用して通常の処理を継続することができる。同様に、アプリケーションプログラム２６は、ディスク３４を使用して、通常の処理を行うことが可能である（ステップ１３０１）。
ディスク３２からディスク３３へのデータの移動（コピー）を終えると、変換プログラム６４は、アプリケーション間通信機構６４１を使用しホスト２ｃに処理の完了を通知する（ステップ１３０２）。
【００６５】
アプリケーションプログラム２６は、プロセッサ６からの通知を受けてディスク３４へのアクセス処理を一旦終了する（ステップ１１０１）。ディスク３４へのアクセス処理を停止後、アプリケーションプログラム２６は、ディスク制御機構２４２を使用して、ディスク３３とディスク３４とのマッピングを変更し、ディスク３３とディスク３４を入れ替える（ステップ１１０２ｂ）。その後、アプリケーションプログラム２６は、入れ替え後のディスク３４へのアクセス処理を再開し（ステップ１１０３）、ホスト１ｃにアプリケーションプログラム２６での処理が完了したことを通知する（ステップ１１０４）。
【００６６】
アプリケーションプログラム１６は、ホスト２ｃからの通知を受けると再びディスク３１、３２をペア状態にする（ステップ１００５）。
【００６７】
以上の処理により、インタフェース形式の異なるホスト間でデータを共用することが可能となる。
−第４ の実施形態−
以下に説明する第４の実施形態における計算機システムは、第３の実施形態における計算機システムと同様の構成を有する。ただし、本実施形態では、以下の点において第３の実施形態と相違する。
【００６８】
ホスト１ｃのアプリケーションプログラム１６は、通常の処理として、ディスク３１に対するデータの書き込み、更新を行い、そのアドレスと更新データをディスク３２に記録する。つまり、本実施形態では、ディスク３２は、ログディスクとして用いられ、そのデータは、障害などの要因でアプリケーションプログラム１６の処理が中断された場合のデータ復旧に使用される。
【００６９】
更新データは、ディスク３２の先頭から順に記録される。また一連の更新データは、トランザクション毎に管理され、各トランザクションごとに「チェックポイント」と呼ばれる識別ＩＤが記録される。アプリケーションプログラム１６のディスク３１へのデータ書き込みがあるトランザクションの途中で中断した場合、ログディスクに記録された最新のチェックポイントの直前までの更新履歴を参照してデータの修正を行うことで、そのチェックポイントに対応したトランザクションの完了した時点の、データを無矛盾な状態で復元することができる。
【００７０】
本実施形態では、ディスク３３にディスク３１のある時点のデータコピーが残っている場合には、ログディスク（ディスク３２）を参照してディスク３３に対するデータ更新を行い、アプリケーションプログラム１６により実行されたトランザクションの最新結果を反映することができる。
【００７１】
図８は、本実施形態において、ディスク３１の内容をホスト２ｃで使えるようにするための処理のフローチャートである。
【００７２】
ディスク制御装置４３は、ホスト１からディスク３１、３２が、ホスト２からディスク３４が、プロセッサ５からディスク３２、３３、３４が見えるよう記憶装置サブシステム３ｃを制御する。ディスク３１、３３の内容は、本処理の開始前のある時点において同一にしておく。
【００７３】
変換プログラム６４は、ディスク３２に格納されている更新データのうち、過去に行った処理により最後にアクセスした更新データのチェックポイントＩＤを保持している。変換プログラム６４は、ディスク３２に格納されている更新データを、保持しているチェックポイントＩＤに続くチェックポイントＩＤで特定される更新データから順に更新履歴に沿って読み出し、更新データに基づいてディスク３３の内容を更新する。この更新処理は、ディスク３２に記録された最新のチェックポイントＩＤの更新データまで実施される。この間、アプリケーションプログラム１６及びアプリケーションプログラム２６は、通常の処理を継続して行うことが可能である（ステップ１４０１）。
【００７４】
ディスク３３の更新が終了した後、変換プログラム６４は、更新したディスク３３の内容をディスク３４に反映させるために、アプリケーション間通信機構６４１を用いてホスト２ｃのアプリケーションプログラム２６に、処理の中断を要求する（ステップ１４０２）。
【００７５】
アプリケーションプログラム２６は、プロセッサ６からの要求に応答して、実行中の処理を中断する（ステップ１１０１）。処理の中断後、アプリケーションプログラム２６は、処理を中断したことをプロセッサ６に通知する（ステップ１５０１）。
【００７６】
変換プログラム６４は、ディスク３３、ディスク３４をduplex状態にするために、記憶装置サブシステム３ｃに対しペア形成を指示する（ステップ１４０３）。ペア形成が終了し、ディスク３４の内容がディスク３３の内容と同一なduplex状態になった後、変換プログラム６４は、ペア解除を記憶装置サブシステム３ｃに対して指示し、ディスク３３、３４をsimplex状態に戻す（ステップ１４０４）。
【００７７】
ディスク３３、３４がsimplex状態に戻った後、変換プログラム６４は、処理の完了をホスト２ｃに通知する（ステップ１４０５）。アプリケーションプログラム２６は、この通知を受けると、中断していた処理を再開する（ステップ１１０３）。
【００７８】
以上の処理を必要とされるタイミングで繰り返すことで、アプリケーションプログラム１６により使用されるディスク３１の任意の時点のデータをアプリケーションプログラム２６から使用することができる。
【００７９】
本実施形態によれば、ホスト１ｃ側で稼働中のアプリケーションプログラムの処理を中断することなくディスク３１の内容をホスト２ｃ側で利用できるようにすることができる。これにより、例えば、ホスト１ｃ上で複数のデータベースプログラムが稼働している場合、あるいは、それぞれデータベースが稼働している複数のホストがあり、１つのホストでそれらのデータを集約して処理しようとする場合などへの対応が容易となる。
【００８０】
例えば、ホスト１で複数のデータベースプログラムが稼働していて、複数のデータベース及びデータベースログが存在している場合を考える。この場合、プロセッサ６の変換プログラム６４でこれら複数のデータベースログからデータを読み出し、プロセッサ６上でその内容をマージして、ディスク３３に集約したデータベースを作る。ホスト２からは、ディスク３３に集約されたデータベースを利用することが可能になる。
−第５の実施形態−
図８は、本発明の第５の実施形態における計算機システムの構成例を示すブロック図である。
【００８１】
本実施形態における計算機システムは、ホスト１ｄ、ホスト２ｄ、てホスト１ｄに接続される記憶装置サブシステム３０ａ、及び、ホスト２ｄに接続される記憶装置サブシステム３０ｂを含んで構成される。
【００８２】
ホスト１ｄ、ほすと２ｄは、第２の実施形態におけるホスト１ｂ、２ｂと同様の機能を有する。ただし、ホスト１ｄとホスト２ｄは、地理的に離れた場所に設置されており、それぞれ異なるＬＡＮ５ａ、５ｂに接続されている。ＬＡＮ５ａとＬＡＮ５ｂとは、例えば、インターネット５ｃにより相互に接続されている。
【００８３】
記憶装置サブシステム３０ａは、ディスク３１ａ、ホスト１ｄと接続するインタフェース４１ａ、記憶装置サブシステム３０ｂと接続するインタフェース４２ａ、ディスク制御装置４３ａを有して構成される。また、記憶装置サブシステム３０ｂは、ディスク３１ｂ、ディスク３２ｂ、ディスク３３ｂ、ホスト２ｄと接続するインタフェース４１ｂ、記憶装置サブシステム３０ａと接続するインタフェース４２ｂ、ディスク制御装置４３ｂを有して構成される。記憶装置サブシステム３０ａと記憶装置サブシステム３０ｂは、それぞれのインタフェース４２ａ、４２ｂにより接続される。
【００８４】
記憶装置サブシステム３０ｂは、上述した各実施形態の記憶装置サブシステムと同じく、ディスクマッピング変更機能を有する。また、記憶装置サブシステム３０ａと記憶装置サブシステム３０ｂは、記憶装置サブシステム３０ａ内のディスクの内容をインタフェース４２ａ、４２ｂを介して記憶装置サブシステム３０ｂ内のディスクにコピーするリモートコピー機能を備える。
【００８５】
リモートコピー機能は、先に説明したミラーリング機能を複数のディスク装置間で実現したものである。例として、図８において、ディスク３１ａの内容をディスク３２ｂにコピーすることを想定する。この時、ディスク３１ａのことを正ディスク、ディスク３２ｂのことを副ディスクと呼ぶ。
【００８６】
ユーザは記憶装置サブシステム３０ａに対して、ディスク３１ａ、３２ｂをそれぞれ正／副ディスクとして関連付け、コピー開始を指示する。この指示は、ホスト１ｄからインタフェース１３を介して行う。第１の実施形態のように記憶装置サブシステム３０ａ、３０ｂにコンソールが接続されている場合には、ホスト１ｄからネットワーク経由でコンソールに指示を送るようにすることも可能である。
【００８７】
コピー開始が指示されると、ディスク制御装置４３ａは、インタフェース４２ａを介して記憶装置サブシステム３０ｂにコピー対象となるデータを転送し、コピー処理を実施する。コピー開始時点では、ディスク３１ａとディスク３１ｂのデータの内容は一致していない。ディスク３１ａからディスク３１ｂへのデータコピーを行っている状態を「ペア形成中」と呼ぶ。
【００８８】
ペア形成中の状態にある間、ホスト１ｄからディスク３１ａに対するリード／ライトアクセスがあると、ディスク制御装置４３は、これを受け付けて、ディスク３０ａのアクセスを行うと共に、ホスト１ｄからのライトアクセスによりディスク３１ａの内容が更新された場合には、その更新内容をディスク３１ｂに反映する。
【００８９】
コピー処理が完了して、ディスク３１ａの内容がディスク３１ｂに完全にコピーされた状態を「duplex状態」と呼ぶ。duplex状態の時、ホスト１ｄからディスク３１ａへライトアクセスがあると、その内容はディスク３１ｂにも反映される。これらのことは、先に説明したミラーリング機能と同じである。
【００９０】
duplex状態にした後、任意の時点でディスク３１ａの状態をディスク３１ｂに保存しておきたい時、ユーザは、記憶装置サブシステム３ａに「ペア解除」の指示を送る。記憶装置サブシステム３ａは、ペア解除の指示を受けると、それ以降ディスク３１ａに対するデータの更新をディスク３１ｂに反映させず、ディスク３１ｂの内容をその時点の状態で保存する。この状態を「simplex状態」と呼ぶ。
【００９１】
リモートコピー機能では、あるディスクに対してもう１台ディスクを用意して、ペアを形成してduplex状態にし、その後任意の時点でsimplex状態にすることで、その時点でのコピーを作成できる。
【００９２】
ホスト１ｄのアプリケーションプログラム１６、ホスト２ｄのアプリケーションプログラム２６、及び変換プログラム２５は、第２の実施の形態と同様の機能を実現する。本実施形態で、ディスク３１ａのデータをホスト２ｄで使用できるようにする時の処理は、第２の実施形態と同様に、図４のフローチャートで示される。
【００９３】
通常の処理では、ディスク３１ａとディスク３１ｂがペア状態で使用される。ホスト１ｄは、ステップ１００２、ステップ１００５のペア解除、ペアの再形成では、ディスク３１ａ、３１ｂに対するペアの解除、再形成を行う。
【００９４】
ホスト２ｄ側では、ステップ１２０１において、変換プログラム２５がディスク３１ｂに保存されたデータをディスク３２ｂにデータの形式を変換しつつコピーする。アプリケーションプログラム２６は、ステップ１０２ｂのディスクマッピング変更処理で、ディスク３２ｂ、ディスク３３ｂとのマッピングを変更して両者を入れ替え、入れ替え後のディスクを利用して処理を再開する。
【００９５】
なお、本実施形態では、第２の実施形態の応用として、地理的に離れたサイトに設置されたホスト間でデータを共用する計算機システムについて説明した。同様に、第３の実施形態についても、図５のホスト１ｃと２ｃを図９に示すように地理的に離れたサイトに配置し、両者の間でデータを共用するようにすることができる。この場合、プロセッサ６は、ホスト２ｃと同じサイトに配置すればよい。
【００９６】
以上説明した実施形態によれば、ホストやネットワークに大きな負荷を掛けることなく異なる２つのホストでデータを共用することが可能となる。
【００９７】
また、ホスト上で稼働しているアプリケーションプログラムの実行を極力中断することなく、２つのホスト間で共通のファイルにアクセスすることができる。
【図面の簡単な説明】
【００９８】
【図１】本発明の第１の実施形態における計算機システムの構成例を示すブロック図である。
【図２】ホスト上のアプリケーションプログラムによるデータ共用のための処理の流れを示すフローチャートである。
【図３】本発明の第２の実施形態における計算機システムの構成例を示すブロック図である。
【図４】ホスト上のアプリケーションプログラムによるデータ共用のための処理の流れを示すフローチャートである。
【図５】本発明の第３及び第４の実施形態における計算機システムの構成例を示すブロック図である。
【図６】第３の実施形態において、ホスト上のアプリケーションプログラム、及びプロセッサ上の変換プログラムにより行われるデータ共用のための処理の流れを示すフローチャートである。
【図７】第４の実施形態において、ホスト上のアプリケーションプログラム、及びプロセッサ上の変換プログラムにより行われるデータ共用のための処理の流れを示すフローチャートである。
【図８】本発明の第５の実施形態における計算機システムの構成例を示すブロック図である。
【図９】本発明の第３の実施形態における計算機システムの応用構成例を示すブロック図である。
【符号の説明】
【００９９】
１ａ、１ｂ、１ｃ、１ｄ、２ａ、２ｂ、２ｃ、２ｄ・・・ホストコンピュータ、
３、３ａ、３ｂ・・・記憶装置サブシステム、
５・・・ネットワーク、
１４、１６、２４、２６・・・アプリケーションプログラム、
２５、６４・・・変換プログラム、
３１、３２、３３、３４・・・ディスク、
４３・・・ディスク制御装置、
４４・・・コンソール。
【図１】
2006185454.tif 000003
【図２】
2006185454.tif 000004
【図３】
2006185454.tif 000005
【図４】
2006185454.tif 000006
【図５】
2006185454.tif 000007
【図６】
2006185454.tif 000008
【図７】
2006185454.tif 000009
【図８】
2006185454.tif 000010
【図９】
2006185454.tif 000011