(57)【要約】【課題】  従来は、ブレードごとに外部ディスクシステムにＯＳデータを格納していたため、ディスクシステムの記憶容量を大きく占有していた。【解決手段】  １つのＯＳマスタデータ１０１と各ブレードのＯＳデータの差分を差分管理テーブル１１５として格納する差分データ１０２、ブレードからの要求を処理する要求コマンドデータ処理手続き１０５により、ＯＳマスタデータ１０１に対する変更要求をフックして差分データ１０２に書き込むことで、マスタデータ１０１と差分データ１０２から必要なデータをロードしてＯＳを起動する。【選択図】  図１
2010272127.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機の各々が、複数のＯＳのうちの１つを起動するために接続されたディスクシステムであって、
前記ディスクシステムは、
前記複数のＯＳのうち、前記複数の計算機の各々が共通に使用する一つのＯＳを起動するために共通で使用するＯＳデータを格納する複数のＯＳマスタデータ論理ディスクと、
前記複数のＯＳのうち、前記複数の計算機の各々が共通に使用する一つのＯＳに対応した前記ＯＳマスタデータ論理ディスクの各々に対して書き込んだ差分データを格納する、前記複数の計算機の各々に対応した複数の差分データ論理ディスクと、
前記複数のＯＳマスタデータ論理ディスクと前記複数の差分データ論理ディスクとに接続し、前記複数の計算機の各々からのアクセス要求を処理する要求コマンドデータ処理部とを有し、
前記要求コマンドデータ処理部は、
前記複数のＯＳマスタデータ論理ディスクの各々を特定するロジカルユニット番号を格納した共通ＬＵマッピングテーブルと、前記ロジカルユニット番号毎に前記差分データ論理ディスクとの対応関係を格納する複数のシステムマッピングテーブルとを記憶し、前記共通ＬＵマッピングテーブルは、各々の前記ロジカルユニット番号に対応する前記システムマッピングテーブルを特定するためのシステムマッピングテーブル番号を前記ロジカルユニット番号に対応付けて格納し、前記システムマッピングテーブルは、前記複数の計算機の各々を特定するシステム名称と前記差分データ論理ディスクを特定する差分ロジカルユニット番号との対応関係を格納し、
前記計算機から発行された前記アクセス要求が前記共通ＬＵマッピングテーブルに格納された前記ロジカルユニット番号に対する要求であるかどうかを判定し、
前記アクセス要求が前記共通ＬＵマッピングテーブルに格納された前記ロジカルユニット番号に対する要求であった場合に、前記複数のＯＳマスタデータ論理ディスクのうち前記ロジカルユニット番号に対応するＯＳマスタデータ論理ディスクを特定し、当該ロジカルユニット番号に対応する前記システムマッピングテーブルを前記共通ＬＵマッピングテーブルに対応づけて格納されたシステムマッピングテーブル番号から特定し、特定された前記システムマッピングテーブルに格納された前記システム名称から、受領した前記アクセス要求を発行した計算機に対応する前記差分データ論理ディスクを特定し、
受領した前記アクセス要求が読み込み要求であった場合、特定した前記差分データ論理ディスクに記憶する前記差分情報から前記読み込み要求に対応する前記差分データの有無を判断し、前記差分データがあれば前記差分データ論理ディスクから前記読み込み要求と対応する前記差分データを読み出して前記計算機へ応答し、前記差分データがなければ前記読み込み要求と対応する前記ＯＳデータを前記特定したＯＳマスタデータ論理ディスクから読み出して前記計算機へ応答し、
前記要求コマンドデータ処理部は、
前記読み込み要求を、前記差分データが原因でおきた障害時のリカバリのために受領した場合、前記ＯＳデータを前記差分データの有無にかかわらず、特定した前記ＯＳマスタデータ論理ディスクから読み出して前記計算機へ応答する、
ことを特徴とするディスクシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブレードシステムにおいて外部ディスクシステムからＯＳを起動する方法およびそのシステムに関するものである。
【背景技術】
【０００２】
特開２００２−３２１５３号公報に記載のように、ブレードシステムとはサーバユニット搭載用筐体に多数のサーバユニットを搭載できるとともに、効率よく冷却できる構造を有するサーバユニットである。従来はそのシステムにおいて、ディスクが搭載されていないディスクレスなサーバユニット（ブレード）が、Ｆｉｂｒｅなどで接続された外部ディスクシステムからＯＳを起動する場合、ブレードごとに外部ディスクシステムにＯＳデータを格納していた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３２１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、ブレードのＯＳデータは類似しているにもかかわらず、ブレードの台数分のＯＳデータが必要となり、ディスクシステムの記憶容量を大きく占有していた。また、セキュリティパッチなどを適応する際にも、全てのＯＳデータに対して行う必要があり、ユーザや管理者の手間が多かった。
【０００５】
本発明の目的は、ディスク占有量と管理者の手間を軽減する外部ディスクシステムを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、複数の計算機（ブレード）が接続された本発明のディスクシステムは、以下に示す動作を行う。
【０００７】
例えばブレード１のＯＳを起動する場合、ブレード１に変更分を含む最新のＯＳデータを格納するために、ブレード１からのＯＳデータの読み込み要求に基づいて、所定のデータ長のデータブロックごとに、所定の回数分だけ以下の処理ａ）からｄ）を繰り返す。
【０００８】
ａ）ブレード１からデータブロックの単位でＯＳデータの読み込み要求を受け付ける。
【０００９】
ｂ）ブレード１に固有な、ＯＳデータの差分データをブレード１に対応した差分管理テーブルから検索する。
【００１０】
ｃ）差分管理テーブルに差分データがあれば、検索されたデータブロック分の差分データをブレード１のメモリに転送する。
【００１１】
ｄ）差分管理テーブルに差分データがなければ、各ブレードに共通なＯＳデータを格納したＯＳマスタデータからデータブロック分のＯＳデータを取り出してブレード１のメモリに転送する。
【００１２】
ブレード１の動作中にＯＳデータが変更された場合、ディスクシステムは、ブレード１から変更されたＯＳデータの書き込み要求を受け取り、受け取った要求に含まれ、変更されたＯＳデータが格納されたデータブロックを、書き込み要求に含まれるデータブロックの番号（ＬＢＡ）と共に、ブレード１に対応する差分管理テーブルに格納する。この時、差分管理テーブルにおいて、書き込み要求が示すＬＢＡに対応する差分データが既に格納されていれば、新たな書き込み要求によって差分データが更新され、まだ格納されていなければ、差分データが追加される。ブレード１においてＯＳデータが変更されると、その都度、上記の書き込み処理が実行される。
【発明の効果】
【００１３】
本発明によれば、ディスクシステムのデータ格納において、類似しているＯＳデータが一つであり、差分データのディスク占有量は少ないため、外部ディスクシステムの記憶容量を節約できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施方法の全体構成を示した説明図である。（実施例１）
【図２】各ブレードからディスクシステムに送信されるコマンドデータの詳細である。
【図３】ディスクシステムから各ブレードに送信されるコマンドデータの詳細である。
【図４】共有ＬＵ番号、システムマッピングテーブル番号を格納しているテーブルである。
【図５】システム名称、差分ＬＵ番号を格納しているテーブルである。
【図６】参照ＬＢＡ、差分データを格納しているテーブルである。
【図７】ブレード固有のＯＳデータを格納しているテーブルである。
【図８】要求コマンドデータ処理手続きの処理の流れを示すフローチャートである。
【図９】読み込み要求処理手続きの処理の流れを示すフローチャートである。
【図１０】書き込み要求処理手続きの処理の流れを示すフローチャートである。
【図１１】ブレード１がはじめて起動する場合の処理の流れを示すフローチャートである。
【図１２】ブレード１が２回目以降起動する場合の処理の流れを示すフローチャートである。
【図１３】データが格納されているＯＳマスタデータの位置を格納しているテーブルである。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
【００１６】
図１は、本発明における一実施例であるディスクシステムの構成を示す。
【００１７】
本実施例では、ファイバーケーブル１１３で互いに接続されたブレードシステム１１４とディスクシステム１００で実現されている。ブレードシステム１１４とディスクシステム１００は、要求コマンドデータ１０８と応答コマンドデータ１０９の送受信によって通信する。
【００１８】
ブレードシステム１１４には、それぞれが１つのコンピュータの機能を有するボード（ブレード）が複数個装着され、その中の１つ又は複数個のブレードの組みによって所定のアプリケーションに対応した動作を行い、使用目的や状況に応じてアプリケーションに対応したブレードの組みを変更できるようになっている．
ブレードシステム１１４は、ブレード１（１１２ａ）とブレード２（１１２ｂ）を有し、ディスクシステム１００は、各ブレードに共通なＯＳ（オペレーティングシステム）データであるＯＳマスタデータを含むマスタ論理ディスク（以下、ＬＵ０（１０１））、各ブレード
に固有なＯＳデータ（ＯＳマスタデータに対する変更情報）を管理する差分管理テーブル１１５を含む差分論理ディスク（以下、ＬＵ１（１０２ａ）、ＬＵ２（１０２ｂ））、及び管理情報１０４と要求コマンドデータ処理１０５を含むディスクアレイコントローラ１０３から構成されている。ここで、ＬＵ０、ＬＵ１、ＬＵ２などはディスクのロジカルユニット番号である。
【００１９】
管理情報１０４と要求コマンドデータ処理１０５は、ディスクアレイコントローラ１０３内のメモリ１３０に格納されている。
【００２０】
差分管理テーブル１１５には、ブレード１に固有のＯＳデータ１１７が格納される。差分論理ディスクＬＵ２（１０２ｂ）も同様に、差分管理テーブルを有し、このテーブルにはブレード２に固有のＯＳデータが格納される。管理情報１０４には、共有ＬＵマッピングテーブル１１０とシステムマッピングテーブル１１１が含まれ、要求コマンドデータ処理手続き１０５には、読み込み要求処理手続き１０６と書き込み要求処理手続き１０７が含まれる。
【００２１】
図１において、ＯＳマスタデータが１つであるため、セキュリティパッチを適応する際に、一つのＯＳデータに適応するだけで良く、管理者の手間が軽減できる。また、差分データが原因でおきた障害時のリカバリの際に、ＯＳマスタデータと差分データが分離しているため、差分データとのリンクを切り離して、ＯＳマスタデータから起動することにより、復旧時間を短縮できる。
【００２２】
本実施例では、ブレード１とブレード２の２台と、差分データを含むＬＵ１とＬＵ２で実施例を示しているが、ブレードの台数や差分データを含むＬＵの数は任意でもよい。
【００２３】
次に、図１で示した構成の各要素について詳細に説明する。
【００２４】
図２は、ブレードシステム１１４に含まれるブレード１（１１２ａ）からディスクシステム１００に含まれるディスクアレイコントローラ１０３に対して送信される要求コマンドデータ１０８を示す。要求コマンドデータ１０８には、コマンド名称２００、対象ＬＵ２０１、要求対象のデータの論理ブロックアドレスＬＢＡ(Logical Block Address)２０２、データ２０３、発行元システム名称２０４が含まれる。コマンド名称２００には、書き込みと読み込みのいずれかが指定され、図１で示した要求コマンドデータ処理１０５において、要求がデータの読み込みであるのか書き込みであるのかを判断する際に参照する。対象ＬＵ２０１には、ディスクシステム１００が管理するロジカルユニット（ＬＵ）番号が格納され、要求コマンドデータ処理１０５において、どのＬＵに対しての要求であるのかを判断する際に参照する。ＬＢＡ２０２には、論理ブロックアドレス（ＬＢＡ）が格納され、読み込み要求処理１０６、または書き込み要求処理１０７において、ディスクのどこのアドレスに対する要求であるかを判断する際に参照する。データ２０３には、書き込み要求時に書き込むバイナリデータが格納され、書き込み要求処理１０７において、ディスクにデータを書き込む際に参照する。発行元システム名称２０４には、ブレードシステム１１４に含まれる各ブレードが一意に決まるデータが格納され、要求コマンド処理１０５において、どのブレードからの要求であるのかを判断する際に参照する。読み込み要求処理１０６、または書き込み要求処理１０７では、所定のデータ長の論理ブロックの単位でデータの入出力動作が行われる。
【００２５】
図３は、ディスクシステム１００に含まれるディスクアレイコントローラ１０３からブレードシステム１１４に含まれるブレード１（１１２ａ）に対して、要求コマンドデータに応答して返す、応答コマンドデータ１０９を示す。応答コマンドデータ１０８には、コマンド名称３００、データ３０１が含まれる。コマンド名称３００には、書き込み完了と読み込み完了のいずれかが指定され、読み込み要求処理１０６、または書き込み要求処理１０７において、処理が完了した際に格納される。データ３０１には、ブレードシステム１１４からの読み込み要求に対応する応答時に、読み込んだバイナリデータが格納され、ブレードシステム１１４がこのデータを受け取る。
【００２６】
図４は、ディスクアレイコントローラ１０３に含まれ、ＯＳマスタデータＬＵ０（１０１）とシステムマッピングテーブル１１１との関連付けを行う共有ＬＵマッピングテーブル１１０を示す。共有ＬＵマッピングテーブル１１０には、共有ＬＵ番号４００、システムマッピングテーブル番号４０１が含まれる。共有ＬＵ番号４００には、複数のブレードがＯＳの起動に使用するＯＳマスタデータＬＵ０（１０１）のＬＵ番号が格納され、要求コマンドデータ処理１０５において、要求コマンドデータ１０８の対象ＬＵと一致する共有ＬＵ番号を特定する際に参照する。システムマッピングテーブル番号４０１には、共有ＬＵ番号に対応したシステムマッピングテーブル１１１の番号が格納され、要求コマンドデータ処理１０５において、共有ＬＵ番号４００に対応したシステムマッピングテーブル１１１を特定する際に参照する。実施例では、ＯＳマスタデータＬＵ０（１０１）のＬＵ番号０と対応するシステムマッピングテーブル番号４０１の“０”が存在する例を示したが、登録する共有ＬＵ番号４００及びシステムマッピングテーブル番号４０１の個数は任意でもよく、複数のＯＳマスタデータＬＵ０（１０１）を使用することができる。本テーブルは、ディスクシステム１００にＯＳマスタデータ１０１を作成する際に、システム管理者が作成する。
【００２７】
図５は、ディスクアレイコントローラ１０３に含まれ、ブレード１及びブレード２とそれぞれに対応する差分データＬＵ１０２との関連付けを行うシステムマッピングテーブル１１１を示す。システムマッピングテーブル１１１には、システム名称５００と差分ＬＵ番号５０１が含まれる。システム名称５００には、ブレードシステム１１４に含まれる各ブレードを一意に決めるためのデータが格納され、要求コマンドデータ処理１０５において、要求コマンドデータ１０８の発行元システム名称２０４と一致するブレードを特定する際に参照する。差分ＬＵ番号５０１には、各ブレードが使用する差分ＬＵの番号が格納され、要求コマンドデータ処理１０５において、各ブレードに対応した差分データＬＵ（１０２）を特定する際に参照する。本実施例では、ブレード１（１１２ａ）及びブレード２（１１２ｂ）とそれぞれ対応する差分ＬＵ番号（５０１）１及び２が存在する例を示したが、システム名称５００、差分ＬＵ番号５０１の個数は任意でもよい。また、本実施例では、システムマッピングテーブル０が存在する例を示したが、図４で示した共有ＬＵマッピングテーブル１１０のシステムマッピングテーブル番号数分のシステムマッピングテーブル１１１が存在する。本テーブルは、ディスクシステム１００にブレードの台数分の差分データ１０２を作成する際に、管理者が作成する。
【００２８】
図６は、差分ＬＵデータ（１０２）に含まれ、ＯＳマスタデータＬＵ０（１０１）に対して書き込み要求のあった場合に、そのデータの格納位置を示すＬＢＡとデータを格納する差分管理テーブル１１５を示す。差分管理テーブル１１５には、参照ＬＢＡ６００、差分データ６０１が含まれる。参照ＬＢＡ６００には、ＯＳマスタデータＬＵ０（１０１）に対して書き込み要求のあったＬＢＡが格納され、読み込み要求処理１０６、または書き込み要求処理１０７において、要求コマンドデータ１０８のＬＢＡと一致する参照ＬＢＡ６００を特定する際に参照される。差分データ６０１には、ＯＳマスタデータＬＵ０（１０１）に対する書き込み要求時のバイナリデータが格納される。読み込み要求処理１０６、または書き込み要求処理１０７において、参照ＬＢＡ６００に対応した差分データ６０１が読み込み、または書き込み時に参照される。本実施例では、参照ＬＢＡ６００として“２００”、“２０１”、“２０２”が存在し、差分データ６０１として“データ１−１”、“データ１−２”、“データ１−３”が存在する例を示したが、参照ＬＢＡ６００、差分データ６０１の個数は、必要に応じて増減する。
【００２９】
図７は、差分管理テーブル１１５の差分データ６０１に格納されている各ブレードに固有のＯＳデータ１１７を示す。各ブレードに固有のＯＳデータ１１７には、デバイス情報７００、ドライバ情報７０１、ＯＳ情報７０２、アプリケーション情報７０３が含まれる。これらのデータは、各ブレードでのＯＳ動作中に変更されたＯＳデータであり、差分管理テーブル１１５に、ＯＳマスタデータＬＵ０（１０１）との差分データ６０１としてＬＢＡ単位で格納されているため、これらのデータだけでは格納データとして意味を持たない。本実施例では、デバイス情報７００、ドライバ情報７０１、ＯＳ情報７０２、アプリケーション情報７０３が存在する例を示したが、各ブレードに固有なＯＳデータとして他の情報も書き込むことができる。
【００３０】
図１３は、ブレード１がディスクアレイコントローラ１０３に要求コマンドデータ１０８を送信する際に、データの格納場所を特定する際に参照するデータ格納場所参照テーブル１２２を示す。各ブレード１１２がこのテーブル１２２を保持している。データ格納場所参照テーブル１２２には、データ名称８００、格納ＬＢＡ８０１、ＬＢＡサイズ８０２が含まれる。データ名称８００には、ブレード１（１１２ａ）で読み込み、または書き込み要求が発生した際に、対象となるデータ名称が格納され、要求コマンドデータ１０８を送信する際に、要求するデータ名称と一致する項目を検索する際に参照する。格納ＬＢＡ８０１には、各データが格納されているディスクのＬＢＡが格納され、要求コマンドデータ１０８を送信する際に、要求するデータが格納されているＬＢＡを特定する際に参照する。ＬＢＡサイズ８０２は各データのサイズが格納されており、要求コマンドデータ１０８を送信する際に、要求コマンドデータ１０８を送信する回数を判断する際に参照する。本実施例では、データ名称８００として、“ブートローダ”、“ＯＳローダ”、“ＯＳデータ”、“書き込みデータ１”、“書き込みデータ２”が存在する例を示したが、データ名称８００には必要に応じて他のＯＳデータも含むことができる。
【００３１】
次に、全体の処理の流れについて詳細に説明する。
【００３２】
図１１は、図１においてブレード１（１１２ａ）がはじめてＯＳを起動する場合の処理を示したものである。図１に示すブレード１の起動処理は、１）ブートローダ起動、２）ＯＳローダ起動、３）ＯＳ起動、及び４）ＯＳ変更の４つの処理ブロックからなる。
【００３３】
ブレード１（１１２ａ）の電源を入れるとＢＩＯＳ１２１が起動される（Ｓ４０）。
１）ブートローダ起動：
次に、ブートローダ１１８を読み込むために、データ格納場所参照テーブル１２２のデータ名称８００の”ブートローダ”に対応する格納ＬＢＡ８０１の値”０”、ＬＢＡサイズ８０２の値”１”を取得する（Ｓ４１）。次に、要求コマンドデータ１０８のコマンド名称２００に”読み込み“、対象ＬＵ２０１にＯＳマスタデータ１０１のＬＵ番号”０”、ＬＢＡ２０２に取得した格納ＬＢＡ８０１の値”０”、発行元システム名称２０４に”ブレード１”をそれぞれ格納して、ディスクアレイコントローラ１０３に送信する（Ｓ４２）。
【００３４】
要求コマンドデータ１０８を受け取ったディスクアレイコントローラ１０３は、要求コマンドデータ処理手続き１０５を実行して、ＯＳマスタデータ１０１からブートローダ１１８を読み込む（Ｓ４３）。次に、応答コマンドデータ１０９のコマンド名称３００に”読み込み完了”を格納し、データ３０１に読み込んだデータ（ブートローダ１１８）を格納して、ブレード１（１１２ａ）に送信する（Ｓ４４）。
【００３５】
ブレード１（１１２ａ）は、応答コマンドデータ１０９からブートローダ１１８を取り出してメモリにロードする（Ｓ４５）。次に、先に取得したデータ格納場所参照テーブル１２２のＬＢＡサイズ８０２の値”１”をデクリメントして、結果が０であるため、ブートローダ１１８をすべてブレード１のメモリに読み込んだと判断して、ブートローダを起動する（Ｓ４６）。
【００３６】
本実施例では、ブートローダ１１８のＬＢＡサイズ８０２が”１”である場合の例を示したが、ＬＢＡ８０２の値は任意でもよい。その場合、デクリメントした結果が０になるまで、ステップＳ４２からＳ４５の処理を繰り返す。
２）ＯＳローダ起動：
ブレード１（１１２ａ）で起動されたブートローダ１１８は、ＯＳローダ１１９を起動するために、データ格納場所参照テーブル１２２のデータ名称８００の”ＯＳローダ”に対応する格納ＬＢＡ８０１の値”１”、ＬＢＡサイズ８０２の値”１”を取得する（Ｓ４７）。次に、要求コマンドデータ１０８のコマンド名称２００に”読み込み”、対象ＬＵ２０１にＯＳマスタデータ１０１のＬＵ番号”０”、ＬＢＡ２０２に取得した格納ＬＢＡ８０１の値”１”、発行元システム名称２０４に”ブレード１”をそれぞれ格納して、ディスクアレイコントローラ１０３に送信する（Ｓ４８）。
【００３７】
ブレード１（１１２ａ）で起動されたブートローダ１１８からの要求コマンドデータ１０８を受け取ったディスクアレイコントローラ１０３は、要求コマンドデータ処理手続き１０５を実行して、ＯＳマスタデータ１０１からＯＳローダ１１９を読み込む（Ｓ４９）。次に、応答コマンドデータ１０９のコマンド名称３００に”読み込み完了”、データ３０１に読み込んだデータ（ＯＳローダ１１９）を格納して、ブレード１（１１２ａ）に送信する（Ｓ５０）。
【００３８】
ブレード１（１１２ａ）は、応答コマンドデータ１０９からＯＳローダ１１９をメモリにロードする（Ｓ５１）。次に、先に取得したデータ格納場所参照テーブル１２２のＬＢＡサイズ８０２の値”１”をデクリメントして、結果が０であるため、ＯＳローダ１１９をすべて読み込んだと判断して、ＯＳローダ１１９を起動する（Ｓ５２）。
【００３９】
本実施例では、ＯＳローダ１１９のＬＢＡサイズ８０２が”１”である場合の例を示したが、ＬＢＡ８０２の値は任意でもよい。その場合、デクリメントした結果が０になるまで、ステップＳ４８からＳ５１の処理を繰り返す。
３）ＯＳ起動：
ブレード１（１１２ａ）で起動されたＯＳローダ１１９は、ＯＳを起動するために、データ格納場所参照テーブル１２２のデータ名称８００の”ＯＳデータ”に対応する格納ＬＢＡ８０１の値”２”、ＬＢＡサイズ８０２の値”６００”を取得する（Ｓ５３）。次に、要求コマンドデータ１０８のコマンド名称２００に”読み込み”、対象ＬＵ２０１にマスタＯＳデータ１０１のＬＵ番号”０”、ＬＢＡ２０２に取得した格納ＬＢＡ８０１の値”２”、発行元システム名称２０４に”ブレード１”をそれぞれ格納して、ディスクアレイコントローラ１０３に送信する（Ｓ５４）。
【００４０】
ブレード１（１１２ａ）で起動されたＯＳローダ１１９からの要求コマンドデータ１０８を受け取ったディスクアレイコントローラ１０３は、要求コマンドデータ処理１０５の読み込み要求処理１０６を実行する。なお、書き込み要求処理１０７のステップＳ３２（後述の図１０参照）において、ブレード１でははじめてＯＳが起動されるため、差分管理テーブル１１５の参照ＬＢＡ６００に、ＯＳマスタデータ１０１の格納ＬＢＡである値”２”が存在しない。そのため、ＯＳマスタデータ１０１からＯＳデータ１２０を読み込む（Ｓ５５）。次に、応答コマンドデータ１０９のコマンド名称３００に”読み込み完了”、データ３０１に読み込んだデータを格納して、ブレード１（１１２ａ）に送信する（Ｓ５６）。
【００４１】
ブレード１（１１２ａ）は、応答コマンドデータ１０９からＯＳデータ１２０をメモリにロードする（Ｓ５７）。次に、先に取得したＬＢＡサイズ８０２の値”６００”をデクリメントして、結果が０でないため、要求コマンドデータ１０８のＬＢＡ２０２の値をデクリメントして、ステップＳ５４からＳ５７の処理を繰り返す。デクリメントした結果が０になるとＯＳデータ１２０をすべて読み込んだと判断して、ＯＳを起動する（Ｓ５８）。
４）ＯＳ変更：
ブレード１でＯＳが起動されると、ブレードに固有のデバイス情報７００、ドライバ情報７０１、ＯＳ情報７０２、アプリケーション情報７０３など、ブレード１に固有のＯＳデータ１１７（ＯＳの変更データ）の書き込み要求が発生する。本実施例では、”書き込みデータ１”の書き込みについて説明する。
【００４２】
ＯＳはデータ格納場所参照テーブル１２２のデータ名称８００の”書き込みデータ１”に対応する格納ＬＢＡ８０１の値”２００”、ＬＢＡサイズ８０２の値”２０”を取得する（Ｓ５９）。次に、要求コマンドデータ１０８のコマンド名称に”書き込み”、対象ＬＵ２０１にＯＳマスタデータ１０１のＬＵ番号”０”、ＬＢＡ２０１に取得した格納ＬＢＡ８０１の値”２００”、発行元システム名称２０４に”ブレード１”をそれぞれ格納して、ディスクアレイコントローラ１０３に送信する（Ｓ６０）。
【００４３】
ブレード１（１１２ａ）からの要求コマンドデータ１０８を受け取ったディスクアレイコントローラ１０３は、要求コマンドデータ処理１０５の書き込み要求処理１０７において、対象ＬＵ２０１の値”０”に対応するシステムマッピングテーブル番号”０”のシステム名称５００が”ブレード１”である差分ＬＵ番号”１”を取得し、その差分データ１０２の差分管理テーブル１１５を参照する。今回ブレード１は初めてＯＳを起動するため、差分管理テーブル１１５にデータは存在しない。そのため、参照ＬＢＡ６００に”２００”、差分データ６０１にデータ２０３を新しく追加する（Ｓ６１）。次に、応答コマンドデータ１０９のコマンド名称３００に”書き込み完了”を格納して、ブレード１（１１２ａ）に送信する（Ｓ６２）。
【００４４】
ブレード１（１１２ａ）は、応答コマンドデータ１０９を受け取ると、先に取得したＬＢＡサイズ８０２の値”２０”をデクリメントして、結果が０でないため、要求コマンドデータ１０８のＬＢＡ２０２の値をデクリメントして、データ２０３の値をＬＢＡ２０２に対応するデータに書き換えて、ステップＳ６０からＳ６２の処理を繰り返す。デクリメントした結果が０になるとデータ（ＯＳの変更データ）の書き込みがすべて終了したと判断する。
【００４５】
図１２は、図１においてブレード１（１１２ａ）が２回目以降にＯＳを起動する場合の処理の流れを示す。ここで、ステップＳ８５以外の処理は図１１と同じであるため、説明を省略する。
【００４６】
ステップ８５では、ＯＳの起動時に、要求コマンドデータ処理１０５において、当該ＬＢＡに対応する差分データがあれば、ＯＳデータとしてこの差分データを読み込み、差分データがなければ、ＯＳデータとしてＯＳマスタデータを読み込む。即ち、ブレード１（１１２ａ）が２回目以降にＯＳを起動する場合、まず当該ＬＢＡに対応する差分データの有無が調べられ、差分データがあればこの差分データが優先的に読み込まれ、差分データがない場合のみＯＳマスタデータが読み込まれる。その結果、今回のＯＳ起動以前にＯＳデータが変更されていれば、ブレード１のメモリには元のＯＳマスタデータと差分データ（今までに変更されたＯＳデータ）とが混在した状態が構成される。以下では、ステップ８５の処理の詳細を述べる。
【００４７】
１）ＯＳデータが変更され、当該ＬＢＡに対応する差分データが存在する場合：
本実施例では、差分管理テーブル１１５の参照ＬＢＡ６００に図１１の処理Ｓ５９−Ｓ６２で書き込まれた”２００”〜”２１９”の２０個の値が存在する。そのため、ステップＳ８４からＳ８７の処理の繰り返しにおいて、ＬＢＡ２０２の値が”２００”〜”２１９”の場合は、差分管理テーブル１１５に値が存在するため、差分データ１０２の差分管理テーブル１１５の差分データ６０１から対応するデータを読み込む（Ｓ８５）。
【００４８】
２）ＯＳデータが変更されず、当該ＬＢＡに対応する差分データが存在しない場合：
要求コマンドデータ処理１０５において、ブレード１（１１２ａ）では２回目以降のＯＳの起動が行われているが、差分管理テーブル１１５の参照ＬＢＡ６００に要求コマンド１０８のＬＢＡと一致する値”２”（ＯＳマスタデータ１０１の格納ＬＢＡの値）は存在しないため、ブレード１からの要求コマンドデータ１０８を受け取ったディスクアレイコントローラ１０３は、ＯＳマスタデータ１０１からＯＳデータ１２０を読み込む（Ｓ８５）。次に、応答コマンドデータ１０９のコマンド名称３００に”読み込み完了”、データ３０１に読み込んだデータを格納して、ブレード１（１１２ａ）に送信する（Ｓ８６）。
【００４９】
次に、ディスクアレイコントローラ１０３の要求コマンドデータ処理１０５が行なう、ブレード１から受け取った要求コマンドの処理について詳細に説明する。ここではブレード１に対する処理を説明するが、他のブレードについても同様の処理が行なわれる。
【００５０】
ブレード１のＯＳを起動する場合、ブレード１に変更分を含む最新のＯＳデータを格納するために、ブレード１からのＯＳデータの読み込み要求に基づいて、図１３のデータ格納場所参照テーブル１２２のＬＢＡサイズ８０２に示された値の回数分だけ以下の処理を繰り返す。即ち、ＬＢＡの単位となる所定のデータ長のデータブロックごとに以下の処理（読み込み要求処理１０６）が繰り返される。
【００５１】
ａ）ブレード１からデータブロックの単位でＯＳデータの読み込み要求を受け付ける。
【００５２】
ｂ）ブレード１に固有な、ＯＳデータの差分データをブレード１に対応した差分管理テーブル１１５から検索する。
【００５３】
ｃ）差分管理テーブル１１５に差分データがあれば、検索されたデータブロック分の差分データをブレード１のメモリに転送する。
【００５４】
ｄ）差分管理テーブル１１５に差分データがなければ、各ブレードに共通なＯＳデータを格納したＯＳマスタデータ１０８からデータブロック分のＯＳデータ１２０を取り出してブレード１のメモリに転送する。
【００５５】
ブレード１の動作中にＯＳデータが変更された場合、ディスクアレイコントローラ１０３の要求コマンドデータ処理１０５における書き込み要求処理１０７は、ブレード１から変更されたＯＳデータの書き込み要求を受け取り、受け取った要求に含まれ、変更されたＯＳデータが格納されたデータブロックを、書き込み要求に含まれるデータブロックの番号（ＬＢＡ）と共に、ブレード１に対応する差分管理テーブル１１５に格納する。この時、差分管理テーブル１１５において、書き込み要求が示すＬＢＡに対応する差分データが既に格納されていれば、新たな書き込み要求によって差分データが更新され、まだ格納されていなければ、差分データが追加される。ブレード１においてＯＳデータが変更されると、その都度、上記の書き込み処理が実行される。
【００５６】
図８は、要求コマンドデータ処理１０５の処理の流れを詳細に示す。図８に示すステップＳ１０からステップＳ１７の処理は、１つのＬＢＡごとに、ＬＢＡサイズ８０２の回数だけ繰り返し実行される。
【００５７】
ブレード１（１１２ａ）から要求コマンドデータ１０８を受け取る（Ｓ１０）と、要求コマンドデータ１０８の対象ＬＵ２０１の値“０”を取得する。次に、共有ＬＵマッピングテーブル１１０の共有ＬＵ番号４００を参照して、先に取得した対象ＬＵの値“０”と一致する共有ＬＵ番号４００の値“０”に対応しているシステムマッピングテーブル番号４０１の値“０”を取得する（Ｓ１１）。次に、要求コマンドデータ１０８の発行元システム名称２０４の“ブレード１”を取得して、システムマッピングテーブル０（１１１）のシステム名称５００と一致する“ブレード１”に対応した差分ＬＵ番号５０１の値“１”を取得する（Ｓ１２）。取得した値“１”をもとに、差分データＬＵ（１０２）の差分管理テーブル１１５を参照する（Ｓ１３）。次に、要求コマンドデータ１０８のコマンド名称２００を取得して、“読み込み要求”であるか“書き込み要求”であるかを判断する（Ｓ１４）。
【００５８】
判断した結果、コマンド名称２００が“読み込み要求”であった場合は、読み込み要求処理１０６を呼び出す（Ｓ１５）。このとき、引数として、要求コマンドデータ１０８を渡す。読み込み要求処理１０６の処理は図９に示す。
【００５９】
判断した結果、コマンド名称２００が“書き込み要求”であった場合は、書き込み要求処理１０７を呼び出す（Ｓ１６）。このとき、引数として、要求コマンドデータ１０８を渡す。書き込み要求処理１０７の処理は図１０に示す。
【００６０】
読み込み要求処理１０６、または書き込み要求処理１０７が完了すると応答コマンドデータ１０９が戻り値として返される。この応答コマンドデータをブレード１に送信する（Ｓ１７）。
【００６１】
図９は、図８のステップＳ１５に示した読み込み要求処理１０６の処理を示す。
【００６２】
引数で渡された要求コマンドデータ１０８のＬＢＡ２０２の値“０”が、差分管理テーブル１１５の参照ＬＢＡ６００に存在するかを照会する（Ｓ２１）。参照ＬＢＡ６００に値“０”が存在する場合は（Ｓ２２）、指定されたＯＳマスタデータ１０１のＬＢＡのデータは変更されていると判断して、差分データ６０１の値データ１を取得する（Ｓ２３）。即ち、参照ＬＢＡ６００に値“０”が存在するということは、以前にＯＳマスタデータのＬＢＡ０番地になんらかの変更があったことを示しているので、これが要求コマンドデータ２０２の値“０”と一致する場合は、差分データを読み込み、参照ＬＢＡ６００に値“０”が存在しない場合は、ＯＳマスタデータのＬＢＡ０番地からデータを読み込む。取得したデータ１を応答コマンドデータ１０９のデータ３０１に格納する（Ｓ２５）。次に、応答コマンドデータ１０９のコマンド名称３００に“読み込み完了”を格納する。作成した応答コマンドデータを、戻り値として要求コマンドデータ処理１０５に返す。
【００６３】
ステップＳ２２において、ＬＢＡ６００に値“０”が存在しなかった場合は、指定されたＯＳマスタデータ１０１のＬＢＡのデータは変更されていないと判断して、ＯＳマスタデータ１０１の指定されたＬＢＡのデータを取得する（Ｓ２４）。取得したデータを応答コマンドデータ１０９のデータ３０１に格納する（Ｓ２５）。次に、応答コマンドデータ１０９のコマンド名称３００に“読み込み完了”を格納する。作成した応答コマンドデータ１０９を、戻り値として要求コマンドデータ処理１０５に返す。
【００６４】
図１０は、図８のステップＳ１６に示した書き込み要求処理１０７の処理を示す。
【００６５】
引数で渡された要求コマンドデータ１０８のＬＢＡ２０２の値“１”が、差分管理テーブル１１５の参照ＬＢＡ６００に存在するかを照会する（Ｓ３１）。参照ＬＢＡ６００に値“１”が存在する場合は（Ｓ３２）、差分管理テーブル１１５の値“１”に対応する差分データ６０１のデータ２を、要求コマンドデータ１０８のデータ２０３のデータ１で上書きする（Ｓ３３）。即ち、上記の説明では、要求コマンドデータ１０８のＬＢＡ２０２が１である場合を説明しており、ＬＢＡ２０２の値が“１”ということは、ＯＳマスタデータのＬＢＡ１に対する要求です。上記の説明で述べたように、参照ＬＢＡ６００に値“１”が存在すれば、ＯＳマスタデータではなく、差分データを使用するため、書き込み要求である場合は、差分データとして、参照ＬＢＡ６００の値“１”に対応するデータを上書きすることになります。次に、応答コマンドデータ１０９のコマンド名称３００に“書き込み完了”を格納する（Ｓ３５）。作成した応答コマンドデータ１０９を、戻り値として要求コマンドデータ処理手続き１０５に返す。
【００６６】
ステップＳ３２において、ＬＢＡ６００に値“１”が存在しなかった場合は、差分管理テーブル１１５の参照ＬＢＡ６００と差分データ６０１に対して、要求コマンドデータ１０８のＬＢＡ２０２の値“１”、データ２０３のデータ１を追加する（Ｓ３４）。次に、応答コマンドデータ１０９のコマンド名称３００に“書き込み完了”を格納する（Ｓ３５）。作成した応答コマンドデータ１０９を、戻り値として要求コマンドデータ処理１０５
に返す。
【００６７】
以上に述べた本実施例の方法を実行するためのプログラムを、計算機で読み取り可能な記憶媒体に格納し、これをメモリに読み込んで実行することも可能である。
【符号の説明】
【００６８】
１００：ディスクシステム
１０１：ＯＳマスタデータＬＵ
１０２：差分データＬＵ
１０３：ディスクアレイコントローラ
１０４：管理情報
１０５：要求コマンドデータ処理手続き
１０６：読み込み要求処理手続き
１０７：書き込み要求処理手続き
１０８：要求コマンドデータ
１０９：応答コマンドデータ
１１０：共有ＬＵマッピングテーブル
１１１：システムマッピングテーブル
１１２：ブレード
１１３：ファイバーケーブル
１１４：ブレードシステム
１１５：差分管理テーブル
１１６：バス
１１７：ブレード固有のＯＳデータ
１１８：ブートローダ
１１９：ＯＳローダ
１２０：ＯＳデータ
１２１：ＢＩＯＳ
１２２：データ格納場所参照テーブル
【図１】
2010272127.tif 000003
【図２】
2010272127.tif 000004
【図３】
2010272127.tif 000005
【図４】
2010272127.tif 000006
【図５】
2010272127.tif 000007
【図６】
2010272127.tif 000008
【図７】
2010272127.tif 000009
【図８】
2010272127.tif 000010
【図９】
2010272127.tif 000011
【図１０】
2010272127.tif 000012
【図１１】
2010272127.tif 000013
【図１２】
2010272127.tif 000014
【図１３】
2010272127.tif 000015