(57)【要約】【課題】アプリケーション毎に変更を加えることなく、オペレーティングシステムへの小さな変更により、遠隔記憶装置システムへのアクセスを安定的かつ高速に行う技術を提供する。【解決手段】ホストコンピュータ１は、遠隔記憶装置システム４をホストコンピュータ１に直接接続された通常記憶装置２と同様にアクセスすることができるイニシエータ機能１１と、通常記憶装置２と遠隔記憶装置システム４を仮想記憶装置としてアプリケーションに提供する記憶装置仮想化機能７と、を有する。記憶装置仮想化機能７が、ホストコンピュータ１のアプリケーション５からの書き込み命令に従いデータを通常記憶装置２に一時的に格納する。次に、記憶装置仮想化機能７が、通常記憶装置２に一時的に格納されたデータを読み出し、イニシエータ機能１１を経由して遠隔記憶装置システム４にそのデータを格納する。【選択図】        図１
2006146389.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと、前記ホストコンピュータと直接接続された通常記憶装置と、前記ホストコンピュータとネットワークを介して接続された遠隔記憶装置システムとを有する情報処理システムにおける前記遠隔記憶装置システムへのアクセス方法であって、
前記ホストコンピュータは、前記遠隔記憶装置システムを前記通常記憶装置と同様にアクセスすることができるイニシエータ手段と、前記通常記憶装置と前記遠隔記憶装置システムを仮想記憶装置としてアプリケーションに提供する記憶装置仮想化手段と、を有し、
前記記憶装置仮想化手段が、前記ホストコンピュータのアプリケーションからの書き込み命令に従いデータを前記通常記憶装置に一時的に格納するステップと、
前記記憶装置仮想化手段が、前記通常記憶装置に一時的に格納された前記データを読み出し、前記イニシエータ手段を経由して前記遠隔記憶装置システムに前記データを格納するステップと、
を有することを特徴とする遠隔記憶装置システムへのアクセス方法。
【請求項２】
請求項１に記載の遠隔記憶装置システムへのアクセス方法であって、
前記記憶装置仮想化手段が、前記ホストコンピュータのアプリケーションからの読み込み命令に従いデータが前記通常記憶装置に保存されているかどうかを調べるステップと、
前記記憶装置仮想化手段が、前記データが前記通常記憶装置に保存されていない場合に前記遠隔記憶装置システムから前記イニシエータ手段を経由して前記データを読み込むステップと、
前記記憶装置仮想化手段が、前記データが前記通常記憶装置に保存されている場合に前記通常記憶装置から前記データを読み込むステップと、
を有することを特徴とする遠隔記憶装置システムへのアクセス方法。
【請求項３】
ホストコンピュータと、前記ホストコンピュータと直接接続された通常記憶装置と、前記ホストコンピュータとネットワークを介して接続された遠隔記憶装置システムとを有する情報処理システムにおけるホストコンピュータであって、
前記遠隔記憶装置システムを前記通常記憶装置と同様にアクセスすることができるイニシエータ手段と、前記通常記憶装置と前記遠隔記憶装置システムを仮想記憶装置としてアプリケーションに提供できる記憶装置仮想化手段と、を有し、
前記記憶装置仮想化手段が、
前記ホストコンピュータのアプリケーションからの書き込み命令に従いデータを前記通常記憶装置に一時的に格納する手段と、
前記通常記憶装置に一時的に格納された前記データを読み出し、前記イニシエータ手段を経由して前記遠隔記憶装置システムにデータを格納する手段と、
を有することを特徴とするホストコンピュータ。
【請求項４】
請求項３に記載のホストコンピュータであって、
前記記憶装置仮想化手段が、
前記ホストコンピュータのアプリケーションからの読み込み命令に従いデータが前記通常記憶装置に保存されているかどうかを調べる手段と、
前記データが前記通常記憶装置に保存されていない場合に前記遠隔記憶装置システムから前記データを読み込む手段と、
前記データが前記通常記憶装置に保存されている場合に前記通常記憶装置から前記イニシエータ手段を経由して前記データを読み込む手段と、
を有することを特徴とするホストコンピュータ。
【請求項５】
請求項３または４に記載の手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遠隔地にある記憶装置システムへのアクセス方法、そのためのホストコンピュータ、およびプログラムに関する。
【背景技術】
【０００２】
ホストコンピュータは、物理的に離れた場所に配属され、専用回線、あるいは公衆回線で接続された記憶装置システムにデータを保存するように構成することができる。
【０００３】
この場合に、ホストコンピュータと遠隔記憶装置システムの間のネットワーク回線の状態、つまり、利用可能な帯域、遅延時間は一定ではない。帯域が小さくなる、又は、遅延時間が長くなった状態では、ホストコンピュータからネットワークストレージへのアクセスが妨げられる。具体的には、遠隔記憶装置システムへの読み書きの速度が低下する。
【０００４】
前述した問題に対し、読み込みに関しては、アプリケーションが要求するデータを事前に予測し、予めデータを遠隔記憶装置システムから、ホストコンピュータに転送しておくことで、アプリケーションの読み込み命令に必要な時間を短縮する、先読みと呼ばれる技術等が使われている。
【０００５】
書き込みに関しては、アプリケーションが更新したデータは、ホストコンピュータで動作するオペレーティングシステム内のネットワークバッファや、ページキャッシュと呼ばれるバッファに書えられ、ネットワークの速度に合わせて転送される。
なお、本願発明に関する先行技術文献としては以下のものがある。
【０００６】
【非特許文献１】谷川真樹他２名、「広帯域ストリーミング放送ネットワークにおけるストリーム放送管理システムアーキテクチャの提案」、２００３年電子情報通信学会総合大会講演論文集、Ｂ−７−２４（２８４頁）、２００３年３月１９日非特許文献２
【非特許文献２】高瀬誠由他３名、「ｉＳＣＳＩデータトラヒツクに適したシェーパの検討」、２００４年電子情報通信学会通信ソサイエティ大会講演論文集、Ｂ−７−６１（２００頁）、２００４年９月２１日
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述したようなシステムにおいて問題になるのが、ＵｎｉｘやＷｉｎｄｏｗｓなどの既存オペレーティングシステムは、記憶装置への書き込みが、ある程度安定して高速に完了することを想定していることである。
【０００８】
従って、ネットワーク状態が悪化した状況で、大量のデータ書き込みを行うとオペレーティングシステムが不安定な状態になる。具体的には、アプリケーションが書き込んだデータを一時的に蓄える、ページキャッシュと呼ばれる機能に、ホストコンピュータの物理メモリの大半が消費されてしまい、オペレーティングシステムやアプリケーションがメモリ不足になり、システムが停止状態となる。
【０００９】
加えて、物理メモリに保持されたデータは、停電等の障害で全て失われてしまうという問題もある。従って、大量のデータをこのようなバッファに蓄えることは、アプリケーションから見ると望ましくない。また、バッファに使われる物理メモリは、記憶装置システムよりも高価であるという問題もある。
【００１０】
前述したような問題を解決するための従来技術として、記憶装置が遠隔に配置されることを想定していない、既存のアプリケーションに変更を加え、ネットワーク状態を監視し、データの書き込み量を調整する機能を実装する方法がある（例えば、非特許文献１参照）。この方法は、アプリケーション毎に変更を加えるコストが発生するという問題がある。また、アプリケーションが必要とする書き込み速度がネットワーク速度を上回る場合には、物理メモリが不足しないように、一時的に書き込みを停止しなければならない。
【００１１】
前述した以外の従来技術として、ホストコンピュータとバス等で直接接続され、安定したアクセス性能が保証された通常の記憶装置を一時的な記憶領域として利用し、ネットワーク状態が改善してから、遠隔記憶装置システムに保存する方法が使われる。一時的な記憶領域として使われる通常記憶装置の容量は、遠隔記憶装置システムの容量よりも小さくてよい。通常記憶装置に一度保存することで、停電等の障害発生時でも、通常記憶装置のデータを利用して、アプリケーションが更新したデータを回復することができる。この方法を緩衝ディスク方式と呼ぶ。緩衝ディスク機能では、通常記憶装置に書き込みが終了した時点で、ページキャッシュに蓄えられた書き込みデータを破棄できるため、通常記憶装置の容量を大きく確保すれば、物理メモリ不足による、システムの停止を防ぐことができる。
【００１２】
前記緩衝ディスク方式の従来の実装技術として、遠隔記憶装置システムを想定していない、既存のアプリケーションに変更を加える方法がある。この方法は、上記のアプリケーション毎に変更を加え、書き込み量を調節する手法と同様に、アプリケーション毎に変更を加えるコストが発生するという問題がある。
【００１３】
他の既存実装技術として、図４に示すように、遠隔記憶装置システム４に対して、通常記憶装置（ホストコンピュータに直接接続された記憶装置）２と同様のアクセスを実現する機能（イニシエータ機能１１と呼ぶ）に変更を加えることで（例えば、非特許文献２参照）、緩衝ディスク機能１０を追加する方法がある。この方法は、イニシエータ機能１１が遠隔記憶装置システム４にアクセスするための、ネットワーク機能１２しか持たず、記憶装置にアクセスするための機能を持たないため、必要な機能を一から実装する必要があり、実装が肥大化するという欠点がある。
【００１４】
他の既存実装技術として、図５に示すように、ホストコンピュータで動作するオペレーティングシステム６に実装されている、ネットワーク機能部分１２に変更を加えることで（例えば、非特許文献１参照）、緩衝ディスク機能１０を追加する方法がある。この方法は、前記のイニシエータ機能１１へ変更を加える方法と同様に、ネットワーク機能１２は記憶装置にアクセスするための機能を持たないため、実装が肥大化するという欠点がある。
【００１５】
図４、図５において、１はホストコンピュータ、３はネットワーク、５はアプリケーション、７はディスク仮想化機能、８はローカルディスク、９はリモートディスクである。
【００１６】
なお、ホストコンピュータで、遠隔記憶装置システムで動作しているソフトウェアと同じソフトウェアを動作させることで、緩衝ディスク機能を追加する方法が考えられるが、この方法は、オペレーティングシステム内部でデータコピーが複数回発生するために、性能が低下するという欠点がある。
【００１７】
本発明は、前述従来技術の問題点を解決するためになされたものであり、本発明の目的は、アプリケーション毎に変更を加えることなく、オペレーティングシステムへの小さな変更により、遠隔記憶装置システムへのアクセスを安定的かつ高速に行う技術を提供することにある。
本発明の前記ならびにその他の目的と新規的な特徴は、本明細書の記述および添付図面によって明らかにする。
【課題を解決するための手段】
【００１８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
【００１９】
前述の課題を解決するために、本発明では、ホストコンピュータで、動作するオペレーティングシステムが提供する記憶装置仮想化機能（以後、ディスク仮想化機能）に、緩衝ディスク機能を追加する。
【００２０】
オペレーティングシステムは、記憶装置を物理ディスクとして認識する。ディスク仮想化機能は、この物理ディスクと、アプリケーションがアクセスする仮想ディスクを結び付ける機能を提供する。最も単純な場合は、物理ディスクと仮想ディスクを一対一で対応づける。また、二つの物理ディスクをまとめて、容量の大きな一つの仮想ディスクとする機能などの仮想化機能を、ＵＮＩＸやＷｉｎｄｏｗｓ等のオペレーティングシステムは提供する。
【００２１】
本方式では、このようなディスク仮想化機能が提供する機能の一つとして、緩衝ディスク機能を実装する。イニシエータ機能により、遠隔記憶装置システムは、直接接続された記憶装置と全く同様に、物理ディスクとしてアクセスすることができる。従って、ディスク仮想化機能は、通常記憶装置と遠隔記憶装置システムを区別することなく、アクセスすることが可能である。ディスク仮想化機能は、物理ディスクにアクセスする機能を有しており、緩衝ディスク機能は、その機能を利用することで、通常記憶装置と遠隔記憶装置システムの両方にアクセスすることができる。従って、本技術を実現するための実装量を小さく押さえることが可能である。
【００２２】
アプリケーションは、ディスク仮想化機能が提供する仮想ディスクに常にアクセスし、仮想ディスクがどのように構成されているかについては知る必要がない。従って、本方法を利用した場合も、アプリケーションへの変更は生じない。
【発明の効果】
【００２３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、アプリケーション毎に変更を加えることなく、オペレーティングシステムへの小さな変更により、遠隔記憶装置システムへのアクセスを安定的かつ高速に行うことが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の実施例を詳細に説明する。
図１は、本発明の実施例の情報処理システムの概略構成を示すブロック図である。
【００２５】
同図において、１はホストコンピュータ、２はホストコンピュータに直接接続された記憶装置（ホストコンピュータにバス等で直接接続される通常の記憶装置であるから「通常記憶装置」ということがある）、３はネットワーク回線、４はネットワーク回線３で接続された遠隔記憶装置システム、５はアプリケーション、６はオペレーティングシステム、７はディスク仮想化機能、８は２の記憶装置のオペレーティングシステム内での識別名であるローカルディスク、９は、４の記憶装置のオペレーティングシステム内での識別名であるリモートディスク、１０は緩衝ディスク機能、１１はイニシエータ機能、１２はネットワークプロトコルを処理するネットワーク機能である。
【００２６】
４の遠隔記憶装置システムは、記憶装置を有すると共に、ネットワーク回線３を経由してホストコンピュータ１と接続する機能、ホストコンピュータ１からの書き込み命令に従いデータを記憶装置に書き込み、書き込み完了通知をホストコンピュータ１に送信する機能、ホストコンピュータ１からの読み込み命令に従い記憶装置からデータを読み出しホストコンピュータに送信する機能等を有する。通常は、遠隔記憶装置システム４の記憶容量は通常記憶装置２の記憶容量より大きい。ホストコンピュータ１はオペレーティングシステム６のイニシエータ機能１１により遠隔記憶装置システム４を通常記憶装置２と同様にアクセスすることができる。なお、遠隔記憶装置システム４の「遠隔」は、通常記憶装置２のようにホストコンピュータ１にバス等で直接接続されているのではなく、ホストコンピュータ１にネットワーク回線３を介して接続されているという意味であり、通常は地理的に遠隔地にあるとしても、地理的にホストコンピュータの近くにある場合もある。
【００２７】
９のリモートディスクは、説明の便宜上、遠隔の記憶装置であることを明記しているが、緩衝ディスク機能１０からは、８のローカルディスクと全く同様に物理ディスクとしてアクセスすることが可能である。
【００２８】
図２は、本実施例の情報処理システムにおいて、アプリケーション５からのデータの書き込み処理を示すフローチャートである。
書き込み処理は、２ステップに分けて行われる。まず、第一のステップでは、アプリケーション５は、ディスク仮想化機能７が提供する仮想ディスクに対してデータを書き込む。その結果、緩衝ディスク機能１０はデータを受取り、そのデータをローカルディスクに書き込む。
【００２９】
第２のステップでは、緩衝ディスク機能１０は、ローカルディスクから、リモートディスクにデータをコピーする。通常、ローカルディスクはリモートディスクよりも容量が小さいため、必要に応じて、リモートディスクにコピーし終わったデータは、ローカルディスクから削除する。
【００３０】
第１ステップは、図２（ａ）のステップ１０１０からステップ１０４０で示される処理である。
始めに、アプリケーション５からの書き込みは、ディスク仮想化機能７に届く（ステップ１０１０）。
【００３１】
緩衝ディスク機能１０は、ディスク仮想化機能７からデータを受け取り（ステップ１０２０）、ローカルディスクにデータを書き込む（ステップ１０３０）。その結果、データは直接接続された記憶装置２に保存される（ステップ１０４０）。
【００３２】
緩衝ディスク機能１０は、最も古いデータと新しいデータが保存されているディスク位置を記録している。ここでは、データが追加されたため、最新のデータのディスク位置を更新する。
【００３３】
第２ステップは、図２（ｂ）のステップのステップ１０５０からステップ１０８０で示される処理である。
緩衝ディスク機能１０は、ローカルディスク８に読み出し要求を発行することで（ステップ１０５０）、直接接続された記憶装置２から、遠隔記憶装置システム４にまだコピーしていないデータを読み出す。これは、最も古いデータが保存されたディスク位置を使って実現できる。
【００３４】
緩衝ディスク機能１０は、このデータをリモートディスク９に書き込む（ステップ１０６０）。その結果、データは、イニシエータ機能１１とネットワーク機能１２を経由して、遠隔記憶装置システム４に届く（ステップ１０７０）。
【００３５】
遠隔記憶装置システム４は、データを書き込み、書き込み完了通知をホストコンピュータに送る（ステップ１０８０）。
緩衝ディスク機能１０は、遠隔記憶装置システム４から、書き込み完了通知を受け取ると、最も古いデータのディスク位置を更新する。
【００３６】
図３は、本実施例の情報処理システムにおいて、アプリケーション５からのデータの読み込み処理を示すフローチャートである。
書き込み処理同様、アプリケーション５は、ディスク仮想化機能７が提供する仮想ディスクに対してデータの読み込みを要求する。その結果、ディスク仮想化機能７は読み込み命令を受け取り（ステップ２０１０）、緩衝ディスク機能１０へ渡す。
【００３７】
緩衝ディスク機能１０は読み込み命令を受け取り（ステップ２０２０）、要求されたデータがローカルディスク８に保存されているかどうかを調べる（ステップ２０３０）。
【００３８】
ステップ２０３０において、データがローカルディスク８、つまり直接接続された記憶装置２に保存されていない場合、緩衝ディスク機能１０はリモートディスク９に対して読み込み命令を発行する（ステップ２０４０）。その結果、読み込み命令は、イニシエータ機能１１、ネットワーク機能１２を経由して、遠隔の記憶装置４に転送される。
【００３９】
遠隔の記憶装置４はデータをホストコンピュータに送り（ステップ２０５０）、ネットワーク機能１２、イニシエータ機能１１を経由し、緩衝ディスク機能１０はデータを受け取る。
【００４０】
ステップ２０３０において、データがローカルディスク８、つまり直接接続された記憶装置２に保存されている場合、緩衝ディスク機能１０は、ローカルディスク８に対して読み込み命令を発行する（ステップ２０６０）。その結果、直接接続された記憶装置からデータが読み込まれる（ステップ２０７０）。
【００４１】
緩衝ディスク機能１０は、必要なデータを受け取ると、当該データを、ディスク仮想化機能に渡す。その結果、読み込み命令を発行したアプリケーション５にデータが渡される（ステップ２０８０）。
【００４２】
以上説明したホストコンピュータ１、遠隔記憶装置システム３はその機能を実現する手段またはその動作を行う手段を有し、前記手段はその機能を実現するまたはその動作を行うように作成されたプログラムをＣＰＵが実行することによって実現される。
【００４３】
本実施例においては、ホストコンピュータ１のオペレーティングシステム６が有する記憶装置仮想化手段が、アプリケーション５からの書き込み命令に従いデータを通常記憶装置２に一時的に格納し、その後、通常記憶装置２に格納されたデータを読み出し、イニシエータ手段を経由して遠隔記憶装置システム４にそのデータを格納する。また、オペレーティングシステム６が有する記憶装置仮想化手段が、データが通常記憶装置２に保存されていない場合に遠隔記憶装置システム４からイニシエータ手段を経由してデータを読み込み、データが通常記憶装置２に保存されている場合に通常記憶装置２からデータを読み込む。
【００４４】
したがって、アプリケーション毎に変更を加える必要はなく、また、オペレーティングシステムの記憶装置仮想化手段は記憶装置にアクセスするための機能を有しているため、オペレーティングシステムへの小さな変更で実装できる。そして、ホストコンピュータ１とバス等で直接接続され、安定した高速なアクセス性能が保証された通常記憶装置２に一時的にデータを記憶し、その後、そのデータを読み出して、利用可能な帯域や遅延時間が一定でないネットワーク回線３を介して、大容量の遠隔記憶装置システム４に格納することができるので、大量のデータを安定的かつ高速に格納することが可能である。さらに、データの読み込みの際には、データが通常記憶装置２に保存されている場合には通常記憶装置２からデータを読み込むので、データが通常記憶装置２に保存されている場合には、ネットワーク回線３の状態に左右されず、安定的かつ高速に読み込むことができる。すなわち、本実施例によれば、アプリケーション毎に変更を加えることなく、オペレーティングシステムへの小さな変更により、遠隔記憶装置システムへのアクセスを安定的かつ高速に行うことが可能となる。
【００４５】
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施例の情報処理システムの概略構成を示すブロック図である。
【図２（ａ）】データの書き込み処理の第一のステップを示すフローチャートである。
【図２（ｂ）】データの書き込み処理の第二のステップを示すフローチャートである。
【図３】データの読み込み処理を示すフローチャートである。
【図４】イニシエータ機能に緩衝ディスク機能を追加する従来技術を示す図である。
【図５】ネットワーク機能に緩衝ディスク機能を追加する従来技術を示す図である。
【符号の説明】
【００４７】
１…ホストコンピュータ、２…直接接続された記憶装置（通常記憶装置）、３…ネットワーク、４…遠隔記憶装置システム、５…アプリケーション、６…オペレーティングシステム、７…ディスク仮想化機能、８…ローカルディスク、９…リモートディスク、１０…緩衝ディスク機能、１１…イニシエータ機能、１２…ネットワーク機能
【図１】
2006146389.tif 000003
【図２（ａ）】
2006146389.tif 000004
【図２（ｂ）】
2006146389.tif 000005
【図３】
2006146389.tif 000006
【図４】
2006146389.tif 000007
【図５】
2006146389.tif 000008