(57)【要約】【課題】  ネットワークブート型のシステムではネットワークブートされるＰＣの微妙なハードウェア構成の違いだけで異なる起動イメージを用意しなければならなく、多くのストレージ容量を必要としていた。【解決手段】  ブートノード２００から送られてきたハードウェア構成情報に基づいて、ブートサーバ１００の起動イメージ選択部１０１は、起動イメージ保存部１０２に保存された起動イメージの中から、そのハードウェア構成情報に合致する起動イメージを選択し、さらに、起動イメージ変更部１０４が起動イメージの一部をそのハードウェア構成に合うように変更し、起動イメージ送信部１０３に渡す。起動イメージ送信部１０３は選択された起動イメージをブートノード２００に送り返す。このようにすることで、ブートノード２００のハードウェア構成に適合した起動イメージを提供することができる。【選択図】  図１
2006277277.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じて相互に通信可能に接続された１台以上のブートサーバ装置およびブートノード装置を備え、
前記ブートノード装置は、
自ノード装置のハードウェア構成情報を取得するハードウェア構成情報取得手段と、
該ハードウェア構成情報取得手段で取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信する起動イメージ要求手段と、
前記ブートサーバ装置から起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行う起動処理手段とを備え、
前記ブートサーバ装置は、
予め設定された前記起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存する起動イメージ保存手段と、
前記起動イメージ保存手段に保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択する起動イメージ選択手段と、
該起動イメージ選択手段で選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを予め設定された起動イメージ変更テーブルに基づいて前記ハードウェア構成情報に含まれるデータと合致するよう変更する起動イメージ変更手段と、
前記起動イメージ変更手段で前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信する起動イメージ送信手段とを備えることを特徴とする起動イメージ提供システム。
【請求項２】
ネットワークを通じて相互に通信可能に接続された１台以上のブートサーバ装置およびブートノード装置を備え、
前記ブートノード装置は、
自ノード装置のハードウェア構成情報を取得するハードウェア構成情報取得手段と、
該ハードウェア構成情報取得手段で取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信する起動イメージ要求手段と、
前記ブートサーバ装置から起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行う起動処理手段とを備え、
前記ブートサーバ装置は、
予め設定された前記起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存する起動イメージ保存手段と、
前記起動イメージ保存手段に保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択する起動イメージ選択手段と、
該起動イメージ選択手段で選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータのうち、予め設定された起動イメージ変更テーブルで、起動イメージ変更ルールに基づいて変更することが指定されているデータに関しては、前記ハードウェア構成情報を前記起動イメージ変更ルールによって変換した値に変更し、一方、起動イメージ変更ルールに基づいて変更することが指定されていないデータに関しては、前記ハードウェア構成情報に含まれるデータと合致するよう変更する第２の起動イメージ変更手段と、
前記第２の起動イメージ変更手段で前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信する起動イメージ送信手段とを備えることを特徴とする起動イメージ提供システム。
【請求項３】
ネットワークを通じて相互に通信可能に接続された１台以上のブートサーバ装置およびブートノード装置を備え、
前記ブートノード装置は、
自ノード装置のハードウェア構成情報を取得するハードウェア構成情報取得手段と、
該ハードウェア構成情報取得手段で取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信する起動イメージ要求手段と、
前記ブートサーバ装置から起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行う起動処理手段とを備え、
前記ブートサーバ装置は、
予め設定された前記起動イメージとしてコンピュータの起動に必要とされるファイル群をプログラム毎に分割した個別の起動イメージとこれに対応するイメージ内ハードウェア構成情報とを保存する第２の起動イメージ保存手段と、
予め設定された前記ブートノード装置毎のソフトウェア構成情報に基づいて、前記第２の起動イメージ保存手段から指定されたプログラムに対応する１以上の起動イメージの候補を取り出し、さらに、前記１以上の起動イメージの候補から前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応するプログラム毎の起動イメージを選択する第２の起動イメージ選択手段と、
該第２の起動イメージ選択手段で選択されたプログラム毎の起動イメージをまとめて一つの起動イメージを作成する起動イメージ作成手段と、
該起動イメージ作成手段により作成された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを、予め設定された起動イメージ変更テーブルとこれに対応して予め設定された起動イメージ変更ルールとに基づいて前記ハードウェア構成情報に含まれるデータに合致するよう変更する第３の起動イメージ変更手段と、
前記第３の起動イメージ変更手段で前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信する起動イメージ送信手段とを備えることを特徴とする起動イメージ提供システム。
【請求項４】
ブートサーバ装置にネットワークを通じて相互に通信可能に接続されたブートノード装置であって、
自ノード装置のハードウェア構成情報を取得するハードウェア構成情報取得手段と、
該ハードウェア構成情報取得手段で取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信する起動イメージ要求手段と、
前記ブートサーバ装置から起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行う起動処理手段とを備えることを特徴とするブートノード装置。
【請求項５】
ブートノード装置にネットワークを通じて相互に通信可能に接続されたブートサーバ装置であって、
予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存する起動イメージ保存手段と、
前記起動イメージ保存手段に保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択する起動イメージ選択手段と、
該起動イメージ選択手段で選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを予め設定された起動イメージ変更テーブルに基づいて前記ハードウェア構成情報に含まれるデータと合致するよう変更する起動イメージ変更手段と、
前記起動イメージ変更手段で前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信する起動イメージ送信手段とを備えることを特徴とするブートサーバ装置。
【請求項６】
ブートノード装置にネットワークを通じて相互に通信可能に接続されたブートサーバ装置であって、
予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存する起動イメージ保存手段と、
前記起動イメージ保存手段に保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択する起動イメージ選択手段と、
該起動イメージ選択手段で選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータのうち、予め設定された起動イメージ変更テーブルで、起動イメージ変更ルールに基づいて変更することが指定されているデータに関しては、前記ハードウェア構成情報を前記起動イメージ変更ルールによって変換した値に変更し、一方、起動イメージ変更ルールに基づいて変更することが指定されていないデータに関しては、前記ハードウェア構成情報に含まれるデータと合致するよう変更する第２の起動イメージ変更手段と、
前記第２の起動イメージ変更手段で前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信する起動イメージ送信手段とを備えることを特徴とするブートサーバ装置。
【請求項７】
ブートノード装置にネットワークを通じて相互に通信可能に接続されたブートサーバ装置であって、
予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群をプログラム毎に分割した個別の起動イメージとこれに対応するイメージ内ハードウェア構成情報とを保存する第２の起動イメージ保存手段と、
予め設定された前記ブートノード装置毎のソフトウェア構成情報に基づいて、前記第２の起動イメージ保存手段から指定されたプログラムに対応する１以上の起動イメージの候補を取り出し、さらに、前記１以上の起動イメージの候補から前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応するプログラム毎の起動イメージを選択する第２の起動イメージ選択手段と、
該第２の起動イメージ選択手段で選択されたプログラム毎の起動イメージをまとめて一つの起動イメージを作成する起動イメージ作成手段と、
該起動イメージ作成手段が作成した起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを、予め設定された起動イメージ変更テーブルとこれに対応して予め設定された起動イメージ変更ルールとに基づいて前記ハードウェア構成情報に含まれるデータに合致するよう変更する第３の起動イメージ変更手段と、
前記第３の起動イメージ変更手段で前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信する起動イメージ送信手段とを備えることを特徴とするブートサーバ装置。
【請求項８】
ネットワークを通じて相互に通信可能に接続された１台以上のブートサーバ装置およびブートノード装置を備えた起動イメージ提供システムの動作方法であって、
前記ブートサーバ装置が、予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存するステップと、
前記ブートノード装置が、自ノード装置のハードウェア構成情報を取得するステップと、
前記ブートノード装置が、該ハードウェア構成情報取得手段で取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信するステップと、
前記ブートサーバ装置が、前記起動イメージ保存手段に保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択するステップと、
前記ブートサーバ装置が、選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを予め設定された起動イメージ変更テーブルに基づいて前記ハードウェア構成情報に含まれるデータと合致するよう変更するステップと、
前記ブートサーバ装置が、前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信するステップと、
前記ブートノード装置が、前記ブートサーバ装置から前記起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行うステップとを備えることを特徴とする起動イメージ提供システムの動作方法。
【請求項９】
ネットワークを通じて相互に通信可能に接続された１台以上のブートサーバ装置およびブートノード装置を備えた起動イメージ提供システムの動作方法であって、
前記ブートサーバ装置が、予め設定された前記起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存するステップと、
前記ブートノード装置が、自ノード装置のハードウェア構成情報を取得するステップと、
前記ブートノード装置が、取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信するステップと、
前記ブートサーバ装置が、保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択するステップと、
前記ブートサーバ装置が、選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータのうち、予め設定された起動イメージ変更テーブルで、起動イメージ変更ルールに基づいて変更することが指定されているデータに関しては、前記ハードウェア構成情報を前記起動イメージ変更ルールによって変換した値に変更し、一方、起動イメージ変更ルールに基づいて変更することが指定されていないデータに関しては、前記ハードウェア構成情報に含まれるデータと合致するよう変更するステップと、
前記ブートサーバ装置が、前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信するステップと、
前記ブートノード装置が、前記ブートサーバ装置から前記起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行うステップとを備えることを特徴とする起動イメージ提供システムの動作方法。
【請求項１０】
ネットワークを通じて相互に通信可能に接続された１台以上のブートサーバ装置およびブートノード装置を備えた起動イメージ提供システムの動作方法であって、
前記ブートサーバ装置が、予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群をプログラム毎に分割した個別の起動イメージとこれに対応するイメージ内ハードウェア構成情報とを保存するステップと、
前記ブートノード装置が、自ノード装置のハードウェア構成情報を取得するステップと、
前記ブートノード装置が、取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信するステップと、
前記ブートサーバ装置が、予め設定された前記ブートノード装置毎のソフトウェア構成情報に基づいて、前記第２の起動イメージ保存手段から指定されたプログラムに対応する１以上の起動イメージの候補を取り出し、さらに、前記１以上の起動イメージの候補から前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応するプログラム毎の起動イメージを選択するステップと、
前記ブートサーバ装置が、該第２の起動イメージ選択手段で選択されたプログラム毎の起動イメージをまとめて一つの起動イメージを作成するステップと、
前記ブートサーバ装置が、作成された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを、予め設定された起動イメージ変更テーブルとこれに対応して予め設定された起動イメージ変更ルールとに基づいて前記ハードウェア構成情報に含まれるデータに合致するよう変更するステップと、
前記ブートサーバ装置が、前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信するステップと、
前記ブートノード装置が、前記ブートサーバ装置から起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行うステップとを備えることを特徴とする起動イメージ提供システムの動作方法。
【請求項１１】
ブートサーバ装置にネットワークを通じて相互に通信可能に接続されたブートノード装置の動作プログラムであって、
コンピュータに、
自ノード装置のハードウェア構成情報を取得するステップと、
取得されたハードウェア構成情報を含む起動イメージ送信要求を前記ブートサーバ装置に送信するステップと、
前記ブートサーバ装置から起動イメージを受信し、受信した起動イメージを用いて自ノード装置の起動処理を行うステップとを実行させることを特徴とするブートノード装置の動作プログラム。
【請求項１２】
ブートノード装置にネットワークを通じて相互に通信可能に接続されたブートサーバ装置の動作プログラムであって、
コンピュータに、
予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存するステップと、
保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択するステップと、
選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを予め設定された起動イメージ変更テーブルに基づいて前記ハードウェア構成情報に含まれるデータと合致するよう変更するステップと、
前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信するステップとを実行させることを特徴とするブートサーバ装置の動作プログラム。
【請求項１３】
ブートノード装置にネットワークを通じて相互に通信可能に接続されたブートサーバ装置の動作プログラムであって、
コンピュータに、
予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群とこれに対応するイメージ内ハードウェア構成情報とを保存するステップと、
保存された前記起動イメージのうち、前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応する起動イメージを選択するステップと、
選択された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータのうち、予め設定された起動イメージ変更テーブルで、起動イメージ変更ルールに基づいて変更することが指定されているデータに関しては、前記ハードウェア構成情報を前記起動イメージ変更ルールによって変換した値に変更し、一方、起動イメージ変更ルールに基づいて変更することが指定されていないデータに関しては、前記ハードウェア構成情報に含まれるデータと合致するよう変更するステップと、
前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信するステップとを実行させることを特徴とするブートサーバ装置の動作プログラム。
【請求項１４】
ブートノード装置にネットワークを通じて相互に通信可能に接続されたブートサーバ装置の動作プログラムであって、
コンピュータに、
予め設定された起動イメージとしてコンピュータの起動に必要とされるファイル群をプログラム毎に分割した個別の起動イメージとこれに対応するイメージ内ハードウェア構成情報とを保存するステップと、
予め設定された前記ブートノード装置毎のソフトウェア構成情報に基づいて、前記第２の起動イメージ保存手段から指定されたプログラムに対応する１以上の起動イメージの候補を取り出し、さらに、前記１以上の起動イメージの候補から前記ブートノード装置から受信した起動イメージ送信要求に含まれるハードウェア構成情報に最も合致する前記イメージ内ハードウェア構成情報に対応するプログラム毎の起動イメージを選択するステップと、
選択されたプログラム毎の起動イメージをまとめて一つの起動イメージを作成するステップと、
作成された起動イメージに対応するイメージ内ハードウェア構成情報に含まれるデータを、予め設定された起動イメージ変更テーブルとこれに対応して予め設定された起動イメージ変更ルールとに基づいて前記ハードウェア構成情報に含まれるデータに合致するよう変更するステップと、
前記イメージ内ハードウェア構成情報に含まれるデータが変更された前記起動イメージを前記ブートノード装置に送信するステップとを実行させることを特徴とするブートサーバ装置の動作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの起動に必要なファイル群から構成される起動イメージを提供するシステムに関し、特に、ネットワークブートを行うコンピュータに対してネットワークを経由してサーバから起動イメージを提供する起動イメージ提供システム及び方法に関する。
【背景技術】
【０００２】
ネットワークブートは、コンピュータが起動するときに必要なＯＳ（オペレーティングシステム）やアプリケーションのファイル群から構成される起動イメージを、コンピュータとは別のサーバ上に持たせ、コンピュータの起動時にはネットワークを経由して起動イメージを読み込んでブートを行う技術である。
【０００３】
従来のネットワークブートの方法としては、ＰＸＥ（Preboot Execution Environment）ブートがよく知られている。ＰＸＥブートでは、コンピュータのブート時にネットワークカードから、ＭＡＣアドレスをサーバに対して送信し、そのＭＡＣアドレスに対応した起動イメージをコンピュータに対して送信する。ＰＸＥブートによるネットワークブート方法では、起動イメージを提供するサーバ側で、コンピュータ毎の起動イメージの設定をあらかじめ管理者が設定しておく必要があった。
【０００４】
従来の起動イメージ提供システムの一例が、特許文献１に記載されている。この従来の起動イメージ提供システムは、プリブート手段を備えるユーザ端末と、ユーザ端末で実行されるＯＳ及びアプリケーションプログラムを含んだ起動イメージを格納したサーバとから構成される。さらに、サーバは、ユーザの認証を行う手段と、起動イメージをユーザ端末に送信する手段とを備える。
【０００５】
このような構成を有する従来の起動イメージ提供システムは次のように動作する。すなわち、ユーザ端末のブートにあたり、プリブート手段の制御のもと、ユーザ端末でアクセスされる記憶媒体に記憶されているＯＳブート設定用のユーザ情報のうちユーザによって選択されたユーザ情報をサーバに送信し、サーバでは、前記ユーザ端末から送信されたユーザ情報に基づき、ユーザ端末の認証を行うとともに、指定されたＯＳ及びアプリケーションを含んだ起動イメージをユーザ端末に送信し、ユーザ端末をユーザ固有の環境でブートさせる。ここで、前記ユーザ情報には、起動するＯＳの種類、アプリケーションの種類、セキュリティの情報、及び、ＯＳに引き渡されるブートオプションが含まれる。
【０００６】
また特許文献２には、顧客からのオーダ情報に応じたハードウェア構成を有するコンピュータシステムを生産する際、ハードウェア構成に適合する起動イメージをインストールするシステムが開示されている。具体的には、オーダ情報に応じたハードウェア構成に対してマスタＩＤを割り当て、そのマスタＩＤと起動プログラムとを格納したインストール起動記録媒体をそのコンピュータシステムに提供する。コンピュータシステムにインストール起動記録媒体を装填して実行すると、マスタＩＤがインストールシステムにネットワーク経由で送信され、マスタＩＤに対応して事前に生成されているＯＳおよびアプリケーションを含む起動イメージがインストールシステム側で選択され、ネットワーク経由でコンピュータシステムにインストールされる。
【特許文献１】特開２００１−３５６９１３号公報
【特許文献２】特開２００２−３２３９７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
第１の問題点は、従来の起動イメージ提供システムはユーザ端末のハードウェア構成に応じた起動イメージをあらかじめサーバ側に用意しておかないと提供できないということである。
【０００８】
その理由は、特許文献１では、ユーザ端末から送られるユーザ情報にハードウェア構成情報は含まれないため、ハードウェアに依存する部分はユーザ端末毎に予め作っておく必要があるからである。また、特許文献２は、「インストール」と「ブート」という根本的な違いがある上、マスタＩＤがハードウェア構成を間接的に示しているものの、それはコンピュータの出荷時点のものであるため、出荷後にユーザ側でハードウェア構成の変更が行われた場合、変更後のハードウェア構成に応じた起動イメージが提供できない。
【０００９】
本発明の目的は、ブート時にハードウェアの構成に合わせて起動イメージを作成して提供できる起動イメージ提供システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の起動イメージ提供システムは、２以上の起動イメージを保存する起動イメージ保存手段と、ハードウェア構成情報を受け取り、前記ハードウェア構成情報が示すハードウェア構成に最も適合する起動イメージを選択する起動イメージ選択手段と、起動イメージ中の起動イメージ変更テーブルに示される特定の位置のデータを前記ハードウェア構成情報に含まれるデータによって書き換える起動イメージ変更手段と、前記書き換えられた起動イメージを送信する起動イメージ送信手段を有し、起動するノードのハードウェア構成を与えられたときに、起動イメージ選択手段が起動イメージ保存部から起動イメージを選択し、その起動イメージの一部を起動イメージ変更手段が変更し、変更した起動イメージを起動イメージ送信手段が起動するノードに送信することにより、前記与えられたハードウェア構成情報が示すハードウェアに合った起動イメージを提供することができる。
【００１１】
本発明の第２の起動イメージ提供システムは、２以上の起動イメージを保存する起動イメージ保存手段と、ハードウェア構成情報を受け取り、前記ハードウェア構成情報が示すハードウェア構成に最も適合する起動イメージを選択する起動イメージ選択手段と、起動イメージ中の起動イメージ変更テーブルに示される特定の位置のデータを前記ハードウェア構成情報に含まれるデータ、および、起動イメージ変更ルールによって演算を施した後のデータによって書き換える起動イメージ変更手段と、前記書き換えられた起動イメージを送信する起動イメージ送信手段を有し、起動するノードのハードウェア構成を与えられたときに、起動イメージ選択手段が起動イメージ保存部から起動イメージを選択し、その起動イメージの一部を起動イメージ変更手段が変更し、変更した起動イメージを起動イメージ送信手段が起動するノードに送信することにより、前記与えられたハードウェア構成情報が示すハードウェアに合った起動イメージを提供することができる。
【００１２】
本発明の第３の起動イメージ提供システムは、２以上の起動イメージを保存する起動イメージ保存手段と、ハードウェア構成情報とソフトウェア構成情報を受け取り、ソフトウェア構成情報で指定された各々プログラムについて、前記ハードウェア構成情報が示すハードウェア構成に最も適合する起動イメージを選択する起動イメージ選択手段と、前記選択された複数の起動イメージをまとめて一つの起動イメージを作成する起動イメージ作成手段と、起動イメージ中の起動イメージ変更テーブルに示される特定の位置のデータを前記ハードウェア構成情報に含まれるデータによって書き換える起動イメージ変更手段と、前記書き換えられた起動イメージを送信する起動イメージ送信手段を有し、起動するノードのハードウェア構成を与えられたときに、起動イメージ選択手段が起動イメージ保存部から複数の起動イメージを選択し、起動イメージ作成手段がその複数の起動イメージをまとめて一つの起動イメージを作成し、作成された起動イメージの一部を起動イメージ変更手段が変更し、変更した起動イメージを起動イメージ送信手段が起動するノードに送信することにより、前記与えられたハードウェア構成情報が示すハードウェアに合った起動イメージを提供することができる。
【発明の効果】
【００１３】
本発明の効果は、ユーザ端末の現在のハードウェア構成に合った起動イメージを提供できることにある。その理由は、ユーザ端末の現在のハードウェア構成情報に基づいて、ブートサーバ装置が起動イメージを作成し、それをブートノード装置に提供するためである。
【発明を実施するための最良の形態】
【００１４】
（第１の実施形態）
次に、本発明の第１の実施形態について図面を参照して詳細に説明する。
【００１５】
図１は、本実施形態の構成を示すブロック図である。図１を参照すると、本実施形態にかかる起動イメージ提供システムは、ブートサーバ装置（以下、単に「ブートサーバ」と称す）１００と、ブートノード装置（以下、単に「ブートノード」と称す）２００と、ネットワーク３００とから構成される。
【００１６】
ブートサーバ１００とブートノード２００は、共にＣＰＵ（Central Processing Unit）とメモリを有するコンピュータである。さらに、ブートサーバ１００とブートノード２００は、ＨＤＤ（Hard Disk Drive）やＦＤＤ（Floppy（登録商標） Disk Drive）、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、その他の外部機器の少なくとも１つを拡張機器として含むこともできる。ブートサーバ１００とブートノード２００は、ネットワーク３００により接続され、データを交換することができる。なお、データ交換に用いるプロトコルは、インターネット標準のプロトコルであるＩＰ（Internet Protocol）を利用できるが、それ以外の通信プロトコルを利用することも可能である。ブートノード２００は、ネットワーク３００を介してブートサーバ１００により提供される起動イメージを取得することでネットワークブートする。なお、ブートノード２００は、必ずしもネットワークブート専用端末である必要はなく、ネットワークブート以外の起動方法、つまりＨＤＤやＣＤ−ＲＯＭ、フラッシュメモリから起動する構成を有する可能性もある。本実施の形態では、１台のブートサーバと１台のブートノードを含む構成を示したが、複数台のブートサーバと複数台のブートノードを含む構成にすることも可能である。
【００１７】
ブートサーバ１００は、起動イメージ選択部１０１、起動イメージ保存部１０２、起動イメージ送信部１０３、および、起動イメージ変更部１０４を含んで構成される。
【００１８】
起動イメージ選択部１０１は、ブートノード２００から送信される起動イメージ送信要求に含まれるハードウェア構成情報に基づいて、起動イメージ保存部１０２からそのハードウェア構成に最も近い起動イメージを１つ選択し、その起動イメージを起動イメージ変更部１０４に渡す。
【００１９】
起動イメージ送信要求は、図２に示されるように、少なくとも要求送信元の所在情報、要求側ハードウェア構成情報を含む。ここで、所在情報にはＩＰアドレスを利用することができる。また、要求側ハードウェア構成情報には、例えば、マシンのタイプ、ＣＰＵやチップセットの種類、メモリやディスクのサイズなどを含めることができる。図３に要求側ハードウェア構成情報の例を示す。なお、図３中のマシンのタイプ名やチップセットの種類名などの名称は実名でなく説明の便宜上想定した架空のものである。
【００２０】
ここで、起動イメージ選択部１０１が要求側ハードウェア構成情報に最も近い起動イメージを選択する方法について説明する。
【００２１】
起動イメージ選択部１０１は、起動イメージ比較テーブルで示されるハードウェアの種類に関して、起動イメージに含まれるイメージ内ハードウェア構成情報と、要求側ハードウェア構成情報を比較することで、ハードウェア構成が最も近い起動イメージを選択する。
【００２２】
起動イメージ比較テーブルは、図４に示すように、起動イメージの識別子と比較すべきハードウェアの種類で構成される。なお、ハードウェアの種類とは、マシンのタイプやＣＰＵの種類などであり、要求側ハードウェア構成情報の等号（＝）の左辺に置かれるものと同一である。また、イメージ内ハードウェア構成情報は、例えば、Ｗｉｎｄｏｗｓ（登録商標）の場合、レジストリのHKEY_LOCAL_MACHINE以下に含まれている。
【００２３】
起動イメージ選択部１０１は、要求側ハードウェア構成情報のうち起動イメージ比較テーブルに示されたハードウェアの種類に対応する情報と、イメージ内ハードウェア構成情報の中のハードウェアの種類が対応する部分とを比較し、起動イメージ比較テーブルに示されたハードウェアの種類のすべてについて両者が一致した場合に、最も近いハードウェア構成であると判定する。
【００２４】
起動イメージ保存部１０２は、ブートノード２００を起動させるための起動イメージを少なくとも１つ保存し、起動イメージ選択部１０１からの要求により、起動イメージの１つを返す。この起動イメージ保存部１０２は、人手によって外部で作成された起動イメージを追加できる構成、保存された起動イメージを削除できる構成にしてもよい。
【００２５】
起動イメージ変更部１０４は、起動イメージの一部を変更して、その結果として作成された起動イメージを返す。起動イメージを変更する方法の一つとして、起動イメージ変更テーブルを用いる方法がある。
【００２６】
起動イメージ変更テーブルは、図５に示されるように、起動イメージ中の特定の位置を示すためのアドレスと、そのサイズ、そのアドレスに記録されるべきデータの種類を含む。ここで、データの種類とはハードウェア構成情報の種類を示す。
【００２７】
起動イメージ変更部１０４は、要求側ハードウェア構成情報と選択された起動イメージを受け取ると、まず、起動イメージ変更テーブルのデータの種類を参照し、そのデータの種類に適合するデータを要求側ハードウェア構成情報から取り出して、次に、起動イメージの起動イメージ変更テーブルのアドレスとサイズで示される部分を前記要求側ハードウェア構成情報から取り出したデータで変更する。
【００２８】
起動イメージ送信部１０３は、起動イメージ変更部１０４から渡された変更後の起動イメージを起動イメージ送信要求の送信元に送信する。また、起動イメージ選択部１０１が起動イメージの選択に失敗した場合には、起動イメージ送信部１０３が起動イメージ送信要求の送信元に選択エラー情報を送信する。選択エラー情報には、少なくとも選択エラーを示すエラーコードが含まれる。
【００２９】
なお、ここで起動イメージとは、コンピュータの起動に必要とされるファイル群のことを示す。たとえば、起動イメージは、ＯＳのカーネル部分の実行ファイル、ＯＳサービスを提供するデーモンプログラムの実行ファイル、それらが利用する動的ライブラリファイル、設定ファイル、さらに、ＯＳの起動後に自動的に起動されるアプリケーションプログラムの実行ファイル、ライブラリファイル、設定ファイルなどとそれらを納めるディレクトリを含む。
【００３０】
ブートノード２００は、ＨＷ（ハードウェア）情報取得部２０１、起動イメージ要求部２０２および起動処理部２０３を含んで構成される。
【００３１】
ＨＷ情報取得部２０１は、ブートノード２００を構成するハードウェア部品の情報を取得する。ここで取得されたハードウェア構成情報が、上記の起動イメージ送信要求に含められるものとなる。ＨＷ情報取得部２０１の実現例を以下に示す。
【００３２】
ＨＷ情報取得部２０１の実現例の１つとして、ＩＰＭＩ（Intelligent Platform Management Interface）を利用してブートノード２００を構成するハードウェア部品の情報を取得する構成が考えられる。例えば、ＮＥＣ製のＥｘｐｒｅｓｓ５８００というコンピュータ（サーバ）には、ＢＭＣ（Baseboard Management Controller）と呼ばれるオンボード運用管理チップがマザーボード上に搭載されており、このＢＭＣがマザーボード上およびマザーボードに接続された各ハードウェア部品に関するさまざまな情報をＩＰＭＩ仕様に従って収集し、他所に伝達している。従って、このようなＢＭＣをＨＷ情報取得部２０１として利用することができる。なお、ＩＰＭＩに関する文献として、以下のものが入手可能である。
（１）IPMI v2.0 specifications Document
ftp://download.intel.com/design/servers/ipmi/IPMIv2_0rev1_0.pdf
（２）IPMI Platform Management FRU Information Storage Definition
ftp://download.intel.com/design/servers/ipmi/fru1011.pdf
文献（１）はＩＰＭＩの全体の仕様を記述したもので、文献（２）はコンピュータを構成するモジュールであるＦＲＵ（Field Replaceable Unit）の情報記録構造を記述している。特に、文献（１）の４１２頁〜４１４頁には、”Get FRU Inventory Area Info”などのＦＲＵのコマンドが記載され、文献（２）の８頁にはProduct Info Area Formatが記載されている。
【００３３】
ＨＷ情報取得部２０１の他の実現例として、ブートノード２００に自ノードのハードウェア構成情報を記録する読み書き可能は不揮発性メモリ（例えば、フラッシュメモリ）を設け、ＯＳが立ち上がる過程で収集されるハードウェア構成情報を前記メモリに書き出し、次回のネットワークブート時、前記メモリに書き出されたハードウェア構成情報を自ノードの最新のハードウェア構成情報として取得する構成が考えられる。
【００３４】
再び図１を参照すると、起動イメージ要求部２０２は、上記の起動イメージ送信要求を作成し、ブートサーバ１００に対して、作成した起動イメージ送信要求を送信する。
【００３５】
起動処理部２０３は、起動イメージを受信し、受信した起動イメージに含まれるＯＳの起動処理を行う。ここで、起動処理とは、一般的なＯＳの起動処理を意味する。例えば、受信した起動イメージに含まれるＯＳをメモリにロードし、ＯＳの起動処理に制御を引き渡すという処理を行う。
【００３６】
ネットワーク３００は、起動イメージに含まれるデータを転送可能なネットワークであれば、いかなるものでも利用できる。例えば、ＩＰ通信で広く使われるイーサネット（登録商標）を利用することが考えられる。
【００３７】
次に、図１乃至図６を参照して、本実施形態の全体の動作について詳細に説明する。
【００３８】
ブートノード２００の電源を投入すると、ＨＷ情報取得部２０１がブートノード２００のハードウェア構成情報を取得する(ステップＳ１０１)。ここで取得された図３に例示するようなハードウェア構成情報は、起動イメージ要求部２０２に渡される。起動イメージ要求部２０２は、ハードウェア構成情報と自ノードの所在情報とから、図２に示したような起動イメージ送信要求を作成し、それをブロードキャストするか或いは予めＢＩＯＳに設定されたサーバ用ＩＰアドレス宛てに送信することで、起動イメージ送信要求をブートサーバ１００に送信する（ステップＳ１０２）。
【００３９】
一方、起動イメージ送信要求を受信したブートサーバ１００の起動イメージ選択部１０１は、要求側ハードウェア構成情報と起動イメージ比較テーブルに基づいて、起動イメージ保存部１０２に含まれる起動イメージを検索する（ステップＳ１０３）。前記要求側ハードウェア構成情報に最も適合する起動イメージが１つでも見つかった場合（ステップＳ１０４のＹ）、その起動イメージは要求側ハードウェア構成情報と共に起動イメージ変更部１０４に渡され、起動イメージ変更部１０４は起動イメージ変更テーブルの中から渡された起動イメージに対応するエントリを選択し、そのエントリの内容に従って、起動イメージの特定のアドレスのデータを変更する（ステップＳ１０５）。なお、ステップＳ１０３の検索の結果、起動イメージが２つ以上見つかった場合は、ランダムに適当な１つを選ぶか、あるいは、最初に見つかった起動イメージを選ぶようにしてよい。
【００４０】
次に、ステップＳ１０５で変更された起動イメージは起動イメージ送信部１０３に渡され、起動イメージ送信部１０３は、受け取った起動イメージを上記の送信元ノードの所在情報で示されるブートノードに対して送信する（ステップＳ１０６）。起動イメージを受信したブートノード２００の起動処理部２０３は、受け取った起動イメージのＯＳを起動する（ステップＳ１０７）。
【００４１】
一方、ステップＳ１０３で１つも起動イメージを見つけられなかった場合（ステップＳ１０４のＮ）、起動イメージ選択部１０１は、起動イメージの選択に失敗したことを示すエラーコードと起動イメージ送信要求に含まれる送信元ノードの所在情報とを起動イメージ送信部１０３に渡し、起動イメージ送信部１０３は、エラーコードを含む選択エラー情報を上記の送信元ノードの所在情報で示されるブートノードに対して送信する（ステップＳ１０８）。選択エラー情報を受信したブートノード２００の起動処理部２０３は、起動処理に失敗する（ステップＳ１０９）。
【００４２】
次に、本実施形態の効果について説明する。本実施形態では、ブートノードのハードウェアの構成を取得し、そのハードウェア構成に最も近い起動イメージを選択し、さらに、ハードウェア構成が異なる部分はブートノードのハードウェアの構成に合わせて変更してから、ブートノードに提供するように構成されているため、保存すべき起動イメージの数を少なくすることができる。これは、ブートサーバが持つべきストレージ容量を削減するという効果をもたらす。
（第２の実施形態）
次に、本発明の第２の実施形態について、説明する。
【００４３】
上記第１の実施形態では、起動イメージ変更手段１０４が要求側ハードウェア構成情報に基づいて、起動イメージの一部を変更していたが、本実施形態では、要求側ハードウェア構成情報を加工して別の値にした後で、起動イメージの特定部分のデータをその値で置き換えられるようにする。本実施形態の構成は、第１の実施形態の構成とは、起動イメージ変更部１０４の代わりに、第２の起動イメージ変更部を有する点が異なるが、それ以外の構成はすべて第１の実施形態と同様である。
【００４４】
第２の起動イメージ変更部は、起動イメージ変更テーブルと起動イメージ変更ルールを用いて、起動イメージの一部を変更して、その結果として作成された起動イメージを返す。
【００４５】
起動イメージ変更テーブルは、第１の実施形態と同様である。すなわち、図５に示されるように、起動イメージ中の特定の位置を示すためのアドレスと、そのサイズ、そのアドレスに記録されるべきデータの種類を含む。ここでデータの種類とは、ハードウェアの種類と起動イメージ変更ルールに含まれるデータの種類を示す。
【００４６】
起動イメージ変更ルールは、データの種類とそれを導き出すための変更ルールから構成される。変更ルールには演算式や関数を含むことも可能である。変更ルールに含めるパラメータは、ハードウェア構成情報に含まれるデータを使うことができる。起動イメージ変更ルールの一例を、図７に示す。例えば、ハードウェア構成情報としてマシンのメモリサイズ（ＭＥＭＳＩＺＥ）が与えられた場合、ファイルキャッシュのサイズ（ＦｉｌｅＣａｃｈｅＳｉｚｅ）は計算で求められる。この例ではＦｉｌｅＣａｃｈｅＳｉｚｅはＭＥＭＳＩＺＥの４分の１と計算される。
【００４７】
第２の起動イメージ変更部は、要求側ハードウェア構成情報と選択された起動イメージを受け取ると、まず、起動イメージ変更テーブルのデータの種類を参照し、そのデータの種類に適合するデータを変更ルールまたは要求側ハードウェア構成情報から取り出して、次に、起動イメージの起動イメージ変更テーブルのアドレスとサイズで示される部分を前記要求側ハードウェア構成情報から取り出したデータで変更する。
【００４８】
次に、本実施形態の効果について説明する。本実施形態では、上記第１の実施の形態の効果に加えて、ブートノードのハードウェアの構成に直接、含まれない情報を演算により加工して、起動イメージの一部を変更することができる。このため、起動イメージ中の変更可能な箇所を増やすことができ、さらに、保存すべき起動イメージの数を少なくすることができるという効果を得られる。
【００４９】
次に、上記第１及び第２の実施形態の変形例について説明する。
【００５０】
第１と第２の実施形態においては、起動イメージとして、ファイル群を利用したが、ファイル群の代わりにハイバネーションイメージを利用することも可能である。ハイバネーションイメージとは、実行中のＯＳやアプリケーションなどが展開されているメモリ（主記憶）上のデータのことを意味する。このイメージは、コンピュータを一時的に休止状態にする場合に、ＨＤＤに保存し、コンピュータを再開させるときにＨＤＤからメモリに読み込むという形で使われる。
【００５１】
本変形例においては、上記第１ないし第２の実施の形態におけるブートサーバの起動イメージ保存部１０２には、起動イメージとして、上記のハイバネーションイメージが保存されており、ブートノードの起動処理部２０３は、ネットワークブートの処理を行う代わりにネットワーク経由のハイバネーション復帰処理をするように変更される。このとき、ハイバネーションイメージの全てを一括して取得するのではなく、起動に最小限必要なイメージだけを取り込んで起動し、残りのイメージはその後必要に応じて取得するようにしてもよい。
（第３の実施形態）
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。
【００５２】
上記第１と第２の実施形態の変形例において、起動イメージとしてハイバネーションイメージを利用する方法を示した。起動イメージとしてハイバネーションイメージを用いる場合、ハイバネーションイメージは実行中のＯＳやアプリケーションなどが展開されているメモリ（主記憶）上のデータをそのままファイルにしたものなので、いったん作られたハイバネーションイメージに対して新たにアプリケーションを追加したり、ＯＳだけバージョンアップしたりすることはできなかった。第３の実施形態では、部分的なハイバネーションイメージを組み合わせて、全体のハイバネーションイメージを作成できるようにする。なお、以下の説明で起動イメージとは、前記第１と第２の実施形態の変形例で示したものと同様であり、コンピュータの起動に必要とされるハイバネーションイメージのことを指す。
【００５３】
図８は、本実施形態の構成を示すブロック図である。
【００５４】
図８を参照すると、本実施形態にかかる起動イメージ提供システムは、ブートサーバ装置（以下、単にブートサーバと称す）１１０とブートノード装置（以下、単にブートノードと称す）２００とネットワーク３００とから構成される。
【００５５】
ブートサーバ１１０とブートノード２００は、それぞれ第１の実施形態のブートサーバ１００とブートノード２００とほぼ同様の構成を持つ。すなわち、共にＣＰＵとメモリを有するコンピュータであり、拡張機器を持つことができ、ネットワーク３００により接続され、データを交換することができる。ブートノード２００は、ブートノード２００と同様に、ネットワークブートし、かつ、ネットワークブート以外の起動方法を有する可能性もある。本実施の形態では、１台のブートサーバと１台のブートノードを含む構成を示したが、複数台のブートサーバと複数台のブートノードを含む構成にすることも可能である。
【００５６】
ブートサーバ１１０は、起動イメージ選択部１１１、起動イメージ保存部１１２、起動イメージ作成部１１３、および、起動イメージ変更部１０４、起動イメージ送信部１０３を含んで構成される。
【００５７】
起動イメージ選択部１１１は、要求側ハードウェア構成情報とソフトウェア構成情報に基づいて、起動イメージ保存部１１２からＯＳとアプリケーションのメモリイメージ（以下、個別起動イメージと呼ぶ）を選択し、その個別起動イメージを起動イメージ作成部１１３に渡す。起動イメージ送信要求は、第１の最良の形態と同様に、少なくとも要求送信元の所在情報、要求側ハードウェア構成情報を含む。ソフトウェア構成情報は、図９に示すようなソフトウェア構成情報テーブルから、ブートノードの識別子に基づいて選択されたエントリに含まれる情報である。ソフトウェア構成情報テーブルは、ブートノードのソフトウェア構成情報を示すエントリを含み、各エントリはブートノードの識別子と起動すべきプログラムの名前、すなわち、ＯＳとアプリケーションのプログラム名の一覧を含む。なお、ブートノードの識別子には、起動イメージ送信要求に含まれるのと同様の所在情報を利用できるが、他にブートノードの名前を利用してもよい。また、ソフトウェア構成情報をソフトウェア構成情報テーブルから検索するのではなく、ブートノードから送信するようにしてもよい。
【００５８】
起動イメージ保存部１１２には、ＯＳや様々なアプリケーションの個別起動イメージがファイルとして保存されている。ＯＳの個別起動イメージを作るには、アプリケーションが何も動いていない状態で、ハイバネーションを行えばよい。また、アプリケーションの個別起動イメージを作るには、チェックポイントと呼ばれる技術を利用すればよい。チェックポイントは、実行中のプログラムのメモリ上のイメージとＯＳ内で管理されるプログラムの実行状態情報をハードディスクなどに保存する技術であり、米国Ｗｉｓｃｏｎｓｉｎ大学で開発されたＣｏｎｄｏｒ
(http://www.cs.wisc.edu/condor/checkpointing.html)
や新情報処理開発機構で開発されたＳＣｏｒｅ
(http://www.pccluster.org/score/dist/score/html/ja/reference/scored/checkpoint.html)で実現されている
ここで、起動イメージ選択部１１１が、個別起動イメージを選択する方法について説明する。起動イメージ選択部１１１は起動イメージ送信要求を受け取ると、その要求に含まれるブートノードの所在情報を元にして、ソフトウェア構成情報を特定する。特定したソフトウェア構成情報に含まれるＯＳの情報から、最初に、起動イメージ保存部１１２から候補となる個別起動イメージを選択する。候補となるＯＳの起動イメージを選択する一つの方法は、個別起動イメージのファイル名の一部をソフトウェア構成情報に含まれるＯＳ名と同一にし、同じＯＳ名をもつ個別起動イメージのファイルを選択する方法である。
【００５９】
次に要求側ハードウェア構成情報に基づいて、前記個別起動イメージの候補の中から、さらに、要求側ハードウェア構成に最も近い個別起動イメージを選択する。ＯＳの個別起動イメージの選択が終わると、次はソフトウェア構成情報に含まれるアプリケーションについて、ＯＳの場合と同様の方法で、起動イメージ保存部１１２からそれぞれのアプリケーションの起動イメージを選択する。
【００６０】
なお、起動イメージ選択部１１１は、第１の実施形態の起動イメージ選択部１０１と同様に、起動イメージ比較テーブルで示されるハードウェアの種類に関して、起動イメージに含まれるイメージ内ハードウェア構成情報と、要求側ハードウェア構成情報を比較することで、ハードウェア構成が最も近い起動イメージを選択する。ただし、起動イメージ比較テーブルは、ＯＳとアプリケーションの種類毎に用意される点が、第１の最良の形態とは異なる。
【００６１】
起動イメージ作成部１１３は、受け取ったＯＳの起動イメージを、まず、メモリ上に展開して、次に、アプリケーションの起動イメージを同じメモリ上に展開する。すべてのアプリケーションのメモリイメージを展開したら起動イメージができあがる。起動イメージをメモリ上に展開する一つの方法は、ＶｉｒｔｕａｌＭａｃｈｉｎｅ（ＶＭ）を使う方法である。まず、ＶＭの上にＯＳの起動イメージをレジュームさせて、そのＯＳ上で、アプリケーションのチェックポイントからのレジュームを行うことで、ＯＳとアプリケーションの起動イメージをＶＭのメモリ上に展開することができる。起動イメージ作成部１１３は、できあがった起動イメージを起動イメージ変更部１０４に渡す。
【００６２】
起動イメージ変更部１０４と起動イメージ送信部１０３は、第１の実施形態と同様である。すなわち、要求側ハードウェア構成情報と起動イメージ変更テーブルを使って、起動イメージの特定の部分のデータを変更し、次に、起動イメージ送信要求に含まれる送信元ノードの所在情報に従って、変更した起動イメージを送る。
【００６３】
ブートノード２００は、第１の実施形態と同様に、ＨＷ情報取得部２０１、起動イメージ要求部２０２および起動処理部２０３を含んで構成される。起動イメージを受け取ったブートノード２００の起動処理部２０３によりメモリ上に展開され、実行される。ネットワーク３００は、起動イメージに含まれるデータを転送可能なネットワークであれば、いかなるものでも利用できる。
【００６４】
次に、図８と図９を参照して、本実施形態の全体の動作について詳細に説明する。
【００６５】
ステップＳ２０１とＳ２０２の動作は、第１の実施形態の動作と同様である。すなわち、ブートノード２００の電源を投入すると、ＨＷ情報取得部２０１がブートノード２００のハードウェア構成情報を取得し、起動イメージ要求部２０２は、ハードウェア構成情報と自ノードの所在情報とから起動イメージ送信要求を作成し、ブートサーバに送信することで、起動イメージ送信要求をブートサーバ１１０に送信する。
【００６６】
一方、起動イメージ送信要求を受信したブートサーバ１１０の起動イメージ選択部１１１は、ソフトウェア構成情報と要求側ハードウェア構成情報と起動イメージ比較テーブルに基づいて、起動イメージ保存部１０２に含まれるＯＳの起動イメージとアプリケーションの起動イメージを検索する（ステップＳ２０３）。
【００６７】
ソフトウェア構成情報に含まれるすべてのＯＳとアプリケーションについて前記要求側ハードウェア構成情報に最も近い起動イメージが見つかった場合（ステップＳ２０４のＹ）、それらの起動イメージは起動イメージ作成部１１３に渡され、起動イメージ作成部１１３はＯＳの起動イメージをメモリ上に展開し、さらに、その上に、アプリケーションの起動イメージが展開し、ＯＳとアプリケーションが一つのメモリ上に展開された起動イメージを作成する（ステップ２０５）。
【００６８】
前記作成された起動イメージは要求側ハードウェア構成情報と共に起動イメージ変更部１０４に渡され、起動イメージ変更部１０４は渡されたすべての起動イメージに関して、起動イメージ変更テーブルの中から対応するエントリを選択し、そのエントリの内容に従って、起動イメージの特定のアドレスのデータを変更する（ステップＳ２０６）。なお、ステップＳ２０３の検索の結果、それぞれのＯＳやアプリケーションについて適合する起動イメージが２つ以上見つかった場合は、ランダムに適当な１つを選ぶか、あるいは、最初に見つかった起動イメージを選ぶようにしてよい。
【００６９】
次に、ステップＳ２０６で変更された起動イメージは起動イメージ送信部１０３に渡され、起動イメージ送信部１０３は、受け取った起動イメージを上記の送信元ノードの所在情報で示されるブートノードに対して送信する（ステップＳ２０７）。起動イメージを受信したブートノード２００の起動処理部２０３は、受け取った起動イメージのＯＳを起動する（ステップＳ２０８）。
【００７０】
一方、ステップＳ２０３で１つも起動イメージを見つけられなかった場合（ステップＳ２０４のＮ）、起動イメージ選択部１１１は、起動イメージの選択に失敗したことを示すエラーコードと起動イメージ送信要求に含まれる送信元ノードの所在情報とを起動イメージ送信部１０３に渡し、起動イメージ送信部１０３は、エラーコードを含む選択エラー情報を上記の送信元ノードの所在情報で示されるブートノードに対して送信する（ステップＳ２０９）。選択エラー情報を受信したブートノード２００の起動処理部２０３は、起動処理に失敗する（ステップＳ２１０）。
【００７１】
次に、本実施形態の効果について説明する。本実施形態では、要求される度に、ＯＳやアプリケーションの個別起動イメージから起動イメージを作成するため、ＯＳのバージョンや起動されるべきアプリケーションが少しだけ違うような起動イメージを別々に予め用意する必要がない。このため、第１と第２の実施形態の変形例の効果に加えて、保存すべき起動イメージの数をさらに少なくすることができるという効果を得られる。
【実施例１】
【００７２】
次に、具体的な実施例を用いて、上記第１の実施形態についてより具体的に説明する。
【００７３】
図１１乃至図１４を参照して、本実施例の構成を説明する。本実施例では、ブートノードにはＰＣ８１０を使用し、ブートサーバ１００にはサーバ８００を使用する。
【００７４】
ＰＣ８１０は、ＣＰＵ８１１、チップセット８１２、メモリ８１３、ビデオカード８１４、ＢＩＯＳ８１６を記憶するＲＯＭ８１５を備えている。ここで、ＣＰＵ８１１は“Ｎ−ＣＰＵ２．６ＧＨｚ”、メモリ８１３は“ＤＤＲ  ＳＤＲＡＭ１ＧＢ”、チップセット８１２は“Ｎ−Ｃｈｉｐｓｅｔ９００”、ビデオカード８１４は“Ｎ−Ｖｉｄｅｏ５０５”、を使用する。また、ＨＷ情報取得部２０１、起動イメージ要求部２０２、起動処理部２０３は、ＰＣ８１０のＢＩＯＳ８１６に組み込まれたプログラムに含まれる機能手段として存在する。
【００７５】
サーバ８００は、ＣＰＵ８０１、メモリ８０２、ＨＤＤ８０３を備えている。サーバ８００上では、ネットワークブートのためのサービスプログラム８０４（デーモンとも呼ばれる）が動作しており、起動イメージ選択部１０１、起動イメージ保存部１０２、起動イメージ送信部１０３、起動イメージ変更部１０４はそのプログラムの一部の機能手段として存在する。このサービスプログラム８０４は、ＨＤＤ８０３からメモリ８０２にロードさせてＣＰＵ８０１で実行される。また、起動イメージ保存部１０２は、ＨＤＤ８０３に起動イメージを保存している。
【００７６】
サーバ８００とＰＣ８１０の間は、イーサネット（登録商標）によるＬＡＮ９００で接続されており、サーバ８００とＰＣ８１０はＩＰプロトコルで通信するものとする。サーバ８００とＰＣ８１０には、それぞれＩＰアドレス“１９２．１６８．１．１”と“１９２．１６８．１．９”が割り当てられている。ＰＣ８１０のＩＰアドレスは、ＢＩＯＳ８１６が管理する不揮発メモリ上に登録されている。
【００７７】
ＰＣ８１０の電源を投入すると、ＢＩＯＳ８１６が起動し、ＨＷ初期化処理に続いて、ＯＳの起動処理が開始される。ＯＳの起動処理の最初に、ＨＷ情報取得部２０１がＰＣ８１０を構成するハードウェア構成情報を取得する。次に、起動イメージ要求部２０２が取得したハードウェア構成情報とＰＣ８１０に設定されたＩＰアドレスを含む起動イメージ送信要求を作成する。ここで作成される起動イメージ送信要求６００を図１２に示す。図１２において、エントリ６０１は、ＰＣ８１０のＩＰアドレスを示している。ＩＰアドレスは文字列として表される。エントリ６０２からエントリ６０５までは、ハードウェア構成情報を示している。ハードウェア構成情報も文字列として表され、それぞれのエントリのうちコロン（：）までは、ハードウェア構成情報のタイプを表す。例えば、エントリ６０２の“ＣＰＵ：”は、エントリ６０２がＣＰＵに関する情報を含むことを表す。同様に、“ＭＥＭ：”はメモリサイズ、“ＣＳＥＴ：”はチップセット、“ＶＩＤＥＯ：”はビデオチップに関する情報を含むことをそれぞれ表す。
【００７８】
起動イメージ送信要求６００は、ＩＰプロトコルによりサーバ８００に送られる。起動イメージ送信要求６００を受け取ったサーバ８００の起動イメージ選択部１０１は、起動イメージ送信要求６００に含まれるハードウェア構成情報、すなわち、エントリ６０２からエントリ６０５のうち、図１３に示した起動イメージ比較テーブル７００に含まれるハードウェアの種類を検索のキーとして、起動イメージ保存部１０２に含まれる起動イメージを検索する。
【００７９】
この場合、起動イメージ比較テーブル７００のエントリ７０１は “／Ｂｏｏｔ／Ｆ−ＩＭＧ−１．０”の起動イメージ７１１に関するものであり、比較に用いるキーは”ＣＰＵ“と”ＣＳＥＴ“であることを示している。これらのキーに関して、起動イメージ送信要求６００に含まれるハードウェア構成情報は起動イメージ７１０に含まれるハードウェア構成情報と一致しない。起動イメージ比較テーブル７００のエントリ７０２は“／Ｂｏｏｔ／Ｎ−ＩＭＧ−２．０―Ｂ”の起動イメージ７１２に関するものであり、比較に用いるキーは”ＣＰＵ“と”ＣＳＥＴ“と”ＶＩＤＥＯ“であることを示している。これらのキーに関して、起動イメージ送信要求６００に含まれるハードウェア構成情報は起動イメージ７１２に含まれるハードウェア構成情報と一致する。同様にエントリ７０３は起動イメージ７１３に関するものであるが、起動イメージ送信要求６００に含まれるハードウェア構成情報と一致しない。これらの比較の結果、”／Ｂｏｏｔ／Ｎ−ＩＭＧ−２．０−Ａ”という起動イメージの識別子が返される。ここでは、識別子はファイルのパス名を表すものとする。
【００８０】
起動イメージ選択部１０１は、”／Ｂｏｏｔ／Ｎ−ＩＭＧ−２．０−Ａ”という起動イメージの識別子と起動イメージ送信要求６００を起動イメージ変更部１０４に渡す。起動イメージ変更部１０４は、図１４に示す、起動イメージ変更テーブル７２０から前記起動イメージの識別子に対応するエントリ７２２を取り出す。エントリ７２２には、アドレスが「ＢＡＳＥ＿ＨＷ＿ＩＮＦＯ：５０」、サイズが「５０」、データの種類が「ＭＥＭＳＩＺＥ」という情報が含まれているが、これは、「ＢＡＳＥ＿ＨＷ＿ＩＮＦＯというファイルのオフセット５０バイトの位置から、２０バイト分の領域にＭＥＭＳＩＺＥというデータが含まれる」ということを示している。
【００８１】
起動イメージ変更部１０４は、前記起動イメージの識別子で指定されるファイルをＨＤＤ８０３から読み出し、さらに、エントリ７２２に含まれる情報に基づいて、「ＢＡＳＥ＿ＨＷ＿ＩＮＦＯというファイルのオフセット５０バイトの位置から、２０バイト分の領域」を変更する。変更する値は、起動イメージ送信要求６００のエントリ６０３に含まれる「ＭＥＭＳＩＺＥ：１ＧＢ」という情報から得られる。
【００８２】
最終的に、”／Ｂｏｏｔ／Ｎ−ＩＭＧ−２．０−Ａ”という起動イメージの中のＢＡＳＥ＿ＨＷ＿ＩＮＦＯというファイルのオフセット５０バイトの位置から、２０バイト分の領域が２ＧＢから１ＧＢに書き換わった起動イメージが起動イメージ変更部１０４から、起動イメージ送信部１０３に渡される。ここで渡されるファイルは、起動用のファイル一式をまとめたもので、ＴＡＲ形式やＺＩＰ形式でアーカイブされている。起動イメージ送信部１０３は、ＩＰアドレス“１９２．１６８．１．９”のノード、つまりＰＣ８１０に対して、ＩＰ通信で起動イメージのファイルを送信する。
【００８３】
起動イメージのファイルを受けとったＰＣ８１０の起動イメージ処理部２０３は、起動処理を行う。ここでいう起動処理とは、起動イメージファイルの展開とＯＳローダの実行である。ＯＳローダは、ＯＳの主要部分（カーネルとも呼ばれる）をメモリ８１３に読み込み、カーネルの実行を開始させる。
【実施例２】
【００８４】
次に、具体的な実施例を用いて、上記第２の実施形態についてより具体的に説明する。
【００８５】
図１１を参照して、本実施例の構成を説明する。本実施例では、ブートノードにはＰＣ８１０を使用し、ブートサーバ１００にはサーバ８００を使用する。
【００８６】
実施例２の構成は、実施例１とほぼ同様である。異なる点はサービスプログラム８０５に含まれる起動イメージ変更部１０４が第２の起動イメージ変更部に置き換わる点だけである。したがって、第２の起動イメージ変更部の処理について詳細に説明する。
【００８７】
起動イメージ選択部１０１から、”／Ｂｏｏｔ／Ｎ−ＩＭＧ−２．０−Ａ”という起動イメージの識別子と起動イメージ送信要求６００が起動イメージ変更部１０４に渡されると、起動イメージ変更部１０４は、図１５に示す、起動イメージ変更テーブル７４０から前記起動イメージの識別子に対応するエントリ７４２を取り出す。エントリ７４２には、データの種類が「ＦＣａｃｈｅＳｉｚｅ」いう情報が含まれているが、これは、起動イメージ送信要求６００のハードウェア構成情報に含まれるのではなく、起動イメージ変更ルール７５０を使って計算で得られるものである。
【００８８】
第２の起動イメージ変更部は、前記起動イメージの識別子で指定されるファイルをＨＤＤ８０３から読み出し、さらに、エントリ７４２に含まれる情報に基づいて、「ＢＡＳＥ＿ＨＷ＿ＩＮＦＯというファイルのオフセット５０バイトの位置から、２０バイト分の領域」を１ＧＢを示す値に変更し、それに加えて、エントリ７４２に含まれる情報と起動イメージ変更ルール７５０に基づいて「ＢＡＳＥ＿ＨＷ＿ＩＮＦＯというファイルのオフセット２００バイトの位置から、２０バイト分の領域」を２５０ＭＢを示す値に変更する。変更する値は、起動イメージ送信要求６００のエントリ６０３に含まれる「ＭＥＭＳＩＺＥ：１ＧＢ」という情報から得られる。
【００８９】
最終的に、”／Ｂｏｏｔ／Ｎ−ＩＭＧ−２．０−Ａ”という起動イメージの中のＢＡＳＥ＿ＨＷ＿ＩＮＦＯというファイルのオフセット５０バイトの位置から、２０バイト分の領域が２ＧＢから１ＧＢに書き換わり、オフセット２００バイトの位置から、２０バイト分の領域が５００ＭＢから２５０ＭＢに書き換わった起動イメージが第２の起動イメージ変更部から、起動イメージ送信部１０３に渡される。ここで渡されるファイルは、起動用のファイル一式をまとめたもので、ＴＡＲ形式やＺＩＰ形式でアーカイブされている。起動イメージ送信部１０３は、ＩＰアドレス“１９２．１６８．１．９”のノード、つまりＰＣ８１０に対して、ＩＰ通信で起動イメージのファイルを送信する。
【００９０】
起動イメージのファイルを受けとったＰＣ８１０の起動イメージ処理部２０３は、起動処理を行う。ここでいう起動処理とは、起動イメージファイルの展開とＯＳローダの実行である。ＯＳローダは、ＯＳの主要部分（「カーネル」とも呼ばれる）をメモリ８１３に読み込み、カーネルの実行を開始させる。
【実施例３】
【００９１】
次に、具体的な実施例を用いて、上記第３の実施形態についてより具体的に説明する。
【００９２】
図１６乃至図１８を参照して、本実施例の構成を説明する。本実施例では、ブートノードにはＰＣ８１０を使用し、ブートサーバにはサーバ８２０を使用する。
【００９３】
ＰＣ８１０は、実施例１のものと同様であり、ＣＰＵ８１１、チップセット８１２、メモリ８１３、ビデオカード８１４、ＢＩＯＳ８１６を記憶するＲＯＭ８１５を備えている。ここで、ＣＰＵ８１１は“Ｎ−ＣＰＵ２．６ＧＨｚ”、メモリ８１３は“ＤＤＲ  ＳＤＲＡＭ１ＧＢ”、チップセット８１２は“Ｎ−Ｃｈｉｐｓｅｔ９００”、ビデオカード８１４は“Ｎ−Ｖｉｄｅｏ５０５”、を使用する。また、ＨＷ情報取得部２０１、起動イメージ要求部２０２、起動処理部２０３は、ＰＣ８１０のＢＩＯＳ８１６に組み込まれたプログラムに含まれる機能手段として存在する。
【００９４】
サーバ８２０は、ＣＰＵ８２１、メモリ８２２、ＨＤＤ８２３を備えている。サーバ８２０上では、ネットワークブートのためのサービスプログラム８２４（デーモンとも呼ばれる）が動作しており、起動イメージ選択部１１１、起動イメージ保存部１１２、起動イメージ作成部１１３、起動イメージ送信部１０３、起動イメージ変更部１０４はそのプログラムの一部の機能手段として存在する。このサービスプログラム８２４は、ＨＤＤ８２３からメモリ８０２にロードさせてＣＰＵ８０１で実行される。また、起動イメージ保存部１１２は、ＨＤＤ８２３に起動イメージを保存している。
【００９５】
サーバ８２０とＰＣ８１０の間は、イーサネット（登録商標）によるＬＡＮ９００で接続されており、サーバ８２０とＰＣ８１０はＩＰプロトコルで通信するものとする。サーバ８２０とＰＣ８１０には、それぞれＩＰアドレス“１９２．１６８．１．１”と“１９２．１６８．１．９”が割り当てられている。ＰＣ８１０のＩＰアドレスは、ＢＩＯＳ８１６が管理する不揮発メモリ上に登録されている。
【００９６】
ブートノード側の処理は実施例１と同様である。起動イメージ送信要求も実施例１と同様、図１２で示される内容を持つ。
【００９７】
起動イメージ送信要求６００を受け取ったサーバ８２０の起動イメージ選択部１１１は、図１７のようなソフトウェア構成情報テーブルから起動イメージ送信要求６００に含まれるブートノードのＩＰアドレスに対応したエントリ７６１を選択する。エントリ７６１には、“Ｎ−ＯＳ−２．０−Ａ”と“Ｎ−Ｅｄｉｔｏｒ”と“Ｎ−Ｍａｉｌ”と“Ｎ−Ｂｒｏｗｓｅｒ”というプログラム名が含まれている。起動イメージ選択部１１１は起動イメージ保存部１１２を検索し、これらのプログラム名に部分的にマッチする個別起動イメージファイルを選択する。
【００９８】
まず、“Ｎ−ＯＳ−２．０−Ａ”に関しては、“Ｎ−ＯＳ−２．０−Ａ−Ｎ５０５”と“Ｎ−ＯＳ−２．０−Ａ−Ｓ１”の２つがマッチする。ここで、“Ｎ−ＯＳ−２．０−Ａ−Ｎ５０５”には“ＶＩＤＥＯ：Ｎ−Ｖｉｄｅｏ５０５”というハードウェア構成情報が埋め込まれており、“Ｎ−ＯＳ−２．０−Ａ−Ｓ１”には“ＶＩＤＥＯ：Ｓ−Ｖｉｄｅｏ１”というハードウェア構成情報が埋め込まれているとすると、起動イメージ送信要求６００のエントリ６０５にマッチする、“Ｎ−ＯＳ−２．０−Ａ−５０５”の個別起動イメージ７０１が選択される。同様にして、アプリケーションは、“Ｎ−Ｅｄｉｔｏｒ”の個別起動イメージ７７３と“Ｎ−Ｍａｉｌ”の個別起動イメージ７７４と“Ｎ−Ｂｒｏｗｓｅｒ”の個別起動イメージ７７５が選択される。
【００９９】
次に、起動イメージ作成部１１３は、上記の選択された個別起動イメージをまとめて一つの起動イメージを作成する。この動作を図１８に示す。
【０１００】
起動イメージ作成部１１３は、まず、何もプログラムがロードされていないＶＭを用意し、そこに “Ｎ−ＯＳ−２．０−Ａ−５０５”の個別起動イメージ７７１を展開する。この展開は、通常のハイバネーションからの復帰の仕組みを使って行う。
【０１０１】
次に、起動イメージ作成部１１３は、“Ｎ−Ｅｄｉｔｏｒ”の個別起動イメージ７７３を展開する。この展開は、Ｃｏｎｄｏｒなどで実現されているチェックポインティングからの復帰の仕組みを使って行う。“Ｎ−Ｍａｉｌ”の個別起動イメージ７７４と“Ｎ−Ｂｒｏｗｓｅｒ”の個別起動イメージ７７５に対しても同様の復帰処理を行うことで、最終的な起動イメージを作るためのＶＭメモリ空間ができあがる。
【０１０２】
起動イメージ作成部１１３は、この状態のＶＭのハイバネーションを行うことで、ＯＳとアプリケーションを含んだ起動イメージを作成する。起動イメージができあがった後の動作は、上記実施例１と同様である。
【産業上の利用可能性】
【０１０３】
本発明によれば、ネットワークブート可能なＰＣのためのブートサーバといった用途に適用できる。また、クラスタシステムにおけるサーバ装置のネットワークブートのためのブートサーバといった用途にも適用可能である。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１の実施形態の構成を表すブロック図である。
【図２】起動イメージ送信要求の構成を表す図である。
【図３】ハードウェア構成情報の一例を示す図である。
【図４】起動イメージ比較テーブルの構成を表す図である。
【図５】起動イメージ変更テーブルの構成を表す図である。
【図６】本発明の第１の実施形態の動作を表す流れ図である。
【図７】起動イメージ変更ルールの一例を表す図である。
【図８】本発明の第３の実施形態の構成を表すブロック図である。
【図９】ソフトウェア構成情報テーブルの構成を表す図である。
【図１０】本発明の第３の実施形態の動作を表す流れ図である。
【図１１】実施例１の構成を表すブロック図である。
【図１２】実施例１の起動イメージ送信要求を表す図である。
【図１３】実施例１の起動イメージ選択部１０１の動作を説明する図である。
【図１４】実施例１の起動イメージ変更部１０４の動作を説明する図である。
【図１５】実施例２の第２の起動イメージ変更部の動作を説明する図である。
【図１６】実施例３の構成を表すブロック図である。
【図１７】実施例３の起動イメージ選択部１１１の動作を説明する図である。
【図１８】実施例３の起動イメージ作成部１１３の動作を説明する図である。
【符号の説明】
【０１０５】
１００、１１０  ブートサーバ
１０１、１１１  起動イメージ選択部
１０２、１１２  起動イメージ保存部
１０３  起動イメージ送信部
１０４  起動イメージ変更部
１１３  起動イメージ作成部
２００  ブートノード
２０１  ＨＷ情報取得部
２０２  起動イメージ要求部
２０３  起動処理部
３００  ネットワーク
８００  サーバ（ブートサーバ）
８１０  ＰＣ（ブートノード）
８１１  ＣＰＵ
８１２  チップセット
８１３  メモリ
８１４  ビデオカード
８１５  ＲＯＭ
８１６  ＢＩＯＳ
８２１  ＣＰＵ
８２２  メモリ
８２３  ＨＤＤ
８２４  サービスプログラム
【図１】
2006277277.tif 000003
【図２】
2006277277.tif 000004
【図３】
2006277277.tif 000005
【図４】
2006277277.tif 000006
【図５】
2006277277.tif 000007
【図６】
2006277277.tif 000008
【図７】
2006277277.tif 000009
【図８】
2006277277.tif 000010
【図９】
2006277277.tif 000011
【図１０】
2006277277.tif 000012
【図１１】
2006277277.tif 000013
【図１２】
2006277277.tif 000014
【図１３】
2006277277.tif 000015
【図１４】
2006277277.tif 000016
【図１５】
2006277277.tif 000017
【図１６】
2006277277.tif 000018
【図１７】
2006277277.tif 000019
【図１８】
2006277277.tif 000020