(57)【特許請求の範囲】
【請求項１】
ネットワークブート可能なディスクレスコンピュータ装置およびデータを格納するストレージ装置にネットワークを介して接続されるネットワークブート用キャッシュ装置であって、
前記データを格納するキャッシュメモリ手段と、
前記ディスクレスコンピュータ装置から、前記ストレージ装置への読み出し要求を受信する要求受信手段と、
前記読み出し要求が、前記ストレージ装置のあらかじめ定めたターゲットの読み出しであることを検出する検出手段と、
前記検出手段により、前記読み出し要求が、前記ストレージ装置のあらかじめ定めたターゲットの読み出しであることが検出された場合に、当該ターゲットに対応する、前記ディスクレスコンピュータ装置によるアクセスされる順序を示すアクセスパタン情報を前記ストレージ装置から読み出すアクセスパタン読み出し手段と、
前記アクセスパタン読み出し手段により読み出されたアクセスパタン情報に従って、前記ストレージ装置から前記ターゲットに対応するデータを読み出して前記キャッシュメモリ手段に記憶させる先読み手段と、
前記要求受信手段で受信した読み出し要求に対応するデータを前記キャッシュメモリ手段から読み出して前記ディスクレスコンピュータ装置に対して送信する要求処理手段と
を有することを特徴とするネットワークブート用キャッシュ装置。
【請求項２】
請求項１に記載のネットワークブート用キャッシュ装置において、
前記要求処理手段は、
前記要求受信手段で受信した読み出し要求に対応するデータが前記キャッシュメモリ手段に記憶されているか否かを判断し、前記要求受信手段で受信した読み出し要求に対応するデータが前記キャッシュメモリ手段に記憶されていない場合には、当該読み出し要求を前記ストレージ装置に送信することを特徴とするネットワークブート用キャッシュ装置。
【請求項３】
請求項１または２に記載のネットワークブート用キャッシュ装置において、
前記要求処理手段は、
前記先読み手段と並行して動作することを特徴とするネットワークブート用キャッシュ装置。
【請求項４】
ネットワークブート可能なディスクレスコンピュータ装置およびデータを格納するストレージ装置にネットワークを介して接続されるネットワークブート用キャッシュ装置であって、
前記データを格納するキャッシュメモリ手段と、
前記ディスクレスコンピュータ装置から、前記ストレージ装置への読み出し要求を受信する要求受信手段と、
前記読み出し要求が、前記ストレージ装置のあらかじめ定めたターゲットの読み出しであることを検出する検出手段と、
前記検出手段により、前記読み出し要求が、前記ストレージ装置のあらかじめ定めたターゲットの読み出しであることが検出された場合に、当該ターゲットに対応する、前記ディスクレスコンピュータ装置によるアクセスされる順序を示すアクセスパタン情報を前記ストレージ装置から読み出すアクセスパタン読み出し手段と、
前記ターゲットに対応するデータが、ディスクレスコンピュータ装置によりアクセスされる順番に並び替えた再構成データとして、前記ストレージ装置に記憶されているか否かを問い合わせる問い合わせ手段と、
前記問い合わせ手段により前記再構成データが前記ストレージ装置に記憶されている場合には、前記ストレージ装置から前記ターゲットに対応する再構成データを読み出す先読み手段と、
前記先読み手段により読み出された再構成データを、前記アクセスパタン情報に基づき分割して前記キャッシュメモリ手段に記憶させる分割手段と、
前記要求受信手段で受信した読み出し要求に対応するデータを前記キャッシュメモリ手段から読み出して前記ディスクレスコンピュータ装置に対して送信する要求処理手段と
を有することを特徴とするネットワークブート用キャッシュ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してオペレーティングシステムなどのプログラムを取得してコンピュータを起動させる技術に関するものである
【背景技術】
【０００２】
従来、ネットワークを介してブートストラップおよびオペレーティングシステム（ＯＳ）イメージを取得して、ストレージを持たないディスクレスパーソナルコンピュータを起動させるネットワークブートシステムが知られている（特許文献１）。
【０００３】
この従来技術において、ブートストラップは、クライアント上にロードされると、リモート・ファイル・サーバから構成ファイルを獲得する。構成ファイルは、ネットワークのサブネット、および、それらの対応するローカル・ファイル・サーバのマップを含む。ブートストラップは、この構成ファイルを用いてクライアントが存在するサブネットをサービスするローカル・ファイル・サーバから、ＯＳイメージを獲得する。これにより、クライアントは、リモート・ブートを実行し、そのローカル・ファイル・サーバへ直接アクセスし、より効率的なファイル転送を実現している。
【０００４】
【特許文献１】特開２００２−１２３４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のネットワークブートシステムにおいて、ネットワークが広域ネットワークになった場合や多段のルータ装置を介するネットワーク構成になった場合に、ネットワークでの端末間の伝送時間が大きくなってしまう。その結果、クライアントがブートストラップ、ＯＳイメージ、アプリケーションなどのプロググラムデータを取得するのに時間がかかり、ディスクレスパーソナルコンピュータの起動やアプリケーションプログラムの起動に、時間がかかるという問題がある。
【０００６】
本発明は、従来の問題を解決するためになされたもので、ディスクレスコンピュータがプログラムデータを取得する時間を短縮することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明は、ネットワークブート可能なディスクレスコンピュータ装置およびデータを格納するストレージ装置にネットワークを介して接続されるネットワークブート用キャッシュ装置であって、前記データを格納するキャッシュメモリ手段と、前記ディスクレスコンピュータ装置から、前記ストレージ装置への読み出し要求を受信する要求受信手段と、前記読み出し要求が、前記ストレージ装置のあらかじめ定めたターゲットの読み出しであることを検出する検出手段と、前記検出手段により、前記読み出し要求が、前記ストレージ装置のあらかじめ定めたターゲットの読み出しであることが検出された場合に、当該ターゲットに対応する、前記ディスクレスコンピュータ装置によるアクセスされる順序を示すアクセスパタン情報を前記ストレージ装置から読み出すアクセスパタン読み出し手段と、前記アクセスパタン読み出し手段により読み出されたアクセスパタン情報に従って、前記ストレージ装置から前記ターゲットに対応するデータを読み出して前記キャッシュメモリ手段に記憶させる先読み手段と、前記要求受信手段で受信した読み出し要求に対応するデータを前記キャッシュメモリ手段から読み出して前記ディスクレスコンピュータ装置に対して送信する要求処理手段とを有する。
【発明の効果】
【０００８】
本発明によれば、アクセスパタン情報に従って、ストレージ装置から取得すべきデータを事前に取得し、一時的に記憶しておくネットワークブート用キャッシュ装置を設けるので、ネットワークを介しても、ディスクレスコンピュータの起動時間が短縮される。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態の広域ネットワークブートシステムについて、図面を参照して説明する。なお、本実施の形態においては、広域ネットワークを利用した場合を例にしているが、広域ネットワーク以外のＬＡＮ（Local Area Network）やイントラネットなどのネットワークを利用してもよい。
【００１０】
図１、図２、図１３および図１４は、本発明の第１の実施の形態の広域ネットワークブートシステムの構成図を示している。
【００１１】
図１において、本実施の形態の広域ネットワークブートシステムは、オフィスサイト１００１と、iＤＣ（Internet data center）サイト１０１５とを備える。オフィスサイト１００１は、ディスクレスＰＣ（Personal Computer）１００およびキャッシュ装置１００４を備え、これらはＬＡＮ（Local Area Network）１００３により接続されている。また、ｉＤＣサイト１０１５は、ＩＰ（Internet Protocol）ストレージ装置１０１６およびＩＰストレージネームサーバ装置１０１７を備える。オフィスサイトとｉＤＣサイト１０１５とは、インターネットなどの通信ネットワーク１０１４により接続されている。ここで、サイトとは、物理的に同一のエリアに設置されているサブネットでもよいし、論理的に接続されているサブネットでもよい。
【００１２】
本実施の形態では、ディスクレスＰＣ１００２、ＬＡＮ１００３およびキャッシュ装置１００４が、オフィスサイト１００１に配置され、ＩＰストレージ装置１０１６およびＩＰストレージネームサーバ装置１０１７が、ｉＤＣサイト１０１５に配置されているが、全てが同じサイトに存在していてもよいし、それぞれ別々のサイトに配置されていてもよい。
【００１３】
ディスクレスＰＣ１００２は、ハードディスクなどのストレージ装置を持たないパーソナルコンピュータである。ディスクレスＰＣ１００２の構成図を、図２に示す。
【００１４】
ディスクレスＰＣ１００２は、ＣＰＵ２１０１、メモリ部２１０２および入出力インタフェース部２１０３を備える。入出力インタフェース２１０３は、ＣＰＵ２１０１からの指示により、ＬＡＮ１００３との通信、ディスプレイ装置２１０６、ポインティングデバイス装置２１０５およびキーボード装置２１０４などの外部デバイス装置とのインタフェース、並びに、ＰＸＥ（Preboot execution Environment）仕様のようなネットワークブートに必要な動作を行う。なお、本実施の形態におけるディスクレスＰＣは、ディスクレスＰＣ以外のディスクレスコンピュータでもよい。また、ディスクレスＰＣの代わりに、ディスクを有したコンピュータを用いてもよい。この場合、そのディスクをコンピュータの起動並びにアプリケーション起動に使用しない設定を施しておいてもよい。
【００１５】
また、ＩＰストレージ装置１０１６の構成を図１３に示す。ＩＰストレージ装置１０１６は、ｉＳＣＳＩ（Ｉｎｔｅｒｎｅt  Ｓｍａｌｌ Computer System Interface）コントローラ部１３０１と、１台以上のハードディスク部１３０２とを備える。また、ハードディスク部１３０２は、記憶領域２００１を有する。
【００１６】
ｉＳＣＳＩコントローラ部１３０１は、通信ネットワーク１０１４を介して、他の装置からのｉＳＣＳＩ仕様に基づく入出力要求を受信する処理と、入出力要求にしたがってハードディスク部１３０２へアクセスするための処理とを実行するコントローラであり、その入出力要求のインタフェース仕様において、ＳＣＳＩ規格に定められるコマンドキューイングに相当する機能を搭載し、同時に、複数の入出力要求を受け付け処理できる機能を有するものである。
【００１７】
このｉＳＣＳＩコントローラ部１３０１は、ＩＰストレージ装置１０１６の外部、例えば、ｉＤＣサイト１０１５に備えるルータ装置に備えるようにしてもよい。また、ＩＰストレージ装置１０１６は、通常のストレージ装置に、ｉＳＣＳＩルータ装置を接続した構成で実現してもよい。
【００１８】
記憶領域２００１は、ＩＰアドレス、ポート番号などにより表されるアクセス対象を示すターゲット識別情報ごとに設けられるターゲット（ＳＴＲＡ）２００２の領域を備える。ターゲット（ＳＴＲＡ）２００２は、更に、論理ユニット（ＬＵ）として、ＬＵ（Ｅ）２００３およびＬＵ（Ｆ）２００５の領域を備える。ＬＵ（Ｅ）２００３の領域には、ディスクレスＰＣ１００２がＯＳプログラムやアプリケーションプログラムの起動に必要なデータを含むディスクイメージデータ２００４を格納する。また、ＬＵ（Ｆ）２００５には、ディスクレスＰＣ１００２によるＯＳプログラムのアクセス順序を示すディスクアクセスパタンデータを格納する。なお、ディスクアクセスパタンデータ２００６は、ディスクイメージデータ２００４と同じターゲット（ＳＴＲＡ）２００２の領域に含まれなくてもよく、同じＩＰストレージ装置になくてもよい。
【００１９】
図３に、ディスクアクセスパタンデータ２００６の構成を示す。ディスクアクセスパタンデータ２００６は、ディスクレスＰＣ１００２によるＯＳプログラムのアクセス順序を示すアクセスパタン情報を記録するパタン登録テーブル３００２および３００４と、ターゲット名に対するパタン登録テーブル３００２の格納場所を示すパタンインデクステーブル３００１とを備える。
【００２０】
パタンインデクステーブル３００１は、アクセス対象を示すターゲット識別情報であるターゲット名３０１０、論理ユニットの識別情報であるＬＵ番号３０２０、ハードディスクの格納開始位置を示すＬＢＡ（Logical Block Addressing）番号３０３０、および、パタン登録テーブルのＩＤ番号３０４０のカラムからなるレコードを登録する。このパタンインデクステーブル３００１によって、ターゲット名３０１０から、パタン登録テーブルの格納場所を示すリポジトリを照会することができる。例えば、ターゲット名３０１０「ＳＴＲＡ」についてのディスクアクセスパタンデータの格納場所は、テーブルＩＤ番号３０４０の「１」に格納されていることを示し、また、実際のディスクイメージデータの格納場所は、ＬＵ番号３０２０（Ｅ）で、その先頭ＬＢＡ番号３０３０が「０」であることを示している。
【００２１】
パタン登録テーブル（ＩＤ＝１）３００２は、アクセスパタンとして、論理番地（ＬＢＡ）番号３０５０とアクセスブロック数３０６０とのカラムからなるレコードを、入出力要求の発生順に登録する。ただし、レコードの記録の順番は、物理的な格納場所を制約するものでなく、論理的に、要求順のレコードが照会できる格納方法であればよい。また、前記アクセスブロック数３０６０のカラムは、ＬＢＡ番号のカラムに記録される番地から、１回の入出力要求で要求されたデータブロックの数を記録する。例えば、図３に示すように、パタン登録テーブル（ＩＤ＝１）３００２には、先頭レコードに、ＬＢＡ番号３０５０が「０」で、アクセスブロック数３０６０に「８ブロック」が登録されている。
【００２２】
また、図１４に、ＩＰストレージネームサーバ装置１０１７の構成を示す。ＩＰストレージネームサーバ装置１０１７は、ネームサーバ・コントローラ部１４０１およびメモリ部１４０３を備える。ネームサーバ・コントローラ部１４０１は、他の装置からのＩＰアドレスの問い合わせに対して応答処理を行う。メモリ部１４０３は、複数のターゲット登録レコード２００８を記録するターゲット登録テーブル２００７を備える。ターゲット登録レコード２００８には、ターゲット名２００９に対応するＩＰアドレス２０１０およびポート番号２０１１を記憶する。さらに、ターゲット登録レコード２００８には、ターゲット名２００９に対応するアクセスパタン情報の格納場所を示すパタン格納ターゲット名２０１２およびパタン格納ＬＵ番号２０１３を記憶する。
【００２３】
図１４において、ＩＰストレージネームサーバ装置１０１７のネームサーバ・コントローラ部１４０１は、外部からの問合せに対して、ターゲット名に対応するディスクイメージデータの格納場所を、ターゲット登録テーブル２００７のターゲット登録レコード２００８によって照会する。
【００２４】
つぎに、キャッシュ装置１００４の構成を説明する。図１において、キャッシュ装置１００４は、ＣＰＵ１０２４、制御メモリ部１０２５、キャッシュメモリ部１００５およびデータ転送制御部１００８を備える。ＣＰＵ１０２４は、制御メモリ部１０２５に記憶されるプログラムを実行し、キャッシュメモリ部１００５およびデータ転送制御部１００８を利用することで、ディスクレスＰＣ１００２からＩＰストレージ装置１０１６へのデータアクセスを仲介し、ＩＰストレージ装置に格納されるデータの一部を記憶し、ディスクレスＰＣ１００２から、その記憶しているデータへのアクセス要求を受けた場合に、ＩＰストレージ装置をアクセスせずに、その記憶しているデータをディスクレスＰＣに転送させるように動作する。
【００２５】
制御メモリ部１０２５には、入出力要求受信プログラム１００９、入出力要求実行プログラム１０１０、起動検出プログラム１０１１、先読みプログラム１０１２およびアクセスパタン読出プログラム１０１３を記憶し、ＣＰＵ１０２４が、これらのプログラムを実行する。
【００２６】
データ転送制御部１００８は、ＣＰＵ１０２４からの指示により、ＬＡＮ１００３との通信、通信ネットワーク１０１４との通信、キャッシュメモリ部１００５とのデータ転送を仲介するよう動作する。
【００２７】
入出力要求受信プログラム１００９は、データ転送制御部１００８が、外部から入出力要求を受信し、既定のハンドラを実行するためのプログラムである。
【００２８】
入出力要求実行プログラム１０１０は、入出力要求受信プログラム１００９にて受信した入出力要求を実行するハンドラプログラムであり、キャッシュメモリ部１００５に格納されていないデータに対する入出力要求であれば、ＩＰストレージ装置１０１６へのアクセスを仲介し、既定の条件で扱ったデータを、キャッシュメモリ部１００５へ格納する。また、キャッシュメモリ部１００５に格納されているデータへの入出力要求であれば、キャッシュメモリ部１００５上のデータをアクセスさせるように動作するプログラムである。
【００２９】
起動検出プログラム１０１１は、ディスクレスＰＣ１００２から受信する入出力要求のシーケンスから、ディスクレスＰＣ１００２が、ブ−トストラップなどのあらかじめ定めたプログラムの起動を開始したかを判定するプログラムである。この判定には、予め定めたＬＢＡ番号への入出力要求の受信をしたことをトリガーとすることができる。例えば、ある種のＯＳ起動の検出では、ＬＢＡ番号が「０」へのアクセスを検出したときに、起動を検出できる。
【００３０】
先読みプログラム１０１２は、ディスレスＰＣ１００２の起動に際して、アクセスされるＩＰストレージ装置１０１６上のデータを、ディスクレスＰＣ１００２が、そのデータへの入出力要求を発行する前に、取得し、キャッシュメモリ部１００５へ格納する動作を行うプログラムである。詳細は、以降の処理説明で行う。
【００３１】
アクセスパタン読出プログラム１０１３は、ＩＰストレージ装置１０１７に格納されるディスクアクセスパタンデータの一部を取得する動作を行うプログラムである。詳細は、以降の処理説明で行う。
【００３２】
ディスクデータ格納領域１００６には、ディスクレスＰＣ１００２の起動、並びに、アプリケーションプログラムの起動に必要な、ＩＰストレージ装置１０１６から読み出したデータを格納する。
【００３３】
キャッシュメモリ部１００５は、ディスクデータ格納領域１００６およびディスクアクセスパタンデータ格納領域１００７を備えるメモリである。
【００３４】
図４に、ディスクアクセスパタンデータ格納領域１００７の説明図を示す。ディスクアクセスパタンデータ格納領域１００７は、ＩＰストレージ装置１０１６から読み出したディスクアクセスパタンデータと、そのディスクアクセスパタンデータの格納場所とを格納し、ターゲット登録キャッシュテーブル４００１、パタンインデクス・キャッシュテーブル４００２およびパタン登録キャッシュテーブル（ＩＤ＝１）４００３を備える。
【００３５】
ターゲット登録キャッシュテーブル４００１は、ターゲット名４０１０、ＩＰアドレス４０１１、ポート番号４０１２、パタン格納ターゲット名４０１３およびパタン格納ＬＵ番号４０１４をカラムとして含むレコードが登録されるデーブルである。ターゲット登録キャッシュテーブル４００１は、ＩＰストレージネームサーバ１０１７のターゲット登録テーブル２００７に記憶されているターゲット名に対応するデータをコピーして記憶する。
【００３６】
パタンインデクス・キャッシュテーブル４００２は、ターゲット名４０２０、ＬＵ番号４０２１、ＬＢＡ番号４０２２およびテーブルＩＤ番号４０２３をカラムとして含むレコードを登録するテーブルである。パタンインデクス・キャッシュテーブル４００２は、ＩＰストレージ装置１０１６のパタンインデクステーブル３００１に登録されているターゲット名に対応するデータをコピーして記憶する。
【００３７】
パタン登録キャッシュテーブル（ＩＤ＝１）４００３は、ＬＢＡ番号４０３０とアクセスブロック数４０３１をカラムとして含むレコードを登録するテーブルである。パタン登録キャッシュテーブル（ＩＤ＝１）４００３は、ＩＰストレージ装置１０１６のパタン登録テーブル（ＩＤ＝１）３００２に登録されているデータをコピーして記憶する。
【００３８】
図１において、ＬＡＮ１００３は、ディスクレスＰＣ１００２とキャッシュ装置１００４の通信を仲介する。
【００３９】
通信ネットワーク１０１４は、キャッシュ装置１００４とＩＰストレージ装置１０１６とＩＰストレージネームサーバ装置１０１７の通信を仲介する。
【００４０】
つぎに、本実施の形態の広域ネットワークブートシステムにおいて、図５を参照して、キャッシュ装置１００４のデータ転送制御部１００８の動作を説明する。図５に、キャッシュ装置１００４のデータ転送制御部１００８の動作フローを示す。本実施の形態において、キャッシュ装置１００４は、ディスクレスＰＣ１００２から入出力要求を受信した場合に、予め定めたＬＢＡ番号への入出力要求があった場合には、ディスクレスＰＣ１００２から、つぎの入出力要求を受信する前に、対応するターゲットについてのアクセスパタンを読み出し、アクセスパタンに基づいてＩＰストレージ装置１０１６からデータを読み出してキャッシュメモリに格納し、ディスクレスＰＣ１００２からつぎの入出力要求を受信したときに、キャッシュメモリに格納しているデータを転送している。
【００４１】
キャッシュ装置１００４は、自装置が起動されると、入出力要求受信プログラム１００９を実行し、外部からの入出力要求待ち状態となる（処理ブロック５００１）。外部からの入出力要求を受信すると、起動検出プログラム１０１１を実行し、ディスクレスＰＣ１００２が起動を開始したか否かを判定する（処理ブロック５００２）。起動検出プログラム１０１１では、入出力要求先のターゲットに対応するあらかじめ定めたＬＢＡ番号への入出力要求を受信した場合に、ディスクレスＰＣ１００２が起動を開始したと判定する。ＬＢＡ番号は、例えば、図１８に示すように、起動検出用テーブルにターゲット名に対応させて予め登録しておくことができる。図１８に、起動検出用テーブルを示す。起動検出用テーブル１８００は、ターゲット名１８０１並びにＬＵ番号１８０３に対応させてＬＢＡ番号１８０２をあらかじめ登録しておく。また、ターゲット名１８０１の代わりに、ＩＰアドレスおよびポート番号に対応させてＬＢＡ番号１８０２を登録しておいてもよい。但し、ＬＵ番号１８０３に、一律、既定値を使用する形態では、ＬＵ番号のカラムはなくてもよい。この判定の結果、起動開始ではない場合、処理ブロック５００３にて、通常の入出力要求実行プログラム１０１０を実行し、処理終了後、処理ブロック５００１へ戻る。
一方、処理ブロック５００２にて、ディスクレスＰＣ１００２でプログラムの起動が開始されたと判定された場合、処理ブロック５００４を実行する。
【００４２】
処理ブロック５００４では、アクセスパタン読出プログラム１０１３を実行する。アクセスパタン読出プログラム１０１３の処理フローを図６に示す。
【００４３】
また、処理ブロック５００５では、先読プログラム１０１２を実行する。先読プログラム１０１２の処理フローを図７に示す。
【００４４】
処理ブロック５００６では、処理ブロック５００１において受信している入出力要求に対して、入出力要求実行プログラム１０１０を実行する。入出力要求実行プログラム１０１０の処理フローを図１７に示す。
【００４５】
処理ブロック５００７では、読み出したアクセスパタン情報のＬＢＡ番号の末尾までのデータを、ディスクレスＰＣ１００２に対して転送を行ったか否かの判定を行い、末尾まで転送を行っていれば、処理ブロック５００１へ戻る。一方、末尾まで転送を行っていなければ、処理ブロック５００８を実行する。
【００４６】
処理ブロック５００８では、ディスクレスＰＣ１００２からつぎの入出力要求を受信するために入出力要求受信プログラム１００９を実行する。
【００４７】
処理ブロック５００９では、入出力要求受信プログラム１００９で受信した入出力要求のデータが、キャッシュメモリ部１００５に格納されているか否か判定し、格納されていれば、処理ブロック５００６を実行する。一方、格納されていない場合、処理ブロック５００４を実行する。
【００４８】
つぎに、図６に示すアクセスパタン読出しプログラム１０１３の動作フローを説明する。
【００４９】
アクセスパタン読出プログラム１０１３では、入出力要求受信プログラム（処理ブロック５００１）において、受信した特定のＬＢＡ番号に対応するアクセスパタン情報が、キャッシュメモリ部１００５のディスクアクセスパタンデータ格納領域１００７に格納されているか否かを、図４に示すターゲット登録キャッシュテーブル４００１を参照することにより判断する（処理ブロック６０００）。受信した特定のＬＢＡ番号に対応するアクセスパタン情報が、キャッシュメモリ部１００５のディスクアクセスパタンデータ格納領域１００７に格納されている場合には、アクセスパタン情報をＩＰストレージ装置１０１６から読み出す必要がないので、アクセスパタン読出しプログラムを終了する。受信した特定のＬＢＡ番号に対応するアクセスパタン情報が、キャッシュメモリ部１００５のディスクアクセスパタンデータ格納領域１００７に格納されていない場合には、入出力要求先のターゲット名に基づいて、ＩＰストレージネームサーバ装置１０１７に対してアクセスパタン情報の格納場所を照会する（処理ブロック６００１）。ＩＰストレージネームサーバ装置１０１７では、図１４に示すターゲット登録レコード２００８を参照し、ターゲット名に対応するアクセスパタン情報の格納場所を示すＩＰアドレス２０１０、ポート番号２０１１、パタン格納ターゲット名２０１２およびパタン格納ＬＵ番号２０１３を取得してキャッシュ装置１００４に送信する。キャッシュ装置１００４では、アクセスパタン情報の格納場所を取得すると、ターゲット登録キャッシュテーブル４００１に、取得したアクセスパタン情報の格納場所を登録する。この場合、例えば、図４に示すように、ターゲット名４０１０「ＳＴＲＡ」に対して、ＩＰアドレス４０１１「１９２．１６８．０．３」、ポート番号４０１２「３２６０」、パタン格納ターゲット名４０１３「ＳＴＲＡ」、パタン格納ＬＵ番号４０１４「Ｅ」が登録される。
【００５０】
つぎに、アクセスパタン情報の格納場所を指示することにより、アクセスパタン情報をＩＰストレージ装置１０１６から取得する。ＩＰストレージ装置１０１６では、指示された格納場所に格納されているアクセスパタン情報として、図３に示すディスクアクセスパタンデータ２００６のパタンインデックステーブル３００１のレコードと、そのテーブルＩＤ番号３０４０のパタン登録テーブル３００２とに格納されているようなアクセスパタン情報を送信する。キャッシュ装置１００４は、送信されたアクセスパタン情報を、パタンインデックスキャッシュテーブル４００２およびパタン登録キャッシュテーブル４００３に格納する（処理ブロック６００２）。例えば、図４に示すように、パタンインデックスキャッシュテーブル４００２には、パタン格納ターゲット名４０２０「ＳＴＲＡ」、パタン格納ＬＵ番号４０２１「Ｅ」、ＬＢＡ番号４０２２「０」、テーブル番号４０２３「１」が登録され、パタン登録キャッシュテーブル４００３には、ＬＢＡ番号４０３０に対応するアクセスブロック数４０３１が格納される。
【００５１】
つぎに、キャッシュメモリ部１００５のパタン登録キャッシュテーブル４００３に格納されたアクセスパタン情報に、重複するＬＢＡ番号４０３０があるかを判定し、重複しているエントリを削除し（処理ブロック６００３）、処理を終了する。
【００５２】
このアクセスパタン読出しプログラムにより、ディスクレスＰＣ１００２がアクセスしようとしているアクセスパタンを取得することができる。
【００５３】
つぎに、図７に示す先読みプログラム１０１２の動作フローを説明する。先読プログラム１０１２は、キャッシュ装置１００４が取得しているアクセスパタン情報に基づいて、ＩＰストレージ装置１０１６のディスクイメージデータ２００４から、ディスクイメージデータを取得している。
【００５４】
まず、先読プログラム１０１２は、処理対象のＬＢＡ番号を示すＬＢＡポインタを、パタン登録キャッシュテーブル４００３のＬＢＡ番号の先頭位置に格納されている値にする（処理ブロック７００１）。図４に示す例では、パタン登録キャッシュテーブル４００３の先頭位置にＬＢＡ番号４０３０「０」が登録されているので、ＬＢＡポインタの値が「０」になる。つぎに、ＬＢＡポインタの値からアクセスブロック数までの入出力要求シーケンスを生成し、生成した入出力要求シーケンスをＩＰストレージ装置１０１６に要求する（処理ブロック７００２）。つぎに、ＩＰストレージ装置１０１６から送出される入出力データをキャッシュメモリ部１００５のディスクデータ格納領域１００６に格納する（処理ブロック７００３）。ディスクデータ格納領域１００６の格納領域は、ＩＰストレージ装置１０１６と同じ格納領域のＬＵ番号に格納する。異なるＬＵ番号に格納する場合には、ターゲット登録キャッシュテーブル４００１にキャッシュメモリ部１００５の格納ＬＵ番号をさらに登録するようにしてもよい。ＬＢＡポインタがパタン登録キャッシュテーブル４００３のＬＢＡ番号の末尾位置に格納されている値であるかを判断する（処理ブロック７００４）。ＬＢＡポインタがパタン登録キャッシュテーブル４００３のＬＢＡ番号の末尾位置に格納されている値でなければ、ＬＢＡポインタを、パタン登録キャッシュテーブル４００３の次のレコードに格納されているＬＢＡ番号に更新する(処理ブロック７００５)。ＬＢＡポインタがパタン登録キャッシュテーブル４００３のＬＢＡ番号の末尾位置に格納されている値であれば、すべてのディスクイメージデータを読み出したため処理を終了する。
【００５５】
先読みプログラム１０１２によれば、ディスクレスＰＣ１００２のアクセス要求より先に、ＩＰストレージ装置１０１６に対して、パタン登録キャッシュテーブル４００３のレコードごと、すなわち、ＬＢＡ番号ごとにアクセス要求を行い、ディスクイメージデータを取得することができる。また、先読みプログラム１０１２において、処理ブロック７００３のデータ格納処理は、格納プログラムを備えておき、その格納プログラムで処理してもよい。これにより、データの読み出しと、格納とを別々に行えるので、データの読み出し要求を、データが受信する前に次々送信することができるので、より早くデータを受信することができる。
【００５６】
つぎに、図１７に示す入出力要求実行プログラム１０１０の動作フローを説明する。入出力要求実行プログラム１０１０では、ディスクレスＰＣ１００２からの入出力要求が、読み出しか、それ以外の他の要求(例えば、書き込み)かを判断し(処理ブロック１７００１)、入出力要求が読み出し以外の他の処理であったときには、通常と同じように、他の処理を実行する(処理ブロック１７００４)。入出力要求が読み出しの場合には、入出力要求に含まれるＬＢＡ番号に対応するデータがキャッシュ装置１００４に格納されていればキャッシュヒットとして（処理ブロック１７００２)、そのデータを読み出してディスクレスＰＣ１００２に返信する(処理ブロック１７００３)。入出力要求に含まれるＬＢＡ番号に対応するデータがキャッシュ装置１００４に格納されていなければ、ＩＰストレージ装置１０１６に対して、その入出力要求を転送する(処理ブロック１７００５)。その後、ＩＰストレージ装置１０１６から送信されたデータを受信してキャッシュメモリ部１００５に格納するとともに(処理ブロック１７００６)、ディスクレスＰＣ１００２にそのデータを返信する(処理ブロック１７００７)。
【００５７】
以上説明したように、キャッシュ装置１００４は、ディスクレスＰＣ１００２から予め定めたＬＢＡ番号への入出力要求があった場合には、ディスクレスＰＣ１００２から、つぎの入出力要求を受信する前に、対応するターゲットについてのアクセスパタンを読み出し、アクセスパタンに基づいてＩＰストレージ装置１０１６からデータを読み出してキャッシュメモリに格納し、ディスクレスＰＣ１００２からつぎの入出力要求を受信したときに、キャッシュメモリに格納しているデータを転送することができる。
【００５８】
さらに、本実施の形態において、先読みプログラム１０１２を実行しているときに、並行して入出力要求受信プログラム１００９および入出力要求実行プログラム１０１０を行う場合の動作を図８に示す。
【００５９】
図８は、ディスクレスＰＣ１００２のブート時の全体動作シーケンスを示している。ディスクレスＰＣ１００２（シーケンス８００１）が、電源投入もしくはアプリケーションを起動し（シーケンス８０１０）、ブート時の既定ＬＢＡ番号を読み出す場合を例にする。例えば、ディスクレスＰＣ１００２が、ＬＢＡ＝０、８ブロックの読み出し要求を送出すると、キャッシュ装置１００４(シーケンス８００２)では、入出力要求受信プログラム１００９により、入出力要求を受信し（シーケンス８０２１）、起動検出プログラム１０１１により、起動検出を行う（シーケンス８０２２）。入出力要求が既定番地への読み出しであると判断すると、アクセスパタン読み出しプログラム１０１３により、ＩＰストレージネームサーバ装置１０１７(シーケンス８００３)に対してアクセスパタン情報の格納場所を照会し、ＩＰストレージ装置１０１６(シーケンス８００４)のアクセスパタン情報の格納場所に対してアクセスすることで、アクセスパタン情報を読み出す（シーケンス８０２３）。さらに、アクセスパタン情報のアクセスパタンに基づいて、先読みプログラム１０１２によりディスクイメージデータの読み出し要求の送出を順次行い、ＩＰストレージ装置１０１６から読み出したディスクイメージデータをキャッシュメモリ部１００５のディスクデータ格納領域１００６に格納する（シーケンス８０２４）。これと平行して、キャッシュ装置１００４は、読み出したディスクイメージデータをディスクレスＰＣ１００２に転送し（シーケンス８０２５）、さらにつぎの読み出し要求を受け付け（シーケンス８０２６）、要求された読み出しデータを転送する（シーケンス８０２７）。
【００６０】
この動作シーケンスによれば、アクセスパタン情報に基づいて、先読み処理の入出力要求のシーケンスが、先に発行された入出力要求の終了如何にかかわらず発行され、不要な待ち時間が生じず先読み処理がなされるようになり、ブート時間を短縮することができる。さらに、先読みプログラム１０１２と、並行して、入出力要求受信プログラム１００９および入出力要求実行プログラム１０１０を実行することで、よりブート時間を短縮することができる。
【００６１】
つぎに、第２の実施の形態を説明する。第１の実施の形態では、キャッシュ装置１００４において、アクセスパタン情報に基づいて読み出し要求をＬＢＡ番号ごとに出力していたが、第２の実施の形態では、キャッシュ装置１００４で既定ＬＢＡ番号の読み出し要求を送出すると、論理ブロック再構成装置１１０１(図１０参照)により再構成されたディスクイメージデータを、ＩＰストレージ装置１１１６から一括して読み出してキャッシュ装置に送信するようにしている。
【００６２】
以下、第１の実施の形態と異なる点を中心に説明し、他の構成は図１に示す構成と同様である。
【００６３】
図１０は、第２の実施の形態におけるｉＤＣサイト側の構成を示している。本実施の形態におけるｉＤＣサイトは、論理ブロック再構成装置１１０１、ＩＰストレージネームサーバ１１１７およびＩＰストレージ装置１１１６を備える。論理ブロック再構成装置１１０１、ＩＰストレージネームサーバ１１１７およびＩＰストレージ装置１１１６は、通信ネットワーク１０１４を介して接続される。また、ＩＰストレージ装置１１１６の記憶領域２１００１には、論理ユニットとして、後述する再構成データ１１０４を格納するＬＵ（Ｇ）１１０３を設ける。なお、論理ブロック再構成装置１１０１は、ＩＰストレージ装置１１０６に内蔵してもよい。また、論理ブロック再構成装置１１０１は、専用装置で実現する以外に、同様の動作を再現するソフトウェアを搭載するコンピュータによって実現してもよい。
【００６４】
図１５に、論理ブロック再構成装置１１０１の構成図を示す。論理ブロック再構成装置１１０１は、論理ブロック再構成コントローラ部１５０１および作業メモリ部１５０２を備える。この論理ブロック再構成コントローラ部１５０１は、既定ＬＢＡ番号の読み出し要求に対応するアクセスパタンにしたがって、ＩＰストレージ装置１１１６からディスクイメージデータを読み出し、読み出したイメージデータを再構成データとして、ＩＰストレージ装置１１１６に再度記憶させている。論理ブロック再構成コントローラ部１５０１は、図１６に示す論理ブロック再構成コントローラ部の動作フローに従って処理を実行する。作業メモリ部１５０２は、作業用に利用される。
【００６５】
図１６に、論理ブロック再構成コントローラ部１５０１の動作フローを示す。
【００６６】
論理ブロック再構成コントローラ部１５０１は、ＩＰストレージ装置１１０６に格納されるディスクアクセスパタンデータ２００６を取得する（処理ブロック１６０１）。この場合、論理ブロック再構成コントローラ部１５０１は、入出力要求先のターゲット名に基づいて、ＩＰストレージネームサーバ装置１０１７に対してアクセスパタン情報の格納場所を照会するようにしてもよいし、アクセスパタン情報の格納場所を保持しておいてもよい。論理ブロック再構成コントローラ部１５０１は、ディスクアクセスパタンデータに基づき、ディスクイメージデータ２００４を読み出し、その読み出したデータを、ＩＰストレージ装置１１０６の再構成データ１１０４に、逐次、書き込むよう動作させる（処理ブロック１６０２）。これにより、再構成データ１１０４は、ディスクアクセスパタンデータ２００６で再現される読出データ（本来、ストレージ上、散在するデータ）を結合して、連続した記憶領域に格納し直したものとなる。さらに、論理ブロック再構成コントローラ部１５０１は、再構成データ１１０４の生成と共に、その再構成データの格納領域を示すリポジトリを、ＩＰストレージネームサーバ装置１１１７に登録するようにしてもよい。
【００６７】
図９に、第２の実施の形態におけるＩＰストレージネームサーバ装置１１１７のターゲット登録テーブル２９００７の構成を示す。図９においては、新たなカラムとして、再構成データのリポジトリを照会するための再構成データターゲット名９００１、再構成データＬＵ番号９００２および再構成データＬＢＡ９００３を追加している。論理ブロック再構成コントローラ部１５０１は、再構成データのリポジトリとして、該当するレコードの再構成データターゲット名９００１、再構成データＬＵ番号９００２および再構成データＬＢＡ番号９００３のカラムに値を登録する。また、ＩＰストレージネームサーバ装置１１１７は、キャッシュ装置からターゲットに対応する再構成データが登録されているか否かの問合せを受け付けると、ターゲットに対応する再構成データターゲット名が登録されているかを参照することで判断し、登録されている場合には、再構成データターゲット名９００１、再構成データＬＵ番号９００２および再構成データＬＢＡ番号９００３のデータを問合せのあったキャッシュ装置に送信し、登録されていなければその旨を返信する。
【００６８】
なお、図１６に示す処理は、読み出し指示を受信しなくても、あらかじめ初期設定として処理しておいてもよい。
【００６９】
つぎに、本実施の形態におけるキャッシュ装置の処理を説明する。キャッシュ装置では、一括して受信したデータを、分割してディスクレスＰＣ１００２に送信するために必要であるアクセスパタン情報を、図６に示すアクセスパタン読み出しプログラムにしたがって取得する。さらに、アクセスパタン情報の格納場所を照会する際に、ＩＰストレージネームサーバ装置１１１７にターゲットに対する再構成データが格納されているか否かを問い合わせ、再構成データが格納されていれば、該当するターゲットの再構成データターゲット名９００１、再構成データＬＵ番号９００２および再構成データＬＢＡ番号９００３を取得し、キャッシュメモリに記憶しておく。この場合、例えば、図１９に示すように、起動検出用テーブル１９００に、ターゲット名１９０１、ＬＵ番号１９０５およびＬＢＡ番号１９０２に対応させて再構成データのターゲット名１９０３、再構成データＬＵ番号１９０６およびＬＢＡ番号１９０４を登録しておく。但し、ＬＵ番号１９０５に、一律、既定値を使用する形態では、ＬＵ番号１９０５のカラムはなくてもよい。再構成データＬＵ番号１９０６についても、既定値を使用する形態では、ＬＵ番号１９０６のカラムはなくてもよい。
【００７０】
つぎに、再構成データがある場合には、図１２に示す先読みプログラム１２０１２の動作フローに従って処理を行う。図１２において、先読みプログラム１２０１２は、ターゲットに対応する再構成データのＬＢＡ番号に従って、再構成データ１１０４を送信するように、読出要求をＩＰストレージ装置１１０６へ要求し、読出データを受信する（処理ブロック１３０１）。キャッシュメモリ部１００５に記憶されるアクセスパタン情報から、ＩＰストレージ装置１１０６から受信した読出データを、本来の論理ブロック番号のブロックデータとして分割し、キャッシュメモリ部１００５のディスクデータ格納領域１００６へ格納する（処理ブロック１３０２）。
【００７１】
以上説明したように、本実施の形態によれば、論理ブロック再構成装置１１０１により再構成されたディスクイメージデータを、ＩＰストレージ装置１１１６から一括して読み出してキャッシュ装置に送信することができる。これによれば、先読みにおけるＩＰストレージ装置への入出力要求の発行回数を削減できるようになり、ディスクレスＰＣ１００２の起動時間が更に短縮されようになる。
【００７２】
なお、論理ブロック再構成装置１１０１が、ＩＰストレージ装置１１０６に内蔵される場合、再構成データ１１０４を、ＩＰストレージ装置１１０６内の物理的な領域に格納する以外に、ＩＰストレージ装置１１０６の外部に格納するようにしてもよい。この場合、外部インタフェースの仕様上、１つの連続した領域のデータとして見せるのみで、内部的には、本来のデータブロックをアクセスするように制御を行える。
【００７３】
さらに、本実施の形態において、先読みプログラムを実行しているときに、並行して入出力要求受信プログラムおよび入出力要求実行プログラムを行う場合の動作を図１１に示す。
【００７４】
図１１は、ディスクレスＰＣ１００２のブート時の全体動作シーケンスを示している。ディスクレスＰＣ１００２（シーケンス８１０１）が、電源投入もしくはアプリケーションを起動し（シーケンス８１１０）、ブート時の既定ＬＢＡ番号を読み出す場合、例えば、ディスクレスＰＣ１００２が、ＬＢＡ＝０、８ブロックの読み出し要求を送出すると、キャッシュ装置１００４(シーケンス８１０２)では、入出力要求受信プログラム１００９により、入出力要求を受信し（シーケンス８１２１）、起動検出プログラム１０１１により、起動検出を行う（シーケンス８１２２）。入出力要求が既定番地への読み出しであると判断すると、アクセスパタン読み出しプログラム１０１３により、ＩＰストレージネームサーバ装置１０１７(シーケンス８１０３)に対してアクセスパタン情報の格納場所を照会し、ＩＰストレージ装置１１１６(シーケンス８１０４)のアクセスパタン情報の格納場所に対してアクセスすることで、アクセスパタン情報を読み出す（シーケンス８１２３）。さらに、ＩＰストレージネームサーバ装置１１１７にターゲットに対する再構成データが格納されているか否かを照会し、再構成データが格納されていれば、該当するターゲットの再構成データターゲット名９００１、再構成データＬＵ番号９００２および再構成データＬＢＡ番号９００３を取得する。再構成データのＬＢＡ番号に基づいて、先読みプログラム１２０１２によりディスクイメージデータの読み出し要求の送出を順次行い、読み出したディスクイメージデータをキャッシュメモリ部１００５のディスクデータ格納領域１００６に、アクセスパタン情報に従って分割して格納する（シーケンス８１２４）。これと並行して、読み出したディスクイメージデータをディスクレスＰＣ１００２に転送し（シーケンス８１２５）、さらにつぎの読み出し要求を受け付け（シーケンス８１２６）、要求された読み出しデータを転送していく（シーケンス８１２７）。
【００７５】
この動作シーケンスによれば、先読み処理の入出力要求のシーケンスが、先に発行された入出力要求の終了如何にかかわらず発行され、不要な待ち時間が生じず先読み処理がなされるようになり、ブート時間を短縮することができる。さらに、先読みプログラム１２０１２と、並行して、入出力要求受信プログラム１００９および入出力要求実行プログラム１０１０を実行することで、よりブート時間を短縮することができる。
【図面の簡単な説明】
【００７６】
【図１】第１の実施の形態におけるネットワークブートシステムの構成図。
【図２】第１の実施の形態におけるディスクレスＰＣの構成図。
【図３】第１の実施の形態におけるＩＰストレージ内のアクアセスパタンデータの構成の説明図。
【図４】第１の実施の形態におけるキャッシュ装置内のディスクアクセスパタンデータの構成の説明図。
【図５】第１の実施の形態におけるキャッシュ装置の動作のフローチャート。
【図６】第１の実施の形態におけるアクセスパタン読出プログラムのフローチャート。
【図７】第１の実施の形態における先読みプログラムのフローチャート。
【図８】第１の実施の形態における起動時のシーケンス図。
【図９】第２の実施の形態におけるターゲット登録テーブルの構成の説明図。
【図１０】第２の実施の形態におけるＩＰストレージ装置の構成の説明図。
【図１１】第２の実施の形態における起動時のシーケンス図。
【図１２】第２の実施の形態における先読みプログラムのフローチャート。
【図１３】第１の実施の形態におけるＩＰストレージの構成図。
【図１４】第１の実施の形態におけるＩＰストレージネームサーバ装置の構成図。
【図１５】第２の実施の形態における論理ブロック再構成装置の構成図。
【図１６】第２の実施の形態における論理ブロック再構成コントローラ部の動作のフローチャート。
【図１７】第２の実施の形態における入出力要求実行プログラムのフローチャート。
【図１８】第１の実施の形態における起動検出用テーブルの説明図。
【図１９】第２の実施の形態における起動検出用テーブルの説明図。
【符号の説明】
【００７７】
１００１…オフィスサイト、１００２…ディスクレスＰＣ、１００３…ＬＡＮ、１００４…キャッシュ装置、１００５…キャッシュメモリ部、１００６…ディスクデータ格納領域、１００７…ディスクアクセスパタンデータ格納領域、１００８…データ転送制御部、１００９…入出力要求受信プログラム、１０１０…入出力要求実行プログラム、１０１１…起動検出プログラム、１０１２…先読みプログラム、１０１３…アクセスパタン読出プログラム、１０１４…通信ネットワーク、１０１５…ｉＤＣサイト、１０１６…ＩＰストレージ装置、１０１７…ＩＰストレージネームサーバ装置、１０１８−１０２３，１１０２…通信路、１０２４…ＣＰＵ、１０２５…制御メモリ部、２００１…記憶領域、２００２…ターゲット（ＳＴＲＡ）、２００３…ＬＵ（Ｅ）、２００４…ディスクイメージデータ、２００５…ＬＵ（Ｆ）、２００６…ディスクアクセスパタンデータ、２００７…ターゲット登録テーブル、２００８…ターゲット登録レコード、２００９…ターゲット名カラム、２０１０…ＩＰアドレスカラム、２０１１…ポート番号カラム、２０１２…パタン格納ターゲット名カラム、２０１３…パタン格納ＬＵ番号カラム、２１０１…ＣＰＵ、２１０２…メモリ部、２１０３…入出力インタフェース部、２１０４…キーボード装置、２１０５…ポインティングデバイス装置、２１０６…ディスプレイ装置、３００１…パタンインデクステーブル、３００２…パタン登録テーブル（ＩＤ＝１）、４００１…ターゲット登録キャッシュデータ格納領域、４００２…パタンインデクス・キャッシュテーブル、４００３…パタン登録キャッシュテーブル（ＩＤ＝１）、３００３，４００４…関連表記、５００１−５００９，６００１−６００４，７００１，７００２，１３０１，１３０２…処理ブロック、８００１…ディスクレスＰＣの動作シーケンス、８００２…キャッシュ装置の動作シーケンス、８００３…ネームサーバの動作シーケンス、８００４…ＩＰストレージ装置の動作シーケンス、９００１…再構成データターゲット名カラム、９００２…再構成データＬＵ番号カラム、９００３…再構成データＬＢＡ番号カラム、１１０１…論理ブロック再構成装置、１１０３…ＬＵ（Ｇ）、１１０４…再構成データ、１３０１…ｉＳＣＳＩコントローラ部、１３０２…ハードディスク部、１４０１…ネームサーバ・コントローラ部、１４０３…メモリ部、１５０１…論理ブロック再構成コントローラ部、１５０２…作業メモリ部。
【図１】
0004625271.tif 000002
【図２】
0004625271.tif 000003
【図３】
0004625271.tif 000004
【図４】
0004625271.tif 000005
【図５】
0004625271.tif 000006
【図６】
0004625271.tif 000007
【図７】
0004625271.tif 000008
【図８】
0004625271.tif 000009
【図９】
0004625271.tif 000010
【図１０】
0004625271.tif 000011
【図１１】
0004625271.tif 000012
【図１２】
0004625271.tif 000013
【図１３】
0004625271.tif 000014
【図１４】
0004625271.tif 000015
【図１５】
0004625271.tif 000016
【図１６】
0004625271.tif 000017
【図１７】
0004625271.tif 000018
【図１８】
0004625271.tif 000019
【図１９】
0004625271.tif 000020