以下、本発明の実施の形態の広域ネットワークブートシステムについて、図面を参照して説明する。なお、本実施の形態においては、広域ネットワークを利用した場合を例にしているが、広域ネットワーク以外のLAN(Local Area Network)やイントラネットなどのネットワークを利用してもよい。
図1、図2、図13および図14は、本発明の第1の実施の形態の広域ネットワークブートシステムの構成図を示している。
図1において、本実施の形態の広域ネットワークブートシステムは、オフィスサイト1001と、iDC(Internet data center)サイト1015とを備える。オフィスサイト1001は、ディスクレスPC(Personal Computer)100およびキャッシュ装置1004を備え、これらはLAN(Local Area Network)1003により接続されている。また、iDCサイト1015は、IP(Internet Protocol)ストレージ装置1016およびIPストレージネームサーバ装置1017を備える。オフィスサイトとiDCサイト1015とは、インターネットなどの通信ネットワーク1014により接続されている。ここで、サイトとは、物理的に同一のエリアに設置されているサブネットでもよいし、論理的に接続されているサブネットでもよい。
本実施の形態では、ディスクレスPC1002、LAN1003およびキャッシュ装置1004が、オフィスサイト1001に配置され、IPストレージ装置1016およびIPストレージネームサーバ装置1017が、iDCサイト1015に配置されているが、全てが同じサイトに存在していてもよいし、それぞれ別々のサイトに配置されていてもよい。
ディスクレスPC1002は、ハードディスクなどのストレージ装置を持たないパーソナルコンピュータである。ディスクレスPC1002の構成図を、図2に示す。
ディスクレスPC1002は、CPU2101、メモリ部2102および入出力インタフェース部2103を備える。入出力インタフェース2103は、CPU2101からの指示により、LAN1003との通信、ディスプレイ装置2106、ポインティングデバイス装置2105およびキーボード装置2104などの外部デバイス装置とのインタフェース、並びに、PXE(Preboot execution Environment)仕様のようなネットワークブートに必要な動作を行う。なお、本実施の形態におけるディスクレスPCは、ディスクレスPC以外のディスクレスコンピュータでもよい。また、ディスクレスPCの代わりに、ディスクを有したコンピュータを用いてもよい。この場合、そのディスクをコンピュータの起動並びにアプリケーション起動に使用しない設定を施しておいてもよい。
また、IPストレージ装置1016の構成を図13に示す。IPストレージ装置1016は、iSCSI(Internet Small Computer System Interface)コントローラ部1301と、1台以上のハードディスク部1302とを備える。また、ハードディスク部1302は、記憶領域2001を有する。
iSCSIコントローラ部1301は、通信ネットワーク1014を介して、他の装置からのiSCSI仕様に基づく入出力要求を受信する処理と、入出力要求にしたがってハードディスク部1302へアクセスするための処理とを実行するコントローラであり、その入出力要求のインタフェース仕様において、SCSI規格に定められるコマンドキューイングに相当する機能を搭載し、同時に、複数の入出力要求を受け付け処理できる機能を有するものである。
このiSCSIコントローラ部1301は、IPストレージ装置1016の外部、例えば、iDCサイト1015に備えるルータ装置に備えるようにしてもよい。また、IPストレージ装置1016は、通常のストレージ装置に、iSCSIルータ装置を接続した構成で実現してもよい。
記憶領域2001は、IPアドレス、ポート番号などにより表されるアクセス対象を示すターゲット識別情報ごとに設けられるターゲット(STRA)2002の領域を備える。ターゲット(STRA)2002は、更に、論理ユニット(LU)として、LU(E)2003およびLU(F)2005の領域を備える。LU(E)2003の領域には、ディスクレスPC1002がOSプログラムやアプリケーションプログラムの起動に必要なデータを含むディスクイメージデータ2004を格納する。また、LU(F)2005には、ディスクレスPC1002によるOSプログラムのアクセス順序を示すディスクアクセスパタンデータを格納する。なお、ディスクアクセスパタンデータ2006は、ディスクイメージデータ2004と同じターゲット(STRA)2002の領域に含まれなくてもよく、同じIPストレージ装置になくてもよい。
図3に、ディスクアクセスパタンデータ2006の構成を示す。ディスクアクセスパタンデータ2006は、ディスクレスPC1002によるOSプログラムのアクセス順序を示すアクセスパタン情報を記録するパタン登録テーブル3002および3004と、ターゲット名に対するパタン登録テーブル3002の格納場所を示すパタンインデクステーブル3001とを備える。
パタンインデクステーブル3001は、アクセス対象を示すターゲット識別情報であるターゲット名3010、論理ユニットの識別情報であるLU番号3020、ハードディスクの格納開始位置を示すLBA(Logical Block Addressing)番号3030、および、パタン登録テーブルのID番号3040のカラムからなるレコードを登録する。このパタンインデクステーブル3001によって、ターゲット名3010から、パタン登録テーブルの格納場所を示すリポジトリを照会することができる。例えば、ターゲット名3010「STRA」についてのディスクアクセスパタンデータの格納場所は、テーブルID番号3040の「1」に格納されていることを示し、また、実際のディスクイメージデータの格納場所は、LU番号3020(E)で、その先頭LBA番号3030が「0」であることを示している。
パタン登録テーブル(ID=1)3002は、アクセスパタンとして、論理番地(LBA)番号3050とアクセスブロック数3060とのカラムからなるレコードを、入出力要求の発生順に登録する。ただし、レコードの記録の順番は、物理的な格納場所を制約するものでなく、論理的に、要求順のレコードが照会できる格納方法であればよい。また、前記アクセスブロック数3060のカラムは、LBA番号のカラムに記録される番地から、1回の入出力要求で要求されたデータブロックの数を記録する。例えば、図3に示すように、パタン登録テーブル(ID=1)3002には、先頭レコードに、LBA番号3050が「0」で、アクセスブロック数3060に「8ブロック」が登録されている。
また、図14に、IPストレージネームサーバ装置1017の構成を示す。IPストレージネームサーバ装置1017は、ネームサーバ・コントローラ部1401およびメモリ部1403を備える。ネームサーバ・コントローラ部1401は、他の装置からのIPアドレスの問い合わせに対して応答処理を行う。メモリ部1403は、複数のターゲット登録レコード2008を記録するターゲット登録テーブル2007を備える。ターゲット登録レコード2008には、ターゲット名2009に対応するIPアドレス2010およびポート番号2011を記憶する。さらに、ターゲット登録レコード2008には、ターゲット名2009に対応するアクセスパタン情報の格納場所を示すパタン格納ターゲット名2012およびパタン格納LU番号2013を記憶する。
図14において、IPストレージネームサーバ装置1017のネームサーバ・コントローラ部1401は、外部からの問合せに対して、ターゲット名に対応するディスクイメージデータの格納場所を、ターゲット登録テーブル2007のターゲット登録レコード2008によって照会する。
つぎに、キャッシュ装置1004の構成を説明する。図1において、キャッシュ装置1004は、CPU1024、制御メモリ部1025、キャッシュメモリ部1005およびデータ転送制御部1008を備える。CPU1024は、制御メモリ部1025に記憶されるプログラムを実行し、キャッシュメモリ部1005およびデータ転送制御部1008を利用することで、ディスクレスPC1002からIPストレージ装置1016へのデータアクセスを仲介し、IPストレージ装置に格納されるデータの一部を記憶し、ディスクレスPC1002から、その記憶しているデータへのアクセス要求を受けた場合に、IPストレージ装置をアクセスせずに、その記憶しているデータをディスクレスPCに転送させるように動作する。
制御メモリ部1025には、入出力要求受信プログラム1009、入出力要求実行プログラム1010、起動検出プログラム1011、先読みプログラム1012およびアクセスパタン読出プログラム1013を記憶し、CPU1024が、これらのプログラムを実行する。
データ転送制御部1008は、CPU1024からの指示により、LAN1003との通信、通信ネットワーク1014との通信、キャッシュメモリ部1005とのデータ転送を仲介するよう動作する。
入出力要求受信プログラム1009は、データ転送制御部1008が、外部から入出力要求を受信し、既定のハンドラを実行するためのプログラムである。
入出力要求実行プログラム1010は、入出力要求受信プログラム1009にて受信した入出力要求を実行するハンドラプログラムであり、キャッシュメモリ部1005に格納されていないデータに対する入出力要求であれば、IPストレージ装置1016へのアクセスを仲介し、既定の条件で扱ったデータを、キャッシュメモリ部1005へ格納する。また、キャッシュメモリ部1005に格納されているデータへの入出力要求であれば、キャッシュメモリ部1005上のデータをアクセスさせるように動作するプログラムである。
起動検出プログラム1011は、ディスクレスPC1002から受信する入出力要求のシーケンスから、ディスクレスPC1002が、ブ−トストラップなどのあらかじめ定めたプログラムの起動を開始したかを判定するプログラムである。この判定には、予め定めたLBA番号への入出力要求の受信をしたことをトリガーとすることができる。例えば、ある種のOS起動の検出では、LBA番号が「0」へのアクセスを検出したときに、起動を検出できる。
先読みプログラム1012は、ディスレスPC1002の起動に際して、アクセスされるIPストレージ装置1016上のデータを、ディスクレスPC1002が、そのデータへの入出力要求を発行する前に、取得し、キャッシュメモリ部1005へ格納する動作を行うプログラムである。詳細は、以降の処理説明で行う。
アクセスパタン読出プログラム1013は、IPストレージ装置1017に格納されるディスクアクセスパタンデータの一部を取得する動作を行うプログラムである。詳細は、以降の処理説明で行う。
ディスクデータ格納領域1006には、ディスクレスPC1002の起動、並びに、アプリケーションプログラムの起動に必要な、IPストレージ装置1016から読み出したデータを格納する。
キャッシュメモリ部1005は、ディスクデータ格納領域1006およびディスクアクセスパタンデータ格納領域1007を備えるメモリである。
図4に、ディスクアクセスパタンデータ格納領域1007の説明図を示す。ディスクアクセスパタンデータ格納領域1007は、IPストレージ装置1016から読み出したディスクアクセスパタンデータと、そのディスクアクセスパタンデータの格納場所とを格納し、ターゲット登録キャッシュテーブル4001、パタンインデクス・キャッシュテーブル4002およびパタン登録キャッシュテーブル(ID=1)4003を備える。
ターゲット登録キャッシュテーブル4001は、ターゲット名4010、IPアドレス4011、ポート番号4012、パタン格納ターゲット名4013およびパタン格納LU番号4014をカラムとして含むレコードが登録されるデーブルである。ターゲット登録キャッシュテーブル4001は、IPストレージネームサーバ1017のターゲット登録テーブル2007に記憶されているターゲット名に対応するデータをコピーして記憶する。
パタンインデクス・キャッシュテーブル4002は、ターゲット名4020、LU番号4021、LBA番号4022およびテーブルID番号4023をカラムとして含むレコードを登録するテーブルである。パタンインデクス・キャッシュテーブル4002は、IPストレージ装置1016のパタンインデクステーブル3001に登録されているターゲット名に対応するデータをコピーして記憶する。
パタン登録キャッシュテーブル(ID=1)4003は、LBA番号4030とアクセスブロック数4031をカラムとして含むレコードを登録するテーブルである。パタン登録キャッシュテーブル(ID=1)4003は、IPストレージ装置1016のパタン登録テーブル(ID=1)3002に登録されているデータをコピーして記憶する。
図1において、LAN1003は、ディスクレスPC1002とキャッシュ装置1004の通信を仲介する。
通信ネットワーク1014は、キャッシュ装置1004とIPストレージ装置1016とIPストレージネームサーバ装置1017の通信を仲介する。
つぎに、本実施の形態の広域ネットワークブートシステムにおいて、図5を参照して、キャッシュ装置1004のデータ転送制御部1008の動作を説明する。図5に、キャッシュ装置1004のデータ転送制御部1008の動作フローを示す。本実施の形態において、キャッシュ装置1004は、ディスクレスPC1002から入出力要求を受信した場合に、予め定めたLBA番号への入出力要求があった場合には、ディスクレスPC1002から、つぎの入出力要求を受信する前に、対応するターゲットについてのアクセスパタンを読み出し、アクセスパタンに基づいてIPストレージ装置1016からデータを読み出してキャッシュメモリに格納し、ディスクレスPC1002からつぎの入出力要求を受信したときに、キャッシュメモリに格納しているデータを転送している。
キャッシュ装置1004は、自装置が起動されると、入出力要求受信プログラム1009を実行し、外部からの入出力要求待ち状態となる(処理ブロック5001)。外部からの入出力要求を受信すると、起動検出プログラム1011を実行し、ディスクレスPC1002が起動を開始したか否かを判定する(処理ブロック5002)。起動検出プログラム1011では、入出力要求先のターゲットに対応するあらかじめ定めたLBA番号への入出力要求を受信した場合に、ディスクレスPC1002が起動を開始したと判定する。LBA番号は、例えば、図18に示すように、起動検出用テーブルにターゲット名に対応させて予め登録しておくことができる。図18に、起動検出用テーブルを示す。起動検出用テーブル1800は、ターゲット名1801並びにLU番号1803に対応させてLBA番号1802をあらかじめ登録しておく。また、ターゲット名1801の代わりに、IPアドレスおよびポート番号に対応させてLBA番号1802を登録しておいてもよい。但し、LU番号1803に、一律、既定値を使用する形態では、LU番号のカラムはなくてもよい。この判定の結果、起動開始ではない場合、処理ブロック5003にて、通常の入出力要求実行プログラム1010を実行し、処理終了後、処理ブロック5001へ戻る。
一方、処理ブロック5002にて、ディスクレスPC1002でプログラムの起動が開始されたと判定された場合、処理ブロック5004を実行する。
処理ブロック5004では、アクセスパタン読出プログラム1013を実行する。アクセスパタン読出プログラム1013の処理フローを図6に示す。
また、処理ブロック5005では、先読プログラム1012を実行する。先読プログラム1012の処理フローを図7に示す。
処理ブロック5006では、処理ブロック5001において受信している入出力要求に対して、入出力要求実行プログラム1010を実行する。入出力要求実行プログラム1010の処理フローを図17に示す。
処理ブロック5007では、読み出したアクセスパタン情報のLBA番号の末尾までのデータを、ディスクレスPC1002に対して転送を行ったか否かの判定を行い、末尾まで転送を行っていれば、処理ブロック5001へ戻る。一方、末尾まで転送を行っていなければ、処理ブロック5008を実行する。
処理ブロック5008では、ディスクレスPC1002からつぎの入出力要求を受信するために入出力要求受信プログラム1009を実行する。
処理ブロック5009では、入出力要求受信プログラム1009で受信した入出力要求のデータが、キャッシュメモリ部1005に格納されているか否か判定し、格納されていれば、処理ブロック5006を実行する。一方、格納されていない場合、処理ブロック5004を実行する。
つぎに、図6に示すアクセスパタン読出しプログラム1013の動作フローを説明する。
アクセスパタン読出プログラム1013では、入出力要求受信プログラム(処理ブロック5001)において、受信した特定のLBA番号に対応するアクセスパタン情報が、キャッシュメモリ部1005のディスクアクセスパタンデータ格納領域1007に格納されているか否かを、図4に示すターゲット登録キャッシュテーブル4001を参照することにより判断する(処理ブロック6000)。受信した特定のLBA番号に対応するアクセスパタン情報が、キャッシュメモリ部1005のディスクアクセスパタンデータ格納領域1007に格納されている場合には、アクセスパタン情報をIPストレージ装置1016から読み出す必要がないので、アクセスパタン読出しプログラムを終了する。受信した特定のLBA番号に対応するアクセスパタン情報が、キャッシュメモリ部1005のディスクアクセスパタンデータ格納領域1007に格納されていない場合には、入出力要求先のターゲット名に基づいて、IPストレージネームサーバ装置1017に対してアクセスパタン情報の格納場所を照会する(処理ブロック6001)。IPストレージネームサーバ装置1017では、図14に示すターゲット登録レコード2008を参照し、ターゲット名に対応するアクセスパタン情報の格納場所を示すIPアドレス2010、ポート番号2011、パタン格納ターゲット名2012およびパタン格納LU番号2013を取得してキャッシュ装置1004に送信する。キャッシュ装置1004では、アクセスパタン情報の格納場所を取得すると、ターゲット登録キャッシュテーブル4001に、取得したアクセスパタン情報の格納場所を登録する。この場合、例えば、図4に示すように、ターゲット名4010「STRA」に対して、IPアドレス4011「192.168.0.3」、ポート番号4012「3260」、パタン格納ターゲット名4013「STRA」、パタン格納LU番号4014「E」が登録される。
つぎに、アクセスパタン情報の格納場所を指示することにより、アクセスパタン情報をIPストレージ装置1016から取得する。IPストレージ装置1016では、指示された格納場所に格納されているアクセスパタン情報として、図3に示すディスクアクセスパタンデータ2006のパタンインデックステーブル3001のレコードと、そのテーブルID番号3040のパタン登録テーブル3002とに格納されているようなアクセスパタン情報を送信する。キャッシュ装置1004は、送信されたアクセスパタン情報を、パタンインデックスキャッシュテーブル4002およびパタン登録キャッシュテーブル4003に格納する(処理ブロック6002)。例えば、図4に示すように、パタンインデックスキャッシュテーブル4002には、パタン格納ターゲット名4020「STRA」、パタン格納LU番号4021「E」、LBA番号4022「0」、テーブル番号4023「1」が登録され、パタン登録キャッシュテーブル4003には、LBA番号4030に対応するアクセスブロック数4031が格納される。
つぎに、キャッシュメモリ部1005のパタン登録キャッシュテーブル4003に格納されたアクセスパタン情報に、重複するLBA番号4030があるかを判定し、重複しているエントリを削除し(処理ブロック6003)、処理を終了する。
このアクセスパタン読出しプログラムにより、ディスクレスPC1002がアクセスしようとしているアクセスパタンを取得することができる。
つぎに、図7に示す先読みプログラム1012の動作フローを説明する。先読プログラム1012は、キャッシュ装置1004が取得しているアクセスパタン情報に基づいて、IPストレージ装置1016のディスクイメージデータ2004から、ディスクイメージデータを取得している。
まず、先読プログラム1012は、処理対象のLBA番号を示すLBAポインタを、パタン登録キャッシュテーブル4003のLBA番号の先頭位置に格納されている値にする(処理ブロック7001)。図4に示す例では、パタン登録キャッシュテーブル4003の先頭位置にLBA番号4030「0」が登録されているので、LBAポインタの値が「0」になる。つぎに、LBAポインタの値からアクセスブロック数までの入出力要求シーケンスを生成し、生成した入出力要求シーケンスをIPストレージ装置1016に要求する(処理ブロック7002)。つぎに、IPストレージ装置1016から送出される入出力データをキャッシュメモリ部1005のディスクデータ格納領域1006に格納する(処理ブロック7003)。ディスクデータ格納領域1006の格納領域は、IPストレージ装置1016と同じ格納領域のLU番号に格納する。異なるLU番号に格納する場合には、ターゲット登録キャッシュテーブル4001にキャッシュメモリ部1005の格納LU番号をさらに登録するようにしてもよい。LBAポインタがパタン登録キャッシュテーブル4003のLBA番号の末尾位置に格納されている値であるかを判断する(処理ブロック7004)。LBAポインタがパタン登録キャッシュテーブル4003のLBA番号の末尾位置に格納されている値でなければ、LBAポインタを、パタン登録キャッシュテーブル4003の次のレコードに格納されているLBA番号に更新する(処理ブロック7005)。LBAポインタがパタン登録キャッシュテーブル4003のLBA番号の末尾位置に格納されている値であれば、すべてのディスクイメージデータを読み出したため処理を終了する。
先読みプログラム1012によれば、ディスクレスPC1002のアクセス要求より先に、IPストレージ装置1016に対して、パタン登録キャッシュテーブル4003のレコードごと、すなわち、LBA番号ごとにアクセス要求を行い、ディスクイメージデータを取得することができる。また、先読みプログラム1012において、処理ブロック7003のデータ格納処理は、格納プログラムを備えておき、その格納プログラムで処理してもよい。これにより、データの読み出しと、格納とを別々に行えるので、データの読み出し要求を、データが受信する前に次々送信することができるので、より早くデータを受信することができる。
つぎに、図17に示す入出力要求実行プログラム1010の動作フローを説明する。入出力要求実行プログラム1010では、ディスクレスPC1002からの入出力要求が、読み出しか、それ以外の他の要求(例えば、書き込み)かを判断し(処理ブロック17001)、入出力要求が読み出し以外の他の処理であったときには、通常と同じように、他の処理を実行する(処理ブロック17004)。入出力要求が読み出しの場合には、入出力要求に含まれるLBA番号に対応するデータがキャッシュ装置1004に格納されていればキャッシュヒットとして(処理ブロック17002)、そのデータを読み出してディスクレスPC1002に返信する(処理ブロック17003)。入出力要求に含まれるLBA番号に対応するデータがキャッシュ装置1004に格納されていなければ、IPストレージ装置1016に対して、その入出力要求を転送する(処理ブロック17005)。その後、IPストレージ装置1016から送信されたデータを受信してキャッシュメモリ部1005に格納するとともに(処理ブロック17006)、ディスクレスPC1002にそのデータを返信する(処理ブロック17007)。
以上説明したように、キャッシュ装置1004は、ディスクレスPC1002から予め定めたLBA番号への入出力要求があった場合には、ディスクレスPC1002から、つぎの入出力要求を受信する前に、対応するターゲットについてのアクセスパタンを読み出し、アクセスパタンに基づいてIPストレージ装置1016からデータを読み出してキャッシュメモリに格納し、ディスクレスPC1002からつぎの入出力要求を受信したときに、キャッシュメモリに格納しているデータを転送することができる。
さらに、本実施の形態において、先読みプログラム1012を実行しているときに、並行して入出力要求受信プログラム1009および入出力要求実行プログラム1010を行う場合の動作を図8に示す。
図8は、ディスクレスPC1002のブート時の全体動作シーケンスを示している。ディスクレスPC1002(シーケンス8001)が、電源投入もしくはアプリケーションを起動し(シーケンス8010)、ブート時の既定LBA番号を読み出す場合を例にする。例えば、ディスクレスPC1002が、LBA=0、8ブロックの読み出し要求を送出すると、キャッシュ装置1004(シーケンス8002)では、入出力要求受信プログラム1009により、入出力要求を受信し(シーケンス8021)、起動検出プログラム1011により、起動検出を行う(シーケンス8022)。入出力要求が既定番地への読み出しであると判断すると、アクセスパタン読み出しプログラム1013により、IPストレージネームサーバ装置1017(シーケンス8003)に対してアクセスパタン情報の格納場所を照会し、IPストレージ装置1016(シーケンス8004)のアクセスパタン情報の格納場所に対してアクセスすることで、アクセスパタン情報を読み出す(シーケンス8023)。さらに、アクセスパタン情報のアクセスパタンに基づいて、先読みプログラム1012によりディスクイメージデータの読み出し要求の送出を順次行い、IPストレージ装置1016から読み出したディスクイメージデータをキャッシュメモリ部1005のディスクデータ格納領域1006に格納する(シーケンス8024)。これと平行して、キャッシュ装置1004は、読み出したディスクイメージデータをディスクレスPC1002に転送し(シーケンス8025)、さらにつぎの読み出し要求を受け付け(シーケンス8026)、要求された読み出しデータを転送する(シーケンス8027)。
この動作シーケンスによれば、アクセスパタン情報に基づいて、先読み処理の入出力要求のシーケンスが、先に発行された入出力要求の終了如何にかかわらず発行され、不要な待ち時間が生じず先読み処理がなされるようになり、ブート時間を短縮することができる。さらに、先読みプログラム1012と、並行して、入出力要求受信プログラム1009および入出力要求実行プログラム1010を実行することで、よりブート時間を短縮することができる。
つぎに、第2の実施の形態を説明する。第1の実施の形態では、キャッシュ装置1004において、アクセスパタン情報に基づいて読み出し要求をLBA番号ごとに出力していたが、第2の実施の形態では、キャッシュ装置1004で既定LBA番号の読み出し要求を送出すると、論理ブロック再構成装置1101(図10参照)により再構成されたディスクイメージデータを、IPストレージ装置1116から一括して読み出してキャッシュ装置に送信するようにしている。
以下、第1の実施の形態と異なる点を中心に説明し、他の構成は図1に示す構成と同様である。
図10は、第2の実施の形態におけるiDCサイト側の構成を示している。本実施の形態におけるiDCサイトは、論理ブロック再構成装置1101、IPストレージネームサーバ1117およびIPストレージ装置1116を備える。論理ブロック再構成装置1101、IPストレージネームサーバ1117およびIPストレージ装置1116は、通信ネットワーク1014を介して接続される。また、IPストレージ装置1116の記憶領域21001には、論理ユニットとして、後述する再構成データ1104を格納するLU(G)1103を設ける。なお、論理ブロック再構成装置1101は、IPストレージ装置1106に内蔵してもよい。また、論理ブロック再構成装置1101は、専用装置で実現する以外に、同様の動作を再現するソフトウェアを搭載するコンピュータによって実現してもよい。
図15に、論理ブロック再構成装置1101の構成図を示す。論理ブロック再構成装置1101は、論理ブロック再構成コントローラ部1501および作業メモリ部1502を備える。この論理ブロック再構成コントローラ部1501は、既定LBA番号の読み出し要求に対応するアクセスパタンにしたがって、IPストレージ装置1116からディスクイメージデータを読み出し、読み出したイメージデータを再構成データとして、IPストレージ装置1116に再度記憶させている。論理ブロック再構成コントローラ部1501は、図16に示す論理ブロック再構成コントローラ部の動作フローに従って処理を実行する。作業メモリ部1502は、作業用に利用される。
図16に、論理ブロック再構成コントローラ部1501の動作フローを示す。
論理ブロック再構成コントローラ部1501は、IPストレージ装置1106に格納されるディスクアクセスパタンデータ2006を取得する(処理ブロック1601)。この場合、論理ブロック再構成コントローラ部1501は、入出力要求先のターゲット名に基づいて、IPストレージネームサーバ装置1017に対してアクセスパタン情報の格納場所を照会するようにしてもよいし、アクセスパタン情報の格納場所を保持しておいてもよい。論理ブロック再構成コントローラ部1501は、ディスクアクセスパタンデータに基づき、ディスクイメージデータ2004を読み出し、その読み出したデータを、IPストレージ装置1106の再構成データ1104に、逐次、書き込むよう動作させる(処理ブロック1602)。これにより、再構成データ1104は、ディスクアクセスパタンデータ2006で再現される読出データ(本来、ストレージ上、散在するデータ)を結合して、連続した記憶領域に格納し直したものとなる。さらに、論理ブロック再構成コントローラ部1501は、再構成データ1104の生成と共に、その再構成データの格納領域を示すリポジトリを、IPストレージネームサーバ装置1117に登録するようにしてもよい。
図9に、第2の実施の形態におけるIPストレージネームサーバ装置1117のターゲット登録テーブル29007の構成を示す。図9においては、新たなカラムとして、再構成データのリポジトリを照会するための再構成データターゲット名9001、再構成データLU番号9002および再構成データLBA9003を追加している。論理ブロック再構成コントローラ部1501は、再構成データのリポジトリとして、該当するレコードの再構成データターゲット名9001、再構成データLU番号9002および再構成データLBA番号9003のカラムに値を登録する。また、IPストレージネームサーバ装置1117は、キャッシュ装置からターゲットに対応する再構成データが登録されているか否かの問合せを受け付けると、ターゲットに対応する再構成データターゲット名が登録されているかを参照することで判断し、登録されている場合には、再構成データターゲット名9001、再構成データLU番号9002および再構成データLBA番号9003のデータを問合せのあったキャッシュ装置に送信し、登録されていなければその旨を返信する。
なお、図16に示す処理は、読み出し指示を受信しなくても、あらかじめ初期設定として処理しておいてもよい。
つぎに、本実施の形態におけるキャッシュ装置の処理を説明する。キャッシュ装置では、一括して受信したデータを、分割してディスクレスPC1002に送信するために必要であるアクセスパタン情報を、図6に示すアクセスパタン読み出しプログラムにしたがって取得する。さらに、アクセスパタン情報の格納場所を照会する際に、IPストレージネームサーバ装置1117にターゲットに対する再構成データが格納されているか否かを問い合わせ、再構成データが格納されていれば、該当するターゲットの再構成データターゲット名9001、再構成データLU番号9002および再構成データLBA番号9003を取得し、キャッシュメモリに記憶しておく。この場合、例えば、図19に示すように、起動検出用テーブル1900に、ターゲット名1901、LU番号1905およびLBA番号1902に対応させて再構成データのターゲット名1903、再構成データLU番号1906およびLBA番号1904を登録しておく。但し、LU番号1905に、一律、既定値を使用する形態では、LU番号1905のカラムはなくてもよい。再構成データLU番号1906についても、既定値を使用する形態では、LU番号1906のカラムはなくてもよい。
つぎに、再構成データがある場合には、図12に示す先読みプログラム12012の動作フローに従って処理を行う。図12において、先読みプログラム12012は、ターゲットに対応する再構成データのLBA番号に従って、再構成データ1104を送信するように、読出要求をIPストレージ装置1106へ要求し、読出データを受信する(処理ブロック1301)。キャッシュメモリ部1005に記憶されるアクセスパタン情報から、IPストレージ装置1106から受信した読出データを、本来の論理ブロック番号のブロックデータとして分割し、キャッシュメモリ部1005のディスクデータ格納領域1006へ格納する(処理ブロック1302)。
以上説明したように、本実施の形態によれば、論理ブロック再構成装置1101により再構成されたディスクイメージデータを、IPストレージ装置1116から一括して読み出してキャッシュ装置に送信することができる。これによれば、先読みにおけるIPストレージ装置への入出力要求の発行回数を削減できるようになり、ディスクレスPC1002の起動時間が更に短縮されようになる。
なお、論理ブロック再構成装置1101が、IPストレージ装置1106に内蔵される場合、再構成データ1104を、IPストレージ装置1106内の物理的な領域に格納する以外に、IPストレージ装置1106の外部に格納するようにしてもよい。この場合、外部インタフェースの仕様上、1つの連続した領域のデータとして見せるのみで、内部的には、本来のデータブロックをアクセスするように制御を行える。
さらに、本実施の形態において、先読みプログラムを実行しているときに、並行して入出力要求受信プログラムおよび入出力要求実行プログラムを行う場合の動作を図11に示す。
図11は、ディスクレスPC1002のブート時の全体動作シーケンスを示している。ディスクレスPC1002(シーケンス8101)が、電源投入もしくはアプリケーションを起動し(シーケンス8110)、ブート時の既定LBA番号を読み出す場合、例えば、ディスクレスPC1002が、LBA=0、8ブロックの読み出し要求を送出すると、キャッシュ装置1004(シーケンス8102)では、入出力要求受信プログラム1009により、入出力要求を受信し(シーケンス8121)、起動検出プログラム1011により、起動検出を行う(シーケンス8122)。入出力要求が既定番地への読み出しであると判断すると、アクセスパタン読み出しプログラム1013により、IPストレージネームサーバ装置1017(シーケンス8103)に対してアクセスパタン情報の格納場所を照会し、IPストレージ装置1116(シーケンス8104)のアクセスパタン情報の格納場所に対してアクセスすることで、アクセスパタン情報を読み出す(シーケンス8123)。さらに、IPストレージネームサーバ装置1117にターゲットに対する再構成データが格納されているか否かを照会し、再構成データが格納されていれば、該当するターゲットの再構成データターゲット名9001、再構成データLU番号9002および再構成データLBA番号9003を取得する。再構成データのLBA番号に基づいて、先読みプログラム12012によりディスクイメージデータの読み出し要求の送出を順次行い、読み出したディスクイメージデータをキャッシュメモリ部1005のディスクデータ格納領域1006に、アクセスパタン情報に従って分割して格納する(シーケンス8124)。これと並行して、読み出したディスクイメージデータをディスクレスPC1002に転送し(シーケンス8125)、さらにつぎの読み出し要求を受け付け(シーケンス8126)、要求された読み出しデータを転送していく(シーケンス8127)。
この動作シーケンスによれば、先読み処理の入出力要求のシーケンスが、先に発行された入出力要求の終了如何にかかわらず発行され、不要な待ち時間が生じず先読み処理がなされるようになり、ブート時間を短縮することができる。さらに、先読みプログラム12012と、並行して、入出力要求受信プログラム1009および入出力要求実行プログラム1010を実行することで、よりブート時間を短縮することができる。
1001…オフィスサイト、1002…ディスクレスPC、1003…LAN、1004…キャッシュ装置、1005…キャッシュメモリ部、1006…ディスクデータ格納領域、1007…ディスクアクセスパタンデータ格納領域、1008…データ転送制御部、1009…入出力要求受信プログラム、1010…入出力要求実行プログラム、1011…起動検出プログラム、1012…先読みプログラム、1013…アクセスパタン読出プログラム、1014…通信ネットワーク、1015…iDCサイト、1016…IPストレージ装置、1017…IPストレージネームサーバ装置、1018−1023,1102…通信路、1024…CPU、1025…制御メモリ部、2001…記憶領域、2002…ターゲット(STRA)、2003…LU(E)、2004…ディスクイメージデータ、2005…LU(F)、2006…ディスクアクセスパタンデータ、2007…ターゲット登録テーブル、2008…ターゲット登録レコード、2009…ターゲット名カラム、2010…IPアドレスカラム、2011…ポート番号カラム、2012…パタン格納ターゲット名カラム、2013…パタン格納LU番号カラム、2101…CPU、2102…メモリ部、2103…入出力インタフェース部、2104…キーボード装置、2105…ポインティングデバイス装置、2106…ディスプレイ装置、3001…パタンインデクステーブル、3002…パタン登録テーブル(ID=1)、4001…ターゲット登録キャッシュデータ格納領域、4002…パタンインデクス・キャッシュテーブル、4003…パタン登録キャッシュテーブル(ID=1)、3003,4004…関連表記、5001−5009,6001−6004,7001,7002,1301,1302…処理ブロック、8001…ディスクレスPCの動作シーケンス、8002…キャッシュ装置の動作シーケンス、8003…ネームサーバの動作シーケンス、8004…IPストレージ装置の動作シーケンス、9001…再構成データターゲット名カラム、9002…再構成データLU番号カラム、9003…再構成データLBA番号カラム、1101…論理ブロック再構成装置、1103…LU(G)、1104…再構成データ、1301…iSCSIコントローラ部、1302…ハードディスク部、1401…ネームサーバ・コントローラ部、1403…メモリ部、1501…論理ブロック再構成コントローラ部、1502…作業メモリ部。