(57)【要約】      （修正有）【課題】ストレージシステムにおける各情報処理装置からのファイルアクセスの効率化を実現する。【解決手段】データを記憶するための複数の記憶ボリュームと、データの入出力要求を行う複数の情報処理装置とに接続され、情報処理装置から入出力要求を受信し、記憶ボリュームに対するデータの入出力処理を行うデータ入出力装置に、情報処理装置から入出力要求を受信した場合に、記憶ボリュームに記憶されるデータを、情報処理装置と記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた記憶ボリュームに移動するように制御するステップを実行させる。【選択図】      図１０
2004310690.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するための複数の記憶ボリュームと、前記データの入出力要求を行う複数の情報処理装置とに接続され、前記情報処理装置から前記入出力要求を受信し、前記記憶ボリュームに対する前記データの入出力処理を行うデータ入出力装置に、
前記情報処理装置から前記入出力要求を受信した場合に、前記記憶ボリュームに記憶される前記データを、前記情報処理装置と前記記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御するステップ
を実行させるためのプログラム。
【請求項２】
前記情報処理装置から受信した前記入出力要求が、前記データの書き込み要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記ステップは、
当該情報処理装置に対応付けられた前記記憶ボリュームに前記データを書き込むステップと、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶するステップと
であることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記情報処理装置から受信した前記入出力要求が、当該情報処理装置に対応付けられていない前記記憶ボリュームに記憶された前記データの読み出し要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記ステップは、
前記データを当該情報処理装置に対応付けられていない前記記憶ボリュームから読み出して、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込むステップと、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶するステップと
であることを特徴とする請求項１に記載のプログラム。
【請求項４】
前記情報処理装置と前記記憶ボリュームとの対応付け情報は、
前記情報処理装置から送信される、前記情報処理装置に対する前記記憶ボリュームの割り当てが指定されたデータであることを特徴とする請求項１に記載のプログラム。
【請求項５】
データを記憶するための複数の記憶ボリュームと、前記データの入出力要求を行う複数の情報処理装置とに接続され、前記情報処理装置から前記入出力要求を受信し、前記記憶ボリュームに対する前記データの入出力処理を行うデータ入出力装置であって、
前記情報処理装置から前記入出力要求を受信した場合に、前記記憶ボリュームに記憶される前記データを、前記情報処理装置と前記記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する手段
を備えることを特徴とするデータ入出力装置。
【請求項６】
前記情報処理装置から受信した前記入出力要求が、前記データの書き込み要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記手段は、
当該情報処理装置に対応付けられた前記記憶ボリュームに前記データを書き込む手段と、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶する手段と
であることを特徴とする請求項５に記載のデータ入出力装置。
【請求項７】
前記情報処理装置から受信した前記入出力要求が、当該情報処理装置に対応付けられていない前記記憶ボリュームに記憶された前記データの読み出し要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記手段は、
前記データを当該情報処理装置に対応付けられていない前記記憶ボリュームから読み出して、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込む手段と、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶する手段と
であることを特徴とする請求項５に記載のデータ入出力装置。
【請求項８】
前記情報処理装置と前記記憶ボリュームとの対応付け情報は、
前記情報処理装置から送信される、前記情報処理装置に対する前記記憶ボリュームの割り当てが指定されたデータであることを特徴とする請求項５に記載のデータ入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム及びデータ入出力装置に関する。
【０００２】
【従来の技術】
近年の情報技術の進歩に伴いストレージシステムの記憶容量は増加の一途を辿っている。このようなストレージシステムを複数の情報処理装置とネットワークで接続し、ストレージシステムが提供する大容量の記憶領域を複数の情報処理装置で利用する形態が普及している。
【０００３】
この場合、ストレージシステムが提供する記憶領域を複数の記憶領域に区分し、区分毎に利用可能な情報処理装置を割り当てることにより、複数の情報処理装置からストレージシステムを共通に利用できるようにする。ある区分の記憶領域に複数の情報処理装置を割り当てるようにすれば、これらの情報処理装置から共通の記憶領域を利用するようにすることもできる。
このような割り当ては、各情報処理装置からストレージシステムへのアクセス頻度や必要な記憶容量等を考慮して、ストレージシステム全体の記憶領域が効率良く利用されるように行われる。またこのような割り当ては、システムを管理するオペレータが、ストレージシステムの記憶領域を制御するオペレーティングシステムに対して所定の設定作業を行うことにより行われる。
【０００４】
【特許文献１】
特開２００２−２５９０６１号公報
【０００５】
【発明が解決しようとする課題】
しかしながら各情報処理装置からのアクセス頻度や各情報処理装置が使用する記憶容量、記憶領域は一定ではないため、ストレージシステムの運用をしばらく続けている間に、特定の区分の記憶領域へアクセスが集中する場合や特定の区分の記憶領域の使用率が上昇する場合がある。
このような場合、各区分の記憶領域に対する情報処理装置の割り当てを変更することが行われるが、このような割り当ての変更を行うためにはオペレーティングシステムのデバイス管理情報の変更を行うことが必要であった。そのため、各情報処理装置からストレージシステムに対するデータアクセスを継続したまま割り当てを変更することが困難であった。
【０００６】
また従来の技術では、ストレージシステムの各区分の記憶領域に対する情報処理装置の割り当ての変更が行われて各区分の記憶領域間でデータの移動が一斉に開始された場合における、情報処理装置に対するストレージシステムのデータアクセス性能に対する考慮がなされていなかった。
本発明は上記課題を鑑みてなされたものであり、プログラム、及びデータ入出力装置を提供することを主たる目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るプログラムは、データを記憶するための複数の記憶ボリュームと、前記データの入出力要求を行う複数の情報処理装置とに接続され、前記情報処理装置から前記入出力要求を受信し、前記記憶ボリュームに対する前記データの入出力処理を行うデータ入出力装置に、前記情報処理装置から前記入出力要求を受信した場合に、前記記憶ボリュームに記憶される前記データを、前記情報処理装置と前記記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御するステップを実行させる。
【０００８】
ここで、情報処理装置とは、記憶ボリュームに適宜データを記録したり、記憶ボリュームに記憶されるデータを利用、加工したりすることにより、所定の機能を実現するための装置である。例えばパーソナルコンピュータやワークステーションとすることができる。
【０００９】
データ入出力装置は、情報処理装置からデータ入出力要求を受信し、記憶ボリュームに記憶されるデータの入出力処理を行う。例えばファイルサーバコンピュータとすることもできるし、メインフレームコンピュータとすることもできる。
【００１０】
記憶ボリュームとは、データを記憶するための記憶リソースであり、ハードディスク装置等のディスクドライブにより提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む。つまり記憶ボリュームは記憶デバイスが備える上記物理ボリュームや、物理ボリューム上に論理的に設定される論理ボリュームにより提供される記憶リソースである。
【００１１】
なお上記データ入出力装置は、上記物理ボリュームを備える記憶デバイスを制御する記憶デバイス制御装置とすることもできる。この場合、記憶デバイスと記憶デバイス制御装置とにより、ディスクアレイ装置を構成するようにすることもできる。また、記憶デバイス制御装置が情報処理装置からファイル単位でのデータ入出力要求（以下、ファイルアクセス要求とも記す）を受信する場合には、記憶デバイスと記憶デバイス制御装置とにより、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）を構成するようにすることもできる。
【００１２】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１４】
＜第１の実施の形態＞
＝＝＝全体構成例＝＝＝
ます、本実施の形態に係るデータ入出力装置を含む情報処理システムの全体構成を示すブロック図を図１に示す。
図１に示す情報処理システムは、コンピュータ（データ入出力装置）５００と記憶デバイス３００とを備えている。コンピュータ５００は、情報処理装置２００からデータ入出力要求を受信し、記憶デバイス３００に対するデータ入出力処理を行う。コンピュータ５００は、例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等における中枢コンピュータとして用いられるメインフレームコンピュータとすることができる。この場合コンピュータ５００上ではデータベースアプリケーションプログラムが動作し、情報処理装置２００から記憶デバイス３００に記憶されているデータに対する入出力要求を受信して、記憶デバイス３００に対する入出力処理を行う。
【００１５】
コンピュータ５００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１０、メモリ５２０、Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）５３０、バス５６０を備える。ＣＰＵ５１０はコンピュータ５００の全体の制御を司るもので、メモリ５２０に格納されたプログラム５２０Ａを実行することにより各種機能を実現する。またコンピュータ５００はＩ／Ｆ５３０を介してネットワーク４００、管理端末５５０、記憶デバイス３００と接続される。バス５６０は、ＣＰＵ５１０、メモリ５２０、Ｉ／Ｆ５３０間を相互に接続する。
【００１６】
ネットワーク４００は、情報処理装置２００とコンピュータ５００とを相互に接続する。これにより情報処理装置２００とコンピュータ５００との間で通信を行うことができる。またネットワーク４００は、情報処理装置２００間も相互に接続しており、情報処理装置２００間でも通信を行うことができる。ネットワーク４００は、例えばインターネットとすることができる。また私的に使用されるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とすることもできる。ネットワーク４００を介して行われる情報処理装置２００とコンピュータ５００との間の通信、又は情報処理装置２００間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。
【００１７】
＝＝＝記憶デバイス＝＝＝
記憶デバイス３００は、ディスクドライブ３２０を備えている。データは、記憶デバイス３００が備えるディスクドライブ３２０により提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム（以下ＬＵとも記す）３１０に記憶されている。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。
【００１８】
なお、記憶デバイス３００は例えば複数のディスクドライブによりディスクアレイを構成するようにすることもできる。この場合、情報処理装置２００に対して提供される記憶領域は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）により管理された複数のディスクドライブにより提供されるようにすることもできる。
【００１９】
コンピュータ５００と記憶デバイス３００との間は図１のように直接に接続される形態とすることもできるし、ネットワークを介して接続するようにすることもできる。さらに記憶デバイス３００はコンピュータ５００と一体として構成されることもできる。
【００２０】
記憶デバイス３００に設定されるＬＵ３１０には、情報処理装置２００からアクセス可能なユーザＬＵ３１０や、コンピュータ５００の制御のために使用されるシステムＬＵ３１０等がある。システムＬＵ３１０にはコンピュータ５００で実行されるオペレーティングシステムやプログラム等も格納される。また各ＬＵ３１０には、アクセス可能な情報処理装置２００が対応付けられている。これにより情報処理装置２００毎にアクセス可能なＬＵ３１０が割り当てられる。この割り当ては、各情報処理装置２００に付番された情報処理装置番号（クライアント番号）と各ＬＵ３１０に付番されたＬＵ番号とを対応付けることにより行われる。対応付けは、複数の情報処理装置２００で一つのＬＵ３１０を共有するようにすることもできる。詳細は後述する。
【００２１】
＝＝＝管理端末＝＝＝
管理端末５５０は、コンピュータ５００を保守・管理するためのコンピュータである。管理端末５５０を操作することにより、例えばコンピュータ５００において実行されるプログラム５２０Ａのインストール等を行うことができる。また管理端末５５０を操作することにより、記憶デバイス３００の保守・管理を行うようにすることもできる。この場合、例えば記憶デバイス３００内の物理ディスク構成の設定や、ＬＵ３１０の設定、各ＬＵ３１０に対する情報処理装置２００の割り当て等を行うことができる。ここで記憶デバイス３００内の物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、ＲＡＩＤ構成の変更（例えばＲＡＩＤ１からＲＡＩＤ５への変更）等を行うことができる。
【００２２】
管理端末５５０はコンピュータ５００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末５５０は、コンピュータ５００や記憶デバイス３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００２３】
管理端末５５０の構成を示すブロック図を図９に示す。
管理端末５５０は、ＣＰＵ５５１、メモリ５５２、ポート５５３、記録媒体読取装置５５４、入力装置５５５、出力装置５５６、記憶装置５５８を備える。
【００２４】
ＣＰＵ５５１は管理端末５５０の全体の制御を司るもので、メモリ５５２に格納されたプログラム５５２Ａを実行することにより上記機能を実現する。
【００２５】
記録媒体読取装置５５４は、記録媒体５５７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ５５２や記憶装置５５８に格納される。従って、例えば記録媒体５５７に記録されたプログラム５５２Ａを、記録媒体読取装置５５４を用いて上記記録媒体５５７から読み取って、メモリ５５２や記憶装置５５８に格納するようにすることができる。記録媒体５５７としてはフレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、半導体メモリ等を用いることができる。なお、上記プログラム５５２Ａは管理端末５５０を動作させるためのプログラムとすることができる他、コンピュータ５００を保守・管理するためのプログラムや、記憶デバイス３００を保守・管理するためのプログラムとすることもできる。さらには、コンピュータ５００にインストールされるプログラムとすることもできる。記録媒体読取装置５５４は管理端末５５０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置５５８は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置５５５はオペレータ等による管理端末５５０へのデータ入力等のために用いられる。入力装置５５５としては例えばキーボードやマウス等が用いられる。出力装置５５６は情報を外部に出力するための装置である。出力装置５５６としては例えばディスプレイやプリンタ等が用いられる。ポート５５３はコンピュータ５００のＩ／Ｆ５３０に接続されており、これにより管理端末５５０はコンピュータ５００と通信を行うことができる。またポート５５３は、ネットワーク４００に接続するようにすることもできるし、電話回線に接続するようにすることもできる。
【００２６】
＝＝＝情報処理装置＝＝＝
情報処理装置２００はＣＰＵやメモリを備えたコンピュータである。情報処理装置２００が備えるＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。例えば情報処理装置２００はユーザからの操作入力を受け付けて、コンピュータ５００に対してデータ入出力要求を送信する。例えば情報処理装置２００を操作する預金者から現金引き出し要求を受け付けて、コンピュータ５００に対して預金管理データベースのデータ更新要求を送信する。情報処理装置２００は、例えばパーソナルコンピュータやワークステーションとすることができる。
【００２７】
情報処理装置２００の構成を示すブロック図を図２に示す。
情報処理装置２００は、ＣＰＵ２０１、メモリ２０２、ポート２０３、記録媒体読取装置２０４、入力装置２０５、出力装置２０６、記憶装置２０８を備える。
【００２８】
ＣＰＵ２０１は情報処理装置２００の全体の制御を司るもので、メモリ２０２に格納されたプログラム２０２Ａを実行することにより各種機能を実現する。記録媒体読取装置２０４は、記録媒体２０７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ２０２や記憶装置２０８に格納される。従って、例えば記録媒体２０７に記録されたプログラム２０２Ａを、記録媒体読取装置２０４を用いて上記記録媒体２０７から読み取って、メモリ２０２や記憶装置２０８に格納するようにすることができる。記録媒体２０７としてはフレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等を用いることができる。なお、上記プログラム２０２Ａは情報処理装置２００を動作させるためのプログラムとすることができる他、コンピュータ５００を保守・管理するためのプログラムや、記憶デバイス３００を保守・管理するためのプログラムとすることもできる。さらには、コンピュータ５００にインストールされるプログラムとすることもできる。記録媒体読取装置２０４は情報処理装置２００に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置２０８は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置２０５はオペレータ等による情報処理装置２００へのデータ入力等のために用いられる。例えば各情報処理装置２００とＬＵ３１０との対応付けを行う際に用いられる情報処理装置番号を入力する際に入力装置２０５が用いられる。入力装置２０５としては例えばキーボードやマウス等が用いられる。出力装置２０６は情報を外部に出力するための装置である。出力装置２０６としては例えばディスプレイやプリンタ等が用いられる。ポート２０３はコンピュータ５００と通信を行うための装置である。また他の情報処理装置２００との間で通信を行うために使用することもできる。この場合、例えばプログラム２０２Ａを、ポート２０３を介して他の情報処理装置２００から受信して、メモリ２０２や記憶装置２０８に格納するようにすることもできる。
【００２９】
＝＝＝コンピュータのメモリに記憶されるテーブル＝＝＝
上述したようにコンピュータ５００は情報処理装置２００からのデータ入出力要求を受信して、記憶デバイス３００に記憶されているデータの入出力処理を行う。そのためコンピュータ５００は、データの記憶位置の管理や、複数の情報処理装置２００からのデータ入出力要求があった場合の調整、さらにＬＵ３１０と情報処理装置２００との対応付けの管理等を行っている。これらの管理のためにコンピュータ５００は、図３に示すような各種テーブル、すなわち物理ディスク管理テーブル１６２Ａ、ＬＵ管理テーブル１６２Ｂ、データ管理テーブル７３０、ロックテーブル７２０、マッピング情報テーブル７５０をメモリ５２０に記憶している。
【００３０】
＝＝＝物理ディスク管理テーブル＝＝＝
物理ディスク管理テーブル１６２Ａは、記憶デバイス３００に備えられるディスクドライブ（物理ディスク）３２０を管理するためのテーブルである。物理ディスク管理テーブル１６２Ａを図４に示す。図４においては、記憶デバイス３００が備える多数のディスクドライブ３２０のうち、ディスク番号＃００１乃至＃００６までが示されている。それぞれのディスクドライブ３２０に対して、物理ディスク番号、記憶容量、ＲＡＩＤ構成、使用状況が示されている。
【００３１】
＝＝＝ＬＵ管理テーブル＝＝＝
ＬＵ管理テーブル１６２Ｂは、上記ディスクドライブ３２０上に論理的に設定されるＬＵ３１０を管理するためのテーブルである。ＬＵ管理テーブル１６２Ｂを図５に示す。図５においては、記憶デバイス３００上に設定される多数のＬＵ３１０のうち、ＬＵ番号＃１乃至＃３までが示されている。それぞれのＬＵ３１０に対して、物理ディスク番号、記憶容量、ＲＡＩＤ構成が示されている。
【００３２】
＝＝＝データ管理テーブル＝＝＝
データ管理テーブル７３０は、記憶デバイス３００に記憶されているデータの記憶位置等を管理するためのテーブルである。データ管理テーブル７３０は、ブロックＮｏ欄、データ名欄、ＬＵ番号欄、アドレス欄、容量欄、所有者欄、更新時刻欄、更新状態欄、次ブロック欄を備えている。これらの情報によりデータの記憶位置が特定される。
【００３３】
ブロックＮｏ．欄は、ディスクドライブ３２０上あるいはＬＵ３１０上に記憶されるデータのアクセス単位毎に付番される番号を示す。各ブロックは所定の記憶サイズを有しており、一つのデータが複数のブロックからなるようにすることもできる。例えば図６におけるデータ”ＡＡＡ”は、ブロックＮｏ．１乃至４の４つのブロックからなる。またデータ”ＢＢＢ”は、ブロックＮｏ．５の１つのブロックからなる。
【００３４】
データ名欄は、データ毎に付与されるデータを特定するための名称を示す。データ名は例えば情報処理装置２００を操作するユーザにより入力装置２０５から入力され、情報処理装置２００からコンピュータ５００に送信される。またデータ名は情報処理装置２００やコンピュータ５００のＣＰＵ（２０１、５１０）が自動的に付与する名称とすることもできる。
【００３５】
ＬＵ番号欄は、データが記憶されるＬＵ３１０の番号を示す。１つのデータが複数のブロックからなる場合には、ブロック毎に異なるＬＵ３１０に記憶されるようにすることができる。例えば図６に示すデータ”ＡＡＡ”は、ＬＵ１（３１０）とＬＵ２（３１０）とが混在している。なお１つのデータは必ず同一のＬＵ内のブロックからなるようにすることもできる。
【００３６】
アドレス欄は、当該データの各ブロックの位置を示す。これによりコンピュータ５００は、情報処理装置２００からのデータ入出力要求に対し、記憶デバイス３００に記憶されているデータの記憶位置を知ることができ、記憶デバイス３００上のデータにアクセスすることが可能となる。
【００３７】
容量欄はデータのサイズを示す。図６の例では、データ”ＡＡＡ”のサイズは１３００キロバイト（”ｋ”はキロを表す）、データ”ＢＢＢ”のサイズは２５０キロバイトであることが示されている。
【００３８】
所有者欄は当該データの作成者を表す。データの作成者は情報処理装置２００や管理端末５５０を操作するユーザやオペレータである場合もあるし、コンピュータ５００である場合もある。
【００３９】
更新時刻欄は当該データの更新時刻あるいは作成時刻を示す。
【００４０】
更新状態欄は当該データの更新状況をブロック単位に示す。”△”が記載されているブロックは、当該ブロックは更新中であることが示される。従って、”△”が記載されたブロックに対する情報処理装置２００からのアクセスは禁止される。図６に示す例では、データ”ＡＡＡ”のブロックＮｏ．２及び３に”△”が記載されており、これらのブロックが更新中であることが示されている。詳細は後述するが、この場合はブロックＮｏ．２からブロックＮｏ．３にデータのコピーが行われていることを示す。”○”が記載されているブロックは、当該ブロックへのアクセスは許可されていることを示す。”×”が記載されているブロックは、当該ブロックは無効であることを示す。例えば情報処理装置２００からあるデータを削除する入出力要求を受信した場合、当該データを構成する各ブロックの更新状態欄に”×”が記載される。これにより”×”が記載されたブロックは他のデータを記憶するために利用することができるようになる。図６に示す例では、データ”ＢＢＢ”が該当する。
【００４１】
次ブロック欄は、一つのデータを複数のブロックの繋がりとして管理するために用いられる。図６の例では、データ”ＡＡＡ”は、ブロックＮｏ．１の次ブロックはＮｏ．２であり、ブロックＮｏ．２の次はＮｏ．４であることが示されている。ブロックＮｏ．４の次ブロック欄には”−１”が記載されているが、これは次に繋がるブロックが存在しないことを表す。これにより、データ”ＡＡＡ”は、ブロックＮｏ．１、Ｎｏ．２、及びＮｏ．４からなるデータであることが示される。なお前述したように、図６の例ではブロックＮｏ．２からブロックＮｏ．３にデータのコピーが行われている。コピーが完了するとブロックＮｏ．２の更新状態欄には”×”が記載されると共に、ブロックＮｏ．３の更新状態欄には”○”が記載され、さらに、ブロックＮｏ．１の次ブロック欄にはＮｏ．３が記載される。これにより、データ”ＡＡＡ”は、ブロックＮｏ．１、Ｎｏ．３、及びＮｏ．４からなるデータとすることができる。
【００４２】
＝＝＝ロックテーブル＝＝＝
ロックテーブル７２０は、情報処理装置２００からのデータ入出力要求に対して排他制御を行うためのテーブルである。排他制御を行うことにより複数の情報処理装置２００からのデータアクセス競合を回避できる。これにより複数の情報処理装置２００でデータを共用することができる。ロックテーブル７２０を図７に示す。図７に示すようにロックテーブル７２０にはデータロックテーブル７２１とＬＵロックテーブル７２２とがある。データロックテーブル７２１は、データ毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００によりあるデータがオープンされている場合に当該データにロックが掛けられる。ロックが掛けられたデータに対する他の情報処理装置２００によるアクセスは禁止される。ＬＵロックテーブル７２２は、ＬＵ３１０毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００により、あるＬＵ３１０に対するアクセスが行われている場合に当該ＬＵ３１０にロックが掛けられる。ロックが掛けられたＬＵ３１０に対する他の情報処理装置２００によるアクセスは禁止される。
【００４３】
＝＝＝マッピング情報テーブル＝＝＝
マッピング情報テーブル７５０は、情報処理装置２００とＬＵ３１０との対応付けを管理するためのテーブル（情報処理装置と記憶ボリュームとの対応付け情報）である。マッピング情報テーブル７５０は、最小クライアント番号欄、最大クライアント番号欄、格納ＬＵ欄を備える。最小クライアント番号欄及び最大クライアント番号欄には、各情報処理装置２００に付番された情報処理装置番号が記載される。最小クライアント番号欄と最大クライアント番号欄とに同一の情報処理装置番号を記載すれば、ある特定の情報処理装置２００のみを指定することも可能である。最小クライアント番号欄に記載されたクライアント番号から最大クライアント番号欄に記載されたクライアント番号までの情報処理装置番号を有する情報処理装置群をクライアントグループと呼ぶ。クライアントグループは例えば企業内の部署別に設けるようにすることもできるし、企業毎に設けるようにすることもできる。
【００４４】
格納ＬＵ欄にはクライアントグループ毎に情報処理装置２００に割り当てられるＬＵ３１０が記載される。複数のＬＵ３１０を割り当てるようにすることもできる。図８の例ではｎ（ｎは１以上の自然数）個のＬＵ３１０を割り当てることができる。なおここで、ｎはあらかじめ固定された自然数とすることもできるし、割り当て時に動的に変化する自然数とすることもできる。さらに、ｎはクライアントグループ毎に異なる自然数とすることもできる。図８に示す例では情報処理装置１乃至１０からなるクライアントグループに対してＬＵ１（３１０）が対応付けられている。また情報処理装置１１乃至２０からなるクライアントグループに対してもＬＵ１（３１０）が対応付けられている。情報処理装置２１乃至３０からなるクライアントグループに対してはＬＵ２（３１０）が対応付けられている。これにより情報処理装置１乃至２０はＬＵ１（３１０）に対するデータアクセスが中心となり、情報処理装置２１乃至３０はＬＵ２（３１０）に対するデータアクセスが中心となる。
【００４５】
マッピング情報テーブル７５０の内容を更新すると、情報処理装置２００からアクセス可能なＬＵ３１０の割り当てを変更することができる。マッピング情報テーブル７５０の更新は、例えば複数の情報処理装置２００から特定のＬＵ３１０へのアクセスが集中している場合や、複数の情報処理装置２００で共通に使用されるＬＵ３１０の残り記憶容量が少なくなった場合に行われる。これにより、記憶デバイス３００により提供される記憶領域が効率良く利用されるようにすることができる。また特定のＬＵ３１０へのデータアクセスが集中することに伴うデータ入出力性能の低下を回避し、システム全体としてデータ入出力性能を向上させることも可能となる。
【００４６】
マッピング情報テーブル７５０の更新は管理端末５５０や情報処理装置２００から行うことができる。またマッピング情報テーブル７５０の更新は、情報処理装置２００からコンピュータ５００へのデータ入出力要求を継続したまま行うことができる。
【００４７】
コンピュータ５００は、情報処理装置２００からデータ入出力要求を受信するとＬＵ３１０に記憶されているデータの入出力処理を行うが、マッピング情報テーブル７５０に記載されている、情報処理装置２００とＬＵ３１０との対応付けに従って、当該データを当該情報処理装置２００に対応付けられたＬＵ３１０に移動するように制御する。
【００４８】
＝＝＝データ入出力処理の概要＝＝＝
本実施の形態に係るコンピュータ５００が情報処理装置２００からデータ入出力要求を受信した場合には、ＣＰＵ５１０は、マッピング情報テーブル７５０を用いて、記憶デバイス３００上に設定されるＬＵ３１０に記憶されるデータを、当該情報処理装置２００に対応付けられたＬＵ３１０に移動するように制御する。すなわちＣＰＵ５１０は、ＬＵ３１０に記憶されるデータを情報処理装置２００に対応付けられたＬＵ３１０に移動するように制御する手段として機能する。制御の概要を、図１０を用いて説明する。
【００４９】
図１０においては、３台の情報処理装置２００がネットワーク４００を介してコンピュータ５００に接続されており、記憶デバイス３００上には２つのＬＵ３１０、すなわちＬＵ１（３１０）とＬＵ２（３１０）とが設定されている場合が示される。またコンピュータ５００のメモリ５２０に記憶されているマッピング情報テーブル７５０により、クライアント番号（情報処理装置番号）１乃至１０の情報処理装置２００にはＬＵ１（３１０）が対応付けされており、クライアント番号１１乃至２０の情報処理装置２００に対してはＬＵ２（３１０）が対応付けされている。また情報処理装置１（２００）にはクライアント番号１０が設定されており、情報処理装置２（２００）にはクライアント番号１５が設定されており、情報処理装置３（２００）にはクライアント番号２０が設定されている。このような状況下において、情報処理装置１（２００）すなわちクライアント番号１０の情報処理装置２００からのデータ入出力要求に対するデータ入出力処理は以下のように制御される。
【００５０】
＝＝＝新規データの書き込み＝＝＝
まず情報処理装置１（２００）からのデータ入出力要求が新規データの書き込み要求であった場合には、当該新規データはマッピング情報テーブル７５０に従ってＬＵ１に書き込まれる。図１０において”追加”と記載された矢印が示す如くである。
【００５１】
すなわちコンピュータ５００のＣＰＵ５１０は、情報処理装置１（２００）から受信したデータ入出力要求が新規データの書き込み要求であると判別すると、まずマッピング情報テーブル７５０を参照して当該情報処理装置２００に割り当てられているＬＵ３１０を特定する。そして特定したＬＵ３１０にデータを書き込む。すなわちＣＰＵ５１０は当該情報処理装置に対応付けられたＬＵ３１０にデータを書き込む手段として機能する。またデータを書き込むと共に図６に示したようにデータ管理テーブル７３０に当該データの記憶位置を特定するための所定の情報を記録する。すなわちＣＰＵ５１０は、当該情報処理装置２００に対応付けられたＬＵ３１０に書き込まれたデータの記憶位置を特定するための情報をデータ管理テーブル７３０に記憶する手段としても機能する。なお当該情報処理装置２００に複数のＬＵ３１０が割り当てられている場合には、それらのＬＵ３１０の中から選択した一つのＬＵ３１０にデータを書き込む。ＬＵ３１０の選択はどのようなアルゴリズムにより行うようにすることもできる。
【００５２】
このように、情報処理装置２００からの新規データが、マッピング情報テーブル７５０によりそれぞれの情報処理装置２００に対応付けられたＬＵ３１０に書き込まれることにより、記憶デバイス３００上のデータを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。
【００５３】
＝＝＝更新データの書き込み＝＝＝
次に、情報処理装置１（２００）からのデータ入出力要求がＬＵ２（３１０）に記憶されているデータの更新要求（更新データの書き込み要求）であった場合には、まずＬＵ２（３１０）の当該データの更新が行われる。そして更新されたＬＵ２（３１０）に記憶されたデータをＬＵ１（３１０）へ移動させる。移動は、ＬＵ２（３１０）に記憶されたデータをＬＵ１（３１０）へコピーした後、ＬＵ２（３１０）に記憶されている元のデータを無効化することにより行われる。図１０において”更新”と記載された矢印が示す如くである。
【００５４】
すなわちコンピュータ５００のＣＰＵ５１０は、情報処理装置１（２００）から受信したデータ入出力要求が更新データの書き込み要求であると判別すると、まず当該入出力要求に従って記憶デバイス３００上のデータの更新を行う。データを更新すると共に図６に示したデータ管理テーブル７３０に当該データに関する所定の情報も更新する。続いてマッピング情報テーブル７５０を参照して当該情報処理装置２００に割り当てられているＬＵ３１０を特定する。そして特定したＬＵ３１０にデータをコピーする。すなわちＣＰＵ５１０は当該情報処理装置に対応付けられたＬＵ３１０にデータを書き込む手段として機能する。データのコピー時には、データ管理テーブル７３０にコピー先のデータの記憶位置を特定するための所定の情報を追加すると共に、コピー先及びコピー元のそれぞれのデータに関する更新状態欄に”△”を記載する。すなわちＣＰＵ５１０は、当該情報処理装置２００に対応付けられたＬＵ３１０に書き込まれたデータの記憶位置を特定するための情報をデータ管理テーブル７３０に記憶する手段としても機能する。なお図６に示したデータ管理テーブル７３０の更新状態欄はブロック毎に更新状態を記載可能なように記載されており、データのコピーもブロック単位に行うことができる場合を想定して記載されているが、コピーはブロック単位ではなくデータ単位で行われるようにし更新状態欄もデータ単位での状態が記載されるようにすることもできる。ＬＵ２（３１０）からＬＵ１（３１０）への上記更新データのコピーが終了すると、ＬＵ１（３１０）のデータ（コピー先データ）に関するデータ管理テーブル７３０の更新状態欄には”○”が記載され、ＬＵ２（３１０）のデータ（コピー元データ）に関するデータ管理テーブル７３０の更新状態欄には”×”が記載される。なお情報処理装置１（２００）に複数のＬＵ３１０が割り当てられている場合には、それらのＬＵ３１０の中から選択した一つのＬＵ３１０にデータをコピーする。ＬＵ３１０の選択はどのようなアルゴリズムにより行うようにすることもできる。
【００５５】
このように、情報処理装置２００により更新されたデータが、マッピング情報テーブル７５０によりそれぞれの情報処理装置２００に対応付けられたＬＵ３１０に書き込まれることにより、記憶デバイス３００上のデータを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。
【００５６】
なお上述した例においては、情報処理装置１（２００）からの更新データは一旦ＬＵ２（３１０）に書き込まれた後に、ＬＵ２（３１０）からＬＵ１（３１０）に移動されるものとしたが、直接ＬＵ１（３１０）に書き込まれるようにすることもできる。この場合には、コンピュータ５００のＣＰＵ５１０は、情報処理装置１（２００）から受信したデータ入出力要求が更新データの書き込み要求であると判別すると、まずマッピング情報テーブル７５０を参照して当該情報処理装置２００に割り当てられているＬＵ３１０（ＬＵ１）を特定する。そして特定したＬＵ３１０に当該更新データを書き込む。そしてデータ管理テーブル７３０に当該更新データに関する所定の情報を追加すると共に、元のＬＵ（ＬＵ２）３１０に記憶されている更新前のデータに関する更新状態欄を”×”にする。
【００５７】
＝＝＝データの読み出し＝＝＝
次に、情報処理装置１（２００）からのデータ入出力要求がＬＵ２（３１０）に記録されたデータの読み出し要求であった場合には、当該データはデータ管理テーブル７３０に記録される記憶位置から読み出される。図１０において”参照”と記載された矢印が示す如くである。
【００５８】
すなわちコンピュータ５００のＣＰＵ５１０は、情報処理装置１（２００）から受信したデータ入出力要求がデータの読み出し要求であると判別すると、マッピング情報テーブル７５０は見に行かずに、データ管理テーブル７３０から当該データの記憶アドレスを求め、読みに行く。読み出し時にデータの移動を行わないのは、移動のための処理オーバヘッドによりアクセスタイムが遅延するおそれがあるためである。
【００５９】
しかし、移動のための処理オーバヘッドによるアクセスタイムの遅延が問題にならないような場合には、データの読み出し時にもマッピング情報テーブル７５０に従ってデータの移動を行うようにすることもできる。この場合には、コンピュータ５００のＣＰＵ５１０は、情報処理装置１（２００）から受信したデータ入出力要求がデータの読み出し要求であると判別すると、まず当該入出力要求に従って記憶デバイス３００上のデータの読み出しを行う。続いてマッピング情報テーブル７５０を参照して当該情報処理装置２００に割り当てられているＬＵ３１０を特定する。そして特定したＬＵ３１０にデータをコピーする。すなわちＣＰＵ５１０は当該情報処理装置に対応付けられたＬＵ３１０にデータを書き込む手段として機能する。データのコピー時には、データ管理テーブル７３０にコピー先のデータの記憶位置を特定するための所定の情報を追加すると共に、コピー先及びコピー元のそれぞれのデータに関する更新状態欄に”△”を記載する。すなわちＣＰＵ５１０は、当該情報処理装置２００に対応付けられたＬＵ３１０に書き込まれたデータの記憶位置を特定するための情報をデータ管理テーブル７３０に記憶する手段としても機能する。ＬＵ２（３１０）からＬＵ１（３１０）への上記データのコピーが終了すると、ＬＵ１（３１０）のデータ（コピー先データ）に関するデータ管理テーブル７３０の更新状態欄には”○”が記載され、ＬＵ２（３１０）のデータ（コピー元データ）に関するデータ管理テーブル７３０の更新状態欄には”×”が記載される。なお情報処理装置１（２００）に複数のＬＵ３１０が割り当てられている場合には、それらのＬＵ３１０の中から選択した一つのＬＵ３１０にデータをコピーする。ＬＵ３１０の選択はどのようなアルゴリズムにより行うようにすることもできる。
【００６０】
このように、データの読み出し時においても記憶デバイス３００に記憶されているデータを、マッピング情報テーブル７５０によりそれぞれの情報処理装置２００に対応付けられたＬＵ３１０に書き込むようにすることにより、記憶デバイス３００上のデータを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。
【００６１】
＝＝＝入出力コマンド＝＝＝
次に、本実施の形態に係る入出力処理を行う際に用いられるコマンド示すブロック図を図１１に示す。
【００６２】
＝＝＝データの読み出しコマンド＝＝＝
情報処理装置２００から送信される入出力要求が参照要求（データの読み出し）の場合は、情報処理装置２００から送信される入出力要求は、図１１Ａに示すように、クライアント番号欄、Ｉ／Ｏ種別欄、参照キー欄を有する。クライアント番号欄には当該入出力要求を送信した情報処理装置２００のクライアント番号が記載される。Ｉ／Ｏ種別欄には当該入出力要求が参照要求であることが記載される。参照キー欄には参照するデータのデータ名が記載される。なお、参照キー欄には参照するデータの記憶アドレスが記載されるようにすることもできる。
【００６３】
＝＝＝更新データの書き込みコマンド＝＝＝
情報処理装置２００から送信される入出力要求が更新要求（更新データの書き込み）の場合は、情報処理装置２００から送信される入出力要求は、図１１Ｂに示す項目のうち、クライアント番号欄、Ｉ／Ｏ種別欄、参照キー欄、更新後データ欄を有する。格納ＬＵ番号欄は、コンピュータ５００がマッピング情報テーブル７５０を参照して当該情報処理装置２００に対応付けられたＬＵ３１０を特定した後に、コンピュータ５００により付加される欄である。クライアント番号欄には当該入出力要求を送信した情報処理装置２００のクライアント番号が記載される。Ｉ／Ｏ種別欄には当該入出力要求が更新要求であることが記載される。参照キー欄には参照するデータのデータ名が記載される。なお、参照キー欄には参照するデータの記憶アドレスが記載されるようにすることもできる。更新後データ欄には情報処理装置２００により更新されたデータが格納される。更新後データ欄に格納されるデータは、データ全体とすることもできるし、データ全体のうち内容の更新されたブロックのみとすることもできる。後者の場合には、参照キー欄には更新されたブロックを特定するための情報も記載される。
【００６４】
＝＝＝新規データの書き込みコマンド＝＝＝
情報処理装置２００から送信される入出力要求が追加要求（新規データの書き込み）の場合は、情報処理装置２００から送信される入出力要求は、図１１Ｃに示す項目のうち、クライアント番号欄、Ｉ／Ｏ種別欄、追加データ欄を有する。格納ＬＵ番号欄は、コンピュータ５００がマッピング情報テーブル７５０を参照して当該情報処理装置２００に対応付けられたＬＵ３１０を特定した後に、コンピュータ５００により付加される欄である。クライアント番号欄には当該入出力要求を送信した情報処理装置２００のクライアント番号が記載される。Ｉ／Ｏ種別欄には当該入出力要求が追加要求であることが記載される。追加データ欄には情報処理装置２００により新規作成されたデータが格納される。
【００６５】
このように入出力要求にクライアント番号が記載されているために、コンピュータ５００は当該入出力要求を送信してきた情報処理装置２００を特定することができる。そしてマッピング情報テーブル７５０を参照して当該情報処理装置２００に対応付けられたＬＵ３１０を特定することができる。これにより、当該入出力要求の対象となっているデータを、当該情報処理装置２００に対応付けられたＬＵ３１０に移動するように制御することが可能となる。
【００６６】
＝＝＝情報処理装置の機能ブロック＝＝＝
次に、本実施の形態に係る情報処理装置２００における機能を示すブロック図を図１２に示す。
図１２に示すように情報処理装置２００はクライアント番号設定部、Ｉ／Ｏ要求部を有する。
【００６７】
クライアント番号設定部は、マッピング情報テーブル７５０によりＬＵ３１０と対応付けられる情報処理装置２００を特定するためのクライアント番号を設定する機能を有する。クライアント番号設定部はクライアント番号入力部とクライアント情報格納部とを備える。
クライアント番号入力部は、情報処理装置２００の入力装置２０５からオペレータ等により入力される番号を取り込む機能を有する。クライアント情報格納部は、取り込まれたクライアント番号をメモリ２０２や記憶装置２０８に記憶する機能を有する。
【００６８】
情報処理装置２００においてクライアント番号の設定が行われる様子を示す例を図１６に示す。すなわち、情報処理装置２００が備えるディスプレイ装置等の出力装置２０６に図１６に示すクライアント番号設定ウインドウが表示される。情報処理装置２００を操作するオペレータやユーザは、マウスやキーボード等の入力装置２０５を用いてクライアント番号欄にクライアント番号を入力し、ＯＫボタンをクリックする。これにより情報処理装置２００にクライアント番号が取り込まれ、メモリ２０２等に格納される。
【００６９】
なおクライアント番号設定部は、情報処理装置２００により実行されるプログラム２０２Ａにより実現されるようにすることもできるし、コンピュータ５００において実行されるプログラム５２０ＡがＷｅｂサーバとしての機能を備える場合には、コンピュータ５００により情報処理装置２００の出力装置２０６に表示されるＷｅｂページを通して実現されるようにすることもできる。
【００７０】
Ｉ／Ｏ要求部は、コンピュータ５００に対して入出力要求を送信する機能を有する。Ｉ／Ｏ要求部は、Ｉ／Ｏ情報受付部、Ｉ／Ｏ情報付加部、クライアント情報付加部、Ｉ／Ｏ要求転送部を備える。
Ｉ／Ｏ情報受付部は、情報処理装置２００で実行されるプログラム２０２Ａ等からデータの書き込みや読み出しのリクエストを受け付ける機能を有する。リクエストにはデータ名等の参照キーが含まれる。またデータの書き込みの場合には書き込まれるデータも含まれる。Ｉ／Ｏ情報付加部は、上記データや参照キーにＩ／Ｏ種別、例えば”参照”、”更新”、あるいは”追加”を付加する。クライアント情報付加部はクライアント番号を付加する機能を有する。クライアント番号はクライアント番号設定部により設定されているので、メモリ２０２等から読み出すことにより取得することができる。これによりコンピュータ５００へ送信する入出力要求が生成される。Ｉ／Ｏ要求転送部は上記入出力要求をコンピュータ５００へ送信する機能を有する。
【００７１】
＝＝＝コンピュータの機能ブロック＝＝＝
次に、本実施の形態に係るコンピュータ５００における機能を示すブロック図を図１３に示す。
図１３に示すようにコンピュータ５００はクライアントＬＵ情報設定部、ＬＵ特定部を有する。
クライアントＬＵ情報設定部は、マッピング情報テーブル７５０を設定するための機能を有する。クライアントＬＵ情報設定部は、クライアントグループ−ＬＵ対応入力部、マッピング情報テーブル作成更新部を備える。
クライアントグループ−ＬＵ対応入力部は、管理端末５５０の入力装置５５５等からオペレータ等により入力されるマッピング情報を取り込む機能を有する。マッピング情報テーブル作成更新部は、取り込まれたマッピング情報をメモリ５２０に記憶する機能を有する。
【００７２】
コンピュータ５００においてマッピング情報テーブル７５０の設定が行われる様子を示す例を図１５に示す。すなわち、管理端末５５０が備えるディスプレイ装置等の出力装置５５６に図１５に示すクライアントグループ設定ウインドウが表示される。管理端末５５０を操作するオペレータは、マウスやキーボード等の入力装置５５５を用いてＬＵ欄やクライアントグループ欄にＬＵ番号及びクライアント番号を入力する。これにより情報処理装置２００に対するＬＵ３１０の割り当てを指定することができる。図１５に示す例では、ＬＵ１に対してはクライアント番号１乃至１０のクライアントグループと、クライアント番号２１乃至３０のクライアントグループとが対応付けられており、ＬＵ２に対してはクライアント番号１１乃至２０のクライアントグループが対応付けられている。ＯＫボタンをクリックすると、これらのマッピング情報（情報処理装置２００に対するＬＵ３１０の割り当てが指定されたデータ）が管理端末５５０からコンピュータ５００に送信される。コンピュータ５００のクライアントグループ−ＬＵ対応入力部は送信されたマッピング情報を受信する。そしてマッピング情報テーブル作成更新部によりメモリ５２０に記憶されているマッピング情報テーブル７５０が更新される。
【００７３】
なお詳細設定ボタンをクリックすると、図１５に示すように詳細設定ウインドウが表示される。詳細設定ウインドウにおいてはいくつかのオプション設定を行うことが可能となっている。図１５に示すようにチェックボックスをマウス等でクリックすることにより、オプションを選択することができるようになっている。図１５に示す例では「ブロック単位でデータを移動させる」オプションが選択されている。また上記マッピング情報テーブル７５０の設定は、管理端末５５０から行う場合の他情報処理装置２００から行うようにすることもできる。
【００７４】
上記のようにマッピング情報テーブル７５０を設定することにより、情報処理装置２００からデータ入出力要求があった場合に、記憶デバイス３００上の当該データを情報処理装置２００に対応付けられたＬＵ３１０に移動するように制御が行われる。この制御は、マッピング情報テーブル７５０の設定後、直ちに開始されるようにすることもできるし、所定の条件が成立した場合に開始するようにすることもできる。後者の場合の所定の条件としては、例えばあるＬＵ３１０に対するデータ入出力要求の頻度が所定の値を超えることや、所定の時刻を経過すること等が考えられる。
【００７５】
ＬＵ特定部は、情報処理装置２００から受信した入出力要求に基づきマッピング情報テーブル７５０を参照することにより、ＬＵを特定する機能を有する。ＬＵ特定部は、Ｉ／Ｏ種別振り分け部、マッピング情報参照ＬＵ特定部、データ状態フラグ更新部、Ｉ／Ｏ要求部を備える。
【００７６】
Ｉ／Ｏ種別振り分け部は、情報処理装置２００から受信した入出力要求のＩ／Ｏ種別欄に基づいて入出力要求の種別を特定する。マッピング情報参照ＬＵ特定部は、情報処理装置２００から受信した入出力要求のクライアント番号欄に基づいて、マッピング情報テーブル７５０を参照することにより、該当するＬＵ３１０を特定する。そして特定したＬＵの番号を入出力要求に付加する。データ状態フラグ更新部は、データ管理テーブル７３０の更新状態欄を更新する。例えばＩ／Ｏ種別が更新データの書き込みの場合には、当該データの更新状態欄を”○”から”△”に更新する。これにより当該データに対する他の情報処理装置２００からのアクセスが行えないようにすることができる。Ｉ／Ｏ要求部は、ＬＵ番号を特定した入出力要求を記憶デバイス３００に送信する。
【００７７】
＝＝＝記憶デバイスの機能ブロック＝＝＝
次に、本実施の形態に係る記憶デバイス３００における機能を示すブロック図を図１４に示す。
図１４に示すように記憶デバイス３００はＩ／Ｏ部を有する。Ｉ／Ｏ部はコンピュータ５００から送信されたデータ入出力コマンドに基づき、ＬＵ３１０へのデータアクセスを行う機能を有する。
Ｉ／Ｏ部は、格納ＬＵサーチ部とＩ／Ｏ部とを備える。格納ＬＵサーチ部は、コンピュータ５００から送信されたデータ入出力コマンドに付加された格納ＬＵ番号に基づき、該当するＬＵ３１０を特定する。Ｉ／Ｏ部は当該ＬＵ３１０に対するデータの入出力を行う。
【００７８】
＝＝＝情報処理装置における処理の流れ＝＝＝
次に、本実施の形態に係る情報処理装置２００において実行される処理の流れを示すフローチャートを図１７に示す。なお以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるプログラム２０２Ａを、ＣＰＵ２０１が実行することにより実現される。
【００７９】
まず情報処理装置２００はクライアント番号を設定するかどうかを判定する（Ｓ１０００）。クライアント番号を設定する場合には”Ｙ”に進み、図１２に示したクライアント番号設定部によりクライアント番号の設定を行う。すなわち、まずクライアント番号の入力を受け付け（Ｓ１００１）、受け付けたクライアント番号をメモリ２０２に格納する（Ｓ１００２）。
Ｓ１０００においてクライアント番号を設定しない場合には”Ｎ”に進み、図１２に示したＩ／Ｏ要求部によりユーザＩ／Ｏ要求を受け付ける処理に進む（Ｓ１００３）。すなわち情報処理装置２００は、Ｉ／Ｏ要求を受け付けたら（Ｓ１００３）Ｉ／Ｏ種別及びクライアント番号を付加し（Ｓ１００４）、コンピュータ５００にデータ入出力要求を送信する（Ｓ１００５）。データの参照要求の場合にはコンピュータ５００からデータを受信する（Ｓ１００６）。
【００８０】
＝＝＝コンピュータにおける処理の流れ＝＝＝
次に、本実施の形態に係るコンピュータにおいて実行される処理の流れを示すフローチャートを図１８に示す。なお以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるプログラム５２０Ａを、ＣＰＵ５１０が実行することにより実現される。
【００８１】
まずコンピュータ５００はクライアントグループを設定するかどうかを判定する（Ｓ２０００）。クライアントグループを設定する場合には”Ｙ”に進み、図１３に示したクライアントＬＵ情報設定部によりクライアントグループの設定を行う。すなわち、まずクライアントグループとＬＵとを対応付けたマッピング情報の入力を受け付け（Ｓ２００１）、受け付けたマッピング情報をメモリ５２０に格納する（Ｓ２００２）。
Ｓ２０００においてクライアントグループを設定しない場合には”Ｎ”に進み、図１３に示したＬＵ特定部により情報処理装置２００からの入出力要求を受け付ける処理に進む（Ｓ２００３）。
【００８２】
情報処理装置２００から入出力要求を受信すると（Ｓ２００３）まずＩ／Ｏ種別を判別する（Ｓ２００４）。Ｉ／Ｏ種別が更新データの書き込み要求である場合はＳ２００５に進み、マッピング情報テーブル７５０を参照してＬＵ３１０を特定する（Ｓ２００５）。続いて、マッピング情報テーブル７５０により特定したＬＵ３１０上にデータのコピーを書き込むための領域を確保し、コピー先データを管理するためにデータ管理テーブル７３０も更新する。そしてコピー元データ及びコピー先データについての更新状態欄を”△”にする（Ｓ２００６）。その後コピー元データを更新データに書き換え（Ｓ２００７）、続いて当該データをコピー先ＬＵに書き込む（Ｓ２００８）。コピーが終了したら、データ管理テーブル７３０のコピー先データについての更新状態欄を”○”にし、コピー元データについての更新状態欄を”×”にする（Ｓ２００９）。
【００８３】
一方Ｓ２００４において、Ｉ／Ｏ種別が新規データの書き込み要求である場合はＳ２０１０からＳ２０１１に進み、マッピング情報テーブル７５０を参照してＬＵ３１０を特定する（Ｓ２０１１）。続いて、マッピング情報テーブル７５０により特定したＬＵ３１０上にデータを書き込むための領域を確保し、データ管理テーブル７３０を更新する。データ管理テーブル７３０の更新状態欄は”△”にする（Ｓ２０１２）。その後、新規データを当該ＬＵ３１０に書き込む（Ｓ２０１３）。書き込みが終了したら、データ管理テーブル７３０の当該データについての更新状態欄を”○”にする（Ｓ２０１４）。
またＳ２００４においてＩ／Ｏ種別がデータの読み出し要求である場合は、Ｓ２０１０からＳ２０１５に進む。そしてデータ管理テーブル７３０に記載されたデータの記憶アドレスに従って当該データを記憶デバイス３００から読み出す（Ｓ２０１７）。そして読み出したデータを情報処理装置２００に送信する（Ｓ２０１８）。
【００８４】
なお、情報処理装置２００から受信した入出力要求が「更新データの書き込み」でもなく、「新規データの書き込み」でもなく、「データの読み出し」でもない場合には、Ｓ２０１５において”Ｎ”に進み、所定のエラー処理が行われる（Ｓ２０１６）。
【００８５】
このように、本実施の形態に示したように、情報処理装置２００からコンピュータ５００に対してデータ入出力要求があった場合には、記憶デバイス３００のＬＵ３１０に記憶されるデータを、マッピング情報テーブル７５０により特定されるＬＵ３１０に移動するように制御が行われる。これにより、記憶デバイス３００上のデータをマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。これにより、特定のＬＵ３１０へのデータアクセスが集中している場合や、あるＬＵ３１０の残り記憶容量が少なくなった場合に、情報処理装置２００からのデータ入出力要求を継続したまま、記憶デバイス３００上のデータを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動してゆくことができるため、記憶デバイス３００により提供される記憶領域を効率良く利用するようにすることができる。また特定のＬＵ３１０へのデータアクセスの集中を回避し、システム全体としてのデータ入出力性能を向上させることも可能となる。
【００８６】
さらに、データの移動は情報処理装置２００からアクセスがあった時に行われるため、データ移動時に発生する処理オーバヘッドが記憶デバイス３００の入出力性能に与える影響が少なくて済むという利点も有する。さらに、将来に渡って情報処理装置２００からアクセスされることがないかもしれないデータを移動するといった無駄な処理を行わずに済む。
【００８７】
また本実施の形態に係るデータの移動は、情報処理装置２００から入出力要求があった場合にＣＰＵ５１０がマッピング情報テーブル７５０を参照することにより行われるため、オペレーティングシステムのデバイス管理情報を変更するためにシステムを停止させることや、データ入出力処理を冗長系にフェイルオーバさせることは不要である。これにより２４時間３６５日の稼働が求められるシステムに対してもユーザが任意に指定するクライアントグループ毎にアクセスするＬＵを分散化させることができ、高性能かつ可用性の高い情報処理システムを構築することが可能となる。
【００８８】
＜第２の実施の形態＞
＝＝＝全体構成例＝＝＝
ます、本実施の形態に係るデータ入出力装置を含むストレージシステムの全体構成を示すブロック図を図１９に示す。
ストレージシステム６００は、記憶デバイス制御装置（データ入出力装置）１００と記憶デバイス３００とを備えている。記憶デバイス制御装置１００は、情報処理装置２００からファイル名指定によるデータ入出力要求（以下ファイルアクセス要求と記す）を受信して、記憶デバイス３００に記憶されているデータの入出力のための処理を行う。データは、記憶デバイス３００が備えるディスクドライブ３２０により提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ、以下ＬＵと記す）に記憶されている。また記憶デバイス制御装置１００は、情報処理装置２００との間で、ストレージシステム６００を管理するための各種コマンドの授受も行う。
【００８９】
情報処理装置２００はＣＰＵやメモリを備えたコンピュータであり、第１の実施の形態において説明したものと同様である。また、クライアント番号の設定も第１の実施の形態と同様に行われる。
図１９において、情報処理装置２００は、ＬＡＮ４００を介して記憶デバイス制御装置１００と接続されている。ＬＡＮ４００は、インターネットとすることもできるし、専用のネットワークとすることもできる。ＬＡＮ４００を介して行われる情報処理装置２００と記憶デバイス制御装置１００との間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。
【００９０】
記憶デバイス制御装置１００は、チャネル制御部１１０を備える。チャネル制御部１１０は、情報処理装置２００からのファイルアクセス要求を個々に受け付ける。すなわち、チャネル制御部１１０には、個々にＬＡＮ４００上のネットワークアドレス（例えば、ＩＰアドレス）が割り当てられていてそれぞれが個別にＮＡＳとして振る舞い、個々のＮＡＳがあたかも独立したＮＡＳが存在しているかのようにＮＡＳのサービスを情報処理装置２００に提供することができる。以下、チャネル制御部１１０をＣＨＮ１１０とも記す。
【００９１】
なお情報処理装置２００と記憶デバイス制御装置１００との間の接続は、ＬＡＮ４００ではなくＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とすることもできる。この場合、情報処理装置２００と記憶デバイス制御装置１００との間では、例えばファイバチャネルプロトコルに従って通信が行われ、記憶デバイス３００が提供する記憶領域におけるデータの管理単位であるブロックを単位としてデータの授受が行われる。
【００９２】
＝＝＝記憶デバイス＝＝＝
記憶デバイス３００は多数のディスクドライブ３２０を備えており情報処理装置２００に対して記憶領域を提供する。記憶デバイス３００も第１の実施の形態において説明したものと同様である。
【００９３】
＝＝＝記憶デバイス制御装置＝＝＝
記憶デバイス制御装置１００はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０、管理端末１６０、接続部１５０を備える。
【００９４】
チャネル制御部１１０は情報処理装置２００との間で通信を行うための通信インタフェースを備え、情報処理装置２００との間でデータ入出力コマンド等を授受する機能を備える。例えばＣＨＮ１１０は情報処理装置１乃至５（２００）からのファイルアクセス要求を受け付ける。そしてファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するＩ／Ｏ要求を出力することにより、記憶デバイス３００へのアクセスを行う。これによりストレージシステム６００はＮＡＳとしてのサービスを情報処理装置１乃至５（２００）に提供することができる。なおＩ／Ｏ要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別が含まれている。またデータの書き込みの場合にはＩ／Ｏ要求には書き込みデータが含まれているようにすることもできる。Ｉ／Ｏ要求の出力は、後述するＩ／Ｏプロセッサ１１９により行われる。
【００９５】
各チャネル制御部１１０は管理端末１６０と共に内部ＬＡＮ１５１で接続されている。これによりチャネル制御部１１０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。チャネル制御部１１０の構成については後述する。
【００９６】
接続部１５０はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０を相互に接続する。
共有メモリ１２０及びキャッシュメモリ１３０は、チャネル制御部１１０、ディスク制御部１４０により共有される記憶メモリである。共有メモリ１２０は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ１３０は主にデータを記憶するために利用される。
【００９７】
例えば、あるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが書き込みコマンドであった場合には、当該チャネル制御部１１０は書き込みコマンドを共有メモリ１２０に書き込むと共に、情報処理装置２００から受信した書き込みデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は共有メモリ１２０を監視しており、共有メモリ１２０に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ１３０から書き込みデータを読み出して記憶デバイス３００に書き込む。
【００９８】
なお、このようにチャネル制御部１１０からディスク制御部１４０に対するデータの書き込みや読み出しの指示を共有メモリ１２０を介在させて間接に行う構成の他、例えばチャネル制御部１１０からディスク制御部１４０に対してデータの書き込みや読み出しの指示を共有メモリ１２０を介さずに直接に行う構成とすることもできる。
【００９９】
ディスク制御部１４０は記憶デバイス３００の制御を行う。例えば上述のように、チャネル制御部１１０が情報処理装置２００から受信したデータ書き込みコマンドに従って記憶デバイス３００へデータの書き込みを行う。また、チャネル制御部１１０により送信された論理アドレス指定によるＬＵ３１０へのデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する。記憶デバイス３００における物理ディスクがＲＡＩＤにより管理されている場合には、ＲＡＩＤ構成（例えば、ＲＡＩＤ０，１，５）に従ったデータのアクセスを行う。
【０１００】
各ディスク制御部１４０は管理端末１６０と共に内部ＬＡＮ１５１で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部１４０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。
【０１０１】
本実施例においては、共有メモリ１２０及びキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０に対して独立に設けられていることについて記載したが、本実施例はこの場合に限られるものでなく、共有メモリ１２０又はキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０の各々に分散されて設けられることも好ましい。この場合、接続部１５０は、分散された共有メモリ又はキャッシュメモリを有するチャネル制御部１１０及びディスク制御部１４０を相互に接続させることになる。
【０１０２】
＝＝＝管理端末＝＝＝
管理端末１６０はストレージシステム６００を保守・管理するためのコンピュータである。管理端末１６０を操作することにより、例えばマッピング情報テーブル７５０の設定や、記憶デバイス３００内の物理ディスク構成の設定、ＬＵの設定、チャネル制御部１１０において実行されるマイクロプログラムのインストール等を行うことができる。これらの設定や制御は、管理端末１６０で動作するＷｅｂサーバが提供するＷｅｂページをユーザインタフェースとしてオペレータなどにより行われる。
【０１０３】
管理端末１６０は記憶デバイス制御装置１００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末１６０は、記憶デバイス制御装置１００及び記憶デバイス３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【０１０４】
管理端末１６０の構成を示すブロック図を図２０に示す。
管理端末１６０は、ＣＰＵ１６１、メモリ１６２、ポート１６３、記録媒体読取装置１６４、入力装置１６５、出力装置１６６、記憶装置１６８を備える。
【０１０５】
ＣＰＵ１６１は管理端末１６０の全体の制御を司るもので、メモリ１６２に格納されたプログラム１６２Ｃを実行することにより上記Ｗｅｂサーバとしての機能等を実現する。メモリ１６２には、物理ディスク管理テーブル１６２ＡとＬＵ管理テーブル１６２Ｂとプログラム１６２Ｃとが記憶されている。なお物理ディスク管理テーブル１６２Ａ及びＬＵ管理テーブル１６２Ｂは、第１の実施の形態において説明したものと同様である。
【０１０６】
記録媒体読取装置１６４は、記録媒体１６７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ１６２や記憶装置１６８に格納される。従って、例えば記録媒体１６７に記録されたプログラム１６２Ｃを、記録媒体読取装置１６４を用いて上記記録媒体１６７から読み取って、メモリ１６２や記憶装置１６８に格納するようにすることができる。記録媒体１６７としてはフレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、半導体メモリ等を用いることができる。
なお、上記プログラム１６２Ｃは管理端末１６０を動作させるためのプログラムとすることができる他、チャネル制御部１１０やディスク制御部１４０にＯＳ７０１やアプリケーションプログラムをインストールするためのプログラムや、バージョンアップするためのプログラムとすることもできる。さらに、ＣＨＮ１１０に実行させるためのプログラムとすることもできる。記録媒体読取装置１６４は管理端末１６０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。
記憶装置１６８は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置１６５はオペレータ等による管理端末１６０へのデータ入力等のために用いられる。入力装置１６５としては例えばキーボードやマウス等が用いられる。出力装置１６６は情報を外部に出力するための装置である。出力装置１６６としては例えばディスプレイやプリンタ等が用いられる。ポート１６３は内部ＬＡＮ１５１に接続されており、これにより管理端末１６０はチャネル制御部１１０やディスク制御部１４０等と通信を行うことができる。またポート１６３は、ＬＡＮ４００に接続するようにすることもできるし、電話回線に接続するようにすることもできる。
【０１０７】
＝＝＝チャネル制御部＝＝＝
本実施の形態に係るストレージシステム６００は、上述の通りＣＨＮ１１０により情報処理装置２００からのファイルアクセス要求を受け付け、ＮＡＳとしてのサービスを情報処理装置２００に提供する。
【０１０８】
ＣＨＮ１１０のハードウエア構成を図２１に示す。ＣＨＮ１１０は、ネットワークインタフェース部１１１、ＣＰＵ１１２、メモリ１１３、入出力制御部１１４、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）プロセッサ１１９、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）１１５、ボード接続用コネクタ１１６、通信コネクタ１１７を備えている。
【０１０９】
ネットワークインタフェース部１１１は、情報処理装置２００との間で通信を行うための通信インタフェースを備えている。ＣＨＮ１１０の場合は、例えばＴＣＰ／ＩＰプロトコルに従って情報処理装置２００から送信されたファイルアクセス要求を受信する。通信コネクタ１１７は情報処理装置２００と通信を行うためのコネクタである。ＣＨＮ１１０の場合はＬＡＮ４００に接続可能なコネクタであり、例えばイーサネット（登録商標）に対応している。
【０１１０】
ＣＰＵ１１２は、ＣＨＮ１１０をＮＡＳボードとして機能させるための制御を司る。また本実施の形態に係るプログラム１１３Ａを実行することにより、記憶デバイス３００に記憶されるＬＵ３１０を、情報処理装置２００に対応付けられたＬＵ３１０に移動するように制御が行われる。
メモリ１１３には様々なプログラムやデータが記憶される。例えば図２２に示すプログラム１１３Ａやデータ管理テーブル７３０、ロックテーブル７２０、マッピング情報テーブル７５０が記憶される。
プログラム１１３Ａは本実施の形態に係る各種の動作を行うためのコードから構成される。本実施の形態に係る制御は、ＣＨＮ１１０が備えるＣＰＵ１１２がプログラム１１３Ａを実行することにより実現される。
【０１１１】
データ管理テーブル７３０は図６に示したものと同様である。すなわちデータ管理テーブル７３０には例えばファイルのデータが記憶されているＬＵ３１０上のアドレスやデータサイズなど、ファイルの記憶位置を特定するための情報が含まれる。また、データ管理テーブル７３０はファイルだけでなくディレクトリに対応させて生成されることもある。データ管理テーブル７３０は記憶デバイス３００上の各ＬＵ３１０にも記憶されている。
ロックテーブル７２０は、情報処理装置２００からのファイルアクセスに対して排他制御を行うためのテーブルである。排他制御を行うことにより複数の情報処理装置２００間で記憶デバイス３００上のファイルを共用することができる。ロックテーブル７２０は図７に示したものと同様である。
【０１１２】
マッピング情報テーブル７５０は、情報処理装置２００とＬＵ３１０との対応付けを管理するためのテーブル（情報処理装置と記憶ボリュームとの対応付け情報）である。マッピング情報テーブル７５０は図８に示したものと同様である。またマッピング情報テーブル７５０の設定は、第１の実施の形態において説明したのと同様に行うことができる。すなわち、管理端末１６０が備えるディスプレイ装置等の出力装置１６６に図１５に示すクライアントグループ設定ウインドウが表示される。管理端末１６０を操作するオペレータは、マウスやキーボード等の入力装置１６５を用いてＬＵ欄やクライアントグループ欄にＬＵ番号及びクライアント番号を入力する。ＯＫボタンをクリックするとこれらのマッピング情報が管理端末１６０からＣＨＮ１１０に送信される。ＣＨＮ１１０が有するクライアントグループ−ＬＵ対応入力部は送信されたマッピング情報を受信する。そしてマッピング情報テーブル作成更新部によりメモリ１１３に記憶されているマッピング情報テーブル７５０が更新される。なお第２の実施の形態においては、マッピング情報テーブル７５０は共有メモリ１２０に記憶しておくようにすることもできる。
【０１１３】
管理端末１６０からのマッピング情報の送信は、記憶デバイス制御装置１００内の全ＣＨＮ１１０に対して行われるようにすることもできるし、特定のＣＨＮ１１０に対して行われるようにすることもできる。後者の場合には、管理端末１６０の出力装置１６６に表示されるクライアントグループ設定ウインドウにおいて、マッピング情報を送信するＣＨＮ１１０を指定するための入力欄も表示される。またこの場合にはＣＨＮ１１０毎に個別のマッピング情報テーブル７５０を設定するようにすることもできる。
【０１１４】
入出力制御部１１４は、ディスク制御部１４０やキャッシュメモリ１３０、共有メモリ１２０、管理端末１６０との間でデータやコマンドの授受を行う。入出力制御部１１４はＩ／Ｏプロセッサ１１９やＮＶＲＡＭ１１５を備えている。Ｉ／Ｏプロセッサ１１９は例えば１チップのマイコンで構成される。Ｉ／Ｏプロセッサ１１９は上記データやコマンドの授受を制御し、ＣＰＵ１１２とディスク制御部１４０との間の通信を中継する。ＮＶＲＡＭ１１５はＩ／Ｏプロセッサ１１９の制御を司るプログラムを格納する不揮発性メモリである。
【０１１５】
＝＝＝第２の実施の形態におけるデータ入出力処理＝＝＝
次に、本実施の形態に係るＣＨＮ１１０が情報処理装置２００からファイルアクセス要求を受信した場合に、記憶デバイス３００上に記憶されるデータが当該情報処理装置２００に対応付けられるＬＵ３１０に移動するように行われる制御について説明する。
【０１１６】
＝＝＝新規ファイルの書き込み＝＝＝
情報処理装置２００からファイルアクセス要求（入出力要求）を受信すると、ＣＨＮ１１０のＣＰＵ１１２はまずＩ／Ｏ種別を判別する。Ｉ／Ｏ種別が新規ファイルの書き込み要求であった場合は、メモリ１１３に記憶されているマッピング情報テーブル７５０を参照して当該情報処理装置２００に対応付けられているＬＵ３１０を特定する。続いてマッピング情報テーブル７５０により特定したＬＵ３１０上にファイルを書き込むための領域を確保し、データ管理テーブル７３０を更新する。データ管理テーブル７３０の更新状態欄は”△”にする。その後、新規ファイルを当該ＬＵ３１０に書き込む。書き込みが終了したら、データ管理テーブル７３０の当該ファイルについての更新状態欄を”○”にする。
【０１１７】
このように、情報処理装置２００からの新規ファイルが、マッピング情報テーブル７５０によりそれぞれの情報処理装置２００に対応付けられたＬＵ３１０に書き込まれることにより、記憶デバイス３００上のファイルを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。
【０１１８】
＝＝＝更新データの書き込み＝＝＝
次に、情報処理装置２００から受信した入出力要求のＩ／Ｏ種別がファイルの更新書き込み要求であった場合は、マッピング情報テーブル７５０を参照して当該情報処理装置２００に対応付けられているＬＵ３１０を特定する。続いて、マッピング情報テーブル７５０により特定したＬＵ３１０上にファイルのコピーを書き込むための領域を確保し、コピー先ファイルを管理するためにデータ管理テーブル７３０も更新する。そしてコピー元ファイル及びコピー先ファイルについての更新状態欄を”△”にする。その後コピー元ファイルを更新し、続いて当該ファイルをコピー先ＬＵ３１０に書き込む。コピーが終了したら、データ管理テーブル７３０のコピー先ファイルについての更新状態欄を”○”にし、コピー元ファイルについての更新状態欄を”×”にする。
【０１１９】
このように、情報処理装置２００により更新されたファイルが、マッピング情報テーブル７５０によりそれぞれの情報処理装置２００に対応付けられたＬＵ３１０に書き込まれることにより、記憶デバイス３００上のファイルを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。
【０１２０】
なお上述した例においては、情報処理装置２００からの更新ファイルは一旦元のＬＵ３１０に書き込まれた後に、マッピング情報テーブル７５０に対応付けられたＬＵ３１０に移動されるものとしたが、直接マッピング情報テーブル７５０に対応付けられたＬＵ３１０に書き込まれるようにすることもできる。この場合には、ＣＨＮ１１０のＣＰＵ１１２は、情報処理装置２００から受信した入出力要求がファイルの更新書き込み要求であると判別すると、まずマッピング情報テーブル７５０を参照して当該情報処理装置２００に割り当てられているＬＵ３１０を特定する。そして特定したＬＵ３１０に当該更新ファイルを書き込む。そしてデータ管理テーブル７３０に当該更新ファイルに関する所定の情報を追加すると共に、元のＬＵ３１０に記憶されている更新前のファイルに関する更新状態欄を”×”にする。
【０１２１】
＝＝＝データの読み出し＝＝＝
次に、情報処理装置２００から受信した入出力要求のＩ／Ｏ種別がファイルの読み込み要求である場合は、データ管理テーブル７３０に記載されたファイルの記憶アドレスに従って当該ファイルを記憶デバイス３００から読み出す。そして読み出したファイルを情報処理装置２００に送信する。
【０１２２】
このように本実施の形態においても、ファイルの移動のための処理オーバヘッドによりアクセスタイムが遅延するおそれがある場合には、ＣＨＮ１１０のＣＰＵ１１２は、情報処理装置２００から受信した入出力要求がファイルの読み出し要求であると判別すると、マッピング情報テーブル７５０は見に行かずに、データ管理テーブル７３０から当該ファイルの記憶アドレスを求め、読みに行くようにすることもできる。
【０１２３】
しかし、移動のための処理オーバヘッドによるアクセスタイムの遅延が問題にならないような場合には、ファイルの読み出し時にもマッピング情報テーブル７５０に従ってファイルの移動を行うようにすることもできる。この場合には、ＣＨＮ１１０のＣＰＵ１１２は、情報処理装置２００から受信した入出力要求がファイルの読み出し要求であると判別すると、まず当該入出力要求に従って記憶デバイス３００上のファイルの読み出しを行う。続いてマッピング情報テーブル７５０を参照して当該情報処理装置２００に割り当てられているＬＵ３１０を特定する。そして特定したＬＵ３１０にファイルをコピーする。ファイルのコピー時には、データ管理テーブル７３０にコピー先のファイルに関する所定の情報を追加すると共に、コピー先及びコピー元のそれぞれのファイルに関する更新状態欄に”△”を記載する。上記ファイルのコピーが終了すると、コピー先ファイルに関するデータ管理テーブル７３０の更新状態欄には”○”が記載され、コピー元ファイルに関するデータ管理テーブル７３０の更新状態欄には”×”が記載される。
【０１２４】
このように、ファイルの読み出し時においても記憶デバイス３００に記憶されているファイルを、マッピング情報テーブル７５０によりそれぞれの情報処理装置２００に対応付けられたＬＵ３１０に書き込むようにすることにより、記憶デバイス３００上のファイルを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。
【０１２５】
本実施の形態に示したように、情報処理装置２００から記憶デバイス制御装置１００に対してファイルアクセス要求があった場合には、記憶デバイス３００のＬＵ３１０に記憶されるファイルを、マッピング情報テーブル７５０により特定されるＬＵ３１０に移動するように制御が行われる。これにより、記憶デバイス３００上のファイルを徐々にマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動されるように制御することができる。これにより、特定のＬＵ３１０へのファイルアクセスが集中している場合や、あるＬＵ３１０の残り記憶容量が少なくなった場合に、情報処理装置２００からのファイルアクセス要求を継続したまま、記憶デバイス３００上のファイルをマッピング情報テーブル７５０の対応付けに従ったＬＵ３１０に移動してゆくことができるため、記憶デバイス３００により提供される記憶領域を効率良く利用するようにすることができる。また特定のＬＵ３１０へのファイルアクセスの集中を回避し、システム全体としての入出力性能を向上させることが可能となる。
【０１２６】
さらに、ファイルの移動は情報処理装置２００からアクセスがあった時に行われるため、ファイル移動時に発生する処理オーバヘッドが記憶デバイス３００の入出力性能に与える影響が少なくて済むという利点も有する。さらに、将来に渡って情報処理装置２００からアクセスされることがないかもしれないファイルを移動するといった無駄な処理を行わずに済む。
【０１２７】
また本実施の形態に係るファイルの移動は、情報処理装置２００から入出力要求があった場合にＣＰＵ１１２がマッピング情報テーブル７５０を参照することにより行われるため、オペレーティングシステムのデバイス管理情報を変更するためにシステムを停止させることや、ファイルの入出力処理を冗長系にフェイルオーバさせることは不要である。これにより２４時間３６５日の稼働が求められるシステムに対してもユーザが任意に指定するクライアントグループ毎にアクセスするＬＵ３１０を分散化させることができ、高性能かつ可用性の高い情報処理システムを構築することが可能となる。
【０１２８】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１２９】
【発明の効果】
プログラム、及びデータ入出力装置を提供することができる。
【図面の簡単な説明】
【図１】本実施の形態に係る情報処理システムの全体構成を示すブロック図である。
【図２】本実施の形態に係る情報処理装置の構成を示すブロック図である。
【図３】本実施の形態に係るメモリに記憶されるテーブルの内容を説明するための図である。
【図４】本実施の形態に係る物理ディスク管理テーブルを示す図である。
【図５】本実施の形態に係るＬＵ管理テーブルを示す図である。
【図６】本実施の形態に係る記憶データ管理テーブルを示す図である。
【図７】本実施の形態に係るロックテーブルを示す図である。
【図８】本実施の形態に係るマッピング情報テーブルを示す図である。
【図９】本実施の形態に係る管理端末の構成を示すブロック図である。
【図１０】本実施の形態に係るデータの移動の様子を示すブロック図である。
【図１１】本実施の形態に係る入出力要求を示すブロック図である。図１１Ａは参照要求の場合を示す。図１１Ｂは更新要求の場合を示す。図１１Ｃは追加要求の場合を示す。
【図１２】本実施の形態に係る情報処理装置における機能を示すブロック図である。
【図１３】本実施の形態に係るデータ入出力装置における機能を示すブロック図である。
【図１４】本実施の形態に係る記憶デバイスにおける機能を示すブロック図である。
【図１５】本実施の形態に係る情報処理装置と記憶ボリュームとの対応付けを行うために管理端末の出力装置に表示される画面を示す図である。
【図１６】本実施の形態に係るクライアント番号を設定するために情報処理装置の出力装置に表示される画面を示す図である。
【図１７】本実施の形態に係る情報処理装置において実行される処理を示すフローチャートである。
【図１８】本実施の形態に係るデータ入出力装置において実行される処理を示すフローチャートである。
【図１９】本実施の形態に係るストレージシステムの全体構成を示すブロック図である。
【図２０】本実施の形態に係る管理端末の構成を示すブロック図である。
【図２１】本実施の形態に係るチャネル制御部を示す図である。
【図２２】本実施の形態に係るメモリに記憶されるテーブルの内容を説明するための図である。
【符号の説明】
１００  記憶デバイス制御装置  １１０  チャネル制御部
１１２  ＣＰＵ              １１３  メモリ          １２０  共有メモリ
１３０  キャッシュメモリ    １４０  ディスク制御部  １５０  接続部
１５１  内部ＬＡＮ          １６０  管理端末        １６１  ＣＰＵ
１６２  メモリ              １６２Ａ  物理ディスク管理テーブル
１６２Ｂ  ＬＵ管理テーブル  １６２Ｃ  プログラム
１６３  ポート              １６４  記録媒体読取装置
１６５  入力装置            １６６  出力装置        １６７  記録媒体
１６８  記憶装置            ２００  情報処理装置    ２０１  ＣＰＵ
２０２  メモリ              ２０２Ａ  プログラム    ２０３  ポート
２０４  記録媒体読取装置    ２０５  入力装置        ２０６  出力装置
２０７  記録媒体            ２０８  記憶装置        ３００  記憶デバイス
３１０  ＬＵ                ３２０  ディスクドライブ
４００  ネットワーク        ５００  コンピュータ    ５１０  ＣＰＵ
５２０  メモリ              ５２０Ａ  プログラム    ５３０  Ｉ／Ｆ
５５０  管理端末            ５５１  ＣＰＵ          ５５２  メモリ
５５２Ａ  プログラム        ５５３  ポート
５５４  記録媒体読取装置    ５５５  入力装置        ５５６  出力装置
５５７  記録媒体            ５５８  記憶装置
７２１  データロックテーブル  ７２２  ＬＵロックテーブル
７３０  データ管理テーブル    ７５０  マッピング情報テーブル
【図１】
2004310690.tif 000003
【図２】
2004310690.tif 000004
【図３】
2004310690.tif 000005
【図４】
2004310690.tif 000006
【図５】
2004310690.tif 000007
【図６】
2004310690.tif 000008
【図７】
2004310690.tif 000009
【図８】
2004310690.tif 000010
【図９】
2004310690.tif 000011
【図１０】
2004310690.tif 000012
【図１１】
2004310690.tif 000013
【図１２】
2004310690.tif 000014
【図１３】
2004310690.tif 000015
【図１４】
2004310690.tif 000016
【図１５】
2004310690.tif 000017
【図１６】
2004310690.tif 000018
【図１７】
2004310690.tif 000019
【図１８】
2004310690.tif 000020
【図１９】
2004310690.tif 000021
【図２０】
2004310690.tif 000022
【図２１】
2004310690.tif 000023
【図２２】
2004310690.tif 000024