複数のストレージシステムと、複数のサーバと、管理サーバと、前記ストレージシステム、前記サーバ、及び前記管理サーバに結合されたネットワークとを備える情報システムであって、前記管理サーバは、ファームウェアを配布するための前記複数のストレージシステムのうちの1つ以上のストレージシステムにおける1つ以上の記憶領域を指定するとともに、前記複数のストレージシステムのうちの1つ以上のストレージシステムにおける前記1つ以上の記憶領域内の前記ファームウェアへの許容アクセスのためのアクセス制御を設定するアクセス制御テーブルを作成するように構成され、前記サーバは、前記ファームウェアをダウンロードする許可を求めて前記アクセス制御テーブルをチェックすることによって、前記1つ以上の記憶領域から前記ファームウェアをダウンロードし、前記ファームウェアがダウンロードされた場合に、前記ダウンロードされたファームウェアを適用し、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域に、前記ダウンロードされたファームウェアを適用した結果を示すステータス情報を書き込むように構成され、かつ前記管理サーバは、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々から前記ステータス情報を取得するように構成される、情報システム。前記1つ以上のサーバは、前記ダウンロードされたファームウェアを適用した結果を示すステータス情報を書き込む前に、前記1つ以上のサーバによる前記ダウンロードされたファームウェアの適用の成功又は失敗を示すために、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報の許容更新のためのアクセス制御を設定する前記アクセス制御テーブルをチェックするように構成される、請求項1に記載の情報システム。前記管理サーバは、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報をチェックするとともに、前記ステータス情報が特定の記憶領域からダウンロードされた前記ファームウェアの適用の成功を示す場合、前記特定の記憶領域における前記ファームウェアを削除するように構成される、請求項1に記載の情報システム。前記管理サーバは、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報をチェックするとともに、前記ステータス情報が特定の記憶領域からダウンロードされた前記ファームウェアの適用の失敗を示す場合、エラーを通知するように構成される、請求項1に記載の情報システム。前記管理サーバは、前記サーバによるファームウェアのダウンロード元となり得る前記ストレージシステム内の任意の記憶領域に各サーバをマップするマッピング管理テーブルを作成するように構成され、かつ前記サーバは、前記マッピング管理テーブルを使用することによって、任意の新しいファームウェアが前記ストレージシステム内に存在するか否かをチェックするように構成される、請求項1に記載の情報システム。前記管理サーバは、前記複数のストレージシステムのうちの1つ以上のターゲットストレージシステムを、前記複数のストレージシステムのうちの1つ以上のソースストレージシステム内の1つ以上の記憶領域にマップする、マッピング管理テーブルを作成するように構成され、ターゲットストレージシステムは、前記マッピング管理テーブルに従ってマップされるように、ソースストレージシステム内の記憶領域からファームウェアをダウンロードすることを許可され、かつ前記1つ以上のターゲットストレージシステムは、前記ファームウェアをダウンロードする許可を求めて前記アクセス制御テーブルをチェックすることによって、前記1つ以上のソースストレージシステムの前記1つ以上の記憶領域から前記ファームウェアをダウンロードするとともに、前記ファームウェアがダウンロードされた場合に、前記ダウンロードされたファームウェアを適用し、かつ前記ファームウェアのダウンロード元である前記1つ以上の記憶領域に、前記ダウンロードされたファームウェアを適用した結果を示すステータス情報を書き込むように構成される、請求項1に記載の情報システム。前記複数のサーバのうちの1つ以上のサーバの各々は、1つ以上の仮想マシンを含み、前記ファームウェアは、パッチを備え、かつ前記1つ以上の仮想マシンは、前記パッチをダウンロードする許可を求めて前記アクセス制御テーブルをチェックすることによって、前記1つ以上の記憶領域から前記パッチをダウンロードするとともに、前記パッチがダウンロードされた場合に、前記ダウンロードされたパッチを適用し、かつ前記パッチのダウンロード元である前記1つ以上の記憶領域に、前記パッチを適用した結果を示すステータス情報を書き込むように構成される、請求項1に記載の情報システム。前記サーバ及びストレージシステムは、前記ネットワークを介して結合された複数の集中型プラットフォームに分けられ、各集中型プラットフォームは、前記サーバのサブセットと、前記ストレージシステムのサブセットとを有し、各集中型プラットフォームについて、前記管理サーバは、前記集中型プラットフォームにパッチを配布するために、前記ストレージシステムの前記サブセットの中の1つのストレージシステム内の記憶領域を指定し、前記アクセス制御テーブルは、同じ集中型プラットフォーム内のすべての前記サーバの前記仮想マシンによる前記記憶領域内の前記パッチへの許容アクセスのためのアクセス制御を設定する、請求項7に記載の情報システム。複数のストレージシステムと、複数のサーバと、管理サーバと、前記ストレージシステム、前記サーバ、及び前記管理サーバに結合されたネットワークとを備える情報システムであって、前記管理サーバは、ファームウェアを配布するための前記複数のストレージシステムのうちの1つ以上のストレージシステムにおける1つ以上の記憶領域を指定するとともに、前記複数のストレージシステムのうちの1つ以上のストレージシステムにおける前記1つ以上の記憶領域内の前記ファームウェアへの許容アクセスのためのアクセス制御を設定するアクセス制御テーブルを作成するように構成され、前記管理サーバは、前記複数のストレージシステムのうちの1つ以上のターゲットストレージシステムを、前記複数のストレージシステムのうちの1つ以上のソースストレージシステム内の1つ以上の記憶領域にマップする、マッピング管理テーブルを作成するように構成され、ターゲットストレージシステムは、前記マッピング管理テーブルに従ってマップされるように、ソースストレージシステム内の記憶領域からファームウェアをダウンロードすることを許可され、前記1つ以上のターゲットストレージシステムは、前記ファームウェアをダウンロードする許可を求めて前記アクセス制御テーブルをチェックすることによって、前記1つ以上のソースストレージシステムの前記1つ以上の記憶領域から前記ファームウェアをダウンロードするとともに、前記ファームウェアがダウンロードされた場合に、前記ダウンロードされたファームウェアを適用し、かつ前記ファームウェアのダウンロード元である前記1つ以上の記憶領域に、前記ダウンロードされたファームウェアを適用した結果を示すステータス情報を書き込むように構成され、かつ前記管理サーバは、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々から前記ステータス情報を取得するように構成される、情報システム。前記1つ以上のターゲットストレージシステムは、前記ダウンロードされたファームウェアを適用した結果を示すステータス情報を書き込む前に、前記1つ以上のターゲットストレージシステムによる前記ダウンロードされたファームウェアの適用の成功又は失敗を示すために、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報の許容更新のためのアクセス制御を設定する前記アクセス制御テーブルをチェックするように構成される、請求項9に記載の情報システム。前記管理サーバは、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報をチェックするとともに、前記ステータス情報が特定の記憶領域からダウンロードされた前記ファームウェアの適用の成功を示す場合、前記特定の記憶領域における前記ファームウェアを削除するように構成される、請求項9に記載の情報システム。前記管理サーバは、前記ファームウェアのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報をチェックするとともに、前記ステータス情報が特定の記憶領域からダウンロードされた前記ファームウェアの適用の失敗を示す場合、エラーを通知するように構成される、請求項9に記載の情報システム。複数のストレージシステムと、各サーバが1つ以上の仮想マシンを含む複数のサーバと、管理サーバと、前記ストレージシステム、前記サーバ、及び前記管理サーバに結合されたネットワークとを備える情報システムであって、前記管理サーバは、パッチを配布するための前記複数のストレージシステムのうちの1つ以上のストレージシステムにおける1つ以上の記憶領域を指定するとともに、前記複数のストレージシステムのうちの1つ以上のストレージシステムにおける前記1つ以上の記憶領域内の前記パッチへの許容アクセスのためのアクセス制御を設定するアクセス制御テーブルを作成するように構成され、前記1つ以上の仮想マシンは、前記パッチをダウンロードする許可を求めて前記アクセス制御テーブルをチェックすることによって、前記1つ以上の記憶領域から前記パッチをダウンロードするとともに、前記パッチがダウンロードされた場合に、前記ダウンロードされたパッチを適用し、かつ前記パッチのダウンロード元である前記1つ以上の記憶領域に、前記パッチを適用した結果を示すステータス情報を書き込むように構成され、かつ前記管理サーバは、前記パッチのダウンロード元である前記1つ以上の記憶領域の各々から前記ステータス情報を取得するように構成される、情報システム。前記1つ以上の仮想マシンは、前記パッチを適用した結果を示すステータス情報を書き込む前に、前記1つ以上の仮想マシンによる前記パッチの適用の成功又は失敗を示すために、前記パッチのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報の許容更新のためのアクセス制御を設定する前記アクセス制御テーブルをチェックするように構成される、請求項13に記載の情報システム。前記管理サーバは、前記パッチのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報をチェックするとともに、前記ステータス情報が特定の記憶領域からダウンロードされた前記パッチの適用の成功を示す場合、前記特定の記憶領域における前記パッチを削除するように構成される、請求項13に記載の情報システム。前記管理サーバは、前記パッチのダウンロード元である前記1つ以上の記憶領域の各々における前記ステータス情報をチェックするとともに、前記ステータス情報が特定の記憶領域からダウンロードされた前記パッチの適用の失敗を示す場合、エラーを通知するように構成される、請求項13に記載の情報システム。前記管理サーバは、前記仮想マシンによるパッチのダウンロード元となり得る前記ストレージシステム内の任意の記憶領域に各仮想マシンをマップするマッピング管理テーブルを作成するように構成され、かつ前記仮想マシンは、前記マッピング管理テーブルを使用することによって、任意の新しいパッチが前記ストレージシステム内に存在するか否かをチェックするように構成される、請求項13に記載の情報システム。前記管理サーバは、前記複数のストレージシステムのうちの1つ以上のターゲットストレージシステムを、前記複数のストレージシステムのうちの1つ以上のソースストレージシステム内の1つ以上の記憶領域にマップする、マッピング管理テーブルを作成するように構成され、ターゲットストレージシステムは、前記マッピング管理テーブルに従ってマップされるように、ソースストレージシステム内の記憶領域からパッチをダウンロードすることを許可され、かつ前記1つ以上のターゲットストレージシステムは、前記パッチをダウンロードする許可を求めて前記アクセス制御テーブルをチェックすることによって、前記1つ以上のソースストレージシステムの前記1つ以上の記憶領域から前記パッチをダウンロードするとともに、前記パッチがダウンロードされた場合に、前記ダウンロードされたパッチを適用し、かつ前記パッチのダウンロード元である前記1つ以上の記憶領域に、前記ダウンロードされたパッチを適用した結果を示すステータス情報を書き込むように構成される、請求項13に記載の情報システム。前記サーバ及びストレージシステムは、前記ネットワークを介して結合された複数の集中型プラットフォームに分けられ、各集中型プラットフォームは、前記サーバのサブセットと、前記ストレージシステムのサブセットとを有し、各集中型プラットフォームについて、前記管理サーバは、前記集中型プラットフォームにパッチを配布するために、前記ストレージシステムの前記サブセットの中の1つのストレージシステム内の記憶領域を指定し、前記アクセス制御テーブルは、同じ集中型プラットフォーム内のすべての前記サーバの前記仮想マシンによる前記記憶領域内の前記パッチへの許容アクセスのためのアクセス制御を設定する、請求項13に記載の情報システム。0038以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として但し限定ではない示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する以下に説明し、かつ図面で示される通りが、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における一実施形態、本実施形態、又は上述の実施形態の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示している場合もある。0039さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は必ずしもそうではないが、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、処理、演算、計算、判断、表示等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的電子的数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。0040本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置ROM、ランダムアクセスメモリRAM、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等但し、これらに限定されないのコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置CPU、プロセッサ、又はコントローラによって実行され得る。0041本発明の例示的な実施形態は、下記でより詳細に説明されるように、ファームウェア/パッチをデプロイするための装置、方法、及びコンピュータプログラムを提供する。0042第1の実施形態サーバのファームウェアの更新0043図1は、第1の実施形態に従ったデータセンターのシステム構成の一例を示す。データセンター1100は、管理サーバ1200、サーバ1300、及びストレージサブシステム1400を含む。管理サーバ、サーバ、及びストレージサブシステムは、管理ネットワーク1020を介して接続される。ネットワークは通常、イーサネット登録商標LANであるが、これに限定されない。サーバ1300及びストレージサブシステム1400は、データネットワーク1030を介して接続される。ネットワークは通常、SANストレージエリアネットワークであるが、これに限定されない。本実施形態では、管理ネットワーク1020とデータネットワーク1030は、別個のものである。管理サーバ1200は、外部ネットワーク1010を介してベンダのサイト1800に接続される。ベンダのサイト1800は、ウェブサイト又はFTPサイトなどである。これはファームウェアリポジトリ1810を含み、ここにファームウェアが格納される。0044図2は、データセンター1100の管理サーバ1200の構成の一例を示す。管理インタフェース1210は、管理ネットワーク1020へのインタフェースである。外部インタフェース1230は、外部ネットワーク1010へのインタフェースである。入出力装置1270は、モニタ、キーボード、及びマウスなどのユーザインタフェースである。ローカルディスク1260は、ファームウェア1262及びファームウェア管理プログラム1264を含む。ファームウェア管理プログラム1264は、メモリ1240にロードされ、プロセッサ1250によって実行される。メモリ1240は、マッピング管理テーブル2100及びステータス管理テーブル2200を格納する。ファームウェア管理プログラム1264のプロセスは、以下で説明する図11を参照。0045図3は、第1の実施形態に従ったデータセンター1100のサーバ1300の構成の一例を示す。管理インタフェース1310は、管理ネットワーク1020へのインタフェースである。通信インタフェース1320は、データネットワーク1030へのインタフェースである。ローカルディスク1360は、ファームウェア更新プログラム2601を含む。ファームウェア更新プログラム2601は、メモリ1340にロードされ、プロセッサ1350によって実行される。メモリ1340は、マッピング管理テーブル2101を格納する。ファームウェア更新プログラム2601の手順は、以下で説明する図12を参照。0046図4は、第1の実施形態に従ったデータセンター1100のストレージサブシステム1400の構成の一例を示す。ストレージサブシステム1400は、コントローラ1405及びHDD1490を含む。コントローラ1405は、管理インタフェース1410、通信インタフェース1420、メモリ1440、プロセッサ1450、ローカルディスク1460、入出力装置1470、及びディスクインタフェース1480を含む。管理インタフェース1410は、管理ネットワーク1020へのインタフェースである。通信インタフェース1420は、データネットワーク1030へのインタフェースである。ディスクインタフェース1480は、HDD1490へのインタフェースである。ローカルディスク1460は、アクセス制御テーブル2300を含む。ストレージサブシステム1400は、いくつかのHDDハードディスクドライブを含み、2つのHDDが図4に示されている。異なる実施形態では、SSDソリッドステートディスク及びいくつかの他の媒体を使用することができる。0047図5は、第1の実施形態に従った管理サーバ1200のマッピング管理テーブル2100の一例を示す。マッピング管理テーブル2100は、ファームウェア管理プログラム1264によって管理サーバ1200のメモリ1240に作成される。サーバ欄2105は、データセンター1100における各サーバ1300のIDを示す。ストレージ通し番号欄2110は、データセンター1100における各ストレージサブシステム1400のIDを示す。位置欄2115は、ファームウェアの参照位置を示す。各サーバ1300は、ファームウェアを取得するためにこの位置を参照する。本実施形態では、位置は、LDEV番号によって示される。各行2130~2160は、サーバとストレージの間のマッピングを示す。サーバ1300は、ファームウェアを取得するためにストレージ通し番号フィールドを参照する。0048図6は、第1の実施形態に従った管理サーバ1200のステータス管理テーブル2200の一例を示す。ステータス管理テーブル2200は、ファームウェア管理プログラム1264によって管理サーバ1200のメモリ1240に作成される。サーバ欄2205は、データセンター1100における各サーバ1300のIDを示す。ファームウェアバージョン欄2210は、適用するファームウェアのバージョン番号を示す。ステータス欄2215は、ファームウェア更新のステータスを示す。各行2230~2260は、各サーバのファームウェア更新のステータスを示す。0049図7は、サーバ1300のマッピング管理テーブル2101の一例を示す。サーバ1300のメモリ1340のマッピング管理テーブル2101は、管理サーバ1200からデプロイされる。サーバ欄2105、ストレージ通し番号欄2110、及び位置欄2115は、マッピング管理テーブル2100と同じである図5。行2130は、サーバとストレージの間のマッピングを示す。0050図8は、第1の実施形態に従ったストレージサブシステム1400のステータス管理テーブル2201の一例を示す。ステータス管理テーブル2201は、HDD1940に格納され、ステータス管理テーブル2200と同じサーバ欄2205、ファームウェアバージョン欄2210、及びステータス欄2215を有する図6。0051図9部分9-A及び9-Bは、第1の実施形態に従ったストレージサブシステム1400のアクセス制御テーブル2300の一例を示す。データ行2305は、このテーブルに従ってアクセス制御されるデータを示す。アクセス機構行2310は、データへのアクセサを示す。読み取り行2315は、読み取り許可OK又はNGを示す。作成/削除行2320は、作成及び削除許可OK又はNGを示す。修正行2325は、書き込み許可を示すOK又はNG。ストレージサブシステム1400へのすべてのI/O要求は、このアクセス制御テーブル2300を参照する。ルックアップの結果がOKである場合は、要求は実行される。ルックアップの結果がNGである場合は、要求は拒否される。例えば、アクセス制御テーブル2300をルックアップすることによって、サーバ192.168.1.2からファームウェアへの読み取り要求は許可されるが、管理サーバからファームウェアへの読み取り要求は拒否される。0052図9に示されるように、ステータス管理テーブルの各行は、異なるアクセス制御を有する。従って、各サーバは、ステータス管理テーブルの指定された行だけにアクセスできる。例えば、行2360、2362、及び2364に示されるように、サーバ192.168.1.5だけが、ステータス管理テーブルの第3の行にアクセスできる。他のサーバは、図9のアクセス制御テーブル2300に従ってステータス管理テーブルの第3の行にアクセスできない。0053図10は、管理サーバ1200に適用されるサーバ1300のファームウェア更新プログラム2601のプロセスを例示する流れ図2400の一例を示す。このプロセスは、ステップ2405で開始する。ステップ2407では、プログラムは、管理サーバ1200のメモリ1240にマッピング管理テーブル2100及びステータス管理テーブル2200を作成し、かつマッピング管理テーブル2100のサブセットを各サーバ1300にデプロイするためのプロセスを初期化する。マッピング管理テーブル2100は、以下のように作成される。第1のステップは、比率を決定することであり、これはストレージ毎のサーバの数である。例えば、比率は100である。データセンター内のサーバの数が1000である場合は、ファームウェアを格納するストレージの数は10である。従って、次のステップは、10のストレージを選択し、次にLDEVを供給することである。各サーバは、例えば、ラウンドロビン方式を使用して上記のストレージに割り当てられる。これに基づいて、マッピング管理テーブル2100が作成される。0054ステップ2410では、プログラムは、最新のファームウェアが存在するか否かを判断するためにベンダのサイト1800で確認する。最新のファームウェアが存在する場合は、プログラムはステップ2420に進む。最新のファームウェアが存在しない場合は、プログラムはステップ2413に進む。ステップ2413では、プログラムは、新しいイベントが到着したか否かを確認する。YESの場合は、プログラムはステップ2416に進む。NOの場合は、プログラムはステップ2415に進む。ステップ2415では、プログラムはしばらく待ち、次にステップ2410に進む。ステップ2416では、プログラムは、イベントに基づいてマッピング管理テーブル2100を更新する。この手順の詳細は、図11に示されている。手順が完了した後で、プログラムはステップ2415に進む。ステップ2420では、プログラムは、最新のファームウェアをダウンロードする。ステップ2425では、プログラムは、メモリ1240にステータス管理テーブル2200を作成する。このテーブルのステータスフィールド2215のすべては、該当なしによって初期化される。ステップ2430では、プログラムは、マッピング管理テーブル2100に基づいてステータス管理テーブル2200のファームウェア及びサブセットを各ストレージサブシステム1400にデプロイする。ステップ2435では、プログラムはしばらく待ち、次にステップ2440に進む。ステップ2440では、プログラムは、各ストレージサブシステム1400からステータス管理テーブル2201を集める。0055ステップ2445では、プログラムは、該当なしフィールドがストレージシステム1400のステータス管理テーブル2201に存在するか否かをチェックする。該当なしフィールドがない場合は、プログラムはステップ2450に進む。そうでない場合、ステップ2435に進む。ステップ2450では、プログラムは、失敗フィールドがストレージシステム1400のステータス管理テーブル2201に存在するか否かをチェックする。失敗フィールドがない場合は、プログラムはステップ2455に進む。そうでない場合、プログラムはステップ2460に進む。ステップ2455では、プログラムは、各ストレージサブシステム1400のステータス管理テーブル2201のファームウェア及びサブセットを削除し、次にステップ2465に進む。ステップ2460では、プログラムは、ユーザにエラーを通知し、次にステップ2470に進み、プロセスは終了する。ステップ2465では、プログラムは、ユーザによる終了指示が存在するか否かをチェックする。終了指示が存在する場合、プログラムはステップ2470に進み、プロセスは終了する。そうでない場合、プログラムはステップ2410に進む。0056図11は、図10のステップ2416の管理サーバ1200のマッピング管理テーブル2100を更新するためにファームウェア管理プログラム1264のプロセスを例示する流れ図2500の一例を示す。データセンター環境が、例えばサーバの追加又はストレージサブシステムの追加によって変更された場合に、イベントが通知され、次にこのプログラムのプロセスが実行される。プログラムはステップ2510で開始する。ステップ2520では、プログラムは、イベントタイプをチェックする。イベントタイプがデータセンターからのストレージサブシステム削除である場合、プロセスは、ステップ2530へ、そして次にステップ2570に進む。イベントタイプがデータセンターへのサーバ追加である場合、プロセスは、ステップ2540へ、そして次にステップ2570に進む。イベントタイプがデータセンターからのサーバ削除である場合、プロセスは、ステップ2550へ、そして次にステップ2570に進む。イベントタイプがデータセンターへのストレージサブシステム追加である場合は、プロセスは、ステップ2560に進む。0057ステップ2530では、プログラムは、管理サーバ1200のマッピング管理テーブル2100を修正する。削除されたストレージサブシステムがマッピング管理テーブル2100のストレージサブシステムフィールド2110に存在しない場合は、プログラムは何もしない。削除されたストレージサブシステムがマッピング管理テーブル2100のストレージサブシステムフィールド2110に存在する場合は、プログラムは、マッピング管理テーブル2100を修正する。プログラムはさらに、削除されたストレージサブシステムの代わりに代替のストレージサブシステムを決定する。代替のストレージサブシステムは、該当サーバに類似のタイプのストレージでもよく、又はラウンドロビンによって決定されてもよい。0058ステップ2540では、プログラムは、指定されたサーバの行を管理サーバ1200のマッピング管理テーブル2100に追加する。プログラムは、マッピング管理テーブル2100の各ストレージの割り当てられたサーバの数をチェックする。割り当てられた数がストレージの比率よりも小さい場合は、プログラムは、最も少なく割り当てられたストレージを選択し、サーバをそのストレージに割り当てる。そうでない場合、プログラムは、新しいストレージを選択し、サーバを新しいストレージに割り当てる。ステップ2550では、プログラムは、管理サーバ1200のマッピング管理テーブル2100から、指定されたサーバの行を削除する。ステップ2560では、プログラムは何もせず、次にステップ2580に進み、プロセスは終了する。ステップ2570では、プログラムはステップ2530、2540、又は2550に基づいてマッピング管理テーブル2100を更新し、次にステップ2580に進み、プロセスは終了する。0059図12は、サーバ1300のファームウェア更新プログラム2601のプロセスを例示する流れ図2600の一例を示す。プログラムはステップ2605で開始する。ステップ2610では、プログラムは、新しいファームウェアがストレージサブシステム1400に存在するか否かをチェックする。どのストレージサブシステムをチェックすべきかは、マッピング管理テーブル2101に基づいて決定される。新しいファームウェアが存在する場合は、プロセスは、ステップ2620に進む。新しいファームウェアが存在しない場合は、プロセスは、ステップ2615に進む。ステップ2615では、プログラムはしばらく待ち、次にステップ2610に進む。ステップ2620では、プログラムは、新しいファームウェアをダウンロードする。新しいファームウェアをダウンロードする際に、ターゲットボリュームが、読み取り専用モードでマウントされる。これを行うことによって、複数のサーバによる複数のマウントが許可される。ステップ2625では、プログラムは、新しいファームウェアをサーバ1300に適用する。ステップ2630では、プログラムは、ファームウェアのインストールが成功したか否かをチェックする。ファームウェアのインストールが成功した場合、プロセスはステップ2635に進む。ファームウェアのインストールが失敗した場合、プロセスはステップ2640に進む。0060ステップ2635では、プログラムは、ストレージサブシステム1400のステータス管理テーブル2201のステータスフィールド2215に成功を書き込む。ステータスフィールドに成功を書き込むために、ターゲットボリュームは、修正モードでマウントされる。アクセス制御テーブル2300をチェックすることによって、プログラムは、複数のサーバがステータス管理テーブルの同じ行にアクセスできないことを確実なものとする。従って、複数の書き込みが許可される。例えば、ストレージが行レベルロック機構を有する場合は、この機構を使用することができる。0061ステップ2640では、プログラムは、ストレージサブシステム1400のステータス管理テーブル2201のステータスフィールド2215に失敗を書き込む。ステータスフィールドに失敗を書き込むために、ターゲットボリュームは、修正モードでマウントされる。プログラムはステップ2645で終了する。アクセス制御テーブル2300をチェックすることによって、プログラムは、複数のサーバがステータス管理テーブルの同じ行にアクセスできないことを確実なものとする。従って、複数の書き込みが許可される。例えば、ストレージが行レベルロック機構を有する場合は、この機構を使用することができる。0062第2の実施形態ストレージサブシステムのファームウェアの更新0063第2の実施形態のシステム構成は、第1の実施形態のシステム構成とほぼ同じである。以下は、第1の実施形態の特徴と異なる第2の実施形態の特徴だけを説明する。0064図13は、第2の実施形態に従ったデータセンター1100のストレージサブシステム1400の構成の一例を示す。マッピング管理テーブル2103は、メモリ1440に存在する。ファームウェア更新テーブル2602は、コントローラ1405のローカルディスク1450に存在する。0065図14は、第2の実施形態に従った管理サーバ1200のマッピング管理テーブル2102の一例を示す。マッピング管理テーブル2102は、ファームウェア管理プログラム1264によって管理サーバ1200のメモリ1240に作成される。ターゲットストレージサブシステム欄2106は、データセンター1100の各ストレージサブシステム1400のIDを示す。ソースストレージサブシステム欄2111は、データセンター1100の各ストレージサブシステム1400のIDを示す。位置欄2115は、ファームウェアの参照を示す。各ストレージサブシステム1400は、ファームウェアを取得するためにこの位置欄2115を参照する。各行2131~2161は、ターゲットストレージサブシステムとソースストレージサブシステムの間のマッピングを示す。各ターゲットストレージサブシステムは、ファームウェアを取得するためにソースストレージサブシステムフィールド2111を参照する。0066図15は、第2の実施形態に従った管理サーバ1200のステータス管理テーブル2202の一例を示す。ストレージ通し番号欄2206は、データセンター1100の各ストレージサブシステム1400のIDを示す。各行2231~2261は、各ストレージサブシステム1400のファームウェア更新のステータスを示す。0067図16は、第2の実施形態に従ったストレージサブシステム1400のステータス管理テーブル2203の一例を示す。ステータス管理テーブル2203は、ストレージサブシステムHDD1940に格納される。これは、図15に示されるように管理サーバ1200のステータス管理テーブル2202と同じ欄を有する。0068図17パート17-A及び17-Bは、第2の実施形態に従ったストレージサブシステム1400のアクセス制御テーブル2301の一例を示す。このテーブルは、図9のアクセス制御テーブル2300に類似している。例えば、アクセス制御テーブル2301をルックアップすることによって、ストレージからファームウェアへの読み取り要求は許可されるが、管理サーバからファームウェアへの読み取り要求は拒否される。ステータス管理テーブルの各行は、異なるアクセス制御を有する。従って、各ストレージは、ステータス管理テーブルの指定された行だけにアクセスできる。例えば、図17のアクセス制御テーブル2301の行2341、2343、及び2345に示されるように、ストレージ10001だけがステータス管理テーブルの1行目にアクセスできる。他のストレージは、ステータス管理テーブルの1行目にはアクセスできない。0069第3の実施形態仮想マシンへのパッチの適用0070第3の実施形態のシステム構成は、第1の実施形態のシステム構成とほぼ同じである。以下は、第1の実施形態の特徴と異なる第3の実施形態の特徴だけを説明する。0071図18は、第3の実施形態に従ったサーバ1300の構成の一例を示す。ローカルディスク1360は、ハイパーバイザ3100及び仮想マシンVM3200を含む。ローカルディスク1360は、他の実施形態において2つ以上のハイパーバイザ3100及び2つ以上の仮想マシン3200を含んでもよい。ハイパーバイザ3100は、メモリ1340にロードされ、プロセッサ1350によって実行される。2つ以上の仮想マシン3200は、メモリ1340にロードされ、プロセッサ1350によってハイパーバイザ3100上で実行される。0072図19は、第3の実施形態に従ったサーバ1300-A、1300-B及びストレージサブシステム1400-A、1400Bを含むデータセンターシステムの論理構成の一例を示す。ハイパーバイザ3100-Aは、サーバ1300-Aのメモリ1340-A上で実行される。VM-013200-A及びVM-023200-Bは、ハイパーバイザ3100-A上で実行される。ハイパーバイザ3100-Bは、サーバ1300-Bのメモリ1340-B上で実行される。VM-033200-Cは、ハイパーバイザ3100-B上で実行される。0073第1の実施形態では、各サーバ1300は、マッピング管理テーブル2101を参照することによってファームウェアをダウンロードできる図18を参照。同様の方法で、仮想マシンは、第3の実施形態でパッチをダウンロードできる。ハイパーバイザ3100は、メモリ1340にマッピング管理テーブル2101を有する。マッピング管理テーブル2101では、ストレージサブシステム1400上にパッチが位置していることが記載されている。仮想マシン3200は、仮想マシンのパッチ3210の位置を問い合わせる。最新のパッチが存在する場合は、仮想マシンは、最新のパッチをダウンロードし、これをインストールする。0074仮想マシンは、ハイパーバイザとハイパーバイザの間でマイグレートしてもよい。ライブマイグレーションなどのマイグレーション技術が知られている。例えば、VM-02は、ライブマイグレーション機能を使用することによって、サーバ1300-A上のハイパーバイザ3100-Aからサーバ1300-B上のハイパーバイザ3100-Bにマイグレートされる。その場合、VM-02は、ハイパーバイザ3100-Bのパッチの位置を問い合わせることによってパッチ3210-Bにアクセスできる。たとえ仮想マシンがライブマイグレーションによって移動されても、上記のようにして、仮想マシンは、近い又はローカルのストレージサブシステムから最新のパッチをダウンロードできる。0075第4の実施形態集中型プラットフォーム環境における仮想マシンへのパッチの適用0076集中型プラットフォームは、サーバ、ネットワーク、及びストレージのすべてが一つに組み込まれた1つのハードウェア構成である。以下では、第3の実施形態の特徴と異なる第4の実施形態の特徴だけを説明する。0077図20は、第4の実施形態に従ったデータセンターシステムのシステム構成の一例を示す。以下では、図1の特徴と異なる特徴のみを説明する。データセンター1101は、集中型プラットフォーム1500及び管理サーバ1200を含む。集中型プラットフォーム1500は、サーバ1300、ストレージサブシステム1400、及びインターコネクト1510を含む。複数の集中型プラットフォーム1500は、データネットワーク1030を介して接続される。集中型プラットフォーム1500と管理サーバ1200は、管理ネットワーク1020を介して接続される。0078図21は、第4の実施形態に従って集中型プラットフォーム1500を含むシステムの論理構成の一例を示す。本実施形態では、マッピング管理テーブルは、第1の実施形態とは異なる方法で作成することができる。例えば、プログラムは、1つの集中型プラットフォームから1つのストレージサブシステムを選択する。集中型プラットフォームのすべてのサーバは、選択されたストレージサブシステムを参照する。これを行うことによって、すべてのサーバは、ローカルディスクからパッチをダウンロードすることができる。その結果、集中型プラットフォーム1500間のライブマイグレーションが発生した場合に、パッチの参照を自動的に切り替えることができる。例えば、ハイパーバイザ3100-A上のVM-013200-A及びVM-023200-Bは、集中型プラットフォーム1500-Aのストレージサブシステム1400-A上のパッチ3210-Aを参照する。VM-02がサーバ1300-Bにマイグレートされた場合、ローカルディスクへの参照は、ストレージサブシステム1400-Bに変更される。従って、ハイパーバイザ3100-B上のVM-023200-Bは、集中型プラットフォーム1500-Bのストレージサブシステム1400-B上のパッチ3210-Bを参照する。たとえ仮想マシンがライブマイグレーションによって移動しても、上記のようにして、仮想マシンは、ローカルストレージサブシステムから最新のパッチをダウンロードできる。0079当然のことながら、図1及び図20に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置例えば、CD及びDVDドライブ、フロッピー登録商標ディスクドライブ、ハードドライブ等も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク例えば、インターネット、無線ネットワーク、ストレージエリアネットワーク等を含む。0080説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。0081当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置ハードウェアを用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体ソフトウェア上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び/又は暗号化形式で命令を媒体に記憶することができる。0082上記により、本発明が、ファームウェア/パッチをデプロイするための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。