(57)【要約】【課題】システムのＯＳ更新を高速化すること。【解決手段】記憶部１１は、複数の電子装置におけるオペレーティングシステムの更新状況をそれぞれ記憶する。処理部１２は、第１の種類のオペレーティングシステムの更新を、記憶部１１に記憶された更新状況に基づいて、１つの電子装置ずつ順番に実行させる処理を行う。処理部１２は、複数の電子装置の第１の種類のオペレーティングシステムの更新が完了した後に、第１の種類のオペレーティングシステムよりも起動時間が長い第２の種類のオペレーティングシステムの更新を、複数の電子装置に対して一斉に実行させる処理を行う。【選択図】図１
2018018272.tif 000002
【特許請求の範囲】
【請求項１】
複数の種類のオペレーティングシステムを並列に実行可能な複数の電子装置の制御を行う制御装置であって、
前記複数の電子装置におけるオペレーティングシステムの更新状況をそれぞれ記憶する記憶部と、
第１の種類のオペレーティングシステムの更新を、前記記憶部に記憶された前記更新状況に基づいて、１つの電子装置ずつ順番に実行させ、前記複数の電子装置の前記第１の種類のオペレーティングシステムの更新が完了した後に、前記第１の種類のオペレーティングシステムよりも起動時間が長い第２の種類のオペレーティングシステムの更新を、前記複数の電子装置に対して一斉に実行させる処理を行う処理部と、
を有する制御装置。
【請求項２】
前記制御装置は、複数のサブシステムにそれぞれ属する第１の電子装置と第２の電子装置の制御を行うものであり、
前記記憶部は、前記複数のサブシステムにそれぞれ属する第１の電子装置と第２の電子装置とを示す情報を記憶し、
前記処理部は、前記情報に基づいて、前記複数のサブシステムの各第１の電子装置に対して、前記第１の種類および前記第２の種類のオペレーティングシステムの更新を行わせた後に、前記複数のサブシステムの各第２の電子装置に対して、前記第１の種類および前記第２の種類のオペレーティングシステムの更新を行わせる処理を行う、
請求項１記載の制御装置。
【請求項３】
前記処理部は、前記第１の種類のオペレーティングシステムの更新では、前記電子装置の前記第２の種類のオペレーティングシステムを停止させた後に前記電子装置の前記第１の種類のオペレーティングシステムを新しいバージョンの第１のプログラムにより再起動させ、また、前記第２の種類のオペレーティングシステムの更新では、前記複数の電子装置の前記第２の種類のオペレーティングシステムを新しいバージョンの第２のプログラムにより一斉に起動させる処理を行う、請求項１または２記載の制御装置。
【請求項４】
前記第１の種類のオペレーティングシステムは、ストレージ装置に対するブロックアクセスに用いられ、また、前記第２の種類のオペレーティングシステムは、前記ストレージ装置に対するファイルアクセスに用いられる、
請求項１乃至３の何れか１項に記載の制御装置。
【請求項５】
複数の種類のオペレーティングシステムを並列に実行可能な複数の電子装置と、
第１の種類のオペレーティングシステムの更新を、１つの電子装置ずつ順番に実行させ、前記複数の電子装置の前記第１の種類のオペレーティングシステムの更新が完了した後に、前記第１の種類のオペレーティングシステムよりも起動時間が長い第２の種類のオペレーティングシステムの更新を、前記複数の電子装置に対して一斉に実行させる処理を行う制御装置と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置および情報処理システムに関する。
【背景技術】
【０００２】
情報処理の分野では、電子装置（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、オペレーティングシステム（ＯＳ：Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振ることがある。
【０００３】
仮想化技術は、種々のシステムに利用され得る。一例として、ユニファイド型ストレージが挙げられる。ユニファイド型ストレージは、ブロックアクセスおよびファイルアクセスの両方を受け付け可能なストレージである。ユニファイド型ストレージでは、仮想化技術を用いて、ブロックアクセス用のＯＳ、および、ファイルアクセス用のＯＳを並列に実行することで、両方のアクセスを行えるようにすることがある。
【０００４】
ところで、電子装置を制御するＯＳのプログラム（ファームウェアのプログラムを含む）は、機能や性能向上のために更新されることがある。当該更新はＯＳの再起動を伴うことが多い。ＯＳの再起動中は業務が中断され得る。そこで、電子装置におけるプログラムの更新方法が考えられている。
【０００５】
例えば、クラスタ構成を持つ記憶制御装置において、入出力の中断時間を短くするマイクロプログラムの交換方法の提案がある。この提案では、記憶制御装置は、クラスタＡ面をオフラインにしてＡ面のマイクロプログラムを交換し、次に、クラスタＢ面をオフラインにしてクラスタＡ面をオンラインにする。その後、クラスタＢ面のマイクロプログラムを交換し、クラスタＢ面をオンラインにする。
【０００６】
また、ホスト計算機により、制御プログラム更新のために再起動中である記憶制御装置を検出すると、当該記憶装置以外の記憶制御装置を経由して、論理記憶装置へアクセスするようアクセス先を切り替える提案もある。
【０００７】
更に、ディスクアレイ装置のディスクアレイ制御部または入出力装置の交換後に、交換後の装置が保持するファームウェアによる誤作動を防ぐ提案もある。この提案では、ディスクアレイ装置は、起動時に、ディスクアレイ制御部および入出力装置それぞれに記録されているファームウェアのうち、以前動作していたファームウェアを選択して実行する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平９−１６０７７３号公報
【特許文献２】特開２００９−４２９３２号公報
【特許文献３】特開２００１−２８２４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数の種類のＯＳを並列に実行可能な電子装置を複数含むシステムにおいて、ＯＳ更新の所要時間が問題となる。例えば、全ての電子装置の全てのＯＳを一斉に更新することも考えられる。しかし、ある種類のＯＳでは、一斉に起動させると、他の電子装置上の同種のＯＳとの連携用の相互通信の待ち合わせにより余計な時間がかかり、システム全体が再開するまでの時間が過大になるおそれがある。
【００１０】
これに対し、複数の種類のＯＳの更新を、１つの電子装置ずつ順番に行うことも考えられる。しかし、後者の方法では、再起動の所要時間が比較的長い別の種類のＯＳが存在する場合に、当該ＯＳの再起動が完了するまで次の電子装置のＯＳ更新に進めず、システム内の全ＯＳの更新が完了するまでに時間がかかるおそれがある。
【００１１】
１つの側面では、本発明は、システムのＯＳ更新を高速化することを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、複数の種類のオペレーティングシステムを並列に実行可能な複数の電子装置の制御を行う制御装置が提供される。この制御装置は、記憶部と処理部とを有する。記憶部は、複数の電子装置におけるオペレーティングシステムの更新状況をそれぞれ記憶する。処理部は、第１の種類のオペレーティングシステムの更新を、記憶部に記憶された更新状況に基づいて、１つの電子装置ずつ順番に実行させ、複数の電子装置の第１の種類のオペレーティングシステムの更新が完了した後に、第１の種類のオペレーティングシステムよりも起動時間が長い第２の種類のオペレーティングシステムの更新を、複数の電子装置に対して一斉に実行させる処理を行う。
【００１３】
また、１つの態様では、情報処理システムが提供される。この情報処理システムは、複数の電子装置と制御装置とを有する。電子装置は、複数の種類のオペレーティングシステムを並列に実行可能である。制御装置は、第１の種類のオペレーティングシステムの更新を、１つの電子装置ずつ順番に実行させ、複数の電子装置の第１の種類のオペレーティングシステムの更新が完了した後に、第１の種類のオペレーティングシステムよりも起動時間が長い第２の種類のオペレーティングシステムの更新を、複数の電子装置に対して一斉に実行させる処理を行う。
【発明の効果】
【００１４】
１つの側面では、システムのＯＳ更新を高速化できる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態のストレージシステムを示す図である。
【図３】ＣＭのハードウェア例を示す図である。
【図４】業務サーバのハードウェア例を示す図である。
【図５】ユニファイド型ストレージのデータアクセス例を示す図である。
【図６】ＣＭのグループ化の例を示す図である。
【図７】ＣＭの機能例を示す図である。
【図８】管理テーブルの例を示す図である。
【図９】ＯＳ更新例を示すフローチャートである。
【図１０】ＯＳ更新の具体例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。情報処理システム１は、複数の電子装置を含むシステムである。電子装置は、複数の種類のＯＳを並列に実行可能である（マルチＯＳで動作する）。電子装置は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などを含むストレージへのデータアクセスを制御するストレージ制御装置でもよい。電子装置は、マルチＯＳによりブロックアクセスとファイルアクセスとを受け付け可能なユニファイド型ストレージを実現してもよい。また、電子装置は、マルチＯＳにより種々の業務サービスをユーザに提供する情報処理装置でもよい。
【００１７】
情報処理システム１は、制御装置１０およびサブシステム２０，３０，４０を有する。制御装置１０は、情報処理システム１に含まれる各電子装置で実行される複数の種類のＯＳの更新を制御する。サブシステム２０，３０，４０は、２つの電子装置をそれぞれ含む。サブシステム２０は、電子装置２１，２２を含む。サブシステム３０は、電子装置３１，３２を含む。サブシステム４０は、電子装置４１，４２を含む。１つのサブシステム内の２つの電子装置は、冗長化されており、一方の電子装置が停止あるいは再起動していても、他方の電子装置を用いて業務を継続できる。ここで、制御装置１０は、後述するように、何れかの電子装置（例えば、電子装置２１）に内蔵されるデバイスでもよい。
【００１８】
制御装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭなどの揮発性記憶装置でもよいし、フラッシュメモリなどの不揮発性記憶装置でもよい。処理部１２は、ＣＰＵ、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。処理部１２はプログラムを実行するプロセッサでもよい。プロセッサは、複数のプロセッサの集合（マルチプロセッサ）も含み得る。
【００１９】
また、電子装置２１は、記憶部２１ａおよび処理部２１ｂを有する。記憶部２１ａは、記憶部１１と同様に、ＲＡＭなどの揮発性記憶装置やフラッシュメモリなどの不揮発性記憶装置を含む。記憶部２１ａは、電子装置２１における第１の種類のＯＳのプログラム、および、第２の種類のＯＳのプログラムを記憶する。
【００２０】
処理部２１ｂは、処理部１２と同様に、プログラムを実行するプロセッサを含む。処理部２１ｂは、記憶部２１ａに記憶された各プログラムを実行することで、電子装置２１上に、第１の種類のＯＳ、および、第２の種類のＯＳを並列に動作させる。ここで、電子装置２１では、ＯＳ更新を行うために、記憶部２１ａに更新後のプログラムを格納し、格納したプログラムを用いて、各種のＯＳを再起動させる作業が発生する。電子装置２２，３１，３２，４１，４２も電子装置２１と同様に記憶部および処理部を有している。
【００２１】
ここで、第１の種類のＯＳは、電子装置間の連携を支援する機能を担う。このため、第１の種類のＯＳは、起動時に、他の電子装置上の第１の種類のＯＳと相互に通信する処理を含む。この場合、複数の電子装置上で、第１の種類のＯＳを複数一斉に起動させると、相互通信の待ち合わせが多発して、電子装置間の通信が遅延し、第１の種類のＯＳを利用可能になるまでに時間がかかることがある。この遅延は、システム内の電子装置の数が多いほど増大する。システムによっては、第１の種類のＯＳに対し、監視装置（図示を省略）を用いて死活監視を行うこともあり、死活監視の応答制限時間に第１の種類のＯＳの利用開始が間に合わずに、該当の電子装置がシステム上で利用不可と誤判断されることもある。なお、第２の種類のＯＳには、第１の種類のＯＳのように、電子装置間の連携支援の役割はない。
【００２２】
また、第１の種類のＯＳと、第２の種類のＯＳとでは、起動の所要時間（起動時間と称することがある）に差がある。第１の種類のＯＳの起動時間はａである。第２の種類のＯＳの起動時間はｂである。起動時間ｂは、起動時間ａよりも長い（ｂ＞ａ）。すなわち、起動時間ａは、起動時間ｂよりも短い。例えば、ユニファイド型ストレージの例でいえば、第１の種類のＯＳはブロックアクセス用のＯＳに相当し、第２の種類のＯＳはファイルアクセス用のＯＳに相当する。この場合、起動時間ａは、数秒〜十秒程度であるのに対し、起動時間ｂは、数十秒〜数分程度と、起動時間ａ，ｂの差が非常に大きくなることがある。
【００２３】
情報処理システム１において、制御装置１０は、次のように、各電子装置における複数のＯＳの更新を制御する。まず、処理部１２は、サブシステム２０，３０，４０内の６つの電子装置を次のようにグループ分けする。処理部１２は、電子装置２１，３１，４１を第１グループとする。処理部１２は、電子装置２２，３２，４２を第２グループとする。こうすれば、一方のグループに属する各電子装置でＯＳ更新中であっても、他のグループに属する各電子装置により業務を継続できるからである。
【００２４】
以下、第１グループに属する電子装置２１，３１，４１の各ＯＳを更新する手順を説明する。ただし、第２グループに属する電子装置２２，３２，４２の各ＯＳを更新する手順も第１グループに対する手順と同様である。ここで、電子装置２１，３１，４１における第１の種類のＯＳ、および、第２の種類のＯＳを次のように符号により区別する。電子装置２１は、第１の種類のＯＳｘ１、および、第２の種類のＯＳｙ１を有する。電子装置３１は、第１の種類のＯＳｘ２、および、第２の種類のＯＳｙ２を有する。電子装置４１は、第１の種類のＯＳｘ３、および、第２の種類のＯＳｙ３を有する。
【００２５】
記憶部１１は、電子装置２１，３１，４１における各ＯＳの更新状況をそれぞれ記憶する。更新状況は、電子装置２１，３１，４１における第１の種類のＯＳｘ１，ｘ２，ｘ３の更新の進捗の情報を含む。また、記憶部１１は、１つのサブシステムに属する第１の電子装置と第２の電子装置を示す情報をサブシステム２０，３０，４０に対して記憶する。例えば、記憶部１１は、サブシステム２０であれば、サブシステム２０の識別情報に対して電子装置２１，２２の識別情報を対応付けて記憶する。
【００２６】
処理部１２は、第１の種類のＯＳｘ１，ｘ２，ｘ３の更新を、記憶部１１に記憶された更新状況に基づいて、１つの電子装置ずつ順番に実行させる。例えば、処理部１２は、電子装置２１の第１の種類のＯＳｘ１を更新する（ステップＳ１）。処理部１２は、電子装置３１の第１の種類のＯＳｘ２を更新する（ステップＳ２）。処理部１２は、電子装置４１の第１の種類のＯＳｘ３を更新する（ステップＳ３）。ステップＳ１，Ｓ２，Ｓ３では、処理部１２は第１の種類のＯＳｘ１，ｘ２，ｘ３を、電子装置２１，３１，４１により個別に、順番に、更新させているともいえる。
【００２７】
ここで、ＯＳの更新は、前述のように、電子装置２１，３１，４１が備える記憶部に更新後のプログラムを格納し、更新後のプログラムにより、電子装置２１，３１，４１において該当のＯＳを再起動させることで行われる。処理部１２は、該当の電子装置が備える記憶部への更新後のＯＳのプログラムの格納、および、該当のＯＳの再起動を、ステップ毎に実行するように電子装置２１，３１，４１を制御してもよい。または、処理部１２は、ステップＳ１の前に、電子装置２１，３１，４１の各記憶部に更新後のＯＳのプログラムを格納し、ステップＳ１，Ｓ２，Ｓ３では、第１の種類のＯＳｘ１，ｘ２，ｘ３の再起動のみを行うように電子装置２１，３１，４１を制御してもよい。
【００２８】
処理部１２は、複数の電子装置の第１の種類のＯＳの更新が完了した後に、第１の種類のＯＳよりも起動時間が長い第２の種類のＯＳの更新を、複数の電子装置に対して一斉に実行させる。具体的には、処理部１２は、電子装置２１，３１，４１の第１の種類のＯＳｘ１，ｘ２，ｘ３の更新が完了した後に、第２の種類のＯＳｙ１，ｙ２，ｙ３の更新を、電子装置２１，３１，４１に対して一斉に実行する（ステップＳ４）。ステップＳ４では、処理部１２は第２の種類のＯＳｙ１，ｙ２，ｙ３を、電子装置２１，３１，４１により一斉に更新させているともいえる。
【００２９】
なお、処理部１２は、電子装置２１，３１，４１が備える各記憶部への更新後のＯＳのプログラムの格納、および、該当のＯＳの再起動を、ステップＳ４において行うように電子装置２１，３１，４１を制御してもよい。または、処理部１２は、ステップＳ４の前に、電子装置２１，３１，４１の各記憶部に更新後のＯＳのプログラムを格納し、ステップＳ４では、第２の種類のＯＳｙ１，ｙ２，ｙ３の再起動のみを行うように電子装置２１，３１，４１を制御してもよい。
【００３０】
このように、処理部１２は、比較的起動時間が短い第１の種類のＯＳについては、１つずつ順番に更新し、比較的起動時間が長い第２の種類のＯＳについては、一斉に更新することで、電子装置２１，３１，４１における複数のＯＳの更新を高速化できる。具体的には、第１の種類のＯＳｘ１，ｘ２，ｘ３については、１つずつ順番に更新することで、第１の種類のＯＳの一斉起動を避けることができ、電子装置間の通信の待ち合わせによる処理遅延を軽減できる。また、第２の種類のＯＳｙ１，ｙ２，ｙ３については、一斉に更新することで、１つずつ順番に更新するよりも、更新の所要時間を短縮できる。
【００３１】
処理部１２は、記憶部１１に記憶されたサブシステムと当該サブシステムに属する電子装置の対応関係に基づいて、第１グループ、第２グループの順にＯＳ更新を行う。すなわち、処理部１２は、電子装置２１，３１，４１における第１の種類のＯＳｘ１，ｘ２，ｘ３、および、第２の種類のＯＳｙ１，ｙ２，ｙ３の更新が全て完了した後は、第２グループに属する電子装置２２，３２，４２のＯＳ更新を同様にして行う。処理部１２は、第１グループに属する電子装置２１，３１，４１により業務を継続しながら、第２グループに属する電子装置２２，３２，４２の第１の種類のＯＳ、および、第２の種類のＯＳを更新できる。この場合も、処理部１２は、電子装置２２，３２，４２の各ＯＳの更新を高速に行える。こうして、制御装置１０は、情報処理システム１の各電子装置における各ＯＳの更新を高速化できる。
【００３２】
なお、制御装置１０は、前述のように、何れかの電子装置に内蔵されてもよい。例えば、電子装置２１が制御装置１０を内蔵する場合、電子装置２１が、制御装置１０の機能を発揮することができる。あるいは、処理部２１ｂが、処理部１２の機能を担ってもよい。
【００３３】
次に、情報処理システム１の一例として、ストレージシステムを挙げて、制御装置１０による機能をより詳細に説明する。
［第２の実施の形態］
図２は、第２の実施の形態のストレージシステムを示す図である。第２の実施の形態のストレージシステムは、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎ（ｎは正の整数）を含む。すなわち、第２の実施の形態のストレージシステムは、ｎ＋１個のストレージ装置を含む。業務サーバ３００，４００は、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎに格納されたデータにアクセスし、ユーザの業務処理を実行するサーバコンピュータである。
【００３４】
ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎおよび業務サーバ３００は、ＳＡＮ（Storage Area Network）５０に接続されている。ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎおよび業務サーバ４００は、ＬＡＮ（Local Area Network）６０に接続されている。
【００３５】
ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎは、複数のＨＤＤを備え、複数のＨＤＤを用いて、業務サーバ３００，４００が業務処理に用いるデータを記憶する。ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎは、ＨＤＤに代えて、あるいは、ＨＤＤと併せてＳＳＤなどの他の種類の記憶装置を備えてもよい。
【００３６】
ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎは、ＳＡＮ５０経由でのブロックアクセス、および、ＬＡＮ６０経由でのファイルアクセスの両方を受け付け可能なユニファイド型ストレージである。以下では、ストレージ装置Ｎ０を主に例示して説明するが、ストレージ装置Ｎ１，・・・，Ｎｎも、ストレージ装置Ｎ０と同様の要素を有する。
【００３７】
ストレージ装置Ｎ０は、コントローラモジュール（ＣＭ：Controller Module）１００，１００ａおよびドライブエンクロージャ（ＤＥ：Drive Enclosure）２００，２００ａを有する。ＣＭ１００，１００ａは、１つの筐体に収納される。ＣＭ１００，１００ａを収納する１つの筐体をコントローラエンクロージャ（ＣＥ：Controller Enclosure）と称することがある。すなわち、ストレージ装置Ｎ０は、１つのＣＥを有しているともいえる。１つのＣＥを第１の実施の形態の１つのサブシステムの一例と考えてもよい。また、ＣＭ１００，１００ａは、第１の実施の形態の電子装置２１，２２の一例である。更に、ＣＭ１００，１００ａは、第１の実施の形態の制御装置１０の機能も含む。
【００３８】
ＣＭ１００，１００ａは、ＤＥ２００，２００ａに収納されたＨＤＤに対するデータアクセスを制御するストレージ制御装置である。ＤＥ２００，２００ａは、複数のＨＤＤを収納するための筐体である。例えば、ストレージ装置Ｎ０では、ＣＭ１００，１００ａおよびＤＥ２００，２００ａを冗長構成として、何れかの障害時にも運用を継続可能である。
【００３９】
業務サーバ３００は、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎに格納されたデータにアクセスする。業務サーバ３００は、例えば、ＳＡＮ５０を介してストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎに対するブロックアクセスを行う。
【００４０】
業務サーバ４００は、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎに格納されたデータにアクセスする。業務サーバ４００は、例えば、ＬＡＮ６０を介してストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎに対するファイルアクセスを行う。
【００４１】
ここで、ＣＭ１００は、ＤＥ２００（あるいは、ＤＥ２００ａ）に搭載されている複数のＨＤＤを組み合わせて、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）の技術により論理ボリュームを作成する。論理ボリュームは、ＣＭ１００が業務サーバ３００，４００に提供する記憶領域の１つの単位である。論理ボリュームには論理ボリュームを識別する論理ユニット番号（ＬＵＮ：Logical Unit Number）が割り当てられる。業務サーバ３００は、ＬＵＮおよび論理ボリュームにおけるブロックのアドレス（ＬＢＡ：Logical Block Address）を直接指定して、ストレージ装置Ｎ０に対するアクセスを行える。一方、業務サーバ４００は、業務サーバ４００およびストレージ装置Ｎ０のファイルシステムを介して、ストレージ装置Ｎ０の論理ボリュームに格納されたデータに対するアクセスを行える。
【００４２】
このため、ストレージ装置Ｎ０では、ある論理ボリュームを業務サーバ３００によるブロックアクセス用の論理ボリュームとし、別の論理ボリュームを業務サーバ４００によるファイルアクセス用の論理ボリュームとすることができる。後者の場合、ストレージ装置Ｎ０は、例えば、ＮＡＳ（Network Attached Storage）として利用可能であり、業務サーバ４００に対するファイルサーバとして機能し得る。ストレージ装置Ｎ０は、ファイル共有を行うためのプロトコルとして、例えば、ＮＦＳ（Network File System）やＣＩＦＳ（Common Internet File System）などを用いることができる。
【００４３】
ストレージ装置Ｎ１，・・・，Ｎｎも、ストレージ装置Ｎ０と同様に、業務サーバ３００のブロックアクセス、および、業務サーバ４００のファイルアクセスを受け付ける。
ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎでは、ユニファイド型ストレージを実現するために、ブロックアクセス用のＯＳ、および、ファイルアクセス用のＯＳの両方を並列に実行する。ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎでは、両方のＯＳの更新を行う場合に、更新を効率的に行う機能を提供する。
【００４４】
図３は、ＣＭのハードウェア例を示す図である。ＣＭ１００は、プロセッサ１０１、ＲＡＭ１０２、ＮＶＲＡＭ（Non-Volatile RAM）１０３、ＣＡ（Channel Adapter）１０４、ＮＡ（Network Adapter）１０５、ＤＩ（Drive Interface）１０６、ＣＭ−ＩＦ（InterFace）１０７および媒体リーダ１０８を有する。各ユニットはＣＭ１００のバスに接続されている。ＣＭ１００ａもＣＭ１００と同様のハードウェアにより実現できる。
【００４５】
プロセッサ１０１は、ＣＭ１００の情報処理を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００４６】
ＲＡＭ１０２は、ＣＭ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００４７】
ＮＶＲＡＭ１０３は、ＣＭ１００の補助記憶装置である。ＮＶＲＡＭ１０３は、例えば、不揮発性の半導体メモリである。ＮＶＲＡＭ１０３は、ＯＳ（ファームウェアを含む）のプログラムや各種データなどを記憶する。
【００４８】
ＣＡ１０４は、ＳＡＮ５０を介して業務サーバ３００と通信するための通信インタフェースである。例えば、ＣＡ１０４として、ｉＳＣＳＩ（Internet Small Computer System Interface）や、ファイバチャネル（ＦＣ：Fibre Channel）などのインタフェースを用いることができる。
【００４９】
ＮＡ１０５は、ＬＡＮ６０を介して業務サーバ４００と通信するための通信インタフェースである。例えば、ＮＡ１０５として、イーサネット（登録商標）のインタフェースを用いることができる。
【００５０】
ＤＩ１０６は、ＤＥ２００，２００ａと通信するためのインタフェースである。例えば、ＤＩ１０６として、ＳＡＳ（Serial Attached SCSI）などのインタフェースを用いることができる。
【００５１】
ＣＭ−ＩＦ１０７は、ＣＭ１００ａと接続するためのインタフェースである。また、ＣＭ−ＩＦ１０７は、他のストレージ装置のＣＭ（図示を省略している）との通信にも用いられる。ここで、ＣＭ１００は、ＣＭ−ＩＦ１０７を用いて、ＣＭ１００ａと連携してデータアクセスを行える。例えば、ＣＭ１００を運用系、ＣＭ１００ａを待機系としてもよい。あるいは、ＣＭ１００，１００ａの両方を運用系として、データアクセスを分散して行ってもよい。何れの場合も、一方の故障時に他方でデータアクセスを引き継ぐことができ、ユーザの業務が停止されることを防げる。
【００５２】
媒体リーダ１０８は、可搬型の記録媒体９１に記録されたプログラムやデータを読み取る装置である。記録媒体９１として、例えば、フラッシュメモリなどの不揮発性の半導体メモリを使用することができる。媒体リーダ１０８は、例えば、プロセッサ１０１からの命令に従って、記録媒体９１から読み取ったプログラムやデータを、ＲＡＭ１０２やＮＶＲＡＭ１０３に格納することもできる。
【００５３】
ＤＥ２００は、複数のＨＤＤを有する。例えば、ＤＥ２００は、ＨＤＤ２０１，２０２２０３，２０４，２０５，２０６を有する。各ＨＤＤを用いて作成された論理ボリュームは共有領域として用いられる。共有領域に対して受け付けるアクセスの種類は、論理ボリューム毎に異なる。例えば、ＨＤＤ２０１，２０２，２０３により作成される第１の論理ボリュームは、ブロックアクセス用の共有領域を提供する。一方、ＨＤＤ２０４，２０５，２０６により作成される第２の論理ボリュームは、ファイルアクセス用の共有領域を提供する。なお、ＤＥ２００もＤＥ２００ａと同様に複数のＨＤＤを備えている。前述のように、ＤＥ２００，２００ａは、ＨＤＤに代えて、あるいは、ＨＤＤと併せて、ＳＳＤなどの他の記憶装置を備えてもよい。
【００５４】
図４は、業務サーバのハードウェア例を示す図である。業務サーバ３００は、プロセッサ３０１、ＲＡＭ３０２、ＨＤＤ３０３、画像信号処理部３０４、入力信号処理部３０５、媒体リーダ３０６およびＨＢＡ（Host Bus Adapter）３０７を有する。各ユニットは業務サーバ３００のバスに接続されている。業務サーバ４００も業務サーバ３００と同様のユニットを用いて実現できる。
【００５５】
プロセッサ３０１は、業務サーバ３００の情報処理を制御する。プロセッサ３０１は、マルチプロセッサであってもよい。プロセッサ３０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ３０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００５６】
ＲＡＭ３０２は、業務サーバ３００の主記憶装置である。ＲＡＭ３０２は、プロセッサ３０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ３０２は、プロセッサ３０１による処理に用いる各種データを記憶する。
【００５７】
ＨＤＤ３０３は、業務サーバ３００の補助記憶装置である。ＨＤＤ３０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ３０３は、ＯＳのプログラム、アプリケーションプログラム、および各種データを記憶する。業務サーバ３００は、フラッシュメモリやＳＳＤなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００５８】
画像信号処理部３０４は、プロセッサ３０１からの命令に従って、業務サーバ３００に接続されたディスプレイ９２に画像を出力する。ディスプレイ９２としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００５９】
入力信号処理部３０５は、業務サーバ３００に接続された入力デバイス９３から入力信号を取得し、プロセッサ３０１に出力する。入力デバイス９３としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００６０】
媒体リーダ３０６は、記録媒体９４に記録されたプログラムやデータを読み取る装置である。記録媒体９４として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体９４として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ３０６は、例えば、プロセッサ３０１からの命令に従って、記録媒体９４から読み取ったプログラムやデータをＲＡＭ３０２またはＨＤＤ３０３に格納する。
【００６１】
ＨＢＡ３０７は、ＳＡＮ５０を介してストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎと通信する通信インタフェースである。
なお、業務サーバ３００は、ＬＡＮ６０に接続する通信インタフェースを更に備えてもよい。また、業務サーバ４００は、ＨＢＡ３０７に代えて、ＬＡＮ６０に接続する通信インタフェースを備える。
【００６２】
図５は、ユニファイド型ストレージのデータアクセス例を示す図である。前述のように、業務サーバ３００は、ストレージ装置Ｎ０に対してブロックアクセスを行う。ブロックアクセスは、ＳＡＮ５０経由のアクセスであるため、図５中では、ＳＡＮ  Ｉ／Ｏ（Input / Output）と表記されている。一方、業務サーバ４００は、ストレージ装置Ｎ０に対してファイルアクセスを行う。ファイルアクセスは、ストレージ装置Ｎ０のＮＡＳ機能に対するアクセスであるため、図５中では、ＮＡＳ  Ｉ／Ｏと表記されている。両方の種類のアクセスを受け付けるために、ＣＭ１００は、マルチＯＳで動作する。
【００６３】
マルチＯＳを実現するため、ＣＭ１００は、ハイパーバイザ１１０を実行する。ハイパーバイザ１１０は、ＣＭ１００の演算のリソース（プロセッサ１０１やＲＡＭ１０２など）を、複数の仮想マシン（ＶＭ：Virtual Machine）に割り当て、ＣＭ１００上で複数のＶＭを動作させる。ハイパーバイザ１１０は、ＣＭ１００上の複数のＶＭの起動／停止を制御する。複数のＶＭは、ＳＡＮ用ＶＭ１２０およびＮＡＳ用ＶＭ１３０を含む。
【００６４】
ＳＡＮ用ＶＭ１２０は、ブロックアクセス用の所定のＯＳ（ＳＡＮ用ＯＳ）を実行し、業務サーバ３００によるブロックアクセス（ＳＡＮ  Ｉ／Ｏ）を処理する。すなわち、ＳＡＮ用ＶＭ１２０は、業務サーバ３００によるブロックアクセスを受け付け、ＤＥ２００，２００ａにおけるＳＡＮボリュームＶ１に格納されたデータにアクセスする。ここで、ＳＡＮボリュームＶ１は、業務サーバ３００の処理に用いられるデータを格納するための論理ボリュームである。ＳＡＮ用ＶＭ１２０は、アクセス結果を、業務サーバ３００に応答する。
【００６５】
また、ＳＡＮ用ＶＭ１２０は、ＮＡＳ用ＶＭ１３０によるブロックアクセスも処理する。ＳＡＮ用ＶＭ１２０は、ＮＡＳ用ＶＭ１３０によるブロックアクセスを受け付け、ＤＥ２００，２００ａにおけるＮＡＳボリュームＶ２に格納されたデータにアクセスする。ここで、ＮＡＳボリュームＶ２は、業務サーバ４００の処理に用いられるデータを格納するための論理ボリュームである。ＳＡＮ用ＶＭ１２０は、アクセス結果を、ＮＡＳ用ＶＭ１３０に応答する。
【００６６】
ＮＡＳ用ＶＭ１３０は、ファイルアクセス用の所定のＯＳ（ＮＡＳ用ＯＳ）を実行し、業務サーバ４００によるファイルアクセス（ＮＡＳ  Ｉ／Ｏ）を処理する。すなわち、ＮＡＳ用ＶＭ１３０は、業務サーバ４００によるファイルアクセスを受け付け、ファイルアクセスをブロックアクセスに変換して、ＳＡＮ用ＶＭ１２０にブロックアクセスを依頼する。ＮＡＳ用ＶＭ１３０は、ＳＡＮ用ＶＭ１２０からアクセス結果を受け付け、業務サーバ４００に応答する。このように、ＮＡＳ用ＶＭ１３０によるファイルアクセスは、ＳＡＮ用ＶＭ１２０が動作している（すなわち、ＳＡＮ用ＶＭ１２０のＯＳが動作している）ことが前提となる。ＯＳ更新においても、ＳＡＮ用ＶＭ１２０およびＮＡＳ用ＶＭ１３０が適切に連携できるようにするため、ＳＡＮ用ＶＭ１２０、ＮＡＳ用ＶＭ１３０の順に、ＯＳ更新を行う。
【００６７】
ＣＭ１００ａおよびストレージ装置Ｎ１，・・・，Ｎｎに含まれるＣＭも、ＣＭ１００と同様にして、ブロックアクセスおよびファイルアクセスを処理する。
ここで、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎの各ＣＭは２つのグループにグループ分けされる。ユーザの業務中断なしに、各ＣＭにおけるＯＳを更新可能にするためである。
【００６８】
また、ＳＡＮ用ＶＭ１２０の起動時間およびＮＡＳ用ＶＭ１３０の起動時間は、それぞれのＶＭで実行されるＯＳによる。通常、ＮＡＳ用ＶＭ１３０（すなわち、ＮＡＳ用のＯＳ）の起動時間は、ＳＡＮ用ＶＭ１２０（すなわち、ＳＡＮ用のＯＳ）の起動時間よりも大幅に長い。例えば、ＳＡＮ用ＶＭ１２０の起動時間は数秒〜十秒程度であるのに対し、ＮＡＳ用ＶＭ１３０の起動時間は数十秒〜数分程度である。
【００６９】
図６は、ＣＭのグループ化の例を示す図である。ここで、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎは、装置番号と呼ばれる識別情報によって識別される。ストレージ装置Ｎ０の装置番号は“０”である。ストレージ装置Ｎ１の装置番号は“１”である。ストレージ装置Ｎｎの装置番号は“ｎ”である。
【００７０】
また、１つのストレージ装置に含まれる２つのＣＭは、ＣＭ番号と呼ばれる識別情報によって識別される。１つ目のＣＭのＣＭ番号は“０”である。２つ目のＣＭのＣＭ番号は“１”である。
【００７１】
図６の例では、ストレージ装置Ｎ０のＣＭ１００のＣＭ番号は“０”である。ストレージ装置Ｎ０のＣＭ１００ａのＣＭ番号は“１”である。また、ストレージ装置Ｎ１のＣＭ１００ｂのＣＭ番号は“０”である。ストレージ装置Ｎ１のＣＭ１００ｃのＣＭ番号は“１”である。そして、ストレージ装置ＮｎのＣＭ１００ｘのＣＭ番号は“０”である。また、ストレージ装置ＮｎのＣＭ１００ｙのＣＭ番号は“１”である。
【００７２】
そこで、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎに含まれるＣＭのうち、ＣＭ番号“０”のＣＭ群（ＣＭ１００，１００ｂ，・・・，１００ｘ）を第１群Ｇ１（第１のグループ）とする。また、ＣＭ番号“１”のＣＭ群（ＣＭ１００ａ，１００ｃ，・・・，１００ｙ）を第２群Ｇ２（第２のグループ）とする。
【００７３】
業務サーバ３００，４００は、２つのパスＰ１，Ｐ２により、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎと接続される。パスＰ１は、第１群Ｇ１に属するＣＭ１００，１００ｂ，・・・，１００ｘに接続する通信経路である。パスＰ２は、第２群Ｇ２に属するＣＭ１００ａ，１００ｃ，・・・，１００ｙに接続する通信経路である。
【００７４】
この場合、業務サーバ３００，４００は、仮に第１群Ｇ１に属するＣＭ１００，１００ｂ，・・・，１００ｘがＯＳ更新のために再起動中であっても、パスＰ２経由で、第２群Ｇ２に属するＣＭ１００ａ，１００ｃ，・・・，１００ｙによりデータアクセスを行える。あるいは、業務サーバ３００，４００は、仮に第２群Ｇ２に属するＣＭ１００ａ，１００ｃ，・・・，１００ｙがＯＳ更新のために再起動中であっても、パスＰ１経由で、第１群Ｇ１に属するＣＭ１００，１００ｂ，・・・，１００ｘによりデータアクセスを行える。
【００７５】
ここで、第２の実施の形態では、ストレージ装置Ｎ０に含まれるＣＭ１００，１００ａの何れか一方がマスタとなり、各ＣＭのＯＳ更新の順序を制御する。ＣＭ１００，１００ａは、マスタの役割を相互に切り替え可能である。
【００７６】
図７は、ＣＭの機能例を示す図である。ＣＭ１００は、ＳＡＮ用ＶＭ１２０およびＮＡＳ用ＶＭ１３０に加えて、記憶部１４０を有する。記憶部１４０は、ＲＡＭ１０２またはＮＶＲＡＭ１０３に確保された記憶領域である。記憶部１４０は、図６で例示した各ＣＭの所属先グループの情報や各ＣＭにおけるＯＳ更新の進捗情報を管理するための管理テーブルを記憶する。
【００７７】
ＳＡＮ用ＶＭ１２０は、ＳＡＮ用ＯＳ１２１およびマスタ処理部１２２を有する。
ＳＡＮ用ＯＳ１２１は、ブロックアクセスを処理するリアルタイムＯＳ（ＲＴＯＳ：Real Time OS）である。ＳＡＮ用ＯＳ１２１の一例として、ＶｘＷｏｒｋｓ（登録商標）が挙げられる。ここで、ＳＡＮ用ＯＳ１２１は、起動時に、他のＣＭにおけるＳＡＮ用ＯＳと相互に連携するための通信を行う。複数のＣＭでＳＡＮ用ＯＳを一斉に起動させると、各ＳＡＮ用ＯＳが当該通信の待ち合わせを行うために、何れかのＳＡＮ用ＯＳを利用開始できるまでの時間が長引く可能性がある。
【００７８】
ところで、各ＣＭのＳＡＮ用ＯＳは、死活監視用の通信を担う。すなわち、各ＣＭのＳＡＮ用ＯＳは、業務サーバ３００またはＳＡＮ５０に属するスイッチ装置などの監視装置による死活監視用の通信への応答も担っている。このため、上記の待ち合わせの時間が長引くと、死活監視用の通信に対する応答時間が、死活監視の制限時間（再起動の所要時間の制限時間に相当）に間に合わず、該当のＣＭが利用不可であると監視装置により誤判断されるおそれがある。したがって、ＳＡＮ用ＯＳ１２１では、ＯＳ更新の際も、当該制限時間内で、再起動を行うことが求められる。
【００７９】
マスタ処理部１２２は、記憶部１４０に記憶された管理テーブルに基づいて、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎの各ＯＳの更新順序を制御する。具体的には、マスタ処理部１２２は、まずは、現在更新対象の群のＳＡＮ用ＯＳを１つずつ順番に更新し、当該群の全てのＳＡＮ用ＯＳを更新すると、当該群のＮＡＳ用ＯＳを一斉に更新する。マスタ処理部１２２は、更新の進捗を管理テーブルに記録する。
【００８０】
ＮＡＳ用ＶＭ１３０は、ＮＡＳ用ＯＳ１３１およびスレーブ処理部１３２を有する。
ＮＡＳ用ＯＳ１３１は、ファイルアクセスを処理するＯＳである。ＮＡＳ用ＯＳ１３１の一例として、Ｌｉｎｕｘ（登録商標）が挙げられる。
【００８１】
スレーブ処理部１３２は、マスタ処理部１２２によるＯＳの更新指示に従って、ＮＡＳ用ＯＳ１３１を更新する。
ＣＭ１００ａは、ＳＡＮ用ＶＭ１２０ａ、ＮＡＳ用ＶＭ１３０ａおよび記憶部１４０ａを有する。記憶部１４０ａは、ＣＭ１００ａが備えるＲＡＭまたはＮＶＲＡＭに確保された記憶領域である。記憶部１４０ａは、記憶部１４０と同様に、管理テーブルを記憶する。
【００８２】
ＳＡＮ用ＶＭ１２０ａは、ＳＡＮ用ＯＳ１２１ａおよびスレーブ処理部１２２ａを有する。ＳＡＮ用ＯＳ１２１ａは、ＳＡＮ用ＯＳ１２１と同様に、ブロックアクセスを処理するＲＴＯＳである。
【００８３】
スレーブ処理部１２２ａは、マスタ処理部１２２によるＯＳの更新指示にしたがって、ＳＡＮ用ＯＳ１２１ａを更新する。ここで、後述するように、ＳＡＮ用ＶＭ１２０ａは、一時的に、マスタ処理部１２２の機能を実行することもある。また、このとき、ＳＡＮ用ＶＭ１２０は、スレーブ処理部１２２ａの機能を実行し、ＳＡＮ用ＯＳ１２１の更新を行う。例えば、記憶部１４０，１４０ａは、ＣＭ１００，１００ａの何れがマスタ処理部１２２の機能を実行しているかを識別する情報を記憶する。一連のＯＳ更新途中での失敗時に、何れのＣＭがマスタとして動作していたかを判断できるようにし、失敗箇所からＯＳ更新を再開できるようにするためである。
【００８４】
ＮＡＳ用ＶＭ１３０ａは、ＮＡＳ用ＯＳ１３１ａおよびスレーブ処理部１３２ａを有する。
ＮＡＳ用ＯＳ１３１ａは、ＮＡＳ用ＯＳ１３１と同様に、ファイルアクセスを処理するＯＳである。スレーブ処理部１３２ａは、マスタ処理部１２２によるＯＳの更新指示に従って、ＮＡＳ用ＯＳ１３１ａを更新する。
【００８５】
なお、ＳＡＮ用ＯＳやＮＡＳ用ＯＳを、各ＣＭのファームウェアと呼ぶこともできる。このため、ＳＡＮ用ＯＳのＯＳ更新を、ＳＡＮ用ファームウェアのファームウェア更新ということもできる。また、ＮＡＳ用ＯＳのＯＳ更新を、ＮＡＳ用ファームウェアのファームウェア更新ということもできる。
【００８６】
また、ＣＭ１００，１００ａ以外の各ＣＭはマスタ処理部の機能をもたずに、スレーブ処理部の機能をもつ。
図８は、管理テーブルの例を示す図である。管理テーブルＤ１は、記憶部１４０，１４０ａに格納される。ただし、管理テーブルＤ１は、少なくともマスタ処理部１２２の機能を担うＣＭに保持されていればよい。管理テーブルＤ１は、装置番号、ＣＭ番号およびＳＡＮ用ＯＳ更新フラグの項目を含む。
【００８７】
装置番号の項目には、ストレージ装置の識別情報である装置番号が登録される。ＣＭ番号の項目には、ＣＭの識別情報であるＣＭ番号が登録される。ＳＡＮ用ＯＳ更新フラグの項目には、ＳＡＮ用ＯＳが更新済であるか否かを示すフラグ（更新フラグ）が登録される。例えば、更新フラグ“ｔｒｕｅ”は更新済を示す。更新フラグ“ｆａｌｓｅ”は未更新を示す。
【００８８】
例えば、管理テーブルＤ１には、装置番号が“０”、ＣＭ番号が“０”、ＳＡＮ用ＯＳ更新フラグが“ｔｒｕｅ”という情報が登録される。これは、装置番号“０”で示されるストレージ装置Ｎ０において、ＣＭ番号“０”で示されるＣＭ１００のＳＡＮ用ＯＳ１２１が更新済であることを示す。
【００８９】
また、管理テーブルＤ１には、装置番号が“０”、ＣＭ番号が“１”、ＳＡＮ用ＯＳ更新フラグが“ｆａｌｓｅ”という情報が登録される。これは、装置番号“０”で示されるストレージ装置Ｎ０において、ＣＭ番号“１”で示されるＣＭ１００ａのＳＡＮ用ＯＳ１２１ａが未更新であることを示す。
【００９０】
次に、第２の実施の形態のストレージシステムにおけるＯＳ更新の手順を例示する。
ここで、ＳＡＮ用ＯＳの更新後のプログラム、および、ＮＡＳ用ＯＳの更新後のプログラムは、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎの各ＣＭに予め配布される。各ＣＭは、配布されたプログラムを、各ＣＭが備えるＮＶＲＡＭに格納する。例えば、ＮＶＲＡＭのＯＳプログラム用の記憶領域は２面構成となっている。各ＣＭは、現バージョンのＯＳプログラムを第１面に、新バージョンのＯＳプログラムを第２面に、それぞれ格納可能である（仮に新バージョンへの更新に失敗しても、現バージョンで復旧にするため）。したがって、ストレージ装置Ｎ０，Ｎ１，・・・，Ｎｎにおいて、ＯＳ更新を行うためには、各ＣＭで動作しているＳＡＮ用ＯＳおよびＮＡＳ用ＯＳを、新バージョンのプログラムにより再起動させればよいことになる。
【００９１】
図９は、ＯＳ更新例を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
（Ｓ１１）マスタ処理部１２２は、ユーザによるＯＳのプログラム更新指示を受け付ける。マスタ処理部１２２は、第２群Ｇ２の先頭ＣＭ（ＣＭ１００ａ）をマスタに設定する。マスタ処理部１２２は、記憶部１４０に記憶された管理テーブルＤ１の各ＣＭの更新フラグを“ｆａｌｓｅ”に設定し、管理テーブルＤ１をＣＭ１００ａに提供する。ＣＭ１００ａでは、管理テーブルＤ１を記憶部１４０ａに格納する。これにより、マスタの役割はＣＭ１００ａに切り替わり、マスタの役割が戻るまで、ＣＭ１００はスレーブ処理部に相当する機能を実行する。
【００９２】
（Ｓ１２）ＣＭ１００ａのマスタ処理部は、第１群Ｇ１の先頭ＣＭ（ＣＭ１００）のＮＡＳ用ＯＳ１３１の切り離し処理を実行する。切り離し処理とは、該当のＮＡＳ用ＯＳをシャットダウンすることを意味する。すなわち、ＣＭ１００ａのマスタ処理部は、ＮＡＳ用ＯＳ１３１をシャットダウンするように、ＣＭ１００に指示する。ＣＭ１００は、指示に応じて、ＮＡＳ用ＯＳ１３１をシャットダウンする。
【００９３】
（Ｓ１３）ＣＭ１００ａのマスタ処理部は、第１群Ｇ１の先頭ＣＭ（ＣＭ１００）のＳＡＮ用ＯＳ１２１を更新する。具体的には、ＣＭ１００ａのマスタ処理部は、新バージョンのプログラムにより、ＳＡＮ用ＯＳ１２１を再起動させるように、ＣＭ１００に指示する。ＣＭ１００のスレーブ処理部は、指示に応じて、新バージョンのプログラムによりＳＡＮ用ＯＳ１２１を再起動する。ＣＭ１００ａのマスタ処理部は、管理テーブルＤ１を更新する（ＣＭ１００のＳＡＮ用ＯＳ１２１を更新済（更新フラグ”ｔｒｕｅ”）に設定する）。
【００９４】
（Ｓ１４）ＣＭ１００ａのマスタ処理部は、第１群Ｇ１の先頭ＣＭ（ＣＭ１００）にマスタを切り替える。ＣＭ１００ａのマスタ処理部は、管理テーブルＤ１をＣＭ１００に提供する。ＣＭ１００では、管理テーブルＤ１を記憶部１４０に格納する。これにより、ＯＳ更新の制御主体が、ＣＭ１００のマスタ処理部１２２に戻る。ＣＭ１００ａは、マスタ処理部としての役割を終え、以後、スレーブ処理部１２２ａによる処理が主となる。
【００９５】
（Ｓ１５）マスタ処理部１２２は、第１群Ｇ１の次のＣＭのＮＡＳ用ＯＳの切り離し処理を実行する。具体的には、マスタ処理部１２２は、ＮＡＳ用ＯＳをシャットダウンするように、該当のＣＭに指示する。指示を受けたＣＭのスレーブ処理部は、指示に応じて、ＮＡＳ用ＯＳをシャットダウンする。ここで、マスタ処理部１２２は、ストレージ装置の装置番号の昇順にＮＡＳ用ＯＳの更新を行う。したがって、「次のＣＭ」とは、第１群Ｇ１に属するＣＭのうち、ＮＡＳ用ＯＳの更新を直前に行ったストレージ装置の装置番号に１を加算した装置番号に対応するストレージ装置に含まれるＣＭである。
【００９６】
（Ｓ１６）マスタ処理部１２２は、ステップＳ１５でＮＡＳ用ＯＳの切り離し処理を行った該当のＣＭのＳＡＮ用ＯＳを更新する。具体的には、マスタ処理部１２２は、新バージョンのプログラムにより、ＳＡＮ用ＯＳを再起動させるように、該当のＣＭに指示する。指示を受けたＣＭのスレーブ処理部は、指示に応じて、新バージョンのプログラムによりＳＡＮ用ＯＳを再起動する。マスタ処理部１２２は、管理テーブルＤ１において、該当のＣＭのＳＡＮ用ＯＳを更新済に設定する。
【００９７】
（Ｓ１７）マスタ処理部１２２は、管理テーブルＤ１を参照して、第１群Ｇ１のＳＡＮ用ＯＳを全て更新したか否かを判定する。全て更新した場合、処理をステップＳ１８に進める。全て更新していない場合、処理をステップＳ１５に進める。
【００９８】
（Ｓ１８）マスタ処理部１２２は、第１群Ｇ１の全ＣＭ（ＣＭ１００，１００ｂ，・・・，１００ｘ）のＮＡＳ用ＯＳを一斉に更新する。これにより、第１群Ｇ１に含まれる各ＯＳの更新が完了する。
【００９９】
（Ｓ１９）マスタ処理部１２２は、第２群Ｇ２の次のＣＭのＮＡＳ用ＯＳの切り離し処理を実行する。具体的には、マスタ処理部１２２は、ＮＡＳ用ＯＳをシャットダウンするように、該当のＣＭに指示する。指示を受けたＣＭのスレーブ処理部は、指示に応じて、ＮＡＳ用ＯＳをシャットダウンする。ここで、「次のＣＭ」とは、第２群Ｇ２に属するＣＭのうち、ＮＡＳ用ＯＳの更新を直前に行ったストレージ装置の装置番号に１を加算した装置番号に対応するストレージ装置に含まれるＣＭである。また、ステップＳ１９を最初に実行する場合、「次のＣＭ」は、ＣＭ１００ａである。
【０１００】
（Ｓ２０）マスタ処理部１２２は、ステップＳ１９でＮＡＳ用ＯＳの切り離し処理を行った該当のＣＭのＳＡＮ用ＯＳを更新する。具体的には、マスタ処理部１２２は、新バージョンのプログラムにより、ＳＡＮ用ＯＳを再起動させるように、該当のＣＭに指示する。指示を受けたＣＭのスレーブ処理部は、指示に応じて、新バージョンのプログラムによりＳＡＮ用ＯＳを再起動する。マスタ処理部１２２は、管理テーブルＤ１において、該当のＣＭのＳＡＮ用ＯＳを更新済に設定する。
【０１０１】
（Ｓ２１）マスタ処理部１２２は、管理テーブルＤ１を参照して、第２群Ｇ２のＳＡＮ用ＯＳを全て更新したか否かを判定する。全て更新した場合、処理をステップＳ２２に進める。全て更新していない場合、処理をステップＳ１９に進める。
【０１０２】
（Ｓ２２）マスタ処理部１２２は、第２群Ｇ２の全ＣＭ（ＣＭ１００ａ，１００ｃ，・・・，１００ｙ）のＮＡＳ用ＯＳを一斉に更新する。これにより、第２群Ｇ２に含まれる各ＯＳの更新が完了する。
【０１０３】
このように、ＣＭ１００は、ＳＡＮ用ＯＳの更新フェーズでは、対象のＣＭのＮＡＳ用ＯＳを停止させた後に当該ＣＭのＳＡＮ用ＯＳを新しいバージョンの第１のプログラムにより再起動させる。このため、ＳＡＮ用ＯＳの更新フェーズが完了した段階では、該当の群に属する各ＣＭにおいて、ＮＡＳ用ＯＳは停止された状態となる。そして、ＣＭ１００は、ＮＡＳ用ＯＳの更新フェーズでは、複数のＣＭのＮＡＳ用ＯＳを新しいバージョンの第２のプログラムにより一斉に起動させる。
【０１０４】
図１０は、ＯＳ更新の具体例を示す図である。図１０（Ａ）は、図９の手順によって各ＣＭのＯＳの更新を行う例を示す。図１０（Ｂ）は、１台ずつ順番にＣＭを選択して、ＳＡＮ用ＯＳおよびＮＡＳ用ＯＳの両方を並行に更新する例を示す。ここで、図１０では、左側から右側へ向かう方向が時間軸の正方向である。また、図１０では、ＳＡＮ用ＯＳの更新（具体的には、新バージョンでのＯＳ再起動）を「ＳＡＮ」の文字列を付した四角形により表す。また、ＮＡＳ用ＯＳの更新（具体的には、新バージョンでのＯＳ再起動）を「ＮＡＳ」の文字列を付した四角形により表す。「ＳＡＮ」または「ＮＡＳ」の文字列を付した各四角形の時間軸方向の長さは、更新（再起動）の所要時間を示す。
【０１０５】
図１０（Ａ）の例では、前半に第１群Ｇ１、後半に第２群Ｇ２に対してＯＳ更新が行われる。マスタであるストレージ装置Ｎ０は、時刻Ｔ０にＯＳ更新を開始する。まず、ストレージ装置Ｎ０は、図９の手順に従い、第１群Ｇ１のｎ個のＣＭ（ＣＭ１００，１００ｂ，・・・，１００ｘ）について、順番に、ＳＡＮ用ＯＳを更新する。次に、ストレージ装置Ｎ０は、第１群Ｇ１のｎ個のＣＭ（ＣＭ１００，１００ｂ，・・・，１００ｘ）について、一斉に、ＮＡＳ用ＯＳを更新する。この場合、ストレージ装置Ｎ０は、第１群Ｇ１における全てのＯＳの更新を、時刻Ｔ１に完了する。その後、ストレージ装置Ｎ０は、後半の第２群Ｇ２のＯＳ更新を、第１群Ｇ１の更新と同様に行う。
【０１０６】
図１０（Ｂ）の例でも、時刻Ｔ０をＯＳ更新開始時刻として、前半に第１群Ｇ１、後半に第２群Ｇ２のＯＳ更新が行われる。ＮＡＳ用ＯＳの起動時間はＳＡＮ用ＯＳの起動時間に比べて長いため、図１０（Ｂ）の方法では、ＣＭ単位のＯＳ更新の所要時間は、ＮＡＳ用ＯＳの起動時間によって決まってしまう。そして、あるＣＭにおいて、ＮＡＳ用ＯＳの更新が完了するまでは、次のＣＭのＯＳ更新に移れない。
【０１０７】
このため、第１群Ｇ１に属する全てのＣＭについてＳＡＮ用ＯＳ、および、ＮＡＳ用ＯＳを完了するまでの時間が、図１０（Ａ）の方法よりも長くなる。図１０（Ｂ）の方法では、第１群Ｇ１における全てのＯＳの更新は、時刻Ｔ２に完了するものとする。時刻Ｔ２は、時刻Ｔ１よりも遅い時刻となる。すなわち、図１０（Ａ）のＯＳ更新方法の方が、図１０（Ｂ）のＯＳ更新方法よりも、ΔＴ＝Ｔ２−Ｔ１だけ早くＯＳ更新を完了できる。
【０１０８】
後半の分も考慮すれば、ストレージシステムに属する全ＣＭの全てのＯＳを完了するまでに、図１０（Ａ）のＯＳ更新方法の方が、図１０（Ｂ）のＯＳ更新方法よりも、およそ２×ΔＴだけ早くＯＳ更新を完了できる。
【０１０９】
このように、ストレージ装置Ｎ０は、比較的起動時間が短いＳＡＮ用ＯＳについては、１つずつ順番に更新し、比較的起動時間が長いＮＡＳ用ＯＳについては、一斉に更新することで、各ＣＭの各ＯＳの更新を高速化できる。具体的には、ＳＡＮ用ＯＳについては、１つずつ順番に更新することで、各ＣＭにおけるＳＡＮ用ＯＳの一斉起動を避けることができ、ＣＭ間の通信の待ち合わせによる処理遅延を軽減できる。このため、ＳＡＮ用ＯＳの再起動を死活監視用の通信にも間に合わせることができ、該当のＣＭが利用不可と誤判断されずに済む。また、ＮＡＳ用ＯＳについては、一斉に更新することで、１つずつ順番に更新するよりも、更新の所要時間を短縮できる。
【０１１０】
なお、第１の実施の形態の情報処理は、処理部１２（あるいは、処理部２１ｂ）にプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、ＣＭ１００，１００ａが備えるプロセッサ（例えば、プロセッサ１０１）にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体９１，９４に記録できる。ここで、ＣＭ１００，１００ａを含む各ＣＭは、プロセッサとメモリとを備えたコンピュータを含むと考えてもよい。
【０１１１】
例えば、プログラムを記録した記録媒体９１，９４を配布することで、プログラムを流通させることができる。また、記録媒体９１，９４に記録されたプログラムを他のコンピュータ（例えば、業務サーバ３００，４００、あるいは、その他のコンピュータ）に格納しておき、ネットワーク経由でプログラムを配布してもよい。ＣＭに含まれるコンピュータは、例えば、記録媒体９１，９４に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＮＶＲＡＭ１０３などの記憶装置に格納できる（インストール）。ＣＭのプロセッサは、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１１２】
１  情報処理システム
１０  制御装置
１１，２１ａ  記憶部
１２，２１ｂ  処理部
２０，３０，４０  サブシステム
２１，２２，３１，３２，４１，４２  電子装置
ｘ１，ｘ２，ｘ３  第１の種類のＯＳ
ｙ１，ｙ２，ｙ３  第２の種類のＯＳ
【図１】
2018018272.tif 000003
【図２】
2018018272.tif 000004
【図３】
2018018272.tif 000005
【図４】
2018018272.tif 000006
【図５】
2018018272.tif 000007
【図６】
2018018272.tif 000008
【図７】
2018018272.tif 000009
【図８】
2018018272.tif 000010
【図９】
2018018272.tif 000011
【図１０】
2018018272.tif 000012